cloud_init not apply when v create from API

Hello, we are using ovirt api with json data format. we have create vm from template and i want to set ip,macaddress,user and password for that we are using cloud_init for that we it can't set any options. Regards, *Arpit Makhiyaviya* Software Engineer +91-79-40038284 +91-971-437-6669 <http://www.sculptsoft.com>

In the more recent versions you have to use 'use_cloud_init=True' in the api, which isn't described in most documentation yet. Maybe thats the reason it isn't working? Here's a working snippet: vm = api.vms.get(name=vm_name) action = params.Action( use_cloud_init=True, vm=params.VM( initialization=params.Initialization( regenerate_ssh_keys=True, host_name=vm_fqdn, nic_configurations=params.GuestNicsConfiguration( nic_configuration=[ params.GuestNicConfiguration( name="eth0", boot_protocol="static", on_boot=True, ip=params.IP( address=vm_address, netmask=vm_netmask, gateway=vm_gateway, ), ), ], ), ), ), ) vm.start(action) On Tue, Mar 29, 2016 at 2:03 PM, Arpit Makhiyaviya <arpit.icreate@gmail.com> wrote:
Hello, we are using ovirt api with json data format. we have create vm from template and i want to set ip,macaddress,user and password for that we are using cloud_init for that we it can't set any options.
Regards, *Arpit Makhiyaviya* Software Engineer +91-79-40038284 +91-971-437-6669 <http://www.sculptsoft.com>
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users

Thanks for quick response. we already knew this and we are passing following xml when calling Start action. <action> <vm> <initialization> <cloud_init> <host> <address>vm-cloud-init-restapi</address> </host> <authorized_keys> <authorized_key> <user> <user_name>root</user_name> </user> <key>ssh-rsa restapi-cloud-init-ssh-key root@localdomain</key> </authorized_key> </authorized_keys> <regenerate_ssh_keys>true</regenerate_ssh_keys> <timezone>Atlantic/Reykjavik</timezone> <users> <user> <user_name>root</user_name> <password>SuperSecretPassword!</password> </user> </users> <network_configuration> <nics> <nic> <name>eth0</name> <boot_protocol>STATIC</boot_protocol> <network> <ip address="192.168.2.11" netmask="255.255.255.0" gateway="192.168.2.254" /> </network> <on_boot>true</on_boot> </nic> <nic> <name>eth1</name> <boot_protocol>DHCP</boot_protocol> <on_boot>true</on_boot> </nic> </nics> <dns> <servers> <host> <address>10.20.30.100</address> </host> </servers> <search_domains> <host> <address>domain.your.rhevm.com</address> </host> </search_domains> </dns> </network_configuration> <files> <file> <name>/tmp/file1.txt</name> <content>line 1 line 2 and now something special !@#$%^&*()_+</content> <type>PLAINTEXT</type> </file> </files> </cloud_init> </initialization> </vm> </action> we also found following link . is this related to my issue? https://gerrit.ovirt.org/#/c/50240/2 Regards, *Arpit Makhiyaviya* Software Engineer +91-79-40038284 +91-971-437-6669 <http://www.sculptsoft.com> On Tue, Mar 29, 2016 at 6:24 PM, Renout Gerrits <mail@renout.nl> wrote:
In the more recent versions you have to use 'use_cloud_init=True' in the api, which isn't described in most documentation yet. Maybe thats the reason it isn't working?
Here's a working snippet:
vm = api.vms.get(name=vm_name)
action = params.Action( use_cloud_init=True, vm=params.VM( initialization=params.Initialization( regenerate_ssh_keys=True, host_name=vm_fqdn, nic_configurations=params.GuestNicsConfiguration( nic_configuration=[ params.GuestNicConfiguration( name="eth0", boot_protocol="static", on_boot=True, ip=params.IP( address=vm_address, netmask=vm_netmask, gateway=vm_gateway, ), ), ], ), ), ), )
vm.start(action)
On Tue, Mar 29, 2016 at 2:03 PM, Arpit Makhiyaviya < arpit.icreate@gmail.com> wrote:
Hello, we are using ovirt api with json data format. we have create vm from template and i want to set ip,macaddress,user and password for that we are using cloud_init for that we it can't set any options.
Regards, *Arpit Makhiyaviya* Software Engineer +91-79-40038284 +91-971-437-6669 <http://www.sculptsoft.com>
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users

