From 0b1aab2ed584aa79c14531e5c3d1b0c8a6c00511 Mon Sep 17 00:00:00 2001 From: Krzysztof Wilczynski Date: Sat, 23 Apr 2011 01:56:30 +0100 Subject: [PATCH] Small changes. Mainly to formatting of the help provided. Signed-off-by: Krzysztof Wilczynski --- fact.rb | 37 +++++++++++++++++++------------------ load_variables.rb | 26 +++++++++++++------------- 2 files changed, 32 insertions(+), 31 deletions(-) diff --git a/fact.rb b/fact.rb index 7d170c8..95213cc 100644 --- a/fact.rb +++ b/fact.rb @@ -4,42 +4,43 @@ module Puppet::Parser::Functions newfunction(:fact, :type => :rvalue, :doc => <<-EOS -This function will retrieve fact from Facter based on the fact name -and expose it for further use within Puppet manifest file ... +This function will retrieve fact from Facter based on the fact +name and expose it for further use within Puppet manifest file ... For example: Given the following sample manifest: - define partitions { - $result = split(fact("partitions_${name}"), ',') + define partitions { + $result = split(fact("partitions_${name}"), ',') - notice $result + notice $result - partition { $result: } - } + partition { $result: } + } - define partition { - notice $name - } + define partition { + notice $name + } - $available_disks = split($disks, ',') + $available_disks = split($disks, ',') - partitions { $available_disks: } + partitions { $available_disks: } This will produce the following: - notice: Scope(Partitions[hda]): hda1 hda2 - notice: Scope(Partition[hda1]): hda1 - notice: Scope(Partition[hda2]): hda2 + notice: Scope(Partitions[hda]): hda1 hda2 + notice: Scope(Partition[hda1]): hda1 + notice: Scope(Partition[hda2]): hda2 Which allows you to avoid resorting to the following: - $fact = "partitions_${name}" - $result = split(inline_template("<%= scope.lookupvar(fact) %>"), ',') + $fact = "partitions_${name}" + $result = split(inline_template("<%= scope.lookupvar(fact) %>"), ',') -Taking out the need for using "inline_template" in the "partitions" define above. +Phasing out the need for use and abuse of the infamous inline_template in the +partitions define given above. EOS ) do |arguments| diff --git a/load_variables.rb b/load_variables.rb index a6ccc60..a5eb269 100644 --- a/load_variables.rb +++ b/load_variables.rb @@ -11,19 +11,19 @@ For example: Given following content of the data.yaml file: - --- - host1.example.com: - foo: bar - baz: quux - question: 42 - host2.example.com: - abc: def - this: that - darth: vader + --- + host1.example.com: + foo: bar + baz: quux + question: 42 + host2.example.com: + abc: def + this: that + darth: vader Then calling load_variables in Puppet manifest file as follows: - load_variables("/etc/puppet/data.yaml", $fqdn) + load_variables("/etc/puppet/data.yaml", $fqdn) Will result in addition of variables $foo, $baz and $question for matching host name as per the variable $fqdn ... @@ -32,12 +32,12 @@ Another example which uses per-host file: Given following content of the file data-host1.example.com.yaml: - --- - foo: bar + --- + foo: bar Then when we call load_variables like this: - load_variables("/etc/puppet/data-$fqdn.yaml") + load_variables("/etc/puppet/data-$fqdn.yaml") This will result in a variable $foo being added and ready for use. EOS