<div dir="ltr">resolved the first issue.. Now i&#39;m able to add Payload via JavaSDK also. need help on the 2 issue.<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Apr 8, 2014 at 4:36 PM, Tejesh M <span dir="ltr">&lt;<a href="mailto:tejeshmk@gmail.com" target="_blank">tejeshmk@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div>Hi,<br><br></div>When i tried the above solution, i face few challanges:<br><br></div>1. I&#39;m able to add VMPayload via CURL, but not via JavaSDK.<br>
</div>2. When i add VMPayload via CURL, sysprep fails with this message &quot;windows could not parse or process the unattend answer file [a:\sysprep.inf] for pass [oobeSystem]. A component or setting specified in the answer file does not exist.&quot;<br>

<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Apr 8, 2014 at 12:32 PM, Omer Frenkel <span dir="ltr">&lt;<a href="mailto:ofrenkel@redhat.com" target="_blank">ofrenkel@redhat.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
----- Original Message -----<br>
&gt; From: &quot;Tejesh M&quot; &lt;<a href="mailto:tejeshmk@gmail.com" target="_blank">tejeshmk@gmail.com</a>&gt;<br>
&gt; To: &quot;Itamar Heim&quot; &lt;<a href="mailto:iheim@redhat.com" target="_blank">iheim@redhat.com</a>&gt;<br>
&gt; Cc: &quot;users@oVirt.org&quot; &lt;<a href="mailto:users@ovirt.org" target="_blank">users@ovirt.org</a>&gt;<br>
&gt; Sent: Monday, April 7, 2014 4:59:16 PM<br>
&gt; Subject: Re: [Users] Cloud-init for Windows<br>
&gt;<br>
&gt; Hi,<br>
&gt;<br>
&gt; I tried as you suggested, but floppy is not getting attached it seems. below<br>
&gt; is the code<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Steps followed:<br>
&gt;<br>
&gt; I. Create windows VM<br>
&gt; II. installed host agent<br>
&gt; III. To seal a Windows virtual machine with sysprep<br>
&gt;<br>
&gt;<br>
&gt;     1. In the Windows virtual machine to be used as a template, open a<br>
&gt;     command line terminal and type regedit .<br>
&gt;     2. The Registry Editor window displays. On the left pane, expand<br>
&gt;     HKEY_LOCAL_MACHINE → SYSTEM → SETUP .<br>
&gt;     3. On the main window, right click to add a new string value using New →<br>
&gt;     String Value . Right click on the string value file and select Modify .<br>
&gt;     When the Edit String dialog box displays, fill in the provided text<br>
&gt;     boxes:<br>
&gt;<br>
&gt;<br>
&gt;         * Value name: UnattendFile<br>
&gt;         * Value data: a:\sysprep.xml<br>
&gt;     4. Launch sysprep from C:\Windows\System32\sysprep\sysprep.exe<br>
&gt;<br>
&gt;<br>
&gt;         * Under System Cleanup Action , select Enter System<br>
&gt;         Out-of-Box-Experience (OOBE) .<br>
&gt;         * Tick the Generalize checkbox if you need to change the computer&#39;s<br>
&gt;         system identification number (SID).<br>
&gt;         * Under Shutdown Options , select Shutdown .<br>
&gt;<br>
&gt;<br>
&gt; Click OK . The virtual machine will now go through the sealing process and<br>
&gt; shut down automatically.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; IV.<br>
&gt;<br>
&gt;<br>
&gt; org.ovirt.engine.sdk.decorators.VM vm1 = api.getVMs().get(vmName);<br>
&gt; Payloads payloads = new Payloads();<br>
&gt; Payload payload = new Payload();<br>
&gt; payload.setType(&quot;floppy&quot;);<br>
&gt; Files payloadFiles = new Files();<br>
&gt; File payloadFile = new File();<br>
&gt; payloadFile.setName(&quot;sysprep.xml&quot;);<br>
&gt; payloadFile.setContent(&quot;&lt;?xml version=\&quot;1.0\&quot; encoding=\&quot;utf-8\&quot;?&gt; &lt;unattend<br>
&gt; xmlns=\&quot;urn:schemas-microsoft-com:unattend\&quot;&gt; FILE CONTENT &quot;&lt;/unattend&gt;&quot;);<br>
&gt; payloadFiles.getFiles().add(payloadFile);<br>
&gt; payload.setFiles(payloadFiles);<br>
&gt; vm1.setPayloads(payloads);<br>
&gt; Action action = new Action();<br>
&gt; vm1.start(action);<br>
&gt;<br>
&gt;<br>
<br>
i guess you need to use CDATA tags in order to pass xml content.<br>
im not sure about CLI, but if you use curl it should look like this:<br>
(credit to James W. Mills for providing this info)<br>
<br>
1)  Create a payload file - Mine looked like this (payload.dat):<br>
<br>
&lt;vm&gt;<br>
  &lt;payloads&gt;<br>
    &lt;payload type=&#39;floppy&#39;&gt;<br>
    &lt;files&gt;<br>
      &lt;file&gt;<br>
        &lt;name&gt;sysprep.inf&lt;/name&gt;<br>
        &lt;content&gt;&lt;![CDATA[<br>
&lt;THE RAW SYSPREP XML&gt;<br>
]]&gt;<br>
        &lt;/content&gt;<br>
&lt;type&gt;BASE64&lt;/type&gt;<br>
      &lt;/file&gt;<br>
      &lt;/files&gt;<br>
    &lt;/payload&gt;<br>
  &lt;/payloads&gt;<br>
