aboutsummaryrefslogtreecommitdiff
path: root/modules/base_installation/lib/puppet/parser/functions/find_host.rb
diff options
context:
space:
mode:
Diffstat (limited to 'modules/base_installation/lib/puppet/parser/functions/find_host.rb')
-rw-r--r--modules/base_installation/lib/puppet/parser/functions/find_host.rb18
1 files changed, 18 insertions, 0 deletions
diff --git a/modules/base_installation/lib/puppet/parser/functions/find_host.rb b/modules/base_installation/lib/puppet/parser/functions/find_host.rb
new file mode 100644
index 0000000..79aae5c
--- /dev/null
+++ b/modules/base_installation/lib/puppet/parser/functions/find_host.rb
@@ -0,0 +1,18 @@
1module Puppet::Parser::Functions
2 newfunction(:find_host, :type => :rvalue, :doc => <<-EOS
3This function searches through the hosts to find the one with matching cn
4 EOS
5 ) do |arguments|
6
7 if (arguments.size != 2) then
8 raise(Puppet::ParseError, "grep(): Wrong number of arguments given #{arguments.size} for 2")
9 end
10
11 hosts = arguments[0]
12 cn = arguments[1]
13
14 hosts.find { |host| host["cn"].any? { |cn_| cn_ == cn } }
15 end
16end
17
18# vim: set ts=2 sw=2 et :