try again, with puppetforge modules, correctly included now
[mirror/dsa-puppet.git] / 3rdparty / modules / qpid / lib / puppet / provider / qpid_user / saslpasswd2.rb
1 Puppet::Type.type(:qpid_user).provide(:saslpasswd2) do
2
3   commands :saslpasswd2 => 'saslpasswd2'
4   optional_commands :sasldblistusers2 => 'sasldblistusers2'
5   defaultfor :feature => :posix
6
7   def self.instances
8     sasldblistusers2('-f', resource[:file]).split(/\n/)[1..-2].map do |line|
9       if line =~ /^(\S+)@(\S+):.*$/
10         new(:name => $1, :realm => $2)
11       else
12         raise Puppet::Error, "Cannot parse invalid user line: #{line}"
13       end
14     end
15   end
16
17   def create
18     if not system(%{echo "#{resource[:password]}" | saslpasswd2 -f #{resource[:file]} -u #{resource[:realm]} #{resource[:name]}})
19
20       raise Puppet::Error, "Failed to create user."
21     end
22   end
23
24   def destroy
25     saslpasswd2('-f', resource[:file], '-u', resource[:realm], '-d', resource[:name])
26   end
27
28   def exists?
29     begin
30       out = sasldblistusers2('-f', resource[:file]).split(/\n/)[1..-2].detect do |line|
31         line.match(/^#{resource[:name]}@#{resource[:realm]}:.*$/)
32       end
33     rescue
34       return false
35     end
36   end
37
38 end