X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=modules%2Froles%2Ftemplates%2Fstatic-mirroring%2Fstatic-components.conf.erb;h=117828e0c6bdaf9852701b91c0a24805b607e6e2;hb=540105b4935b33f9805206bf78a143f778292418;hp=56a822f2314865dcbc0854422caa89a8a5cc4933;hpb=6b4b367c4bad827e3917fc6622e01f847f49ce14;p=mirror%2Fdsa-puppet.git diff --git a/modules/roles/templates/static-mirroring/static-components.conf.erb b/modules/roles/templates/static-mirroring/static-components.conf.erb index 56a822f23..117828e0c 100644 --- a/modules/roles/templates/static-mirroring/static-components.conf.erb +++ b/modules/roles/templates/static-mirroring/static-components.conf.erb @@ -15,15 +15,23 @@ config = YAML.load(File.open('/etc/puppet/modules/roles/misc/static-components.y mirrors = scope.lookupvar('site::roles')['static_mirror'] config['components'].each_pair do |component, conf| - %w{exclude-mirrors extra-push}.each do |key| + %w{exclude-mirrors extra-push limit-mirrors}.each do |key| conf[key] = [] unless conf.has_key?(key) end srchost, srcpath = conf['source'].split(':', 2) config['mirrors'].each do |mirror, mc| - if mirrors.include?(mirror) - if mc.has_key?('components-include') and not mc['components-include'].include?(component) + next unless mirrors.include?(mirror) + + if mc.has_key?('components-include') and not mc['components-include'].include?(component) + conf['exclude-mirrors'] << mirror + end + end + if conf['limit-mirrors'].size > 0 + mirrors.each do |mirror| + if not conf['limit-mirrors'].include?(mirror) + next if conf['exclude-mirrors'].include?(mirror) # if it's already excluded, do not add it again conf['exclude-mirrors'] << mirror end end