class Puppet::ResourceApi::Property
Class containing property functionality for ResourceApi.
Public Class Methods
This initialize takes arguments and sets up new property. @param type_name the name of the Puppet Type @param data_type the data type of property instance @param attribute_name the name of attribue of the property @param resource_hash the resource hash instance which is passed to the parent class.
# File lib/puppet/resource_api/property.rb, line 14 def initialize(type_name, data_type, attribute_name, resource_hash) @type_name = type_name @data_type = data_type @attribute_name = attribute_name # Define class method insync?(is) if the name is :ensure def_insync? if @attribute_name == :ensure && self.class != Puppet::ResourceApi::Property # Pass resource to parent Puppet class. super(resource_hash) end
Public Instance Methods
stop puppet from trying to call into the provider when no pre-defined values have been specified “This is not the provider you are looking for.” – Obi-Wan Kaniesobi.
# File lib/puppet/resource_api/property.rb, line 85 def call_provider(_value); end
method overloaded only for the :ensure property, add option to check if the #rs_value matches is. Only if the class is child of Puppet::ResourceApi::Property.
# File lib/puppet/resource_api/property.rb, line 72 def def_insync? define_singleton_method(:insync?) { |is| rs_value.to_s == is.to_s } end
used internally @returns the final mungified value of this property
# File lib/puppet/resource_api/property.rb, line 65 def rs_value @should ? @should.first : @should end
This method returns value of the property. @return [type] the property value
# File lib/puppet/resource_api/property.rb, line 26 def should if @attribute_name == :ensure && rs_value.is_a?(String) rs_value.to_sym elsif rs_value == false # work around https://tickets.puppetlabs.com/browse/PUP-2368 :false # rubocop:disable Lint/BooleanSymbol elsif rs_value == true # work around https://tickets.puppetlabs.com/browse/PUP-2368 :true # rubocop:disable Lint/BooleanSymbol else rs_value end end
This method sets and returns value of the property and sets @shouldorig. @param value the value to be set and clean @return [type] the property value
# File lib/puppet/resource_api/property.rb, line 43 def should=(value) @shouldorig = value if @attribute_name == :ensure value = value.to_s end # Puppet requires the @should value to always be stored as an array. We do not use this # for anything else # @see Puppet::Property.should=(value) @should = [ Puppet::ResourceApi::DataTypeHandling.mungify( @data_type, value, "#{@type_name}.#{@attribute_name}", Puppet::ResourceApi.caller_is_resource_app?, ), ] end