diff options
| author | René Moser <mail@renemoser.net> | 2016-04-12 18:44:23 +0200 |
|---|---|---|
| committer | René Moser <mail@renemoser.net> | 2016-04-12 18:44:23 +0200 |
| commit | 442c286b1c06669c45cea222a6cdcd7ddaaffc48 (patch) | |
| tree | 0e9d399dc0539c8517ff363143a5b94e63ef2c6c | |
| parent | 3c9310d6086ee0a924bed6344fd8b07de8e8918b (diff) | |
| parent | 1d0df46475e6194eedaa52622e778e0fee5c7378 (diff) | |
| download | ansible-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.py | 28 |
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 ) |
