python vsphere DRS组

2024-06-16 13:14:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个python脚本来向DRS组添加VM。 下面是一个powershell脚本正在执行此任务。怎么翻译成py?

$spec = New-Object VMware.Vim.ClusterConfigSpecEx
$spec.groupSpec = New-Object VMware.Vim.ClusterGroupSpec[] (1)
$spec.groupSpec[0] = New-Object VMware.Vim.ClusterGroupSpec
$spec.groupSpec[0].operation = "edit"
$spec.groupSpec[0].info = $DrsGroup
$spec.groupSpec[0].info.vm += $VM.ExtensionData.MoRef

$Cluster.ExtensionData.ReconfigureComputeResource_Task($spec, $true) 

实际上,我在最后一行阻塞了,因为我没有找到reconfigurecomputerresource方法。我的代码如下:

^{pr2}$

谢谢你的帮助


Tags: pyinfo脚本newobjectvmvimvmware
1条回答
网友
1楼 · 发布于 2024-06-16 13:14:44
     def manage_vm_to_DRS_group(self, action=None):
        # - requiered objects already exist
        drs_group = self.get_drsgroup(group_name=self.drs_rule_name)
        my_vm = self.get_obj(
            [vim.VirtualMachine],
            self.vm,
            return_all=True
        )
        # -
        try:
            spec = vim.cluster.ConfigSpecEx()
            my_groupSpec = vim.cluster.GroupSpec()

            my_groupSpec.operation = "edit"
            my_groupSpec.info = drs_group
            if self.state == 'present':
                my_groupSpec.info.vm += my_vm
            elif self.state == 'removed':
                #my_groupSpec.info.vm = my_groupSpec.info.vm.remove(my_vm[0])
                my_groupSpec.info.vm.remove(my_vm[0])
            else:
                self.module.fail_json(msg="Module failure: check module, fuction: assign_vm_to_group, indice: 1")
            spec.groupSpec.append(my_groupSpec)

            if not self.check_mode:
                self.cluster_obj.ReconfigureComputeResource_Task(spec, modify=True)

        except:
            self.module.fail_json(msg="Module failure:Failed to assign vm '%s' to DRS group '%s'" % (
                self.vm, self.drs_rule_name))

        self.module.exit_json(changed=True, result="SUCCESS vm '%s' is '%s' on  DRS group '%s'" % (
                self.vm, self.state, self.drs_rule_name))

相关问题 更多 >