Enforce supported types for hash properties

Change-Id: I39f9cef7007a1b3e47cf53fcec602a87b9ebb81d
This commit is contained in:
Takashi Kajinami 2023-11-26 02:28:46 +09:00
parent 46ba57cd7d
commit 898b5da4c8
2 changed files with 17 additions and 8 deletions

View File

@ -106,9 +106,12 @@ Puppet::Type.newtype(:nova_aggregate) do
validate do |value|
if value.is_a?(Hash)
return true
end
value.split(",").each do |kv|
raise ArgumentError, "Key/value pairs must be separated by an =" unless value.include?("=")
elsif value.is_a?(String)
value.split(",").each do |kv|
raise ArgumentError, "Key/value pairs must be separated by an =" unless value.include?("=")
end
else
raise ArgumentError, "Invalid metadata #{value}. Requires a String or a Hash, not a #{value.class}"
end
end
end
@ -119,8 +122,10 @@ Puppet::Type.newtype(:nova_aggregate) do
munge do |value|
if value.is_a?(Array)
return value
else
elsif value.is_a?(String)
return value.split(",").map{|el| el.strip()}.sort
else
raise ArgumentError, "Invalid hosts #{value}. Requires a String or an Array, not a #{value.class}"
end
end
end

View File

@ -145,10 +145,14 @@ Puppet::Type.newtype(:nova_flavor) do
end
validate do |value|
return true if value.is_a? Hash
value.split(',').each do |property|
raise ArgumentError, "Key/value pairs should be separated by an =" unless property.include?('=')
if value.is_a?(Hash)
return true
elsif value.is_a?(String)
value.split(',').each do |property|
raise ArgumentError, "Key/value pairs should be separated by an =" unless property.include?('=')
end
else
raise ArgumentError, "Invalid properties #{value}. Requires a String or a Hash, not a #{value.class}"
end
end
end