From a0491f804fc13f49b96ce7d2e5aaf798804c8827 Mon Sep 17 00:00:00 2001 From: yatinkarel Date: Mon, 13 Apr 2020 16:43:16 +0530 Subject: [PATCH] Fix os_user_role issue to grant a role in a domain Fixes #66525. Backport of https://github.com/openstack/ansible-collections-openstack/commit/4c03ae. --- changelogs/fragments/66525-fix-assing-role-domain-only.yml | 2 ++ lib/ansible/modules/cloud/openstack/os_user_role.py | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 changelogs/fragments/66525-fix-assing-role-domain-only.yml diff --git a/changelogs/fragments/66525-fix-assing-role-domain-only.yml b/changelogs/fragments/66525-fix-assing-role-domain-only.yml new file mode 100644 index 00000000000..b0caac88223 --- /dev/null +++ b/changelogs/fragments/66525-fix-assing-role-domain-only.yml @@ -0,0 +1,2 @@ +bugfixes: + - os_user_role - Fix os_user_role issue to grant a role in a domain. diff --git a/lib/ansible/modules/cloud/openstack/os_user_role.py b/lib/ansible/modules/cloud/openstack/os_user_role.py index 936ccb2bbdc..7a8d5ccbeee 100644 --- a/lib/ansible/modules/cloud/openstack/os_user_role.py +++ b/lib/ansible/modules/cloud/openstack/os_user_role.py @@ -130,6 +130,7 @@ def main(): sdk, cloud = openstack_cloud_from_module(module) try: filters = {} + domain_id = None r = cloud.get_role(role) if r is None: @@ -141,6 +142,7 @@ def main(): if d is None: module.fail_json(msg="Domain %s is not valid" % domain) filters['domain'] = d['id'] + domain_id = d['id'] if user: if domain: u = cloud.get_user(user, domain_id=filters['domain']) @@ -155,7 +157,6 @@ def main(): if g is None: module.fail_json(msg="Group %s is not valid" % group) filters['group'] = g['id'] - domain_id = None if project: if domain: p = cloud.get_project(project, domain_id=filters['domain'])