summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRené Moser <mail@renemoser.net>2016-04-12 18:44:23 +0200
committerRené Moser <mail@renemoser.net>2016-04-12 18:44:23 +0200
commit442c286b1c06669c45cea222a6cdcd7ddaaffc48 (patch)
tree0e9d399dc0539c8517ff363143a5b94e63ef2c6c
parent3c9310d6086ee0a924bed6344fd8b07de8e8918b (diff)
parent1d0df46475e6194eedaa52622e778e0fee5c7378 (diff)
downloadansible-modules-extras-442c286b1c06669c45cea222a6cdcd7ddaaffc48.tar.gz
Merge pull request #1923 from resmo/fix/cs-template-absent-cross-zones
cloudstack: cs_template: bug fixes
-rw-r--r--cloud/cloudstack/cs_template.py28
1 files changed, 15 insertions, 13 deletions
diff --git a/cloud/cloudstack/cs_template.py b/cloud/cloudstack/cs_template.py
index 8690a6e1..e53c8e28 100644
--- a/cloud/cloudstack/cs_template.py
+++ b/cloud/cloudstack/cs_template.py
@@ -89,8 +89,8 @@ options:
default: false
cross_zones:
description:
- - Whether the template should be syned across zones.
- - Only used if C(state) is present.
+ - Whether the template should be syned or removed across zones.
+ - Only used if C(state) is present or absent.
required: false
default: false
project:
@@ -168,7 +168,7 @@ options:
display_text:
description:
- Display text of the template.
- required: true
+ required: false
default: null
state:
description:
@@ -220,6 +220,7 @@ EXAMPLES = '''
- local_action:
module: cs_template
name: systemvm-4.2
+ cross_zones: yes
state: absent
'''
@@ -469,6 +470,12 @@ class AnsibleCloudStackTemplate(AnsibleCloudStack):
def register_template(self):
+ required_params = [
+ 'format',
+ 'url',
+ 'hypervisor',
+ ]
+ self.module.fail_on_missing_params(required_params=required_params)
template = self.get_template()
if not template:
self.result['changed'] = True
@@ -536,9 +543,6 @@ class AnsibleCloudStackTemplate(AnsibleCloudStack):
args['mode'] = self.module.params.get('mode')
args['zoneid'] = self.get_zone(key='id')
- if not args['url']:
- self.module.fail_json(msg="Missing required arguments: url")
-
self.result['changed'] = True
if not self.module.check_mode:
@@ -560,7 +564,9 @@ class AnsibleCloudStackTemplate(AnsibleCloudStack):
args = {}
args['id'] = template['id']
- args['zoneid'] = self.get_zone(key='id')
+
+ if not self.module.params.get('cross_zones'):
+ args['zoneid'] = self.get_zone(key='id')
if not self.module.check_mode:
res = self.cs.deleteTemplate(**args)
@@ -610,16 +616,12 @@ def main():
poll_async = dict(type='bool', default=True),
))
- required_together = cs_required_together()
- required_together.extend([
- ['format', 'url', 'hypervisor'],
- ])
-
module = AnsibleModule(
argument_spec=argument_spec,
- required_together=required_together,
+ required_together=cs_required_together(),
mutually_exclusive = (
['url', 'vm'],
+ ['zone', 'cross_zones'],
),
supports_check_mode=True
)