1 require 'puppet/provider/keystone'
3 Puppet::Type.type(:keystone_service).provide(
5 :parent => Puppet::Provider::Keystone
8 desc "Provider to manage keystone services."
10 @credentials = Puppet::Provider::Openstack::CredentialsV2_0.new
12 def initialize(value={})
19 if resource[:description]
20 properties << '--description'
21 properties << resource[:description]
23 raise(Puppet::Error, 'The service type is mandatory') unless resource[:type]
24 properties << '--type'
25 properties << resource[:type]
26 properties << resource[:name]
27 self.class.request('service', 'create', properties)
28 @property_hash[:ensure] = :present
32 @property_hash[:ensure] == :present
36 self.class.request('service', 'delete', @property_hash[:id])
40 def description=(value)
41 @property_flush[:description] = value
45 @property_hash[:description]
49 @property_flush[:type] = value
61 list = request('service', 'list', '--long')
62 list.collect do |service|
64 :name => service[:name],
66 :type => service[:type],
67 :description => service[:description],
73 def self.prefetch(resources)
75 resources.keys.each do |name|
76 if provider = services.find{ |service| service.name == name }
77 resources[name].provider = provider
83 if ! @property_flush.empty?