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,59 +1190,75 @@ class DecortController(object):
""" """
self.result['waypoints'] = "{} -> {}".format(self.result['waypoints'], "compute_affinity") self.result['waypoints'] = "{} -> {}".format(self.result['waypoints'], "compute_affinity")
for tag in tags.items(): if tags:
if tag not in comp_dict['tags'].items(): for tag in tags.items():
if tag not in comp_dict['tags'].items():
api_params = dict(computeId=comp_dict['id'],
key=tag[0],
value=tag[1], )
self.decort_api_call(requests.post, "/restmachine/cloudapi/compute/tagAdd", api_params)
self.result['failed'] = False
self.result['changed'] = True
if comp_dict['tags']:
for tag in comp_dict['tags'].items():
if tag not in 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
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:
if comp_dict['affinityLabel'] == "":
api_params = dict(computeId=comp_dict['id'], api_params = dict(computeId=comp_dict['id'],
key=tag[0], affinityLabel=label,)
value=tag[1], ) self.decort_api_call(requests.post, "/restmachine/cloudapi/compute/affinityLabelSet", api_params)
self.decort_api_call(requests.post, "/restmachine/cloudapi/compute/tagAdd", api_params)
self.result['failed'] = False self.result['failed'] = False
self.result['changed'] = True self.result['changed'] = True
else:
for tag in comp_dict['tags'].items(): if comp_dict['affinityLabel'] != "":
if tag not in tags.items(): 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)
key=tag[0],)
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
if label and comp_dict['affinityLabel'] != label:
api_params = dict(computeId=comp_dict['id'],
affinityLabel=label,)
self.decort_api_call(requests.post, "/restmachine/cloudapi/compute/affinityLabelSet", api_params)
self.result['failed'] = False
self.result['changed'] = True
elif label == "" and comp_dict['affinityLabel']:
api_params = dict(computeId=comp_dict['id'])
self.decort_api_call(requests.post, "/restmachine/cloudapi/compute/affinityLabelRemove", api_params)
self.result['failed'] = False
self.result['changed'] = True
affrule_del = [] affrule_del = []
affrule_add = [] affrule_add = []
aaffrule_del = [] aaffrule_del = []
aaffrule_add = [] aaffrule_add = []
#AFFINITY #AFFINITY
for rule in comp_dict['affinityRules']: if comp_dict['affinityRules']:
del rule['guid'] for rule in comp_dict['affinityRules']:
if rule not in aff: del rule['guid']
affrule_del.append(rule) if rule not in aff:
affrule_del.append(rule)
for rule in aff: if aff:
if rule not in comp_dict['affinityRules']: for rule in aff:
affrule_add.append(rule) if rule not in comp_dict['affinityRules']:
affrule_add.append(rule)
#ANTI AFFINITY #ANTI AFFINITY
for rule in comp_dict['antiAffinityRules']: if comp_dict['antiAffinityRules']:
del rule['guid'] for rule in comp_dict['antiAffinityRules']:
if rule not in aaff: del rule['guid']
aaffrule_del.append(rule) if rule not in aaff:
aaffrule_del.append(rule)
for rule in aaff:
if rule not in comp_dict['antiAffinityRules']: if aaff:
aaffrule_add.append(rule) for rule in aaff:
if rule not in comp_dict['antiAffinityRules']:
aaffrule_add.append(rule)
#AFFINITY #AFFINITY
if len (affrule_del): if len (affrule_del):

Loading…
Cancel
Save