puppet-openstack_extras/lib/puppet/parser/functions/validate_yum_hash.rb

60 lines
1.2 KiB
Ruby

module Puppet::Parser::Functions
yumrepo_arguments = [
'name',
'ensure',
'baseurl',
'cost',
'descr',
'enabled',
'enablegroups',
'exclude',
'failovermethod',
'gpgcheck',
'gpgkey',
'http_caching',
'include',
'includepkgs',
'keepalive',
'metadata_expire',
'metalink',
'mirrorlist',
'priority',
'protect',
'provider',
'proxy',
'proxy_password',
'proxy_username',
'repo_gpgcheck',
's3_enabled',
'skip_if_unavailable',
'sslcacert',
'sslclientcert',
'sslclientkey',
'sslverify',
'target',
'timeout'
]
newfunction(:validate_yum_hash) do |args|
if args.size > 1
raise Puppet::Error, "validate_yum_hash takes only a single argument, #{args.size} provided"
end
arg = args[0]
if not arg.kind_of?(Hash)
raise Puppet::Error, "non-hash argument provided to validate_yum_hash"
end
if arg.size > 0
arg.each do |title, params|
params.each do |param, value|
if ! yumrepo_arguments.include?(param)
raise Puppet::Error, "Parameter #{param} is not valid for the yumrepo type"
end
end
end
end
end
end