On 03/29/2016 03:07 PM, Arpit Makhiyaviya wrote:
Thanks for quick response. we already knew this and we are passing following xml when calling Start action.
What version of the engine are you using exactly? This is a known bug. The "cloud_init" element is ignored. See here for details: Cloud-Init payload not passed into VM via python SDK https://bugzilla.redhat.com/1305904 That will be fixed in version 3.6.5. If you have a version 3.6.2 or newer then you can use the workaround described there, using the "initailization" element directly.
<action> <vm> <initialization> <cloud_init> <host> <address>vm-cloud-init-restapi</address> </host> <authorized_keys> <authorized_key> <user> <user_name>root</user_name> </user> <key>ssh-rsa restapi-cloud-init-ssh-key root@localdomain</key> </authorized_key> </authorized_keys> <regenerate_ssh_keys>true</regenerate_ssh_keys> <timezone>Atlantic/Reykjavik</timezone> <users> <user> <user_name>root</user_name> <password>SuperSecretPassword!</password> </user> </users> <network_configuration> <nics> <nic> <name>eth0</name> <boot_protocol>STATIC</boot_protocol> <network> <ip address="192.168.2.11" netmask="255.255.255.0" gateway="192.168.2.254" /> </network> <on_boot>true</on_boot> </nic> <nic> <name>eth1</name> <boot_protocol>DHCP</boot_protocol> <on_boot>true</on_boot> </nic> </nics> <dns> <servers> <host> <address>10.20.30.100</address> </host> </servers> <search_domains> <host> <address>domain.your.rhevm.com <http://domain.your.rhevm.com></address> </host> </search_domains> </dns> </network_configuration> <files> <file> <name>/tmp/file1.txt</name> <content>line 1 line 2 and now something special !@#$%^&*()_+</content> <type>PLAINTEXT</type> </file> </files> </cloud_init> </initialization> </vm> </action>
we also found following link . is this related to my issue?
https://gerrit.ovirt.org/#/c/50240/2
Regards, *Arpit Makhiyaviya* Software Engineer +91-79-40038284 +91-971-437-6669 <http://www.sculptsoft.com>
On Tue, Mar 29, 2016 at 6:24 PM, Renout Gerrits <mail@renout.nl <mailto:mail@renout.nl>> wrote:
In the more recent versions you have to use 'use_cloud_init=True' in the api, which isn't described in most documentation yet. Maybe thats the reason it isn't working?
Here's a working snippet:
vm = api.vms.get(name=vm_name)
action = params.Action( use_cloud_init=True, vm=params.VM( initialization=params.Initialization( regenerate_ssh_keys=True, host_name=vm_fqdn, nic_configurations=params.GuestNicsConfiguration( nic_configuration=[ params.GuestNicConfiguration( name="eth0", boot_protocol="static", on_boot=True, ip=params.IP( address=vm_address, netmask=vm_netmask, gateway=vm_gateway, ), ), ], ), ), ), )
vm.start(action)
On Tue, Mar 29, 2016 at 2:03 PM, Arpit Makhiyaviya <arpit.icreate@gmail.com <mailto:arpit.icreate@gmail.com>> wrote:
Hello, we are using ovirt api with json data format. we have create vm from template and i want to set ip,macaddress,user and password for that we are using cloud_init for that we it can't set any options.
-- Dirección Comercial: C/Jose Bardasano Baos, 9, Edif. Gorbea 3, planta 3ºD, 28016 Madrid, Spain Inscrita en el Reg. Mercantil de Madrid – C.I.F. B82657941 - Red Hat S.L.

