<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Python pyvmomi and how to set a variable to ManagedObjectReference (type,value) in VMware {code} Members</title>
    <link>https://communities.vmware.com/t5/VMware-code-Members/Python-pyvmomi-and-how-to-set-a-variable-to/m-p/2936076#M71</link>
    <description>&lt;P&gt;Trying to code something based on vmware ansible collection but specifically for a VM (change DRS or other HA settings).&lt;/P&gt;&lt;P&gt;Starting point: refer to vmware_cluster_drs module which calls drsConfig and&amp;nbsp;vim.cluster.DrsConfigInfo&lt;/P&gt;&lt;P&gt;I am trying to instead use&amp;nbsp;drsVmConfigSpec and dasVmConfigSpec which calls vim.cluster.DasVmConfigSpec / vim.cluster.DrsVmConfigSpec (info).&lt;/P&gt;&lt;P&gt;info for both have a key property with type key ManagedObjectReference to a VirtualMachine (type and value).&lt;/P&gt;&lt;P&gt;Challenge is how to set the key to a ManagedObjectReference&lt;/P&gt;&lt;P&gt;See below for what works in PowerCLI:&lt;/P&gt;&lt;P&gt;$spec.dasVmConfigSpec[0].info.key = New-Object VMware.Vim.ManagedObjectReference&lt;/P&gt;&lt;P&gt;How to do same in python:&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;lt;varname&amp;gt;.info.key = vmodl.ManagedObjectReference&amp;nbsp; ?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://developer.vmware.com/apis/1355/vsphere" target="_blank" rel="noopener"&gt;https://developer.vmware.com/apis/1355/vsphere&lt;/A&gt;&lt;BR /&gt;Type - &amp;gt; API reference to Data Object - ClusterConfigSpecEx(vim.cluster.ConfigSpecEx)&lt;/P&gt;&lt;P&gt;drsVmConfigSpec* ClusterDrsVmConfigSpec[]&lt;/P&gt;&lt;P&gt;Data Object Description: Updates the per-virtual-machine DRS configuration.&lt;/P&gt;&lt;P&gt;Sample of what we have tried and no success yet in setting key to be the type of ManagedObjectReference.&lt;BR /&gt;Also tried as array etc.&lt;/P&gt;&lt;P&gt;cluster_config_spec = vim.cluster.ConfigSpecEx()&lt;BR /&gt;cluster_config_spec.drsVmConfigSpec = vim.cluster.DrsVmConfigSpec()&lt;BR /&gt;cluster_config_spec.drsVmConfigSpec.info = vim.cluster.DrsConfigInfo()&lt;BR /&gt;cluster_config_spec.drsVmConfigSpec.info.key = vmodl.ManagedObjectReference&lt;BR /&gt;cluster_config_spec.drsVmConfigSpec.info.key.type = "VirtualMachine"&lt;BR /&gt;cluster_config_spec.drsVmConfigSpec.info.key.value = self.params.get('vm_moid')&lt;BR /&gt;cluster_config_spec.drsVmConfigSpec.info.enabled = self.enable_drs&lt;BR /&gt;cluster_config_spec.drsVmConfigSpec.info.behavior = self.params.get('drs_default_vm_behavior')&lt;/P&gt;&lt;P&gt;PowerCLI equivalent: New-Object VMware.Vim.ManagedObjectReference&lt;/P&gt;&lt;P&gt;&lt;A href="https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Setting-VM-overrides-through-PowerCLI/m-p/1863018#M63883" target="_blank" rel="noopener"&gt;https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Setting-VM-overrides-through-PowerCLI/m-p/1863018#M63883&lt;/A&gt;&lt;/P&gt;&lt;P&gt;$spec = New-Object VMware.Vim.ClusterConfigSpecEx&lt;BR /&gt;$spec.dasVmConfigSpec = New-Object VMware.Vim.ClusterDasVmConfigSpec[] (1)&lt;BR /&gt;$spec.dasVmConfigSpec[0] = New-Object VMware.Vim.ClusterDasVmConfigSpec&lt;BR /&gt;$spec.dasVmConfigSpec[0].operation = "add"&lt;BR /&gt;$spec.dasVmConfigSpec[0].info = New-Object VMware.Vim.ClusterDasVmConfigInfo&lt;BR /&gt;$spec.dasVmConfigSpec[0].info.key = New-Object VMware.Vim.ManagedObjectReference&lt;BR /&gt;$spec.dasVmConfigSpec[0].info.key.type = "VirtualMachine"&lt;BR /&gt;$spec.dasVmConfigSpec[0].info.key.value = $vm.ExtensionData.MoRef.Value&lt;/P&gt;</description>
    <pubDate>Mon, 31 Oct 2022 12:43:40 GMT</pubDate>
    <dc:creator>canadapatrick</dc:creator>
    <dc:date>2022-10-31T12:43:40Z</dc:date>
    <item>
      <title>Python pyvmomi and how to set a variable to ManagedObjectReference (type,value)</title>
      <link>https://communities.vmware.com/t5/VMware-code-Members/Python-pyvmomi-and-how-to-set-a-variable-to/m-p/2936076#M71</link>
      <description>&lt;P&gt;Trying to code something based on vmware ansible collection but specifically for a VM (change DRS or other HA settings).&lt;/P&gt;&lt;P&gt;Starting point: refer to vmware_cluster_drs module which calls drsConfig and&amp;nbsp;vim.cluster.DrsConfigInfo&lt;/P&gt;&lt;P&gt;I am trying to instead use&amp;nbsp;drsVmConfigSpec and dasVmConfigSpec which calls vim.cluster.DasVmConfigSpec / vim.cluster.DrsVmConfigSpec (info).&lt;/P&gt;&lt;P&gt;info for both have a key property with type key ManagedObjectReference to a VirtualMachine (type and value).&lt;/P&gt;&lt;P&gt;Challenge is how to set the key to a ManagedObjectReference&lt;/P&gt;&lt;P&gt;See below for what works in PowerCLI:&lt;/P&gt;&lt;P&gt;$spec.dasVmConfigSpec[0].info.key = New-Object VMware.Vim.ManagedObjectReference&lt;/P&gt;&lt;P&gt;How to do same in python:&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;lt;varname&amp;gt;.info.key = vmodl.ManagedObjectReference&amp;nbsp; ?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://developer.vmware.com/apis/1355/vsphere" target="_blank" rel="noopener"&gt;https://developer.vmware.com/apis/1355/vsphere&lt;/A&gt;&lt;BR /&gt;Type - &amp;gt; API reference to Data Object - ClusterConfigSpecEx(vim.cluster.ConfigSpecEx)&lt;/P&gt;&lt;P&gt;drsVmConfigSpec* ClusterDrsVmConfigSpec[]&lt;/P&gt;&lt;P&gt;Data Object Description: Updates the per-virtual-machine DRS configuration.&lt;/P&gt;&lt;P&gt;Sample of what we have tried and no success yet in setting key to be the type of ManagedObjectReference.&lt;BR /&gt;Also tried as array etc.&lt;/P&gt;&lt;P&gt;cluster_config_spec = vim.cluster.ConfigSpecEx()&lt;BR /&gt;cluster_config_spec.drsVmConfigSpec = vim.cluster.DrsVmConfigSpec()&lt;BR /&gt;cluster_config_spec.drsVmConfigSpec.info = vim.cluster.DrsConfigInfo()&lt;BR /&gt;cluster_config_spec.drsVmConfigSpec.info.key = vmodl.ManagedObjectReference&lt;BR /&gt;cluster_config_spec.drsVmConfigSpec.info.key.type = "VirtualMachine"&lt;BR /&gt;cluster_config_spec.drsVmConfigSpec.info.key.value = self.params.get('vm_moid')&lt;BR /&gt;cluster_config_spec.drsVmConfigSpec.info.enabled = self.enable_drs&lt;BR /&gt;cluster_config_spec.drsVmConfigSpec.info.behavior = self.params.get('drs_default_vm_behavior')&lt;/P&gt;&lt;P&gt;PowerCLI equivalent: New-Object VMware.Vim.ManagedObjectReference&lt;/P&gt;&lt;P&gt;&lt;A href="https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Setting-VM-overrides-through-PowerCLI/m-p/1863018#M63883" target="_blank" rel="noopener"&gt;https://communities.vmware.com/t5/VMware-PowerCLI-Discussions/Setting-VM-overrides-through-PowerCLI/m-p/1863018#M63883&lt;/A&gt;&lt;/P&gt;&lt;P&gt;$spec = New-Object VMware.Vim.ClusterConfigSpecEx&lt;BR /&gt;$spec.dasVmConfigSpec = New-Object VMware.Vim.ClusterDasVmConfigSpec[] (1)&lt;BR /&gt;$spec.dasVmConfigSpec[0] = New-Object VMware.Vim.ClusterDasVmConfigSpec&lt;BR /&gt;$spec.dasVmConfigSpec[0].operation = "add"&lt;BR /&gt;$spec.dasVmConfigSpec[0].info = New-Object VMware.Vim.ClusterDasVmConfigInfo&lt;BR /&gt;$spec.dasVmConfigSpec[0].info.key = New-Object VMware.Vim.ManagedObjectReference&lt;BR /&gt;$spec.dasVmConfigSpec[0].info.key.type = "VirtualMachine"&lt;BR /&gt;$spec.dasVmConfigSpec[0].info.key.value = $vm.ExtensionData.MoRef.Value&lt;/P&gt;</description>
      <pubDate>Mon, 31 Oct 2022 12:43:40 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-code-Members/Python-pyvmomi-and-how-to-set-a-variable-to/m-p/2936076#M71</guid>
      <dc:creator>canadapatrick</dc:creator>
      <dc:date>2022-10-31T12:43:40Z</dc:date>
    </item>
    <item>
      <title>Re: Python pyvmomi and how to set a variable to ManagedObjectReference (type,value)</title>
      <link>https://communities.vmware.com/t5/VMware-code-Members/Python-pyvmomi-and-how-to-set-a-variable-to/m-p/2936080#M72</link>
      <description>&lt;P&gt;Further details ... here are a few samples of what does not work and errors in ansible:&lt;BR /&gt;&lt;BR /&gt;cluster_config_spec.drsVmConfigSpec.info.key = (type=vim.VirtualMachine, value=self.params.get('vm_moid'))&lt;BR /&gt;# Error: "msg": "Unable to import community.vmware.vmware_cluster_drs_vm due to invalid syntax",&lt;BR /&gt;&lt;BR /&gt;cluster_config_spec.drsVmConfigSpec.info.key = vim.VirtualMachine(self.params.get('vm_moid'))&lt;BR /&gt;# Error: "msg": "('A specified parameter was not correct: drsVmConfigSpec.info.key', None)"&lt;BR /&gt;&lt;BR /&gt;cluster_config_spec.drsVmConfigSpec.info.key type = "VirtualMachine"&lt;BR /&gt;# Error: AttributeError: 'NoneType' object has no attribute 'type'\&lt;BR /&gt;&lt;BR /&gt;cluster_config_spec.drsVmConfigSpec.info.key = ("VirtualMachine", self.params.get('vm_moid'))&lt;BR /&gt;# Error: For "key" expected type vim.VirtualMachine, but got tuple\n",&lt;/P&gt;</description>
      <pubDate>Mon, 31 Oct 2022 12:54:46 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-code-Members/Python-pyvmomi-and-how-to-set-a-variable-to/m-p/2936080#M72</guid>
      <dc:creator>canadapatrick</dc:creator>
      <dc:date>2022-10-31T12:54:46Z</dc:date>
    </item>
    <item>
      <title>Re: Python pyvmomi and how to set a variable to ManagedObjectReference (type,value)</title>
      <link>https://communities.vmware.com/t5/VMware-code-Members/Python-pyvmomi-and-how-to-set-a-variable-to/m-p/2936525#M74</link>
      <description>&lt;DIV&gt;FYI - Got something to work!&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Can see my VM is in VM overrides with correct setting after running.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Code snippets below (vm_moid is the moid from vmware_guest_info output)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; vm_config_spec = vim.cluster.ConfigSpecEx()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; vm_config_spec.drsVmConfigSpec = [vim.cluster.DrsVmConfigSpec()]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; vm_config_spec.drsVmConfigSpec[0].operation = "add"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; vm_config_spec.drsVmConfigSpec[0].info = vim.cluster.DrsVmConfigInfo()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; vm_config_spec.drsVmConfigSpec[0].info.key = vim.VirtualMachine(self.params.get('vm_moid'))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; vm_config_spec.drsVmConfigSpec[0].info.behavior = self.params.get('drs_vm_behavior')&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; vm_config_spec.drsVmConfigSpec[0].info.enabled = self.params.get('enable')&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; try:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; task = self.cluster.ReconfigureComputeResource_Task(vm_config_spec, True)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; changed, result = wait_for_task(task)&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;. . .&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;</description>
      <pubDate>Wed, 02 Nov 2022 21:28:20 GMT</pubDate>
      <guid>https://communities.vmware.com/t5/VMware-code-Members/Python-pyvmomi-and-how-to-set-a-variable-to/m-p/2936525#M74</guid>
      <dc:creator>canadapatrick</dc:creator>
      <dc:date>2022-11-02T21:28:20Z</dc:date>
    </item>
  </channel>
</rss>

