Attempt to configure an apache vhost for a static component only if it exists on...
[mirror/dsa-puppet.git] / modules / puppetmaster / lib / puppet / parser / functions / has_static_component.rb
1 module Puppet::Parser::Functions
2   newfunction(:has_static_component, :type => :rvalue) do |args|
3       static_component = args[0]
4       fqdn = lookupvar('fqdn')
5
6       cfg = YAML.load(File.open('/etc/puppet/modules/roles/misc/static-components.yaml').read)
7
8       if cfg.include?('mirrors')
9         if cfg['mirrors'].include?(fqdn)
10           if cfg['mirrors'][fqdn].include?('components-include')
11             if cfg['mirrors'][fqdn]['components-include'].include?(static_component)
12               return true
13             else
14               return false
15             end
16           end
17         end
18       end
19
20       if cfg.include?('components')
21         if cfg['components'].include?(static_component)
22           if cfg['components'][static_component].include?('exclude-mirrors')
23             if cfg['components'][static_component]['exclude-mirrors'].include?(fqdn)
24               return false
25             else
26               return true
27             end
28           else
29             return true
30           end
31         end
32       end
33
34       err "Static component #{static_component} appears to be not defined"
35       return false
36   end
37 end