I used *Version: 3.6.3.4-1.el7.centos* of ovirt engine.I already tried following xml request with run VM but still its not working.
From admin panel of oVirt Its completely working but I found issue only with oVirt API (VM start but cloudinit data not accepted).
*XML Request : * <action> <async>false</async> <use_cloud_init>true</use_cloud_init> <vm> <initialization> <cloud_init> <host> <address>vishal.123456</address> </host> <regenerate_ssh_keys>true</regenerate_ssh_keys> <timezone>Atlantic/Reykjavik</timezone> <users> <user> <user_name>root</user_name> <password>Vishal@131</password> </user> </users> <network_configuration> <nics> <nic> <name>eth1</name> <boot_protocol>STATIC</boot_protocol> <network> <ip address="51.254.56.84" netmask="255.255.255.255" gateway="149.202.85.254" /> </network> <on_boot>false</on_boot> </nic> </nics> <dns> <servers> <host> <address>8.8.8.8</address> </host> </servers> <search_domains> <host> <address>8.8.4.4</address> </host> </search_domains> </dns> </network_configuration> </cloud_init> </initialization> </vm> </action> Regards, *Arpit Makhiyaviya* Software Engineer +91-79-40038284 +91-971-437-6669 <http://www.sculptsoft.com> On Wed, Mar 30, 2016 at 12:27 AM, Juan Hernández <jhernand@redhat.com> wrote:
On 03/29/2016 03:07 PM, Arpit Makhiyaviya wrote:
Thanks for quick response. we already knew this and we are passing following xml when calling Start action.
What version of the engine are you using exactly? This is a known bug. The "cloud_init" element is ignored. See here for details:
Cloud-Init payload not passed into VM via python SDK https://bugzilla.redhat.com/1305904
That will be fixed in version 3.6.5. If you have a version 3.6.2 or newer then you can use the workaround described there, using the "initailization" element directly.
<action> <vm> <initialization> <cloud_init> <host> <address>vm-cloud-init-restapi</address> </host> <authorized_keys> <authorized_key> <user> <user_name>root</user_name> </user> <key>ssh-rsa restapi-cloud-init-ssh-key root@localdomain </key> </authorized_key> </authorized_keys> <regenerate_ssh_keys>true</regenerate_ssh_keys> <timezone>Atlantic/Reykjavik</timezone> <users> <user> <user_name>root</user_name> <password>SuperSecretPassword!</password> </user> </users> <network_configuration> <nics> <nic> <name>eth0</name> <boot_protocol>STATIC</boot_protocol> <network> <ip address="192.168.2.11" netmask="255.255.255.0" gateway="192.168.2.254" /> </network> <on_boot>true</on_boot> </nic> <nic> <name>eth1</name> <boot_protocol>DHCP</boot_protocol> <on_boot>true</on_boot> </nic> </nics> <dns> <servers> <host> <address>10.20.30.100</address> </host> </servers> <search_domains> <host> <address>domain.your.rhevm.com <http://domain.your.rhevm.com></address> </host> </search_domains> </dns> </network_configuration> <files> <file> <name>/tmp/file1.txt</name> <content>line 1 line 2 and now something special !@#$%^&*()_+</content> <type>PLAINTEXT</type> </file> </files> </cloud_init> </initialization> </vm> </action>
we also found following link . is this related to my issue?
https://gerrit.ovirt.org/#/c/50240/2
Regards, *Arpit Makhiyaviya* Software Engineer +91-79-40038284 +91-971-437-6669 <http://www.sculptsoft.com>
On Tue, Mar 29, 2016 at 6:24 PM, Renout Gerrits <mail@renout.nl <mailto:mail@renout.nl>> wrote:
In the more recent versions you have to use 'use_cloud_init=True' in the api, which isn't described in most documentation yet. Maybe thats the reason it isn't working?
Here's a working snippet:
vm = api.vms.get(name=vm_name)
action = params.Action( use_cloud_init=True, vm=params.VM( initialization=params.Initialization( regenerate_ssh_keys=True, host_name=vm_fqdn, nic_configurations=params.GuestNicsConfiguration( nic_configuration=[ params.GuestNicConfiguration( name="eth0", boot_protocol="static", on_boot=True, ip=params.IP( address=vm_address, netmask=vm_netmask, gateway=vm_gateway, ), ), ], ), ), ), )
vm.start(action)
On Tue, Mar 29, 2016 at 2:03 PM, Arpit Makhiyaviya <arpit.icreate@gmail.com <mailto:arpit.icreate@gmail.com>> wrote:
Hello, we are using ovirt api with json data format. we have create vm from template and i want to set ip,macaddress,user and password for that we are using cloud_init for that we it can't set any options.
-- Dirección Comercial: C/Jose Bardasano Baos, 9, Edif. Gorbea 3, planta 3ºD, 28016 Madrid, Spain Inscrita en el Reg. Mercantil de Madrid – C.I.F. B82657941 - Red Hat S.L.

