<div class="xam_msg_class">
<div style="font: normal 13px Arial; color:rgb(31, 28, 27);">thanks! <br><br>best regards<br>a<br><br>
<div><span style="font-family:Arial; font-size:11px; color:#5F5F5F;">Da</span><span style="font-family:Arial; font-size:12px; color:#5F5F5F; padding-left:5px;">: "Juan Hernandez" jhernand@redhat.com</span></div>
<div><span style="font-family:Arial; font-size:11px; color:#5F5F5F;">A</span><span style="font-family:Arial; font-size:12px; color:#5F5F5F; padding-left:5px;">: "Amedeo Salvati" amedeo@oscert.net, users@ovirt.org</span></div>
<div><span style="font-family:Arial; font-size:11px; color:#5F5F5F;">Cc</span><span style="font-family:Arial; font-size:12px; color:#5F5F5F; padding-left:5px;">: </span></div>
<div><span style="font-family:Arial; font-size:11px; color:#5F5F5F;">Data</span><span style="font-family:Arial; font-size:12px; color:#5F5F5F; padding-left:5px;">: Wed, 23 Jul 2014 14:44:57 +0200</span></div>
<div><span style="font-family:Arial; font-size:11px; color:#5F5F5F;">Oggetto</span><span style="font-family:Arial; font-size:12px; color:#5F5F5F; padding-left:5px;">: Re: [ovirt-users] cloud-init options under python-sdk</span></div>
<br>
<div>&gt; On 07/23/2014 02:39 PM, Amedeo Salvati wrote:</div><div>&gt; &gt; hello Juan|guys,</div><div>&gt; &gt; </div><div>&gt; &gt; I still have problems with cloud-init options on python-sdk... now I'm</div><div>&gt; &gt; trying to reset root password and according to xml available at</div><div>&gt; &gt; http://www.ovirt.org/Features/Cloud-Init_Integration and specifically</div><div>&gt; &gt; for user/pw:</div><div>&gt; &gt; </div><div>&gt; &gt; ...</div><div>&gt; &gt; <users></users></div><div>&gt; &gt;   <user></user></div><div>&gt; &gt;     <user_name>root</user_name></div><div>&gt; &gt;     <password>myPass</password></div><div>&gt; &gt;   </div><div>&gt; &gt; </div><div>&gt; &gt; ...</div><div>&gt; &gt; </div><div>&gt; &gt; I've changed action object with this example:</div><div>&gt; &gt; </div><div>&gt; &gt; action = params.Action(</div><div>&gt; &gt;                         vm=params.VM(</div><div>&gt; &gt;                             initialization=params.Initialization(</div><div>&gt; &gt;                                 cloud_init=params.CloudInit(</div><div>&gt; &gt;                                     host=params.Host(address="rheltest025"),</div><div>&gt; &gt;                                     users=params.Users(</div><div>&gt; &gt;                                        </div><div>&gt; &gt; user=params.User(user_name="root", password="pippo")</div><div>&gt; </div><div>&gt; Try to use a list here:</div><div>&gt; </div><div>&gt;   user=[parms.User(...)]</div><div>&gt; </div><div>&gt; &gt;                                         )</div><div>&gt; &gt;                                     )</div><div>&gt; &gt;                                 )</div><div>&gt; &gt;                             )</div><div>&gt; &gt;                         )</div><div>&gt; &gt; </div><div>&gt; &gt; but when i try to start a vm I got this error: "TypeError: 'User' object</div><div>&gt; &gt; is not iterable"</div><div>&gt; &gt; </div><div>&gt; &gt; somebody has some hints for resetting root password?</div><div>&gt; &gt; </div><div>&gt; &gt; Best regards</div><div>&gt; &gt; Amedeo Salvati</div><div>&gt; &gt; </div><div>&gt; &gt; </div><div>&gt; &gt; Da: "Amedeo Salvati" amedeo@oscert.net</div><div>&gt; &gt; A: jhernand@redhat.com</div><div>&gt; &gt; Cc: users@ovirt.org</div><div>&gt; &gt; Data: Tue, 22 Jul 2014 15:50:58 +0200</div><div>&gt; &gt; Oggetto: Re: [ovirt-users] cloud-init options under python-sdk</div><div>&gt; &gt; </div><div>&gt; &gt;&gt; many thanks Juan it works!</div><div>&gt; &gt; </div><div>&gt; &gt;&gt; best regards</div><div>&gt; &gt;&gt; a</div><div>&gt; &gt; </div><div>&gt; &gt; </div><div>&gt; &gt;&gt; Da: "Juan Hernandez" jhernand@redhat.com</div><div>&gt; &gt;&gt; A: "Amedeo Salvati" amedeo@oscert.net, users@ovirt.org</div><div>&gt; &gt;&gt; Cc:</div><div>&gt; &gt;&gt; Data: Tue, 22 Jul 2014 15:32:45 +0200</div><div>&gt; &gt;&gt; Oggetto: Re: [ovirt-users] cloud-init options under python-sdk</div><div>&gt; &gt; </div><div>&gt; &gt;&gt; &gt; On 07/22/2014 02:55 PM, Amedeo Salvati wrote:</div><div>&gt; &gt;&gt; &gt; &gt; hi Juan|guys,</div><div>&gt; &gt;&gt; &gt; &gt;</div><div>&gt; &gt;&gt; &gt; &gt; thanks for hints! but unfortunatly it seems wont works, because I've</div><div>&gt; &gt;&gt; &gt; &gt; launched vm with this simple code:</div><div>&gt; &gt;&gt; &gt; &gt;</div><div>&gt; &gt;&gt; &gt; &gt; action =</div><div>&gt; &gt;&gt; &gt; &gt;</div><div>&gt; &gt; params.Action(vm=params.VM(initialization=params.Initialization(cloud_init=params.CloudInit(host=params.Host(name="rheltest014")))))</div><div>&gt; &gt;&gt; &gt; &gt; vm.start( action )</div><div>&gt; &gt;&gt; &gt; &gt;</div><div>&gt; &gt;&gt; &gt; &gt; but after boot the VM, cloud-init service hasn't set hostname and on</div><div>&gt; &gt;&gt; &gt; &gt; cloud-init.log and cloud-init-output.log I cannot find any entry for</div><div>&gt; &gt;&gt; &gt; &gt; setting hostname, instead if I use web ui it work's fine...</div><div>&gt; &gt;&gt; &gt; &gt;</div><div>&gt; &gt;&gt; &gt; &gt; there are any ways to debug cloud-init jobs?</div><div>&gt; &gt;&gt; &gt; &gt; the params params.Host is right for CloudInit host or is intended for</div><div>&gt; &gt;&gt; &gt; &gt; host / hypervisor?</div><div>&gt; &gt;&gt; &gt; &gt;</div><div>&gt; &gt;&gt; &gt; &gt; Best regards</div><div>&gt; &gt;&gt; &gt; &gt; Amedeo Salvati</div><div>&gt; &gt;&gt; &gt; &gt;</div><div>&gt; &gt;&gt; &gt;</div><div>&gt; &gt;&gt; &gt; To change the hostname you have to use the "address" property of the</div><div>&gt; &gt;&gt; &gt; "Host" class:</div><div>&gt; &gt;&gt; &gt;</div><div>&gt; &gt;&gt; &gt; host=params.Host(</div><div>&gt; &gt;&gt; &gt; address="myhostname.example.com"</div><div>&gt; &gt;&gt; &gt; )</div><div>&gt; &gt;&gt; &gt;</div><div>&gt; &gt;&gt; &gt; The "Host" class is used for many things, including CloudInit and</div><div>&gt; &gt;&gt; &gt; hypervisors. But in this context it is just a container for the host</div><div>&gt; &gt; name.</div><div>&gt; &gt;&gt; &gt;</div><div>&gt; &gt;&gt; &gt; To debug cloud-init start the VM (with the GUI or with the RESTAPI),</div><div>&gt; &gt;&gt; &gt; then go to the hypervisor where it is actually running, and look for the</div><div>&gt; &gt;&gt; &gt; corresponding qemu-kvm process:</div><div>&gt; &gt;&gt; &gt;</div><div>&gt; &gt;&gt; &gt; # ps -ef | grep qemu-kvm | grep myvm</div><div>&gt; &gt;&gt; &gt;</div><div>&gt; &gt;&gt; &gt; The qemu-kvm command line will have a parameter indicating the file that</div><div>&gt; &gt;&gt; &gt; contains the cloud-init data:</div><div>&gt; &gt;&gt; &gt;</div><div>&gt; &gt;&gt; &gt; -drive file=/var/run/vdsm/payload/...img</div><div>&gt; &gt;&gt; &gt;</div><div>&gt; &gt;&gt; &gt; Copy that file somewhere, then mount it and inspect the content:</div><div>&gt; &gt;&gt; &gt;</div><div>&gt; &gt;&gt; &gt; # cp /var/run/vdsm/payload/...img /tmp/my.img</div><div>&gt; &gt;&gt; &gt; # mount -o loop,ro /tmp/my.img /mnt</div><div>&gt; &gt;&gt; &gt; # find /mnt</div><div>&gt; &gt;&gt; &gt; ...</div><div>&gt; &gt;&gt; &gt; # umount /mnt</div><div>&gt; &gt;&gt; &gt;</div><div>&gt; &gt;&gt; &gt;</div><div>&gt; &gt;&gt; &gt; &gt; Da: "Juan Hernandez" jhernand@redhat.com</div><div>&gt; &gt;&gt; &gt; &gt; A: "Amedeo Salvati" amedeo@oscert.net, users@ovirt.org</div><div>&gt; &gt;&gt; &gt; &gt; Cc:</div><div>&gt; &gt;&gt; &gt; &gt; Data: Tue, 22 Jul 2014 12:21:01 +0200</div><div>&gt; &gt;&gt; &gt; &gt; Oggetto: Re: [ovirt-users] cloud-init options under python-sdk</div><div>&gt; &gt;&gt; &gt; &gt;</div><div>&gt; &gt;&gt; &gt; &gt;&gt; On 07/22/2014 11:48 AM, Amedeo Salvati wrote:</div><div>&gt; &gt;&gt; &gt; &gt;&gt; &gt; hello guys!</div><div>&gt; &gt;&gt; &gt; &gt;&gt; &gt;</div><div>&gt; &gt;&gt; &gt; &gt;&gt; &gt; I'm writing some python code to start VMs, and based on</div><div>&gt; &gt; operating system</div><div>&gt; &gt;&gt; &gt; &gt;&gt; &gt; (at this moment centos6 nad centos7), I would like to use</div><div>&gt; &gt; cloud-init</div><div>&gt; &gt;&gt; &gt; &gt;&gt; &gt; options (available on web ui at run-once) to start them and</div><div>&gt; &gt; resetting</div><div>&gt; &gt;&gt; &gt; &gt;&gt; &gt; root password, change hostname and write some configuration</div><div>&gt; &gt; files by</div><div>&gt; &gt;&gt; &gt; &gt;&gt; &gt; using yaml semantics, but at this moment I was unable to find a</div><div>&gt; &gt; way to</div><div>&gt; &gt;&gt; &gt; &gt;&gt; &gt; do it...</div><div>&gt; &gt;&gt; &gt; &gt;&gt; &gt;</div><div>&gt; &gt;&gt; &gt; &gt;&gt; &gt; somebody know a way (or could send me some hints) using</div><div>&gt; &gt; python-sdk to</div><div>&gt; &gt;&gt; &gt; &gt;&gt; &gt; start A VM and pass to it cloud-init options?</div><div>&gt; &gt;&gt; &gt; &gt;&gt; &gt;</div><div>&gt; &gt;&gt; &gt; &gt;&gt; &gt; e.g. the portion of code I would like to change is vm.start() under</div><div>&gt; &gt;&gt; &gt; &gt; rhel6|7:</div><div>&gt; &gt;&gt; &gt; &gt;&gt; &gt;</div><div>&gt; &gt;&gt; &gt; &gt;&gt; &gt; try:</div><div>&gt; &gt;&gt; &gt; &gt;&gt; &gt; osVersion = vm.get_os().get_type()</div><div>&gt; &gt;&gt; &gt; &gt;&gt; &gt; if (osVersion == "rhel_6x64" or osVersion == "rhel_6" or</div><div>&gt; &gt;&gt; &gt; &gt;&gt; &gt; osVersion == "rhel_7x64") and CLOUDINIT == "yes":</div><div>&gt; &gt;&gt; &gt; &gt;&gt; &gt; print "Starting VM: " + vm.name + " with cloud-init</div><div>&gt; &gt;&gt; &gt; &gt;&gt; &gt; options"</div><div>&gt; &gt;&gt; &gt; &gt;&gt; &gt; ----&gt; vm.start() &lt;---------- &gt; else:</div><div>&gt; &gt;&gt; &gt; &gt;&gt; &gt; print "Starting VM " + vm.name</div><div>&gt; &gt;&gt; &gt; &gt;&gt; &gt; vm.start()</div><div>&gt; &gt;&gt; &gt; &gt;&gt; &gt; while vmstat != 'down':</div><div>&gt; &gt;&gt; &gt; &gt;&gt; &gt; sleep(1)</div><div>&gt; &gt;&gt; &gt; &gt;&gt; &gt; vmstat = vm.get_status().state</div><div>&gt; &gt;&gt; &gt; &gt;&gt; &gt; except Exception, err:</div><div>&gt; &gt;&gt; &gt; &gt;&gt; &gt; print "Error on starting VM"</div><div>&gt; &gt;&gt; &gt; &gt;&gt; &gt; print err</div><div>&gt; &gt;&gt; &gt; &gt;&gt; &gt;</div><div>&gt; &gt;&gt; &gt; &gt;&gt; &gt;</div><div>&gt; &gt;&gt; &gt; &gt;&gt; &gt; Best regards</div><div>&gt; &gt;&gt; &gt; &gt;&gt; &gt; Amedeo Salvati</div><div>&gt; &gt;&gt; &gt; &gt;&gt; &gt;</div><div>&gt; &gt;&gt; &gt; &gt;&gt;</div><div>&gt; &gt;&gt; &gt; &gt;&gt; It should be something like this:</div><div>&gt; &gt;&gt; &gt; &gt;&gt;</div><div>&gt; &gt;&gt; &gt; &gt;&gt; from ovirtsdk.xml import params</div><div>&gt; &gt;&gt; &gt; &gt;&gt;</div><div>&gt; &gt;&gt; &gt; &gt;&gt; action = params.Action(</div><div>&gt; &gt;&gt; &gt; &gt;&gt; vm=params.VM(</div><div>&gt; &gt;&gt; &gt; &gt;&gt; initialization=params.Initialization(</div><div>&gt; &gt;&gt; &gt; &gt;&gt; cloud_init=params.CloudInit(</div><div>&gt; &gt;&gt; &gt; &gt;&gt; host=params.Host(</div><div>&gt; &gt;&gt; &gt; &gt;&gt; name="myvm"</div><div>&gt; &gt;&gt; &gt; &gt;&gt; ),</div><div>&gt; &gt;&gt; &gt; &gt;&gt; users=...,</div><div>&gt; &gt;&gt; &gt; &gt;&gt; files=...,</div><div>&gt; &gt;&gt; &gt; &gt;&gt; ...</div><div>&gt; &gt;&gt; &gt; &gt;&gt; )</div><div>&gt; &gt;&gt; &gt; &gt;&gt; )</div><div>&gt; &gt;&gt; &gt; &gt;&gt; )</div><div>&gt; &gt;&gt; &gt; &gt;&gt; )</div><div>&gt; &gt;&gt; &gt; &gt;&gt;</div><div>&gt; &gt;&gt; &gt; &gt;&gt; vm.start(action)</div><div>&gt; &gt;&gt; &gt; &gt;&gt;</div><div>&gt; &gt;&gt; &gt; &gt;&gt;</div><div>&gt; &gt;&gt; &gt; &gt;&gt; --</div><div>&gt; &gt;&gt; &gt; &gt;&gt; Dirección Comercial: C/Jose Bardasano Baos, 9, Edif. Gorbea 3, planta</div><div>&gt; &gt;&gt; &gt; &gt;&gt; 3ºD, 28016 Madrid, Spain</div><div>&gt; &gt;&gt; &gt; &gt;&gt; Inscrita en el Reg. Mercantil de Madrid – C.I.F. B82657941 - Red</div><div>&gt; &gt; Hat S.L.</div><div>&gt; &gt;&gt; &gt;</div><div>&gt; &gt;&gt; &gt;</div><div>&gt; &gt;&gt; &gt; --</div><div>&gt; &gt;&gt; &gt; Dirección Comercial: C/Jose Bardasano Baos, 9, Edif. Gorbea 3, planta</div><div>&gt; &gt;&gt; &gt; 3ºD, 28016 Madrid, Spain</div><div>&gt; &gt;&gt; &gt; Inscrita en el Reg. Mercantil de Madrid – C.I.F. B82657941 - Red Hat</div><div>&gt; &gt; S.L.</div><div>&gt; </div><div>&gt; </div><div>&gt; -- </div><div>&gt; Dirección Comercial: C/Jose Bardasano Baos, 9, Edif. Gorbea 3, planta</div><div>&gt; 3ºD, 28016 Madrid, Spain</div><div>&gt; Inscrita en el Reg. Mercantil de Madrid – C.I.F. B82657941 - Red Hat S.L.</div></div>
</div>