Merge "new option manage_password for keystone_user"

This commit is contained in:
Jenkins 2014-12-10 15:07:41 +00:00 committed by Gerrit Code Review
commit c1a335eebf
3 changed files with 52 additions and 6 deletions

View File

@ -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

View File

@ -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

View File

@ -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