X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=3rdparty%2Fmodules%2Fkeystone%2Flib%2Fpuppet%2Fprovider%2Fkeystone_role%2Fopenstack.rb;h=b15462047d4c0626a9d5ad33c4c8fd00134abf69;hb=71a236efd9f45828d875a0a5fd025108bb1dcada;hp=b3bd856217c237a276fd8e710b0a3ec87977a59b;hpb=b8fa2c1a5ec9dbcd1d2f9e9b41afdde4c603aa35;p=dsa-puppet.git diff --git a/3rdparty/modules/keystone/lib/puppet/provider/keystone_role/openstack.rb b/3rdparty/modules/keystone/lib/puppet/provider/keystone_role/openstack.rb index b3bd8562..b1546204 100644 --- a/3rdparty/modules/keystone/lib/puppet/provider/keystone_role/openstack.rb +++ b/3rdparty/modules/keystone/lib/puppet/provider/keystone_role/openstack.rb @@ -7,25 +7,33 @@ Puppet::Type.type(:keystone_role).provide( desc 'Provider for keystone roles.' - def create - properties = [] - @instance = request('role', 'create', resource[:name], resource[:auth], properties) + @credentials = Puppet::Provider::Openstack::CredentialsV2_0.new + + def initialize(value={}) + super(value) + @property_flush = {} end - def exists? - ! instance(resource[:name]).empty? + def create + self.class.request('role', 'create', name) + @property_hash[:ensure] = :present end def destroy - request('role', 'delete', resource[:name], resource[:auth]) + self.class.request('role', 'delete', @property_hash[:id]) + @property_hash.clear + end + + def exists? + @property_hash[:ensure] == :present end def id - instance(resource[:name])[:id] + @property_hash[:id] end def self.instances - list = request('role', 'list', nil, nil) + list = request('role', 'list') list.collect do |role| new( :name => role[:name], @@ -35,18 +43,12 @@ Puppet::Type.type(:keystone_role).provide( end end - def instances - instances = request('role', 'list', nil, resource[:auth]) - instances.collect do |role| - { - :name => role[:name], - :id => role[:id] - } + def self.prefetch(resources) + roles = instances + resources.keys.each do |name| + if provider = roles.find{ |role| role.name == name } + resources[name].provider = provider + end end end - - def instance(name) - @instance ||= instances.select { |instance| instance[:name] == name }.first || {} - end - end