affinit/tag/label fix

rc-5.2.4
Alex_geth 2 years ago
parent ae85826129
commit 7fffdd0ab5

@ -632,7 +632,7 @@ class decort_kvmvm(DecortController):
self.amodule.params['tag'], self.amodule.params['tag'],
self.amodule.params['aff_rule'], self.amodule.params['aff_rule'],
self.amodule.params['aaff_rule'], self.amodule.params['aaff_rule'],
label=self.amodule.params['affinity_label'],) label=self.amodule.params['affinity_label'])
return return

@ -1179,7 +1179,7 @@ class DecortController(object):
return False return False
def compute_affinity(self,comp_dict,tags,aff,aaff,label=""): def compute_affinity(self,comp_dict,tags,aff,aaff,label):
""" """
Manage Compute Tags,Affinitylabel and rules Manage Compute Tags,Affinitylabel and rules
@param (dict) comp_dict: dictionary of the Compute parameters @param (dict) comp_dict: dictionary of the Compute parameters
@ -1190,6 +1190,7 @@ class DecortController(object):
""" """
self.result['waypoints'] = "{} -> {}".format(self.result['waypoints'], "compute_affinity") self.result['waypoints'] = "{} -> {}".format(self.result['waypoints'], "compute_affinity")
if tags:
for tag in tags.items(): for tag in tags.items():
if tag not in comp_dict['tags'].items(): if tag not in comp_dict['tags'].items():
api_params = dict(computeId=comp_dict['id'], api_params = dict(computeId=comp_dict['id'],
@ -1199,6 +1200,7 @@ class DecortController(object):
self.result['failed'] = False self.result['failed'] = False
self.result['changed'] = True self.result['changed'] = True
if comp_dict['tags']:
for tag in comp_dict['tags'].items(): for tag in comp_dict['tags'].items():
if tag not in tags.items(): if tag not in tags.items():
api_params = dict(computeId=comp_dict['id'], api_params = dict(computeId=comp_dict['id'],
@ -1206,14 +1208,24 @@ class DecortController(object):
self.decort_api_call(requests.post, "/restmachine/cloudapi/compute/tagRemove", api_params) self.decort_api_call(requests.post, "/restmachine/cloudapi/compute/tagRemove", api_params)
self.result['failed'] = False self.result['failed'] = False
self.result['changed'] = True self.result['changed'] = True
else:
if comp_dict['tags']:
for tag in comp_dict['tags'].items():
api_params = dict(computeId=comp_dict['id'],
key=tag[0],)
self.decort_api_call(requests.post, "/restmachine/cloudapi/compute/tagRemove", api_params)
self.result['failed'] = False
self.result['changed'] = True
if label and comp_dict['affinityLabel'] != label: if label:
if comp_dict['affinityLabel'] == "":
api_params = dict(computeId=comp_dict['id'], api_params = dict(computeId=comp_dict['id'],
affinityLabel=label,) affinityLabel=label,)
self.decort_api_call(requests.post, "/restmachine/cloudapi/compute/affinityLabelSet", api_params) self.decort_api_call(requests.post, "/restmachine/cloudapi/compute/affinityLabelSet", api_params)
self.result['failed'] = False self.result['failed'] = False
self.result['changed'] = True self.result['changed'] = True
elif label == "" and comp_dict['affinityLabel']: else:
if comp_dict['affinityLabel'] != "":
api_params = dict(computeId=comp_dict['id']) api_params = dict(computeId=comp_dict['id'])
self.decort_api_call(requests.post, "/restmachine/cloudapi/compute/affinityLabelRemove", api_params) self.decort_api_call(requests.post, "/restmachine/cloudapi/compute/affinityLabelRemove", api_params)
self.result['failed'] = False self.result['failed'] = False
@ -1225,21 +1237,25 @@ class DecortController(object):
aaffrule_add = [] aaffrule_add = []
#AFFINITY #AFFINITY
if comp_dict['affinityRules']:
for rule in comp_dict['affinityRules']: for rule in comp_dict['affinityRules']:
del rule['guid'] del rule['guid']
if rule not in aff: if rule not in aff:
affrule_del.append(rule) affrule_del.append(rule)
if aff:
for rule in aff: for rule in aff:
if rule not in comp_dict['affinityRules']: if rule not in comp_dict['affinityRules']:
affrule_add.append(rule) affrule_add.append(rule)
#ANTI AFFINITY #ANTI AFFINITY
if comp_dict['antiAffinityRules']:
for rule in comp_dict['antiAffinityRules']: for rule in comp_dict['antiAffinityRules']:
del rule['guid'] del rule['guid']
if rule not in aaff: if rule not in aaff:
aaffrule_del.append(rule) aaffrule_del.append(rule)
if aaff:
for rule in aaff: for rule in aaff:
if rule not in comp_dict['antiAffinityRules']: if rule not in comp_dict['antiAffinityRules']:
aaffrule_add.append(rule) aaffrule_add.append(rule)

Loading…
Cancel
Save