Add support to hashes for has_role
authorTollef Fog Heen <tfheen@err.no>
Fri, 2 Feb 2018 09:18:00 +0000 (10:18 +0100)
committerTollef Fog Heen <tfheen@err.no>
Fri, 2 Feb 2018 09:18:00 +0000 (10:18 +0100)
In addition to supporting

roles:
  foo:
    - host1
    - host2
    - host3

Add support for:

roles:
  foo:
    host1:
      k1: v1
    host2: ~

as well.

modules/puppetmaster/lib/puppet/parser/functions/has_role.rb

index 5c1af8e..427440f 100644 (file)
@@ -7,11 +7,14 @@ module Puppet::Parser::Functions
         err "Failed to look up missing role #{role}"
         return false
       end
-      return roles[role].map{ |k|
-        case k
-          when Hash then k.keys.first
-          else k
-        end
-      }.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