diff --git a/lib/ansible/module_utils/openstack.py b/lib/ansible/module_utils/openstack.py index 75fbfbfeff..84de169eb6 100644 --- a/lib/ansible/module_utils/openstack.py +++ b/lib/ansible/module_utils/openstack.py @@ -134,11 +134,12 @@ def openstack_cloud_from_module(module, min_version='0.12.0'): " excluded.") for param in ( 'auth', 'region_name', 'verify', - 'cacert', 'key', 'api_timeout', 'interface'): + 'cacert', 'key', 'api_timeout', 'auth_type'): if module.params[param] is not None: module.fail_json(msg=fail_message.format(param=param)) - if module.params['auth_type'] != 'password': - module.fail_json(msg=fail_message.format(param='auth_type')) + # For 'interface' parameter, fail if we receive a non-default value + if module.params['interface'] != 'public': + module.fail_json(msg=fail_message.format(param='interface')) return sdk, sdk.connect(**cloud_config) else: return sdk, sdk.connect( diff --git a/lib/ansible/modules/cloud/openstack/os_user.py b/lib/ansible/modules/cloud/openstack/os_user.py index 2a5ae1dc9d..2ddc8db181 100644 --- a/lib/ansible/modules/cloud/openstack/os_user.py +++ b/lib/ansible/modules/cloud/openstack/os_user.py @@ -210,11 +210,12 @@ def main(): sdk, cloud = openstack_cloud_from_module(module) try: - user = cloud.get_user(name) - domain_id = None if domain: domain_id = _get_domain_id(cloud, domain) + user = cloud.get_user(name, domain_id=domain_id) + else: + user = cloud.get_user(name) if state == 'present': if update_password in ('always', 'on_create'): @@ -280,7 +281,10 @@ def main(): if user is None: changed = False else: - cloud.delete_user(user['id']) + if domain: + cloud.delete_user(user['id'], domain_id=domain_id) + else: + cloud.delete_user(user['id']) changed = True module.exit_json(changed=changed)