70 lines
2.1 KiB
Ruby
70 lines
2.1 KiB
Ruby
Puppet::Type.newtype(:swift_storage_policy) do
|
|
ensurable
|
|
|
|
newparam(:name, :namevar => :true) do
|
|
desc 'Storage policy id digit'
|
|
validate do |value|
|
|
value_match = /\d+/.match(value)
|
|
next unless value_match.nil? || !value_match[0].eql?(value)
|
|
fail('swift_storage_policy name must be a positive integer')
|
|
end
|
|
newvalues(/\d+/)
|
|
end
|
|
|
|
newproperty(:policy_name) do
|
|
desc 'Storage policy_name. Policy names are case insensitive, must contain only letters,'\
|
|
' digits or a dash and must be unique.'
|
|
validate do |value|
|
|
value_match = /[a-zA-Z\d\-]+/.match(value)
|
|
next unless value_match.nil? || !value_match[0].eql?(value)
|
|
fail('policy_name must contain only letters, digits or a dash')
|
|
end
|
|
newvalues(/[a-zA-Z\d\-]+/)
|
|
end
|
|
|
|
newproperty(:aliases) do
|
|
desc 'Storage policy aliases'
|
|
validate do |value|
|
|
value_match = /^(\s*[a-zA-Z\d\-]+\s*)(,\s*[a-zA-Z\d\-]+\s*)*$/.match(value)
|
|
next unless value_match.nil? || !value_match[0].eql?(value)
|
|
fail('aliases must contain only letters, digits or a dash in a comma separated string')
|
|
end
|
|
newvalues(/([a-zA-Z\d\-]+,\s)+/)
|
|
end
|
|
|
|
newproperty(:policy_type) do
|
|
desc 'Type of storage policy, ec or replication'
|
|
newvalues(/(replication)|(erasure_coding)/i)
|
|
end
|
|
|
|
newproperty(:default) do
|
|
desc 'Set default on storage policy'
|
|
newvalues(/(true)|(false)/)
|
|
end
|
|
|
|
newproperty(:deprecated) do
|
|
desc 'Set to yes to mark a policy as deprecated'
|
|
newvalues(/(yes)|(no)/i)
|
|
end
|
|
|
|
newproperty(:ec_type) do
|
|
desc 'Type of erasure code to use'
|
|
newvalues(/\w+/)
|
|
end
|
|
|
|
newproperty(:ec_num_data_fragments) do
|
|
desc 'The total number of fragments that will be comprised of data.'
|
|
newvalues(/\d+/)
|
|
end
|
|
|
|
newproperty(:ec_num_parity_fragments) do
|
|
desc 'The total number of fragments that will be comprised of parity'
|
|
newvalues(/\d+/)
|
|
end
|
|
|
|
newproperty(:ec_object_segment_size) do
|
|
desc 'The amount of data that will be buffered up before feeding a segment into the encoder/decoder'
|
|
newvalues(/\d+/)
|
|
end
|
|
end
|