From 921885661700e2c89ef8bb191bb42394eda4e370 Mon Sep 17 00:00:00 2001 From: Dmitriy Rabotyagov Date: Wed, 31 Jul 2019 20:38:07 +0300 Subject: [PATCH] Search project in domain when it's defined Since there might be several projects with the same name in different domains, it's required to define domain_id during project search. Otherwise openstacksdk will raise "Multiple matches found" error (cherry picked from commit 33ab7ca1628778cb7f467e4e5e5d68916e485cd8) --- changelogs/fragments/60410-search-project-in-domain.yml | 2 ++ lib/ansible/modules/cloud/openstack/os_user.py | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) create mode 100644 changelogs/fragments/60410-search-project-in-domain.yml diff --git a/changelogs/fragments/60410-search-project-in-domain.yml b/changelogs/fragments/60410-search-project-in-domain.yml new file mode 100644 index 00000000000..0f08298da8d --- /dev/null +++ b/changelogs/fragments/60410-search-project-in-domain.yml @@ -0,0 +1,2 @@ +bugfixes: + - os_user - when domain is provided, default_project will be taken from this domain. diff --git a/lib/ansible/modules/cloud/openstack/os_user.py b/lib/ansible/modules/cloud/openstack/os_user.py index 00e44a9214b..93e0351b93c 100644 --- a/lib/ansible/modules/cloud/openstack/os_user.py +++ b/lib/ansible/modules/cloud/openstack/os_user.py @@ -172,8 +172,8 @@ def _get_domain_id(cloud, domain): return domain_id -def _get_default_project_id(cloud, default_project, module): - project = cloud.get_project(default_project) +def _get_default_project_id(cloud, default_project, domain_id, module): + project = cloud.get_project(default_project, domain_id=domain_id) if not project: module.fail_json(msg='Default project %s is not valid' % default_project) @@ -224,7 +224,7 @@ def main(): module.fail_json(msg=msg) default_project_id = None if default_project: - default_project_id = _get_default_project_id(cloud, default_project, module) + default_project_id = _get_default_project_id(cloud, default_project, domain_id, module) if user is None: if description is not None: