Small changes. Mainly to formatting of the help provided.

Signed-off-by: Krzysztof Wilczynski <krzysztof.wilczynski@linux.com>
This commit is contained in:
Krzysztof Wilczynski 2011-04-23 01:56:30 +01:00
parent 54b0d37bac
commit 0b1aab2ed5
2 changed files with 32 additions and 31 deletions

37
fact.rb
View file

@ -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|

View file

@ -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