&lt;/vm&gt;<br>
<br>
Where I have &quot;&lt;THE RAW SYSPREP XML&gt;&quot;, I just dumped a full sysprep XML file.  Just make sure it is in between the CDATA tags so it is escaped properly.<br>
<br>
2) Upload the payload into the VM:<br>
<br>
# curl -X PUT -H &quot;Accept: application/xml&quot; -H &quot;Content-Type: application/xml&quot; -k -u admin@internal:&lt;pass&gt; -d @payload.dat  https://&lt;server&gt;/api/vms/&lt;vm-id&gt;<br>
<br>
The URL is simply the full path of the VM, which I obtained by parsing &quot;api/vms&quot;<br>
<br>
3)  Boot the machine - Assuming the sysprep information is correct, all the sysprep settings will be applied.<br>
<br>
&gt;<br>
&gt; On Thu, Mar 27, 2014 at 3:52 PM, Itamar Heim &lt; <a href="mailto:iheim@redhat.com" target="_blank">iheim@redhat.com</a> &gt; wrote:<br>
&gt;<br>
&gt;<br>
&gt; On 03/27/2014 06:18 AM, Tejesh M wrote:<br>
&gt;<br>
&gt;<br>
&gt; Can you guide me on sysprep with sample code &amp; sysprep file?<br>
&gt;<br>
&gt;<br>
&gt; just launch a windows VM, look at the generated sysprep file we pass to the<br>
&gt; VM via the floppy disk.<br>
&gt; then pass it as a payload as-is.<br>
&gt; then try to change what you want.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; On Thu, Mar 27, 2014 at 3:16 PM, Itamar Heim &lt; <a href="mailto:iheim@redhat.com" target="_blank">iheim@redhat.com</a><br>
&gt; &lt;mailto: <a href="mailto:iheim@redhat.com" target="_blank">iheim@redhat.com</a> &gt;&gt; wrote:<br>
&gt;<br>
&gt; On 03/27/2014 05:33 AM, Tejesh M wrote:<br>
&gt;<br>
&gt; Hi All,<br>
&gt;<br>
&gt; I was doing google to see if i can set Hostname,Password &amp; IP<br>
&gt; details<br>
&gt; for Windows server from RHEV-M. I got to know that we can create VM<br>
&gt; Payload &amp; send that to Windows VM (installed with Cloud-init)<br>
&gt;<br>
&gt; Refer this link<br>
&gt; <a href="http://www.cloudbase.it/cloud-" target="_blank">http://www.cloudbase.it/cloud-</a> __init-for-windows-instances/# __comment-9411<br>
&gt; &lt; <a href="http://www.cloudbase.it/" target="_blank">http://www.cloudbase.it/</a> cloud-init-for-windows- instances/#comment-9411 &gt;<br>
&gt;<br>
&gt; Cloud-init expects Meta-data &amp; User-Data file to be sent either via<br>
&gt; Config Drive or via HTTP. I&#39;m trying to achive this via ConfigDrive<br>
&gt; (created using VM Payload).<br>
&gt;<br>
&gt;<br>
&gt; note you can also just pass the full sysprep file as a payload<br>
&gt; yourself via the API, and set all these items in it.<br>
&gt;<br>
&gt;<br>
&gt; But i&#39;m wondering what should be the format of this two files<br>
&gt; (Meta-data<br>
&gt; &amp; User-data). Have any1 tried this? If yes, would request to share<br>
&gt; sample for both the files with setting Hostname, Password &amp; IP<br>
&gt; details.<br>
&gt;<br>
&gt;<br>
&gt; just launch a linux VM and check the file we create?<br>
&gt;<br>
&gt;<br>
&gt; Java code:<br>
&gt;<br>
&gt; org.ovirt.engine.sdk.__ decorators.VM vm1 =<br>
&gt; api.getVMs().get(vmName);<br>
&gt; Payloads payloads = new Payloads();<br>
&gt; Payload payload = new Payload();<br>
&gt; payload.setType(&quot;cdrom&quot;);<br>
&gt;<br>
&gt; Files payloadFiles = new Files();<br>
&gt; File payloadFile = new File();<br>
&gt; payloadFile.setName(&quot;meta-__ data.txt&quot;);<br>
&gt; payloadFile.setContent(&quot;__ hostname:&quot;+vmName);<br>
&gt; payloadFiles.getFiles().add(__ payloadFile);<br>
&gt; payload.setFiles(payloadFiles) __;<br>
&gt; vm1.setPayloads(payloads);<br>
&gt; Action action = new Action();<br>
&gt; vm1.start(action);<br>
&gt;<br>
&gt; --<br>
&gt; Thanks &amp; Regards<br>
&gt; Tejesh<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
<span><font color="#888888">&gt;<br>
&gt; --<br>
&gt; Thanks &amp; Regards<br>
&gt; Tejesh<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; Thanks &amp; Regards<br>
&gt; Tejesh<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Users mailing list<br>
&gt; <a href="mailto:Users@ovirt.org" target="_blank">Users@ovirt.org</a><br>
&gt; <a href="http://lists.ovirt.org/mailman/listinfo/users" target="_blank">http://lists.ovirt.org/mailman/listinfo/users</a><br>
&gt;<span class="HOEnZb"><font color="#888888"><br>
</font></span></font></span></blockquote></div><span class="HOEnZb"><font color="#888888"><br><br clear="all"><br>-- <br><div>Thanks &amp; Regards</div>
<div>Tejesh</div>
</font></span></div>
</blockquote></div><br><br clear="all"><br>-- <br><div>Thanks &amp; Regards</div>
<div>Tejesh</div>
</div>