lib/puppet/resource_api/glue.rb in puppet-resource_api-0.10.0 vs lib/puppet/resource_api/glue.rb in puppet-resource_api-1.0.0

- old
+ new

@@ -1,39 +1,41 @@ module Puppet::ResourceApi # A trivial class to provide the functionality required to push data through the existing type/provider parts of puppet class TypeShim - attr_reader :values, :typename, :namevar + attr_reader :values, :typename, :namevar, :attr_def - def initialize(title, resource_hash, typename, namevarname) + def initialize(title, resource_hash, typename, namevarname, attr_def) # internalize and protect - needs to go deeper @values = resource_hash.dup # "name" is a privileged key @values[namevarname] = title @values.freeze @typename = typename @namevar = namevarname + @attr_def = attr_def end def to_resource - ResourceShim.new(@values, @typename, @namevar) + ResourceShim.new(@values, @typename, @namevar, @attr_def) end def name values[@namevar] end end # A trivial class to provide the functionality required to push data through the existing type/provider parts of puppet class ResourceShim - attr_reader :values, :typename, :namevar + attr_reader :values, :typename, :namevar, :attr_def - def initialize(resource_hash, typename, namevarname) + def initialize(resource_hash, typename, namevarname, attr_def) @values = resource_hash.dup.freeze # whatevs @typename = typename @namevar = namevarname + @attr_def = attr_def end def title values[@namevar] end @@ -42,10 +44,18 @@ # puts "not pruning #{args.inspect}" if args.length > 0 self end def to_manifest - (["#{@typename} { #{values[@namevar].inspect}: "] + values.keys.reject { |k| k == @namevar }.map { |k| " #{k} => #{Puppet::Parameter.format_value_for_display(values[k])}," } + ['}']).join("\n") + (["#{@typename} { #{values[@namevar].inspect}: "] + values.keys.reject { |k| k == @namevar }.map do |k| + cs = ' ' + ce = '' + if attr_def[k][:behaviour] && attr_def[k][:behaviour] == :read_only + cs = '#' + ce = ' # Read Only' + end + "#{cs} #{k} => #{Puppet::Parameter.format_value_for_display(values[k])},#{ce}" + end + ['}']).join("\n") end # Convert our resource to yaml for Hiera purposes. def to_hierayaml ([" #{values[@namevar]}: "] + values.keys.reject { |k| k == @namevar }.map { |k| " #{k}: #{Puppet::Parameter.format_value_for_display(values[k])}" }).join("\n") + "\n"