On 04/19/2017 09:34 AM, Juan Hernández wrote:
On 04/19/2017 08:41 AM, TranceWorldLogic . wrote:
> Hi,
>
> I was trying to create VM on specific HOST using python sdk as shown below.
>
> ------ Code -------------------
> vm = vms_service.add( ....
> host = types.Host(
> name = "host-01",
> ),
> )
> ------ End Code -------------------
>
> It created VM successfully, but when I see in ovirt GUI I saw that VM is
> not bonded with specific host.
>
> Ovirt GUI:
> Virtual Machines -> click on VM -> "Edit" button -> In advance
menu ->
> "Host" tab
> Start Running On:
> o Any Host in Cluster <== This option got selected
> o Specific Host(s) <== *I want this option to select.*
>
> Please help me to bind VM to specific Host via Python SDK
>
The Vm.host attribute is used only to indicate in what host is the VM
currently running.
To pin the VM to a set of hosts you have to use Vm.placement_policy, as
described here:
http://ovirt.github.io/ovirt-engine-api-model/4.1/#types/vm/attributes/pl...
With the Python SDK it should be something like this:
vm = vms_service.add(
vm=types.Vm(
...
placement_policy=types.PlacementPolicy(
hosts=[
types.Host(name='host-01')
]
)
)
)
Sorry, the name of the type is incorrect, should be
'types.VmPlacementPolicy'. So the complete example should be like this:
vm = vms_service.add(
vm=types.Vm(
...
placement_policy=types.VmPlacementPolicy(
hosts=[
types.Host(name='host-01')
]
)
)
)