这一节主要介绍关于集群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