class Puppet::Resource::Ral

Public Instance Methods

allow_remote_requests?() click to toggle source
   # File lib/puppet/indirector/resource/ral.rb
 8 def allow_remote_requests?
 9   false
10 end
find( request ) click to toggle source
   # File lib/puppet/indirector/resource/ral.rb
12 def find( request )
13   # find by name
14   res   = type(request).instances.find { |o| o.name == resource_name(request) }
15   res ||= type(request).new(:name => resource_name(request), :audit => type(request).properties.collect { |s| s.name })
16 
17   res.to_resource
18 end
save( request ) click to toggle source
   # File lib/puppet/indirector/resource/ral.rb
36 def save( request )
37   # In RAL-land, to "save" means to actually try to change machine state
38   res = request.instance
39   ral_res = res.to_ral
40 
41   catalog = Puppet::Resource::Catalog.new(nil, request.environment)
42   catalog.add_resource ral_res
43   transaction = catalog.apply
44 
45   [ral_res.to_resource, transaction.report]
46 end

Private Instance Methods

resource_name( request ) click to toggle source
   # File lib/puppet/indirector/resource/ral.rb
58 def resource_name( request )
59   name = request.key.split('/', 2)[1]
60   name unless name == ""
61 end
type( request ) click to toggle source
   # File lib/puppet/indirector/resource/ral.rb
63 def type( request )
64   Puppet::Type.type(type_name(request)) or raise Puppet::Error, _("Could not find type %{request_type}") % { request_type: type_name(request) }
65 end
type_name( request ) click to toggle source

{type,resource}_name: the resource name may contain slashes: File. To handle, assume the type name does not have any slashes in it, and split only on the first.

   # File lib/puppet/indirector/resource/ral.rb
54 def type_name( request )
55   request.key.split('/', 2)[0]
56 end