]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/keystone/spec/classes/keystone_roles_admin_spec.rb
Update to Kilo
[dsa-puppet.git] / 3rdparty / modules / keystone / spec / classes / keystone_roles_admin_spec.rb
1 require 'spec_helper'
2 describe 'keystone::roles::admin' do
3
4   describe 'with only the required params set' do
5
6     let :params do
7       {
8         :email          => 'foo@bar',
9         :password       => 'ChangeMe',
10         :service_tenant => 'services'
11       }
12     end
13
14     it { is_expected.to contain_keystone_tenant('services').with(
15       :ensure      => 'present',
16       :enabled     => true,
17       :description => 'Tenant for the openstack services'
18     )}
19     it { is_expected.to contain_keystone_tenant('openstack').with(
20       :ensure      => 'present',
21       :enabled     => true,
22       :description => 'admin tenant'
23     )}
24     it { is_expected.to contain_keystone_user('admin').with(
25       :ensure                 => 'present',
26       :enabled                => true,
27       :tenant                 => 'openstack',
28       :email                  => 'foo@bar',
29       :password               => 'ChangeMe',
30       :ignore_default_tenant  => 'false'
31     )}
32     it { is_expected.to contain_keystone_role('admin').with_ensure('present') }
33     it { is_expected.to contain_keystone_user_role('admin@openstack').with(
34       :roles  => ['admin'],
35       :ensure => 'present'
36     )}
37
38   end
39
40   describe 'when overriding optional params' do
41
42     let :params do
43       {
44         :admin                  => 'admin',
45         :email                  => 'foo@baz',
46         :password               => 'foo',
47         :admin_tenant           => 'admin',
48         :admin_roles            => ['admin', 'heat_stack_owner'],
49         :service_tenant         => 'foobar',
50         :ignore_default_tenant  => 'true',
51         :admin_tenant_desc      => 'admin something else',
52         :service_tenant_desc    => 'foobar description',
53       }
54     end
55
56     it { is_expected.to contain_keystone_tenant('foobar').with(
57       :ensure      => 'present',
58       :enabled     => true,
59       :description => 'foobar description'
60     )}
61     it { is_expected.to contain_keystone_tenant('admin').with(
62       :ensure      => 'present',
63       :enabled     => true,
64       :description => 'admin something else'
65     )}
66     it { is_expected.to contain_keystone_user('admin').with(
67       :ensure                 => 'present',
68       :enabled                => true,
69       :tenant                 => 'admin',
70       :email                  => 'foo@baz',
71       :password               => 'foo',
72       :ignore_default_tenant  => 'true'
73     )}
74     it { is_expected.to contain_keystone_user_role('admin@admin').with(
75       :roles  => ['admin', 'heat_stack_owner'],
76       :ensure => 'present'
77     )}
78
79   end
80
81   describe 'when disabling user configuration' do
82     before do
83       let :params do
84         {
85           :configure_user => false
86         }
87       end
88
89       it { is_expected.to_not contain_keystone_user('keystone') }
90       it { is_expected.to contain_keystone_user_role('keystone@openstack') }
91     end
92   end
93
94   describe 'when disabling user and role configuration' do
95     before do
96       let :params do
97         {
98           :configure_user      => false,
99           :configure_user_role => false
100         }
101       end
102
103       it { is_expected.to_not contain_keystone_user('keystone') }
104       it { is_expected.to_not contain_keystone_user_role('keystone@openstack') }
105     end
106   end
107
108   describe 'when specifying admin_user_domain and admin_project_domain' do
109     let :params do
110       {
111         :email                => 'foo@bar',
112         :password             => 'ChangeMe',
113         :admin_tenant         => 'admin_tenant',
114         :admin_user_domain    => 'admin_user_domain',
115         :admin_project_domain => 'admin_project_domain',
116       }
117     end
118     it { is_expected.to contain_keystone_user('admin').with(
119       :domain => 'admin_user_domain',
120       :tenant => 'admin_tenant'
121     )}
122     it { is_expected.to contain_keystone_tenant('admin_tenant').with(:domain => 'admin_project_domain') }
123     it { is_expected.to contain_keystone_domain('admin_user_domain') }
124     it { is_expected.to contain_keystone_domain('admin_project_domain') }
125
126   end
127
128   describe 'when specifying admin_user_domain and admin_project_domain' do
129     let :params do
130       {
131         :email                => 'foo@bar',
132         :password             => 'ChangeMe',
133         :admin_tenant         => 'admin_tenant::admin_project_domain',
134         :admin_user_domain    => 'admin_user_domain',
135         :admin_project_domain => 'admin_project_domain',
136       }
137     end
138     it { is_expected.to contain_keystone_user('admin').with(
139       :domain => 'admin_user_domain',
140       :tenant => 'admin_tenant::admin_project_domain'
141     )}
142     it { is_expected.to contain_keystone_tenant('admin_tenant::admin_project_domain').with(:domain => 'admin_project_domain') }
143     it { is_expected.to contain_keystone_domain('admin_user_domain') }
144     it { is_expected.to contain_keystone_domain('admin_project_domain') }
145
146   end
147
148   describe 'when specifying a service domain' do
149     let :params do
150       {
151         :email                  => 'foo@bar',
152         :password               => 'ChangeMe',
153         :service_tenant         => 'service_project',
154         :service_project_domain => 'service_domain'
155       }
156     end
157     it { is_expected.to contain_keystone_tenant('service_project').with(:domain => 'service_domain') }
158     it { is_expected.to contain_keystone_domain('service_domain') }
159
160   end
161
162   describe 'when specifying a service domain and service tenant domain' do
163     let :params do
164       {
165         :email                  => 'foo@bar',
166         :password               => 'ChangeMe',
167         :service_tenant         => 'service_project::service_domain',
168         :service_project_domain => 'service_domain'
169       }
170     end
171     it { is_expected.to contain_keystone_tenant('service_project::service_domain').with(:domain => 'service_domain') }
172     it { is_expected.to contain_keystone_domain('service_domain') }
173
174   end
175
176 end