]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/keystone/lib/puppet/provider/keystone_role/openstack.rb
b3bd856217c237a276fd8e710b0a3ec87977a59b
[dsa-puppet.git] / 3rdparty / modules / keystone / lib / puppet / provider / keystone_role / openstack.rb
1 require 'puppet/provider/keystone'
2
3 Puppet::Type.type(:keystone_role).provide(
4   :openstack,
5   :parent => Puppet::Provider::Keystone
6 ) do
7
8   desc 'Provider for keystone roles.'
9
10   def create
11     properties = []
12     @instance = request('role', 'create', resource[:name], resource[:auth], properties)
13   end
14
15   def exists?
16     ! instance(resource[:name]).empty?
17   end
18
19   def destroy
20     request('role', 'delete', resource[:name], resource[:auth])
21   end
22
23   def id
24     instance(resource[:name])[:id]
25   end
26
27   def self.instances
28     list = request('role', 'list', nil, nil)
29     list.collect do |role|
30       new(
31         :name        => role[:name],
32         :ensure      => :present,
33         :id          => role[:id]
34       )
35     end
36   end
37
38   def instances
39     instances = request('role', 'list', nil, resource[:auth])
40     instances.collect do |role|
41       {
42         :name        => role[:name],
43         :id          => role[:id]
44       }
45     end
46   end
47
48   def instance(name)
49     @instance ||= instances.select { |instance| instance[:name] == name }.first || {}
50   end
51
52 end