On 03/30/2016 08:44 AM, Arpit Makhiyaviya wrote:
I used *Version: 3.6.3.4-1.el7.centos* of ovirt engine.I already tried following xml request with run VM but still its not working. From admin panel of oVirt Its completely working but I found issue only with oVirt API (VM start but cloudinit data not accepted).
Version 3.6.3.4 is affected by the bug that I mentioned. The result is that the "cloud_init" element is just ignored. That will be fixed in version 3.6.5. Meanwhile you can use the workaround suggested in comment 1 of the bug: https://bugzilla.redhat.com/show_bug.cgi?id=1305904#c1 Translated to XML it should look like described by Karim Boumedhel in comment 7: https://bugzilla.redhat.com/show_bug.cgi?id=1305904#c7
*XML Request : *
<action> <async>false</async> <use_cloud_init>true</use_cloud_init> <vm> <initialization> <cloud_init> <host> <address>vishal.123456</address> </host> <regenerate_ssh_keys>true</regenerate_ssh_keys> <timezone>Atlantic/Reykjavik</timezone> <users> <user> <user_name>root</user_name> <password>Vishal@131</password> </user> </users> <network_configuration> <nics> <nic> <name>eth1</name> <boot_protocol>STATIC</boot_protocol> <network> <ip address="51.254.56.84" netmask="255.255.255.255" gateway="149.202.85.254" /> </network> <on_boot>false</on_boot> </nic>
</nics> <dns> <servers> <host> <address>8.8.8.8</address> </host> </servers> <search_domains> <host> <address>8.8.4.4</address> </host> </search_domains> </dns> </network_configuration>
</cloud_init> </initialization> </vm>
</action>
Regards, *Arpit Makhiyaviya* Software Engineer +91-79-40038284 +91-971-437-6669 <http://www.sculptsoft.com>
On Wed, Mar 30, 2016 at 12:27 AM, Juan Hernández <jhernand@redhat.com <mailto:jhernand@redhat.com>> wrote:
On 03/29/2016 03:07 PM, Arpit Makhiyaviya wrote: > Thanks for quick response. > we already knew this and we are passing following xml when calling Start > action. >
What version of the engine are you using exactly? This is a known bug. The "cloud_init" element is ignored. See here for details:
Cloud-Init payload not passed into VM via python SDK https://bugzilla.redhat.com/1305904
That will be fixed in version 3.6.5. If you have a version 3.6.2 or newer then you can use the workaround described there, using the "initailization" element directly.
> <action> > <vm> > <initialization> > <cloud_init> > <host> > <address>vm-cloud-init-restapi</address> > </host> > <authorized_keys> > <authorized_key> > <user> > <user_name>root</user_name> > </user> > <key>ssh-rsa restapi-cloud-init-ssh-key root@localdomain</key> > </authorized_key> > </authorized_keys> > <regenerate_ssh_keys>true</regenerate_ssh_keys> > <timezone>Atlantic/Reykjavik</timezone> > <users> > <user> > <user_name>root</user_name> > <password>SuperSecretPassword!</password> > </user> > </users> > <network_configuration> > <nics> > <nic> > <name>eth0</name> > <boot_protocol>STATIC</boot_protocol> > <network> > <ip address="192.168.2.11" netmask="255.255.255.0" > gateway="192.168.2.254" /> > </network> > <on_boot>true</on_boot> > </nic> > <nic> > <name>eth1</name> > <boot_protocol>DHCP</boot_protocol> > <on_boot>true</on_boot> > </nic> > </nics> > <dns> > <servers> > <host> > <address>10.20.30.100</address> > </host> > </servers> > <search_domains> > <host> > <address>domain.your.rhevm.com <http://domain.your.rhevm.com> > <http://domain.your.rhevm.com></address> > </host> > </search_domains> > </dns> > </network_configuration> > <files> > <file> > <name>/tmp/file1.txt</name> > <content>line 1 > line 2 > and now something special > !@#$%^&*()_+</content> > <type>PLAINTEXT</type> > </file> > </files> > </cloud_init> > </initialization> > </vm> > </action> > > we also found following link . is this related to my issue? > > https://gerrit.ovirt.org/#/c/50240/2 > > Regards, > *Arpit Makhiyaviya* > Software Engineer > +91-79-40038284 > +91-971-437-6669 > <http://www.sculptsoft.com> > > On Tue, Mar 29, 2016 at 6:24 PM, Renout Gerrits <mail@renout.nl <mailto:mail@renout.nl> > <mailto:mail@renout.nl <mailto:mail@renout.nl>>> wrote: > > In the more recent versions you have to use 'use_cloud_init=True' in > the api, which isn't described in most documentation yet. Maybe > thats the reason it isn't working? > > Here's a working snippet: > > vm = api.vms.get(name=vm_name) > > action = params.Action( > use_cloud_init=True, > vm=params.VM( > initialization=params.Initialization( > regenerate_ssh_keys=True, > host_name=vm_fqdn, > nic_configurations=params.GuestNicsConfiguration( > nic_configuration=[ > params.GuestNicConfiguration( > name="eth0", > boot_protocol="static", > on_boot=True, > ip=params.IP( > address=vm_address, > netmask=vm_netmask, > gateway=vm_gateway, > ), > ), > ], > ), > ), > ), > ) > > vm.start(action) > > > On Tue, Mar 29, 2016 at 2:03 PM, Arpit Makhiyaviya > <arpit.icreate@gmail.com <mailto:arpit.icreate@gmail.com> <mailto:arpit.icreate@gmail.com <mailto:arpit.icreate@gmail.com>>> wrote: > > Hello, > we are using ovirt api with json data format. > we have create vm from template and i want to set > ip,macaddress,user and password for that we are using cloud_init > for that we it can't set any options. >
-- Dirección Comercial: C/Jose Bardasano Baos, 9, Edif. Gorbea 3, planta 3ºD, 28016 Madrid, Spain Inscrita en el Reg. Mercantil de Madrid – C.I.F. B82657941 - Red Hat S.L.

