[ovirt-users] [Python-SDK][Ovirt-4.0] Create VM on specific Host.

Juan Hernández jhernand at redhat.com
Wed Apr 19 07:48:56 UTC 2017


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/placement_policy
> 
> 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')
        ]
      )
    )
  )



More information about the Users mailing list