On 06/30/2015 08:16 AM, Chandrahasa S wrote:
Hi Experts,
We are integrating RHEV(M) with our internal cloud portal using RHEV(M)
API, we are able to provision Linux VM using API. But IP and Hostname
not getting reflected on vm first boot. If we boot VM manually using
run once its working fine. We are not able to find any run once API on
RHEV end.
Requested your help on this.
Assuming that you already installed cloud-init in the VM and that you
want to specify the cloud-init parameters as part of the request to
start the VM, then you will need something like this:
---8<---
!/bin/sh -ex
url="https://engine.example.com/ovirt-engine/api"
user="admin@internal"
password="..."
curl \
--insecure \
--user "${user}:${password}" \
--request POST \
--header "Content-Type: application/xml" \
--header "Accept: application/xml" \
--data '
<action>
<vm>
<initialization>
<cloud_init>
<host>
<address>myhost.example.com</address>
</host>
<network_configuration>
<nics>
<nic>
<name>eth0</name>
<network>
<ip netmask="255.255.255.0" gateway="10.10.10.1"
address="10.10.10.1"/>
</network>
<boot_protocol>static</boot_protocol>
<on_boot>true</on_boot>
</nic>
</nics>
</network_configuration>
</cloud_init>
</initialization>
</vm>
</action>
' \
"${url}/vms/0f3c320-a409-4e9f-918e-3172818d54ed/start
--->8---
If you prefer the Python SDK (which is much better the moment you want
to do something more complicated) then it should be something like this:
---8<---
#!/usr/bin/python
from ovirtsdk import api
from ovirtsdk.xml import params
api = api.API(
url="https://engine.example.com/ovirt-engine/api",
username="admin@internal",
password="...",
insecure=True
)
vm = api.vms.get(name="myvm")
action = params.Action(
vm=params.VM(
initialization=params.Initialization(
cloud_init=params.CloudInit(
host=params.Host(
address="myhost.example.com"
),
network_configuration=params.NetworkConfiguration(
nics=params.Nics(
nic=[
params.NIC(
name="eth0",
boot_protocol="static",
on_boot=True,
network=params.Network(
ip=params.IP(
address="10.10.10.1",
netmask="255.255.255.0",
gateway="10.10.10.1"
)
)
)
]
)
)
)
)
)
)
vm.start(action)
api.disconnect()
--->8---
You can also use the Java SDK, let me know if you need an example of that.
Thanks & Regards
Chandrahasa S
=====-----=====-----=====
Notice: The information contained in this e-mail
message and/or attachments to it may contain
confidential or privileged information. If you are
not the intended recipient, any dissemination, use,
review, distribution, printing or copying of the
information contained in this e-mail message
and/or attachments to it are strictly prohibited. If
you have received this communication in error,
please notify us by reply e-mail or telephone and
immediately and permanently delete the message
and any attachments. Thank you
_______________________________________________
Users mailing list
Users(a)ovirt.org
http://lists.ovirt.org/mailman/listinfo/users
--
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.