이 섹션에서는 주로 클러스터 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))