projects
/
mirror
/
dsa-puppet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
last few uses
[mirror/dsa-puppet.git]
/
files
/
etc
/
puppet
/
lib
/
puppet
/
parser
/
functions
/
extractnodeinfo.rb
diff --git
a/files/etc/puppet/lib/puppet/parser/functions/extractnodeinfo.rb
b/files/etc/puppet/lib/puppet/parser/functions/extractnodeinfo.rb
index
d12386f
..
19f0ca8
100644
(file)
--- a/
files/etc/puppet/lib/puppet/parser/functions/extractnodeinfo.rb
+++ b/
files/etc/puppet/lib/puppet/parser/functions/extractnodeinfo.rb
@@
-1,13
+1,23
@@
module Puppet::Parser::Functions
newfunction(:extractnodeinfo, :type => :rvalue) do |args|
module Puppet::Parser::Functions
newfunction(:extractnodeinfo, :type => :rvalue) do |args|
- nodeinfo = args[0]
- key = args[1]
+ nodeinfo = args.shift
- if nodeinfo.has_key?(key)
- return nodeinfo[key]
- else
- return "false"
+ ni = nodeinfo
+ keys_done = []
+
+ args.each do |key|
+ raise Puppet::ParseError, "nodeinfo is not a hash at #{keys_done.join('->')}" unless ni.kind_of?(Hash)
+ unless ni.has_key?(key)
+ ni = false
+ break
+ end
+ ni = ni[key]
+ keys_done << key
end
end
+ return ni
end
end
end
end
+# vim:set et:
+# vim:set sts=2 ts=2:
+# vim:set shiftwidth=2: