+ if filter_q.get("domain_name"):
+ filter_domain = self._get_domain_id(filter_q["domain_name"], fail_if_not_found=False)
+ # If domain is not found, use the same name to obtain an empty list
+ filter_domain = filter_domain or filter_q["domain_name"]
+ if filter_q.get("domain_id"):
+ filter_domain = filter_q["domain_id"]
+
+ users = self.keystone.users.list(name=filter_name, domain=filter_domain)
+ # get users from user_domain_name_list[1:], because it will not be provided in case of LDAP
+ if filter_domain is None and len(self.user_domain_name_list) > 1:
+ for user_domain in self.user_domain_name_list[1:]:
+ domain_id = self._get_domain_id(user_domain, fail_if_not_found=False)
+ if not domain_id:
+ continue
+ # find if users of this domain are already provided. In this case ignore
+ for u in users:
+ if u.domain_id == domain_id:
+ break
+ else:
+ users += self.keystone.users.list(name=filter_name, domain=domain_id)
+
+ # if filter name matches a user id, provide it also
+ if filter_name:
+ try:
+ user_obj = self.keystone.users.get(filter_name)
+ if user_obj not in users:
+ users.append(user_obj)
+ except Exception:
+ pass
+