Fix typo that breaks invocation of os_stack (#56575)

* Fix typo that breaks invocation of os_stack

* Apply tags conditionally so that the module does not throw up an error when using an older distro of openstacksdk
This commit is contained in:
Bharat Kunwar 2019-05-17 15:34:58 +01:00 committed by ansibot
parent 6c1a255d98
commit 18f22de67e

View file

@ -154,16 +154,15 @@ from ansible.module_utils.openstack import openstack_full_argument_spec, opensta
from ansible.module_utils._text import to_native
def _create_stack(module, stack, cloud, sdk):
def _create_stack(module, stack, cloud, sdk, parameters):
try:
stack = cloud.create_stack(module.params['name'],
tags=module.params['tag'],
template_file=module.params['template'],
environment_files=module.params['environment'],
timeout=module.params['timeout'],
wait=True,
rollback=module.params['rollback'],
**module.params['parameters'])
**parameters)
stack = cloud.get_stack(stack.id, None)
if stack.stack_status == 'CREATE_COMPLETE':
@ -177,17 +176,16 @@ def _create_stack(module, stack, cloud, sdk):
module.fail_json(msg=to_native(e))
def _update_stack(module, stack, cloud, sdk):
def _update_stack(module, stack, cloud, sdk, parameters):
try:
stack = cloud.update_stack(
module.params['name'],
tags=module.params['tag'],
template_file=module.params['template'],
environment_files=module.params['environment'],
timeout=module.params['timeout'],
rollback=module.params['rollback'],
wait=module.params['wait'],
**module.params['parameters'])
**parameters)
if stack['stack_status'] == 'UPDATE_COMPLETE':
return stack
@ -242,24 +240,24 @@ def main():
stack = cloud.get_stack(name)
if module.check_mode:
module.exit_json(changed=_system_state_change(module, stack,
cloud))
module.exit_json(changed=_system_state_change(module, stack, cloud))
if state == 'present':
parameters = module.params['parameters']
if module.params['tag']:
parameters['tags'] = module.params['tag']
from distutils.version import StrictVersion
min_version = '0.28.0'
if StrictVersion(sdk.version.__version__) < StrictVersion(min_version) and stack:
module.warn("To update tags using os_stack module, the"
"installed version of the openstacksdk"
"library MUST be >={min_version}"
"".format(min_version=min_version))
if not stack:
stack = _create_stack(module, stack, cloud, sdk)
stack = _create_stack(module, stack, cloud, sdk, parameters)
else:
if module.params['tags']:
from distutils.version import StrictVersion
min_version = '0.28.0'
if StrictVersion(sdk.version.__version__) < StrictVersion(min_version):
module.warn("To update tags using os_stack module, the"
"installed version of the openstacksdk"
"library MUST be >={min_version}"
"".format(min_version=min_version))
stack = _update_stack(module, stack, cloud, sdk)
changed = True
module.exit_json(changed=changed,
stack = _update_stack(module, stack, cloud, sdk, parameters)
module.exit_json(changed=True,
stack=stack,
id=stack.id)
elif state == 'absent':