diff options
author | Jeff McCune <jeff@puppetlabs.com> | 2012-11-27 16:22:11 -0800 |
---|---|---|
committer | Jeff McCune <jeff@puppetlabs.com> | 2012-11-27 16:22:11 -0800 |
commit | aa1e743e385d7f7b1a4e948564e03231ab535e97 (patch) | |
tree | 07f35bdc5f79201f3387424e940e95b5629580e9 /lib/puppet/parser | |
parent | 276abac257e750debe8502e67070f57bc8c79c3a (diff) | |
parent | 965245eb9755374a3f7d94f2f2b2172e024234c0 (diff) | |
download | puppet-stdlib-aa1e743e385d7f7b1a4e948564e03231ab535e97.tar.gz puppet-stdlib-aa1e743e385d7f7b1a4e948564e03231ab535e97.tar.bz2 |
Merge branch '2.x' into 3.x
* 2.x:
(Maint) Add spec/functions to rake test task
Add example behaviors for ensure_packages() function
Add an ensure_packages function.
Conflicts:
Rakefile
Diffstat (limited to 'lib/puppet/parser')
-rw-r--r-- | lib/puppet/parser/functions/ensure_packages.rb | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/puppet/parser/functions/ensure_packages.rb b/lib/puppet/parser/functions/ensure_packages.rb new file mode 100644 index 0000000..450ea02 --- /dev/null +++ b/lib/puppet/parser/functions/ensure_packages.rb @@ -0,0 +1,24 @@ +# +# ensure_packages.rb +# +require 'puppet/parser/functions' + +module Puppet::Parser::Functions + newfunction(:ensure_packages, :type => :statement, :doc => <<-EOS +Takes a list of packages and only installs them if they don't already exist. + EOS + ) do |arguments| + + raise(Puppet::ParseError, "ensure_packages(): Wrong number of arguments " + + "given (#{arguments.size} for 1)") if arguments.size != 1 + raise(Puppet::ParseError, "ensure_packages(): Requires array " + + "given (#{arguments[0].class})") if !arguments[0].kind_of?(Array) + + Puppet::Parser::Functions.function(:ensure_resource) + arguments[0].each { |package_name| + function_ensure_resource(['package', package_name, {'ensure' => 'present' } ]) + } + end +end + +# vim: set ts=2 sw=2 et : |