Try to avoid reserved site keyword
[mirror/dsa-puppet.git] / modules / puppetmaster / lib / puppet / parser / functions / has_role.rb
index ecb3cab..eef31b9 100644 (file)
@@ -1,12 +1,20 @@
 module Puppet::Parser::Functions
   newfunction(:has_role, :type => :rvalue) do |args|
-      role = args.shift
-      roles = lookupvar('site::roles')
+      role = args[0]
+      roles = lookupvar('deprecated::roles')
       fqdn = lookupvar('fqdn')
       if not roles.include?(role)
         err "Failed to look up missing role #{role}"
         return false
       end
-      return roles[role].include?(fqdn)
-    end
+      case roles[role]
+        when Hash then roles[role].include?(fqdn)
+        else roles[role].map{ |k|
+               case k
+                 when Hash then k.keys.first
+                 else k
+               end
+             }.include?(fqdn)
+      end
+  end
 end