class Puppet::Resource::Ral

Public Instance Methods

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

Private Instance Methods

resource_name( request ) click to toggle source
   # File lib/puppet/indirector/resource/ral.rb
59 def resource_name( request )
60   name = request.key.split('/', 2)[1]
61   name unless name == ""
62 end
type( request ) click to toggle source
   # File lib/puppet/indirector/resource/ral.rb
64 def type( request )
65   Puppet::Type.type(type_name(request)) or raise Puppet::Error, _("Could not find type %{request_type}") % { request_type: type_name(request) }
66 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
55 def type_name( request )
56   request.key.split('/', 2)[0]
57 end