affinit/tag/label fix
This commit is contained in:
@@ -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,34 +1190,46 @@ 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():
|
||||||
api_params = dict(computeId=comp_dict['id'],
|
if tag not in comp_dict['tags'].items():
|
||||||
key=tag[0],
|
api_params = dict(computeId=comp_dict['id'],
|
||||||
value=tag[1], )
|
key=tag[0],
|
||||||
self.decort_api_call(requests.post, "/restmachine/cloudapi/compute/tagAdd", api_params)
|
value=tag[1], )
|
||||||
self.result['failed'] = False
|
self.decort_api_call(requests.post, "/restmachine/cloudapi/compute/tagAdd", api_params)
|
||||||
self.result['changed'] = True
|
self.result['failed'] = False
|
||||||
|
self.result['changed'] = True
|
||||||
|
|
||||||
for tag in comp_dict['tags'].items():
|
if comp_dict['tags']:
|
||||||
if tag not in tags.items():
|
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,)
|
||||||
self.decort_api_call(requests.post, "/restmachine/cloudapi/compute/tagRemove", api_params)
|
self.decort_api_call(requests.post, "/restmachine/cloudapi/compute/affinityLabelSet", api_params)
|
||||||
|
self.result['failed'] = False
|
||||||
|
self.result['changed'] = True
|
||||||
|
else:
|
||||||
|
if 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['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 = []
|
||||||
@@ -1225,24 +1237,28 @@ class DecortController(object):
|
|||||||
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 aaff:
|
||||||
if rule not in comp_dict['antiAffinityRules']:
|
for rule in aaff:
|
||||||
aaffrule_add.append(rule)
|
if rule not in comp_dict['antiAffinityRules']:
|
||||||
|
aaffrule_add.append(rule)
|
||||||
|
|
||||||
#AFFINITY
|
#AFFINITY
|
||||||
if len (affrule_del):
|
if len (affrule_del):
|
||||||
|
|||||||
Reference in New Issue
Block a user