|
|
@ -115,21 +115,20 @@ class AnsibleCloudStackAffinityGroup(AnsibleCloudStack):
|
|
|
|
}
|
|
|
|
}
|
|
|
|
self.affinity_group = None
|
|
|
|
self.affinity_group = None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_affinity_group(self):
|
|
|
|
def get_affinity_group(self):
|
|
|
|
if not self.affinity_group:
|
|
|
|
if not self.affinity_group:
|
|
|
|
|
|
|
|
|
|
|
|
args = {}
|
|
|
|
args = {
|
|
|
|
args['account'] = self.get_account('name')
|
|
|
|
'projectid': self.get_project(key='id'),
|
|
|
|
args['domainid'] = self.get_domain('id')
|
|
|
|
'account': self.get_account(key='name'),
|
|
|
|
args['name'] = self.module.params.get('name')
|
|
|
|
'domainid': self.get_domain(key='id'),
|
|
|
|
|
|
|
|
'name': self.module.params.get('name'),
|
|
|
|
|
|
|
|
}
|
|
|
|
affinity_groups = self.cs.listAffinityGroups(**args)
|
|
|
|
affinity_groups = self.cs.listAffinityGroups(**args)
|
|
|
|
if affinity_groups:
|
|
|
|
if affinity_groups:
|
|
|
|
self.affinity_group = affinity_groups['affinitygroup'][0]
|
|
|
|
self.affinity_group = affinity_groups['affinitygroup'][0]
|
|
|
|
return self.affinity_group
|
|
|
|
return self.affinity_group
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_affinity_type(self):
|
|
|
|
def get_affinity_type(self):
|
|
|
|
affinity_type = self.module.params.get('affinty_type')
|
|
|
|
affinity_type = self.module.params.get('affinty_type')
|
|
|
|
|
|
|
|
|
|
|
@ -143,19 +142,19 @@ class AnsibleCloudStackAffinityGroup(AnsibleCloudStack):
|
|
|
|
return a['type']
|
|
|
|
return a['type']
|
|
|
|
self.module.fail_json(msg="affinity group type '%s' not found" % affinity_type)
|
|
|
|
self.module.fail_json(msg="affinity group type '%s' not found" % affinity_type)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def create_affinity_group(self):
|
|
|
|
def create_affinity_group(self):
|
|
|
|
affinity_group = self.get_affinity_group()
|
|
|
|
affinity_group = self.get_affinity_group()
|
|
|
|
if not affinity_group:
|
|
|
|
if not affinity_group:
|
|
|
|
self.result['changed'] = True
|
|
|
|
self.result['changed'] = True
|
|
|
|
|
|
|
|
|
|
|
|
args = {}
|
|
|
|
args = {
|
|
|
|
args['name'] = self.module.params.get('name')
|
|
|
|
'name': self.module.params.get('name'),
|
|
|
|
args['type'] = self.get_affinity_type()
|
|
|
|
'type': self.get_affinity_type(),
|
|
|
|
args['description'] = self.module.params.get('description')
|
|
|
|
'description': self.module.params.get('description'),
|
|
|
|
args['account'] = self.get_account('name')
|
|
|
|
'projectid': self.get_project(key='id'),
|
|
|
|
args['domainid'] = self.get_domain('id')
|
|
|
|
'account': self.get_account(key='name'),
|
|
|
|
|
|
|
|
'domainid': self.get_domain(key='id'),
|
|
|
|
|
|
|
|
}
|
|
|
|
if not self.module.check_mode:
|
|
|
|
if not self.module.check_mode:
|
|
|
|
res = self.cs.createAffinityGroup(**args)
|
|
|
|
res = self.cs.createAffinityGroup(**args)
|
|
|
|
|
|
|
|
|
|
|
@ -167,17 +166,17 @@ class AnsibleCloudStackAffinityGroup(AnsibleCloudStack):
|
|
|
|
affinity_group = self._poll_job(res, 'affinitygroup')
|
|
|
|
affinity_group = self._poll_job(res, 'affinitygroup')
|
|
|
|
return affinity_group
|
|
|
|
return affinity_group
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def remove_affinity_group(self):
|
|
|
|
def remove_affinity_group(self):
|
|
|
|
affinity_group = self.get_affinity_group()
|
|
|
|
affinity_group = self.get_affinity_group()
|
|
|
|
if affinity_group:
|
|
|
|
if affinity_group:
|
|
|
|
self.result['changed'] = True
|
|
|
|
self.result['changed'] = True
|
|
|
|
|
|
|
|
|
|
|
|
args = {}
|
|
|
|
args = {
|
|
|
|
args['name'] = self.module.params.get('name')
|
|
|
|
'name': self.module.params.get('name'),
|
|
|
|
args['account'] = self.get_account('name')
|
|
|
|
'projectid': self.get_project(key='id'),
|
|
|
|
args['domainid'] = self.get_domain('id')
|
|
|
|
'account': self.get_account(key='name'),
|
|
|
|
|
|
|
|
'domainid': self.get_domain(key='id'),
|
|
|
|
|
|
|
|
}
|
|
|
|
if not self.module.check_mode:
|
|
|
|
if not self.module.check_mode:
|
|
|
|
res = self.cs.deleteAffinityGroup(**args)
|
|
|
|
res = self.cs.deleteAffinityGroup(**args)
|
|
|
|
|
|
|
|
|
|
|
@ -186,7 +185,7 @@ class AnsibleCloudStackAffinityGroup(AnsibleCloudStack):
|
|
|
|
|
|
|
|
|
|
|
|
poll_async = self.module.params.get('poll_async')
|
|
|
|
poll_async = self.module.params.get('poll_async')
|
|
|
|
if res and poll_async:
|
|
|
|
if res and poll_async:
|
|
|
|
res = self._poll_job(res, 'affinitygroup')
|
|
|
|
self._poll_job(res, 'affinitygroup')
|
|
|
|
return affinity_group
|
|
|
|
return affinity_group
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -199,7 +198,8 @@ def main():
|
|
|
|
state=dict(choices=['present', 'absent'], default='present'),
|
|
|
|
state=dict(choices=['present', 'absent'], default='present'),
|
|
|
|
domain=dict(default=None),
|
|
|
|
domain=dict(default=None),
|
|
|
|
account=dict(default=None),
|
|
|
|
account=dict(default=None),
|
|
|
|
poll_async = dict(choices=BOOLEANS, default=True),
|
|
|
|
project=dict(default=None),
|
|
|
|
|
|
|
|
poll_async=dict(type='bool', default=True),
|
|
|
|
))
|
|
|
|
))
|
|
|
|
|
|
|
|
|
|
|
|
module = AnsibleModule(
|
|
|
|
module = AnsibleModule(
|
|
|
|