python pyvmomi操作VMware(六):操作集群的Drs开启、关闭状态

这一节主要介绍关于集群drs的开启、关闭操作。
一般更新对象属性逻辑:获取到这个对象,然后找到这个这个对象对应的属性,对这个属性进行赋值更改。
问题:经过研究官方文档,发现更改状态或者其它信息,这样做是行不通的,需要通过执行任务的方式才能进行更改相关信息。
思路:由于我们只需要更改其中某一个属性,其它的属性不变,所以Drs相关配置信息,除了要更改的字段,其它配置信息都取原对象的配置信息,保持对象属性的一致性。
代码如下:

 def update_cluster_drs(self, cluster_objs_list, status):
        """
        更改集群的drs状态
        :param cluster_objs_list: 集群对象列表
        :param status:要更改的状态 关闭:False; 开启:True
        :return:
        """
        for cluster in cluster_objs_list:
            spec = vim.cluster.ConfigSpec()
            drs_config_info = vim.cluster.DrsConfigInfo()
            drs_config_info.enabled = status
            drs_config_info.enableVmBehaviorOverrides = cluster.configuration.drsConfig.enableVmBehaviorOverrides
            drs_config_info.defaultVmBehavior = cluster.configuration.drsConfig.defaultVmBehavior
            drs_config_info.vmotionRate = cluster.configuration.drsConfig.vmotionRate
            spec.drsConfig = drs_config_info
            task = cluster.ReconfigureCluster_Task(
                spec=spec, modify=True)
            result = self.wait_for_task(task)
            logger.info('操作集群{0}的结果:{1}'.format(cluster.name, result))

猜你喜欢

转载自blog.csdn.net/qq_42631707/article/details/108244320