Thanks, that's works for me . On Wed, Mar 30, 2016 at 2:21 PM, Juan Hernández <jhernand@redhat.com> wrote:
On 03/30/2016 08:44 AM, Arpit Makhiyaviya wrote:
I used *Version: 3.6.3.4-1.el7.centos* of ovirt engine.I already tried following xml request with run VM but still its not working. From admin panel of oVirt Its completely working but I found issue only with oVirt API (VM start but cloudinit data not accepted).
Version 3.6.3.4 is affected by the bug that I mentioned. The result is that the "cloud_init" element is just ignored. That will be fixed in version 3.6.5. Meanwhile you can use the workaround suggested in comment 1 of the bug:
https://bugzilla.redhat.com/show_bug.cgi?id=1305904#c1
Translated to XML it should look like described by Karim Boumedhel in comment 7:
https://bugzilla.redhat.com/show_bug.cgi?id=1305904#c7
*XML Request : *
<action> <async>false</async> <use_cloud_init>true</use_cloud_init> <vm> <initialization> <cloud_init> <host> <address>vishal.123456</address> </host> <regenerate_ssh_keys>true</regenerate_ssh_keys> <timezone>Atlantic/Reykjavik</timezone> <users> <user> <user_name>root</user_name> <password>Vishal@131</password> </user> </users> <network_configuration> <nics> <nic> <name>eth1</name> <boot_protocol>STATIC</boot_protocol> <network> <ip address="51.254.56.84" netmask="255.255.255.255" gateway="149.202.85.254" /> </network> <on_boot>false</on_boot> </nic>
</nics> <dns> <servers> <host> <address>8.8.8.8</address> </host> </servers> <search_domains> <host> <address>8.8.4.4</address> </host> </search_domains> </dns> </network_configuration>
</cloud_init> </initialization> </vm>
</action>
Regards, *Arpit Makhiyaviya* Software Engineer +91-79-40038284 +91-971-437-6669 <http://www.sculptsoft.com>
On Wed, Mar 30, 2016 at 12:27 AM, Juan Hernández <jhernand@redhat.com <mailto:jhernand@redhat.com>> wrote:
On 03/29/2016 03:07 PM, Arpit Makhiyaviya wrote: > Thanks for quick response. > we already knew this and we are passing following xml when calling Start > action. >
What version of the engine are you using exactly? This is a known bug. The "cloud_init" element is ignored. See here for details:
Cloud-Init payload not passed into VM via python SDK https://bugzilla.redhat.com/1305904
That will be fixed in version 3.6.5. If you have a version 3.6.2 or newer then you can use the workaround described there, using the "initailization" element directly.
> <action> > <vm> > <initialization> > <cloud_init> > <host> > <address>vm-cloud-init-restapi</address> > </host> > <authorized_keys> > <authorized_key> > <user> > <user_name>root</user_name> > </user> > <key>ssh-rsa restapi-cloud-init-ssh-key root@localdomain</key> > </authorized_key> > </authorized_keys> > <regenerate_ssh_keys>true</regenerate_ssh_keys> > <timezone>Atlantic/Reykjavik</timezone> > <users> > <user> > <user_name>root</user_name> > <password>SuperSecretPassword!</password> > </user> > </users> > <network_configuration> > <nics> > <nic> > <name>eth0</name> > <boot_protocol>STATIC</boot_protocol> > <network> > <ip address="192.168.2.11" netmask="255.255.255.0" > gateway="192.168.2.254" /> > </network> > <on_boot>true</on_boot> > </nic> > <nic> > <name>eth1</name> > <boot_protocol>DHCP</boot_protocol> > <on_boot>true</on_boot> > </nic> > </nics> > <dns> > <servers> > <host> > <address>10.20.30.100</address> > </host> > </servers> > <search_domains> > <host> > <address>domain.your.rhevm.com <http://domain.your.rhevm.com> > <http://domain.your.rhevm.com></address> > </host> > </search_domains> > </dns> > </network_configuration> > <files> > <file> > <name>/tmp/file1.txt</name> > <content>line 1 > line 2 > and now something special > !@#$%^&*()_+</content> > <type>PLAINTEXT</type> > </file> > </files> > </cloud_init> > </initialization> > </vm> > </action> > > we also found following link . is this related to my issue? > > https://gerrit.ovirt.org/#/c/50240/2 > > Regards, > *Arpit Makhiyaviya* > Software Engineer > +91-79-40038284 > +91-971-437-6669 > <http://www.sculptsoft.com> > > On Tue, Mar 29, 2016 at 6:24 PM, Renout Gerrits <mail@renout.nl <mailto:mail@renout.nl> > <mailto:mail@renout.nl <mailto:mail@renout.nl>>> wrote: > > In the more recent versions you have to use 'use_cloud_init=True' in > the api, which isn't described in most documentation yet. Maybe > thats the reason it isn't working? > > Here's a working snippet: > > vm = api.vms.get(name=vm_name) > > action = params.Action( > use_cloud_init=True, > vm=params.VM( > initialization=params.Initialization( > regenerate_ssh_keys=True, > host_name=vm_fqdn, > nic_configurations=params.GuestNicsConfiguration( > nic_configuration=[ > params.GuestNicConfiguration( > name="eth0", > boot_protocol="static", > on_boot=True, > ip=params.IP( > address=vm_address, > netmask=vm_netmask, > gateway=vm_gateway, > ), > ), > ], > ), > ), > ), > ) > > vm.start(action) > > > On Tue, Mar 29, 2016 at 2:03 PM, Arpit Makhiyaviya > <arpit.icreate@gmail.com <mailto:arpit.icreate@gmail.com> <mailto:arpit.icreate@gmail.com <mailto:arpit.icreate@gmail.com>>> wrote: > > Hello, > we are using ovirt api with json data format. > we have create vm from template and i want to set > ip,macaddress,user and password for that we are using cloud_init > for that we it can't set any options. >
-- Dirección Comercial: C/Jose Bardasano Baos, 9, Edif. Gorbea 3, planta 3ºD, 28016 Madrid, Spain Inscrita en el Reg. Mercantil de Madrid – C.I.F. B82657941 - Red Hat S.L.
participants (3)
-
Arpit Makhiyaviya
-
Juan Hernández
-
Renout Gerrits