]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/keystone/lib/puppet/provider/keystone_role/openstack.rb
try with modules from master
[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   @credentials = Puppet::Provider::Openstack::CredentialsV2_0.new
11
12   def initialize(value={})
13     super(value)
14     @property_flush = {}
15   end
16
17   def create
18     self.class.request('role', 'create', name)
19     @property_hash[:ensure] = :present
20   end
21
22   def destroy
23     self.class.request('role', 'delete', @property_hash[:id])
24     @property_hash.clear
25   end
26
27   def exists?
28     @property_hash[:ensure] == :present
29   end
30
31   def id
32     @property_hash[:id]
33   end
34
35   def self.instances
36     list = request('role', 'list')
37     list.collect do |role|
38       new(
39         :name        => role[:name],
40         :ensure      => :present,
41         :id          => role[:id]
42       )
43     end
44   end
45
46   def self.prefetch(resources)
47     roles = instances
48     resources.keys.each do |name|
49        if provider = roles.find{ |role| role.name == name }
50         resources[name].provider = provider
51       end
52     end
53   end
54 end