File tree 1 file changed +6
-6
lines changed
lib/puppet/provider/dsc_base_provider
1 file changed +6
-6
lines changed Original file line number Diff line number Diff line change @@ -682,16 +682,16 @@ def mandatory_set_attributes(context)
682
682
context . type . attributes . select { |_attribute , properties | properties [ :mandatory_for_set ] } . keys
683
683
end
684
684
685
- # Parses the DSC resource type definition to retrieve the names of any attributes which are specifed as required strings
686
- # This is used to ensure that any nil values are converted to empty strings to match puppets expecetd value
685
+ # Parses the DSC resource type definition to retrieve the names of any attributes which are specified as required strings
686
+ # This is used to ensure that any nil values are converted to empty strings to match puppets expeceted value
687
687
# @param context [Object] the Puppet runtime context to operate in and send feedback to
688
688
# @param data [Hash] the hash of properties returned from the DSC resource
689
689
# @return [Hash] returns a data hash with any nil values converted to empty strings
690
690
def stringify_nil_attributes ( context , data )
691
- nil_strings = data . select { |_name , value | value . nil? } . keys
692
- string_attrs = context . type . attributes . select { | _name , properties | properties [ :type ] == 'String' } . keys
693
- string_attrs . each do | attribute |
694
- data [ attribute ] = '' if nil_strings . include? ( attribute )
691
+ nil_attributes = data . select { |_name , value | value . nil? } . keys
692
+ nil_attributes . each do | nil_attr |
693
+ attribute_type = context . type . attributes [ nil_attr ] [ :type ]
694
+ data [ nil_attr ] = '' if ( attribute_type . start_with? ( 'Optional[Enum[' , 'Enum[' ) && enum_values ( context , nil_attr ) . include? ( '' ) ) || attribute_type == 'String'
695
695
end
696
696
data
697
697
end
You can’t perform that action at this time.
0 commit comments