From bfafac1d99b963c0866a98bb95a6f8e2e4e7c56e Mon Sep 17 00:00:00 2001 From: Roger Luethi Date: Wed, 1 Nov 2017 10:50:35 +0100 Subject: [PATCH] Allow user creation in domain other than default For reasonably recent OpenStack releases, users are always created in a domain (by default in the aptly named 'Default' domain). With this patch, a new domain name attribute can be passed to the openstack_user's :create action in order to create a user in a specific domain. --- libraries/openstack_user.rb | 9 +++++++++ spec/user_spec.rb | 1 + 2 files changed, 10 insertions(+) diff --git a/libraries/openstack_user.rb b/libraries/openstack_user.rb index ec8d3ac..ec40b82 100644 --- a/libraries/openstack_user.rb +++ b/libraries/openstack_user.rb @@ -32,8 +32,17 @@ module OpenstackclientCookbook action :create do user = connection.users.find { |u| u.name == user_name } project = connection.projects.find { |p| p.name == project_name } + domain = connection.domains.find { |u| u.name == domain_name } if user log "User with name: \"#{user_name}\" already exists" + elsif domain + connection.users.create( + name: user_name, + domain_id: domain.id, + email: email, + default_project_id: project ? project.id : nil, + password: password + ) else connection.users.create( name: user_name, diff --git a/spec/user_spec.rb b/spec/user_spec.rb index e4226cc..b98ff1b 100644 --- a/spec/user_spec.rb +++ b/spec/user_spec.rb @@ -133,6 +133,7 @@ describe 'openstackclient_test::user' do expect(users_empty).to receive(:create) .with( name: 'myuser', + domain_id: 5, email: 'myemail', default_project_id: 42, password: 'mypassword'