Enforce supported types for hash properties
Change-Id: I39f9cef7007a1b3e47cf53fcec602a87b9ebb81d
This commit is contained in:
parent
46ba57cd7d
commit
898b5da4c8
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue