Merge "new option manage_password for keystone_user"
This commit is contained in:
commit
c1a335eebf
@ -95,7 +95,9 @@ Puppet::Type.type(:keystone_user).provide(
|
||||
end
|
||||
|
||||
def password=(value)
|
||||
auth_keystone('user-password-update', '--pass', value, user_hash[resource[:name]][:id])
|
||||
if resource[:manage_password] == 'True'
|
||||
auth_keystone('user-password-update', '--pass', value, user_hash[resource[:name]][:id])
|
||||
end
|
||||
end
|
||||
|
||||
def tenant
|
||||
@ -135,6 +137,14 @@ Puppet::Type.type(:keystone_user).provide(
|
||||
)
|
||||
end
|
||||
|
||||
def manage_password
|
||||
user_hash[resource[:name]][:manage_password]
|
||||
end
|
||||
|
||||
def manage_password=(value)
|
||||
user_hash[resource[:name]][:manage_password]
|
||||
end
|
||||
|
||||
def id
|
||||
user_hash[resource[:name]][:id]
|
||||
end
|
||||
@ -145,15 +155,18 @@ Puppet::Type.type(:keystone_user).provide(
|
||||
hash = {}
|
||||
list_keystone_objects('user', 4).each do |user|
|
||||
password = 'nil'
|
||||
manage_password = 'True',
|
||||
hash[user[1]] = {
|
||||
:id => user[0],
|
||||
:enabled => user[2],
|
||||
:email => user[3],
|
||||
:name => user[1],
|
||||
:password => password,
|
||||
:id => user[0],
|
||||
:enabled => user[2],
|
||||
:email => user[3],
|
||||
:name => user[1],
|
||||
:password => password,
|
||||
:manage_password => manage_password,
|
||||
}
|
||||
end
|
||||
hash
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
@ -62,6 +62,14 @@ Puppet::Type.newtype(:keystone_user) do
|
||||
end
|
||||
end
|
||||
|
||||
newproperty(:manage_password) do
|
||||
newvalues(/(t|T)rue/, /(f|F)alse/)
|
||||
defaultto('True')
|
||||
munge do |value|
|
||||
value.to_s.capitalize
|
||||
end
|
||||
end
|
||||
|
||||
autorequire(:keystone_tenant) do
|
||||
self[:tenant]
|
||||
end
|
||||
|
@ -50,4 +50,29 @@ describe provider_class do
|
||||
end
|
||||
end
|
||||
|
||||
describe 'when updating a user with unmanaged password' do
|
||||
let :resource do
|
||||
Puppet::Type::Keystone_user.new(
|
||||
{
|
||||
:name => 'foo',
|
||||
:ensure => 'present',
|
||||
:enabled => 'True',
|
||||
:tenant => 'foo2',
|
||||
:email => 'foo@foo.com',
|
||||
:password => 'passwd',
|
||||
:manage_password => 'False',
|
||||
}
|
||||
)
|
||||
end
|
||||
|
||||
let :provider do
|
||||
provider_class.new(resource)
|
||||
end
|
||||
|
||||
it 'should not call user-password-update to change password' do
|
||||
provider.expects(:auth_keystone).with('user-password-update', '--pass', 'newpassword', 'id').times(0)
|
||||
provider.password=('newpassword')
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user