|
1 | 1 | # frozen_string_literal: true |
2 | 2 |
|
3 | | -# |
4 | | -# ensure_packages.rb |
5 | | -# |
6 | 3 | module Puppet::Parser::Functions |
7 | | - newfunction(:ensure_packages, type: :statement, doc: <<-DOC |
8 | | - @summary |
9 | | - Takes a list of packages and only installs them if they don't already exist. |
10 | | -
|
11 | | - It optionally takes a hash as a second parameter that will be passed as the |
12 | | - third argument to the ensure_resource() function. |
13 | | -
|
14 | | - @return |
15 | | - install the passed packages |
16 | | - DOC |
17 | | - ) do |arguments| |
18 | | - raise(Puppet::ParseError, "ensure_packages(): Wrong number of arguments given (#{arguments.size} for 1 or 2)") if arguments.size > 2 || arguments.empty? |
19 | | - raise(Puppet::ParseError, 'ensure_packages(): Requires second argument to be a Hash') if arguments.size == 2 && !arguments[1].is_a?(Hash) |
20 | | - |
21 | | - if arguments[0].is_a?(Hash) |
22 | | - if arguments[1] |
23 | | - defaults = { 'ensure' => 'installed' }.merge(arguments[1]) |
24 | | - if defaults['ensure'] == 'present' |
25 | | - defaults['ensure'] = 'installed' |
26 | | - end |
27 | | - else |
28 | | - defaults = { 'ensure' => 'installed' } |
29 | | - end |
30 | | - |
31 | | - Puppet::Parser::Functions.function(:ensure_resources) |
32 | | - function_ensure_resources(['package', arguments[0].dup, defaults]) |
33 | | - else |
34 | | - packages = Array(arguments[0]) |
35 | | - |
36 | | - if arguments[1] |
37 | | - defaults = { 'ensure' => 'installed' }.merge(arguments[1]) |
38 | | - if defaults['ensure'] == 'present' |
39 | | - defaults['ensure'] = 'installed' |
40 | | - end |
41 | | - else |
42 | | - defaults = { 'ensure' => 'installed' } |
43 | | - end |
44 | | - |
45 | | - Puppet::Parser::Functions.function(:ensure_resource) |
46 | | - packages.each do |package_name| |
47 | | - raise(Puppet::ParseError, 'ensure_packages(): Empty String provided for package name') if package_name.empty? |
48 | | - function_ensure_resource(['package', package_name, defaults]) |
49 | | - end |
50 | | - end |
| 4 | + newfunction(:ensure_packages, type: :statement, doc: '@summary Deprecated 3x version of the `ensure_packages` function') do |arguments| |
| 5 | + # Call the 4.x version of this function in case 3.x ruby code uses this function |
| 6 | + Puppet.warn_once('deprecations', '3xfunction#ensure_packages', 'Calling function_ensure_packages via the Scope class is deprecated. Use Scope#call_function instead') |
| 7 | + call_function('ensure_packages', arguments) |
51 | 8 | end |
52 | 9 | end |
53 | | - |
54 | | -# vim: set ts=2 sw=2 et : |
0 commit comments