X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=3rdparty%2Fmodules%2Frabbitmq%2Flib%2Fpuppet%2Ftype%2Frabbitmq_user.rb;h=9fda2c29d3a229dacdf95c7ef78b7354b744e321;hb=94a8783f522bbf2996cb8a59b977dea583e8b0c7;hp=baf4795851e954bef96b5c7b1a423bd405db6b23;hpb=e107504bce7d9b21cc301124fc7c39fdb0762374;p=mirror%2Fdsa-puppet.git diff --git a/3rdparty/modules/rabbitmq/lib/puppet/type/rabbitmq_user.rb b/3rdparty/modules/rabbitmq/lib/puppet/type/rabbitmq_user.rb index baf479585..9fda2c29d 100644 --- a/3rdparty/modules/rabbitmq/lib/puppet/type/rabbitmq_user.rb +++ b/3rdparty/modules/rabbitmq/lib/puppet/type/rabbitmq_user.rb @@ -1,5 +1,24 @@ Puppet::Type.newtype(:rabbitmq_user) do - desc 'Native type for managing rabbitmq users' + desc <<-DESC +Native type for managing rabbitmq users + +@example query all current users + $ puppet resource rabbitmq_user + +@example Configure a user, dan + rabbitmq_user { 'dan': + admin => true, + password => 'bar', + } + +@example Optional parameter tags will set further rabbitmq tags like monitoring, policymaker, etc. + To set the administrator tag use admin-flag. + rabbitmq_user { 'dan': + admin => true, + password => 'bar', + tags => ['monitoring', 'tag1'], + } +DESC ensurable do defaultto(:present) @@ -13,27 +32,25 @@ Puppet::Type.newtype(:rabbitmq_user) do autorequire(:service) { 'rabbitmq-server' } - newparam(:name, :namevar => true) do + newparam(:name, namevar: true) do desc 'Name of user' - newvalues(/^\S+$/) + newvalues(%r{^\S+$}) end newproperty(:password) do desc 'User password to be set *on creation* and validated each run' - def insync?(is) - provider.check_password + def insync?(_is) + provider.check_password(should) end - def set(value) - provider.change_password - end - def change_to_s(current, desired) - "password has been changed" + + def change_to_s(_current, _desired) + 'password has been changed' end end newproperty(:admin) do desc 'whether or not user should be an admin' - newvalues(/true|false/) + newvalues(%r{true|false}) munge do |value| # converting to_s in case its a boolean value.to_s.to_sym @@ -41,45 +58,25 @@ Puppet::Type.newtype(:rabbitmq_user) do defaultto :false end - newproperty(:tags, :array_matching => :all) do + newproperty(:tags, array_matching: :all) do desc 'additional tags for the user' validate do |value| - unless value =~ /^\S+$/ + unless value =~ %r{^\S+$} raise ArgumentError, "Invalid tag: #{value.inspect}" end - if value == "administrator" - raise ArgumentError, "must use admin property instead of administrator tag" + if value == 'administrator' + raise ArgumentError, 'must use admin property instead of administrator tag' end end defaultto [] def insync?(is) - self.is_to_s(is) == self.should_to_s + is.sort == should.sort end - def is_to_s(currentvalue = @is) - if currentvalue - "[#{currentvalue.sort.join(', ')}]" - else - '[]' - end + def should_to_s(value) + Array(value) end - - def should_to_s(newvalue = @should) - if newvalue - "[#{newvalue.sort.join(', ')}]" - else - '[]' - end - end - end - - validate do - if self[:ensure] == :present and ! self[:password] - raise ArgumentError, 'must set password when creating user' unless self[:password] - end - end - end