summaryrefslogtreecommitdiffstats
path: root/fuel/build/f_l23network/puppet/modules/l23network/lib/puppet/parser/functions/extras_to_hosts.rb
diff options
context:
space:
mode:
Diffstat (limited to 'fuel/build/f_l23network/puppet/modules/l23network/lib/puppet/parser/functions/extras_to_hosts.rb')
-rw-r--r--fuel/build/f_l23network/puppet/modules/l23network/lib/puppet/parser/functions/extras_to_hosts.rb21
1 files changed, 21 insertions, 0 deletions
diff --git a/fuel/build/f_l23network/puppet/modules/l23network/lib/puppet/parser/functions/extras_to_hosts.rb b/fuel/build/f_l23network/puppet/modules/l23network/lib/puppet/parser/functions/extras_to_hosts.rb
new file mode 100644
index 000000000..33bfad8fd
--- /dev/null
+++ b/fuel/build/f_l23network/puppet/modules/l23network/lib/puppet/parser/functions/extras_to_hosts.rb
@@ -0,0 +1,21 @@
+#
+# array_or_string_to_array.rb
+#
+
+module Puppet::Parser::Functions
+ newfunction(:extras_to_hosts, :type => :rvalue, :doc => <<-EOS
+ convert extras array passed from Astute into
+ hash for puppet `host` create_resources call
+ EOS
+ ) do |args|
+ hosts=Hash.new
+ extras=args[0]
+ extras.each do |extras|
+ hosts[extras['name']]={:ip=>extras['address'],:host_aliases=>[extras['fqdn']]}
+ notice("Generating extras host entry #{extras['name']} #{extras['address']} #{extras['fqdn']}")
+ end
+ return hosts
+ end
+end
+
+# vim: set ts=2 sw=2 et :