bolt 0.17.1 → 0.17.2
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of bolt might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/bolt-modules/boltlib/lib/puppet/functions/run_task.rb +25 -13
- data/lib/bolt/cli.rb +45 -15
- data/lib/bolt/config.rb +48 -132
- data/lib/bolt/executor.rb +3 -10
- data/lib/bolt/inventory.rb +15 -1
- data/lib/bolt/puppetdb.rb +11 -0
- data/lib/bolt/puppetdb/client.rb +68 -0
- data/lib/bolt/puppetdb/config.rb +76 -0
- data/lib/bolt/target.rb +5 -4
- data/lib/bolt/transport/base.rb +11 -2
- data/lib/bolt/transport/local.rb +11 -5
- data/lib/bolt/transport/orch.rb +16 -5
- data/lib/bolt/transport/ssh.rb +32 -1
- data/lib/bolt/transport/ssh/connection.rb +17 -10
- data/lib/bolt/transport/winrm.rb +18 -1
- data/lib/bolt/transport/winrm/connection.rb +15 -16
- data/lib/bolt/util.rb +15 -0
- data/lib/bolt/version.rb +1 -1
- data/lib/bolt_ext/puppetdb_inventory.rb +5 -135
- data/vendored/facter/lib/facter/ec2/rest.rb +1 -1
- data/vendored/hiera/lib/hiera/version.rb +1 -1
- data/vendored/puppet/lib/puppet/application/agent.rb +1 -3
- data/vendored/puppet/lib/puppet/application/apply.rb +2 -4
- data/vendored/puppet/lib/puppet/application/cert.rb +6 -1
- data/vendored/puppet/lib/puppet/application/device.rb +100 -13
- data/vendored/puppet/lib/puppet/application/facts.rb +5 -0
- data/vendored/puppet/lib/puppet/application/lookup.rb +11 -1
- data/vendored/puppet/lib/puppet/configurer.rb +17 -4
- data/vendored/puppet/lib/puppet/configurer/plugin_handler.rb +1 -1
- data/vendored/puppet/lib/puppet/datatypes.rb +1 -1
- data/vendored/puppet/lib/puppet/defaults.rb +1 -1
- data/vendored/puppet/lib/puppet/environments.rb +2 -2
- data/vendored/puppet/lib/puppet/error.rb +6 -3
- data/vendored/puppet/lib/puppet/external/dot.rb +0 -7
- data/vendored/puppet/lib/puppet/external/nagios/parser.rb +1 -1
- data/vendored/puppet/lib/puppet/face/config.rb +41 -8
- data/vendored/puppet/lib/puppet/face/epp.rb +30 -5
- data/vendored/puppet/lib/puppet/face/facts.rb +49 -0
- data/vendored/puppet/lib/puppet/face/help.rb +33 -35
- data/vendored/puppet/lib/puppet/face/man.rb +55 -12
- data/vendored/puppet/lib/puppet/face/parser.rb +30 -3
- data/vendored/puppet/lib/puppet/file_bucket/file.rb +0 -2
- data/vendored/puppet/lib/puppet/file_serving/base.rb +10 -10
- data/vendored/puppet/lib/puppet/functions.rb +1 -3
- data/vendored/puppet/lib/puppet/functions/alert.rb +1 -1
- data/vendored/puppet/lib/puppet/functions/all.rb +6 -6
- data/vendored/puppet/lib/puppet/functions/annotate.rb +10 -10
- data/vendored/puppet/lib/puppet/functions/any.rb +6 -6
- data/vendored/puppet/lib/puppet/functions/assert_type.rb +4 -4
- data/vendored/puppet/lib/puppet/functions/binary_file.rb +14 -2
- data/vendored/puppet/lib/puppet/functions/break.rb +31 -2
- data/vendored/puppet/lib/puppet/functions/call.rb +4 -4
- data/vendored/puppet/lib/puppet/functions/contain.rb +19 -3
- data/vendored/puppet/lib/puppet/functions/convert_to.rb +6 -5
- data/vendored/puppet/lib/puppet/functions/crit.rb +1 -1
- data/vendored/puppet/lib/puppet/functions/debug.rb +1 -1
- data/vendored/puppet/lib/puppet/functions/defined.rb +11 -9
- data/vendored/puppet/lib/puppet/functions/dig.rb +26 -2
- data/vendored/puppet/lib/puppet/functions/each.rb +8 -8
- data/vendored/puppet/lib/puppet/functions/emerg.rb +1 -1
- data/vendored/puppet/lib/puppet/functions/empty.rb +79 -0
- data/vendored/puppet/lib/puppet/functions/err.rb +1 -1
- data/vendored/puppet/lib/puppet/functions/filter.rb +7 -7
- data/vendored/puppet/lib/puppet/functions/find_file.rb +15 -1
- data/vendored/puppet/lib/puppet/functions/flatten.rb +64 -0
- data/vendored/puppet/lib/puppet/functions/hiera.rb +6 -6
- data/vendored/puppet/lib/puppet/functions/hiera_array.rb +6 -6
- data/vendored/puppet/lib/puppet/functions/hiera_hash.rb +6 -6
- data/vendored/puppet/lib/puppet/functions/hiera_include.rb +8 -8
- data/vendored/puppet/lib/puppet/functions/include.rb +28 -2
- data/vendored/puppet/lib/puppet/functions/info.rb +1 -1
- data/vendored/puppet/lib/puppet/functions/inline_epp.rb +2 -2
- data/vendored/puppet/lib/puppet/functions/join.rb +56 -0
- data/vendored/puppet/lib/puppet/functions/keys.rb +25 -0
- data/vendored/puppet/lib/puppet/functions/length.rb +44 -0
- data/vendored/puppet/lib/puppet/functions/lest.rb +39 -1
- data/vendored/puppet/lib/puppet/functions/map.rb +10 -9
- data/vendored/puppet/lib/puppet/functions/match.rb +6 -6
- data/vendored/puppet/lib/puppet/functions/new.rb +995 -2
- data/vendored/puppet/lib/puppet/functions/next.rb +1 -1
- data/vendored/puppet/lib/puppet/functions/notice.rb +1 -1
- data/vendored/puppet/lib/puppet/functions/reduce.rb +6 -6
- data/vendored/puppet/lib/puppet/functions/regsubst.rb +9 -3
- data/vendored/puppet/lib/puppet/functions/require.rb +36 -2
- data/vendored/puppet/lib/puppet/functions/return.rb +1 -1
- data/vendored/puppet/lib/puppet/functions/reverse_each.rb +71 -2
- data/vendored/puppet/lib/puppet/functions/slice.rb +23 -9
- data/vendored/puppet/lib/puppet/functions/split.rb +12 -10
- data/vendored/puppet/lib/puppet/functions/step.rb +73 -1
- data/vendored/puppet/lib/puppet/functions/strftime.rb +176 -2
- data/vendored/puppet/lib/puppet/functions/then.rb +65 -2
- data/vendored/puppet/lib/puppet/functions/tree_each.rb +19 -19
- data/vendored/puppet/lib/puppet/functions/type.rb +42 -1
- data/vendored/puppet/lib/puppet/functions/unique.rb +13 -13
- data/vendored/puppet/lib/puppet/functions/unwrap.rb +8 -4
- data/vendored/puppet/lib/puppet/functions/values.rb +25 -0
- data/vendored/puppet/lib/puppet/functions/versioncmp.rb +1 -1
- data/vendored/puppet/lib/puppet/functions/warning.rb +1 -1
- data/vendored/puppet/lib/puppet/functions/with.rb +6 -4
- data/vendored/puppet/lib/puppet/indirector/certificate_status/file.rb +1 -1
- data/vendored/puppet/lib/puppet/indirector/facts/facter.rb +1 -3
- data/vendored/puppet/lib/puppet/indirector/facts/rest.rb +21 -0
- data/vendored/puppet/lib/puppet/indirector/facts/yaml.rb +0 -4
- data/vendored/puppet/lib/puppet/indirector/file_content/http.rb +3 -1
- data/vendored/puppet/lib/puppet/indirector/indirection.rb +5 -3
- data/vendored/puppet/lib/puppet/indirector/request.rb +6 -2
- data/vendored/puppet/lib/puppet/module/task.rb +2 -2
- data/vendored/puppet/lib/puppet/module_tool/tar/mini.rb +57 -4
- data/vendored/puppet/lib/puppet/network/authconfig.rb +1 -1
- data/vendored/puppet/lib/puppet/network/http/api/indirected_routes.rb +1 -0
- data/vendored/puppet/lib/puppet/network/resolver.rb +1 -2
- data/vendored/puppet/lib/puppet/node.rb +4 -3
- data/vendored/puppet/lib/puppet/parser/compiler.rb +12 -5
- data/vendored/puppet/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +1 -1
- data/vendored/puppet/lib/puppet/parser/functions/fqdn_rand.rb +15 -4
- data/vendored/puppet/lib/puppet/parser/functions/new.rb +31 -46
- data/vendored/puppet/lib/puppet/parser/parser_factory.rb +1 -1
- data/vendored/puppet/lib/puppet/parser/resource.rb +1 -1
- data/vendored/puppet/lib/puppet/parser/type_loader.rb +11 -11
- data/vendored/puppet/lib/puppet/pops/evaluator/closure.rb +1 -1
- data/vendored/puppet/lib/puppet/pops/evaluator/collector_transformer.rb +1 -1
- data/vendored/puppet/lib/puppet/pops/evaluator/epp_evaluator.rb +2 -2
- data/vendored/puppet/lib/puppet/pops/evaluator/runtime3_resource_support.rb +2 -2
- data/vendored/puppet/lib/puppet/pops/evaluator/runtime3_support.rb +5 -2
- data/vendored/puppet/lib/puppet/pops/functions/dispatch.rb +1 -1
- data/vendored/puppet/lib/puppet/pops/issue_reporter.rb +18 -1
- data/vendored/puppet/lib/puppet/pops/issues.rb +6 -3
- data/vendored/puppet/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +1 -2
- data/vendored/puppet/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -2
- data/vendored/puppet/lib/puppet/pops/loader/task_instantiator.rb +4 -4
- data/vendored/puppet/lib/puppet/pops/loader/type_definition_instantiator.rb +4 -1
- data/vendored/puppet/lib/puppet/pops/loaders.rb +18 -7
- data/vendored/puppet/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
- data/vendored/puppet/lib/puppet/pops/model/factory.rb +6 -3
- data/vendored/puppet/lib/puppet/pops/model/model_tree_dumper.rb +4 -0
- data/vendored/puppet/lib/puppet/pops/model/pn_transformer.rb +400 -0
- data/vendored/puppet/lib/puppet/pops/parser/eparser.rb +1 -1
- data/vendored/puppet/lib/puppet/pops/parser/heredoc_support.rb +1 -1
- data/vendored/puppet/lib/puppet/pops/parser/lexer_support.rb +3 -2
- data/vendored/puppet/lib/puppet/pops/parser/locator.rb +0 -2
- data/vendored/puppet/lib/puppet/pops/parser/pn_parser.rb +316 -0
- data/vendored/puppet/lib/puppet/pops/pcore.rb +17 -17
- data/vendored/puppet/lib/puppet/pops/pn.rb +236 -0
- data/vendored/puppet/lib/puppet/pops/resource/resource_type_impl.rb +1 -1
- data/vendored/puppet/lib/puppet/pops/types/class_loader.rb +6 -3
- data/vendored/puppet/lib/puppet/pops/types/implementation_registry.rb +28 -35
- data/vendored/puppet/lib/puppet/pops/types/p_object_type.rb +3 -3
- data/vendored/puppet/lib/puppet/pops/types/p_timespan_type.rb +2 -2
- data/vendored/puppet/lib/puppet/pops/types/p_type_set_type.rb +24 -1
- data/vendored/puppet/lib/puppet/pops/types/ruby_generator.rb +3 -4
- data/vendored/puppet/lib/puppet/pops/types/type_calculator.rb +1 -1
- data/vendored/puppet/lib/puppet/pops/types/type_factory.rb +0 -4
- data/vendored/puppet/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
- data/vendored/puppet/lib/puppet/pops/types/type_parser.rb +14 -7
- data/vendored/puppet/lib/puppet/pops/types/types.rb +1 -1
- data/vendored/puppet/lib/puppet/pops/utils.rb +2 -2
- data/vendored/puppet/lib/puppet/pops/validation/checker4_0.rb +6 -2
- data/vendored/puppet/lib/puppet/provider/group/groupadd.rb +3 -1
- data/vendored/puppet/lib/puppet/provider/group/windows_adsi.rb +4 -7
- data/vendored/puppet/lib/puppet/provider/nameservice.rb +3 -3
- data/vendored/puppet/lib/puppet/provider/package/dnf.rb +1 -1
- data/vendored/puppet/lib/puppet/provider/package/gem.rb +1 -1
- data/vendored/puppet/lib/puppet/provider/package/pacman.rb +4 -4
- data/vendored/puppet/lib/puppet/provider/package/pip.rb +3 -3
- data/vendored/puppet/lib/puppet/provider/package/pkgdmg.rb +3 -3
- data/vendored/puppet/lib/puppet/provider/package/pkgutil.rb +2 -2
- data/vendored/puppet/lib/puppet/provider/package/portage.rb +9 -9
- data/vendored/puppet/lib/puppet/provider/package/zypper.rb +2 -2
- data/vendored/puppet/lib/puppet/provider/service/base.rb +1 -1
- data/vendored/puppet/lib/puppet/provider/service/smf.rb +3 -2
- data/vendored/puppet/lib/puppet/provider/user/useradd.rb +6 -2
- data/vendored/puppet/lib/puppet/provider/user/windows_adsi.rb +1 -1
- data/vendored/puppet/lib/puppet/provider/zfs/zfs.rb +3 -2
- data/vendored/puppet/lib/puppet/reference/configuration.rb +2 -0
- data/vendored/puppet/lib/puppet/reference/type.rb +11 -11
- data/vendored/puppet/lib/puppet/resource.rb +1 -1
- data/vendored/puppet/lib/puppet/resource/capability_finder.rb +2 -2
- data/vendored/puppet/lib/puppet/resource/catalog.rb +2 -2
- data/vendored/puppet/lib/puppet/resource/status.rb +9 -2
- data/vendored/puppet/lib/puppet/resource/type.rb +1 -1
- data/vendored/puppet/lib/puppet/settings.rb +31 -19
- data/vendored/puppet/lib/puppet/settings/base_setting.rb +5 -0
- data/vendored/puppet/lib/puppet/settings/config_file.rb +1 -1
- data/vendored/puppet/lib/puppet/settings/ttl_setting.rb +5 -0
- data/vendored/puppet/lib/puppet/ssl/certificate_factory.rb +2 -2
- data/vendored/puppet/lib/puppet/ssl/certificate_request.rb +0 -2
- data/vendored/puppet/lib/puppet/transaction/additional_resource_generator.rb +2 -2
- data/vendored/puppet/lib/puppet/transaction/event.rb +1 -1
- data/vendored/puppet/lib/puppet/transaction/report.rb +1 -1
- data/vendored/puppet/lib/puppet/type.rb +9 -13
- data/vendored/puppet/lib/puppet/type/augeas.rb +2 -2
- data/vendored/puppet/lib/puppet/type/cron.rb +11 -6
- data/vendored/puppet/lib/puppet/type/exec.rb +1 -1
- data/vendored/puppet/lib/puppet/type/file.rb +4 -5
- data/vendored/puppet/lib/puppet/type/host.rb +1 -1
- data/vendored/puppet/lib/puppet/type/k5login.rb +30 -54
- data/vendored/puppet/lib/puppet/type/package.rb +3 -3
- data/vendored/puppet/lib/puppet/type/schedule.rb +12 -12
- data/vendored/puppet/lib/puppet/type/scheduled_task.rb +2 -2
- data/vendored/puppet/lib/puppet/type/ssh_authorized_key.rb +5 -5
- data/vendored/puppet/lib/puppet/type/sshkey.rb +2 -2
- data/vendored/puppet/lib/puppet/type/tidy.rb +9 -2
- data/vendored/puppet/lib/puppet/type/user.rb +1 -1
- data/vendored/puppet/lib/puppet/type/yumrepo.rb +25 -4
- data/vendored/puppet/lib/puppet/type/zfs.rb +4 -0
- data/vendored/puppet/lib/puppet/util.rb +0 -4
- data/vendored/puppet/lib/puppet/util/backups.rb +1 -1
- data/vendored/puppet/lib/puppet/util/http_proxy.rb +4 -2
- data/vendored/puppet/lib/puppet/util/inifile.rb +3 -4
- data/vendored/puppet/lib/puppet/util/log.rb +2 -5
- data/vendored/puppet/lib/puppet/util/network_device/cisco/facts.rb +1 -1
- data/vendored/puppet/lib/puppet/util/reference.rb +1 -8
- data/vendored/puppet/lib/puppet/util/tagging.rb +1 -1
- data/vendored/puppet/lib/puppet/util/warnings.rb +0 -2
- data/vendored/puppet/lib/puppet/util/windows/adsi.rb +15 -18
- data/vendored/puppet/lib/puppet/util/windows/com.rb +2 -1
- data/vendored/puppet/lib/puppet/util/windows/file.rb +2 -2
- data/vendored/puppet/lib/puppet/util/windows/principal.rb +7 -6
- data/vendored/puppet/lib/puppet/util/windows/sid.rb +60 -7
- data/vendored/puppet/lib/puppet/util/windows/taskscheduler.rb +0 -9
- data/vendored/puppet/lib/puppet/version.rb +1 -1
- data/vendored/puppet/lib/puppet_pal.rb +53 -48
- metadata +15 -2
@@ -1,5 +1,19 @@
|
|
1
1
|
# Finds an existing file from a module and returns its path.
|
2
|
-
#
|
2
|
+
#
|
3
|
+
# The argument to this function should be a String as a `<MODULE NAME>/<FILE>`
|
4
|
+
# reference, which will search for `<FILE>` relative to a module's `files`
|
5
|
+
# directory. (For example, the reference `mysql/mysqltuner.pl` will search for the
|
6
|
+
# file `<MODULES DIRECTORY>/mysql/files/mysqltuner.pl`.)
|
7
|
+
#
|
8
|
+
# This function can also accept:
|
9
|
+
#
|
10
|
+
# * An absolute String path, which will check for the existence of a file from anywhere on disk.
|
11
|
+
# * Multiple String arguments, which will return the path of the **first** file
|
12
|
+
# found, skipping non existing files.
|
13
|
+
# * An array of string paths, which will return the path of the **first** file
|
14
|
+
# found from the given paths in the array, skipping non existing files.
|
15
|
+
#
|
16
|
+
# The function returns `undef` if none of the given paths were found
|
3
17
|
#
|
4
18
|
# @since 4.8.0
|
5
19
|
#
|
@@ -0,0 +1,64 @@
|
|
1
|
+
# Returns a flat Array produced from its possibly deeply nested given arguments.
|
2
|
+
#
|
3
|
+
# One or more arguments of any data type can be given to this function.
|
4
|
+
# The result is always a flat array representation where any nested arrays are recursively flattened.
|
5
|
+
#
|
6
|
+
# @example Typical use of `flatten()`
|
7
|
+
#
|
8
|
+
# ```puppet
|
9
|
+
# flatten(['a', ['b', ['c']]])
|
10
|
+
# # Would return: ['a','b','c']
|
11
|
+
# ```
|
12
|
+
#
|
13
|
+
# To flatten other kinds of iterables (for example hashes, or intermediate results like from a `reverse_each`)
|
14
|
+
# first convert the result to an array using `Array($x)`, or `$x.convert_to(Array)`. See the `new` function
|
15
|
+
# for details and options when performing a conversion.
|
16
|
+
#
|
17
|
+
# @example Flattening a Hash
|
18
|
+
#
|
19
|
+
# ```puppet
|
20
|
+
# $hsh = { a => 1, b => 2}
|
21
|
+
#
|
22
|
+
# # -- without conversion
|
23
|
+
# $hsh.flatten()
|
24
|
+
# # Would return [{a => 1, b => 2}]
|
25
|
+
#
|
26
|
+
# # -- with conversion
|
27
|
+
# $hsh.convert_to(Array).flatten()
|
28
|
+
# # Would return [a,1,b,2]
|
29
|
+
#
|
30
|
+
# flatten(Array($hsh))
|
31
|
+
# # Would also return [a,1,b,2]
|
32
|
+
# ```
|
33
|
+
#
|
34
|
+
# @example Flattening and concatenating at the same time
|
35
|
+
#
|
36
|
+
# ```puppet
|
37
|
+
# $a1 = [1, [2, 3]]
|
38
|
+
# $a2 = [[4,[5,6]]
|
39
|
+
# $x = 7
|
40
|
+
# flatten($a1, $a2, $x)
|
41
|
+
# # would return [1,2,3,4,5,6,7]
|
42
|
+
# ```
|
43
|
+
#
|
44
|
+
# @example Transforming to Array if not already an Array
|
45
|
+
#
|
46
|
+
# ```puppet
|
47
|
+
# flatten(42)
|
48
|
+
# # Would return [42]
|
49
|
+
#
|
50
|
+
# flatten([42])
|
51
|
+
# # Would also return [42]
|
52
|
+
# ```
|
53
|
+
#
|
54
|
+
# @since 5.5.0 support for flattening and concatenating at the same time
|
55
|
+
#
|
56
|
+
Puppet::Functions.create_function(:flatten) do
|
57
|
+
dispatch :flatten_args do
|
58
|
+
repeated_param 'Any', :args
|
59
|
+
end
|
60
|
+
|
61
|
+
def flatten_args(*args)
|
62
|
+
args.flatten()
|
63
|
+
end
|
64
|
+
end
|
@@ -25,7 +25,7 @@ require 'hiera/puppet_function'
|
|
25
25
|
#
|
26
26
|
# @example Using `hiera`
|
27
27
|
#
|
28
|
-
#
|
28
|
+
# ```yaml
|
29
29
|
# # Assuming hiera.yaml
|
30
30
|
# # :hierarchy:
|
31
31
|
# # - web01.example.com
|
@@ -44,16 +44,16 @@ require 'hiera/puppet_function'
|
|
44
44
|
# regular:
|
45
45
|
# - "Iris Jackson"
|
46
46
|
# - "Kelly Lambert"
|
47
|
-
#
|
47
|
+
# ```
|
48
48
|
#
|
49
|
-
#
|
49
|
+
# ```puppet
|
50
50
|
# # Assuming we are not web01.example.com:
|
51
51
|
#
|
52
52
|
# $users = hiera('users', undef)
|
53
53
|
#
|
54
54
|
# # $users contains {admins => ["Edith Franklin", "Ginny Hamilton"],
|
55
55
|
# # regular => ["Iris Jackson", "Kelly Lambert"]}
|
56
|
-
#
|
56
|
+
# ```
|
57
57
|
#
|
58
58
|
# You can optionally generate the default value with a
|
59
59
|
# [lambda](https://docs.puppetlabs.com/puppet/latest/reference/lang_lambdas.html) that
|
@@ -61,7 +61,7 @@ require 'hiera/puppet_function'
|
|
61
61
|
#
|
62
62
|
# @example Using `hiera` with a lambda
|
63
63
|
#
|
64
|
-
#
|
64
|
+
# ```puppet
|
65
65
|
# # Assuming the same Hiera data as the previous example:
|
66
66
|
#
|
67
67
|
# $users = hiera('users') | $key | { "Key \'${key}\' not found" }
|
@@ -70,7 +70,7 @@ require 'hiera/puppet_function'
|
|
70
70
|
# # regular => ["Iris Jackson", "Kelly Lambert"]}
|
71
71
|
# # If hiera couldn't match its key, it would return the lambda result,
|
72
72
|
# # "Key 'users' not found".
|
73
|
-
#
|
73
|
+
# ```
|
74
74
|
#
|
75
75
|
# The returned value's data type depends on the types of the results. In the example
|
76
76
|
# above, Hiera matches the 'users' key and returns it as a hash.
|
@@ -24,7 +24,7 @@ require 'hiera/puppet_function'
|
|
24
24
|
#
|
25
25
|
# @example Using `hiera_array`
|
26
26
|
#
|
27
|
-
#
|
27
|
+
# ```yaml
|
28
28
|
# # Assuming hiera.yaml
|
29
29
|
# # :hierarchy:
|
30
30
|
# # - web01.example.com
|
@@ -37,13 +37,13 @@ require 'hiera/puppet_function'
|
|
37
37
|
#
|
38
38
|
# # Assuming web01.example.com.yaml:
|
39
39
|
# # users: 'abarry = admin'
|
40
|
-
#
|
40
|
+
# ```
|
41
41
|
#
|
42
|
-
#
|
42
|
+
# ```puppet
|
43
43
|
# $allusers = hiera_array('users', undef)
|
44
44
|
#
|
45
45
|
# # $allusers contains ["cdouglas = regular", "efranklin = regular", "abarry = admin"].
|
46
|
-
#
|
46
|
+
# ```
|
47
47
|
#
|
48
48
|
# You can optionally generate the default value with a
|
49
49
|
# [lambda](https://docs.puppetlabs.com/puppet/latest/reference/lang_lambdas.html) that
|
@@ -51,7 +51,7 @@ require 'hiera/puppet_function'
|
|
51
51
|
#
|
52
52
|
# @example Using `hiera_array` with a lambda
|
53
53
|
#
|
54
|
-
#
|
54
|
+
# ```puppet
|
55
55
|
# # Assuming the same Hiera data as the previous example:
|
56
56
|
#
|
57
57
|
# $allusers = hiera_array('users') | $key | { "Key \'${key}\' not found" }
|
@@ -59,7 +59,7 @@ require 'hiera/puppet_function'
|
|
59
59
|
# # $allusers contains ["cdouglas = regular", "efranklin = regular", "abarry = admin"].
|
60
60
|
# # If hiera_array couldn't match its key, it would return the lambda result,
|
61
61
|
# # "Key 'users' not found".
|
62
|
-
#
|
62
|
+
# ```
|
63
63
|
#
|
64
64
|
# `hiera_array` expects that all values returned will be strings or arrays. If any matched
|
65
65
|
# value is a hash, Puppet raises a type mismatch error.
|
@@ -29,7 +29,7 @@ require 'hiera/puppet_function'
|
|
29
29
|
#
|
30
30
|
# @example Using `hiera_hash`
|
31
31
|
#
|
32
|
-
#
|
32
|
+
# ```yaml
|
33
33
|
# # Assuming hiera.yaml
|
34
34
|
# # :hierarchy:
|
35
35
|
# # - web01.example.com
|
@@ -44,16 +44,16 @@ require 'hiera/puppet_function'
|
|
44
44
|
# # users:
|
45
45
|
# # administrators:
|
46
46
|
# # 'aberry': 'Amy Berry'
|
47
|
-
#
|
47
|
+
# ```
|
48
48
|
#
|
49
|
-
#
|
49
|
+
# ```puppet
|
50
50
|
# # Assuming we are not web01.example.com:
|
51
51
|
#
|
52
52
|
# $allusers = hiera_hash('users', undef)
|
53
53
|
#
|
54
54
|
# # $allusers contains {regular => {"cdouglas" => "Carrie Douglas"},
|
55
55
|
# # administrators => {"aberry" => "Amy Berry"}}
|
56
|
-
#
|
56
|
+
# ```
|
57
57
|
#
|
58
58
|
# You can optionally generate the default value with a
|
59
59
|
# [lambda](https://docs.puppetlabs.com/puppet/latest/reference/lang_lambdas.html) that
|
@@ -61,7 +61,7 @@ require 'hiera/puppet_function'
|
|
61
61
|
#
|
62
62
|
# @example Using `hiera_hash` with a lambda
|
63
63
|
#
|
64
|
-
#
|
64
|
+
# ```puppet
|
65
65
|
# # Assuming the same Hiera data as the previous example:
|
66
66
|
#
|
67
67
|
# $allusers = hiera_hash('users') | $key | { "Key \'${key}\' not found" }
|
@@ -70,7 +70,7 @@ require 'hiera/puppet_function'
|
|
70
70
|
# # administrators => {"aberry" => "Amy Berry"}}
|
71
71
|
# # If hiera_hash couldn't match its key, it would return the lambda result,
|
72
72
|
# # "Key 'users' not found".
|
73
|
-
#
|
73
|
+
# ```
|
74
74
|
#
|
75
75
|
# `hiera_hash` expects that all values returned will be hashes. If any of the values
|
76
76
|
# found in the data sources are strings or arrays, Puppet raises a type mismatch error.
|
@@ -11,10 +11,10 @@ require 'hiera/puppet_function'
|
|
11
11
|
#
|
12
12
|
# @example Using `lookup` and `include` instead of of the deprecated `hiera_include`
|
13
13
|
#
|
14
|
-
#
|
14
|
+
# ```puppet
|
15
15
|
# # In site.pp, outside of any node definitions and below any top-scope variables:
|
16
16
|
# lookup('classes', Array[String], 'unique').include
|
17
|
-
#
|
17
|
+
# ```
|
18
18
|
#
|
19
19
|
# The `hiera_include` function requires:
|
20
20
|
#
|
@@ -43,7 +43,7 @@ require 'hiera/puppet_function'
|
|
43
43
|
#
|
44
44
|
# @example Using `hiera_include`
|
45
45
|
#
|
46
|
-
#
|
46
|
+
# ```yaml
|
47
47
|
# # Assuming hiera.yaml
|
48
48
|
# # :hierarchy:
|
49
49
|
# # - web01.example.com
|
@@ -56,14 +56,14 @@ require 'hiera/puppet_function'
|
|
56
56
|
# # Assuming common.yaml:
|
57
57
|
# # classes:
|
58
58
|
# # - apache
|
59
|
-
#
|
59
|
+
# ```
|
60
60
|
#
|
61
|
-
#
|
61
|
+
# ```puppet
|
62
62
|
# # In site.pp, outside of any node definitions and below any top-scope variables:
|
63
63
|
# hiera_include('classes', undef)
|
64
64
|
#
|
65
65
|
# # Puppet assigns the apache and apache::mod::php classes to the web01.example.com node.
|
66
|
-
#
|
66
|
+
# ```
|
67
67
|
#
|
68
68
|
# You can optionally generate the default value with a
|
69
69
|
# [lambda](https://docs.puppetlabs.com/puppet/latest/reference/lang_lambdas.html) that
|
@@ -71,7 +71,7 @@ require 'hiera/puppet_function'
|
|
71
71
|
#
|
72
72
|
# @example Using `hiera_include` with a lambda
|
73
73
|
#
|
74
|
-
#
|
74
|
+
# ```puppet
|
75
75
|
# # Assuming the same Hiera data as the previous example:
|
76
76
|
#
|
77
77
|
# # In site.pp, outside of any node definitions and below any top-scope variables:
|
@@ -80,7 +80,7 @@ require 'hiera/puppet_function'
|
|
80
80
|
# # Puppet assigns the apache and apache::mod::php classes to the web01.example.com node.
|
81
81
|
# # If hiera_include couldn't match its key, it would return the lambda result,
|
82
82
|
# # "Key 'classes' not found".
|
83
|
-
#
|
83
|
+
# ```
|
84
84
|
#
|
85
85
|
# See
|
86
86
|
# [the 'Using the lookup function' documentation](https://docs.puppet.com/puppet/latest/hiera_use_function.html) for how to perform lookup of data.
|
@@ -1,5 +1,31 @@
|
|
1
|
-
#
|
2
|
-
#
|
1
|
+
# Declares one or more classes, causing the resources in them to be
|
2
|
+
# evaluated and added to the catalog. Accepts a class name, an array of class
|
3
|
+
# names, or a comma-separated list of class names.
|
4
|
+
#
|
5
|
+
# The `include` function can be used multiple times on the same class and will
|
6
|
+
# only declare a given class once. If a class declared with `include` has any
|
7
|
+
# parameters, Puppet will automatically look up values for them in Hiera, using
|
8
|
+
# `<class name>::<parameter name>` as the lookup key.
|
9
|
+
#
|
10
|
+
# Contrast this behavior with resource-like class declarations
|
11
|
+
# (`class {'name': parameter => 'value',}`), which must be used in only one place
|
12
|
+
# per class and can directly set parameters. You should avoid using both `include`
|
13
|
+
# and resource-like declarations with the same class.
|
14
|
+
#
|
15
|
+
# The `include` function does not cause classes to be contained in the class
|
16
|
+
# where they are declared. For that, see the `contain` function. It also
|
17
|
+
# does not create a dependency relationship between the declared class and the
|
18
|
+
# surrounding class; for that, see the `require` function.
|
19
|
+
#
|
20
|
+
# You must use the class's full name;
|
21
|
+
# relative names are not allowed. In addition to names in string form,
|
22
|
+
# you may also directly use `Class` and `Resource` `Type`-values that are produced by
|
23
|
+
# the resource and relationship expressions.
|
24
|
+
#
|
25
|
+
# - Since < 3.0.0
|
26
|
+
# - Since 4.0.0 support for class and resource type values, absolute names
|
27
|
+
# - Since 4.7.0 returns an `Array[Type[Class]]` of all included classes
|
28
|
+
#
|
3
29
|
Puppet::Functions.create_function(:include, Puppet::Functions::InternalFunction) do
|
4
30
|
dispatch :include do
|
5
31
|
scope_param
|
@@ -35,13 +35,13 @@
|
|
35
35
|
# For example, to evaluate an inline EPP template using a heredoc, call the
|
36
36
|
# `inline_epp` function like this:
|
37
37
|
#
|
38
|
-
#
|
38
|
+
# ```puppet
|
39
39
|
# # Outputs 'Hello given argument planet!'
|
40
40
|
# inline_epp(@(END), { x => 'given argument' })
|
41
41
|
# <%- | $x, $y = planet | -%>
|
42
42
|
# Hello <%= $x %> <%= $y %>!
|
43
43
|
# END
|
44
|
-
#
|
44
|
+
# ```
|
45
45
|
#
|
46
46
|
# @since 4.0.0
|
47
47
|
#
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# Joins the values of an Array into a string with elements separated by a delimiter.
|
2
|
+
#
|
3
|
+
# Supports up to two arguments
|
4
|
+
# * **values** - first argument is required and must be an an `Array`
|
5
|
+
# * **delimiter** - second arguments is the delimiter between elements, must be a `String` if given, and defaults to an empty string.
|
6
|
+
#
|
7
|
+
# @example Typical use of `join`
|
8
|
+
#
|
9
|
+
# ```puppet
|
10
|
+
# join(['a','b','c'], ",")
|
11
|
+
# # Would result in: "a,b,c"
|
12
|
+
# ```
|
13
|
+
#
|
14
|
+
# Note that array is flattened before elements are joined, but flattening does not extend to arrays nested in hashes or other objects.
|
15
|
+
#
|
16
|
+
# @example Arrays nested in hashes are not joined
|
17
|
+
#
|
18
|
+
# ```puppet
|
19
|
+
# $a = [1,2, undef, 'hello', [x,y,z], {a => 2, b => [3, 4]}]
|
20
|
+
# notice join($a, ', ')
|
21
|
+
#
|
22
|
+
# # would result in noticing:
|
23
|
+
# # 1, 2, , hello, x, y, z, {"a"=>2, "b"=>[3, 4]}
|
24
|
+
# ```
|
25
|
+
#
|
26
|
+
# For joining iterators and other containers of elements a conversion must first be made to
|
27
|
+
# an `Array`. The reason for this is that there are many options how such a conversion should
|
28
|
+
# be made.
|
29
|
+
#
|
30
|
+
# @example Joining the result of a reverse_each converted to an array
|
31
|
+
#
|
32
|
+
# ```puppet
|
33
|
+
# [1,2,3].reverse_each.convert_to(Array).join(', ')
|
34
|
+
# # would result in: "3, 2, 1"
|
35
|
+
# ```
|
36
|
+
# @example Joining a hash
|
37
|
+
#
|
38
|
+
# ```puppet
|
39
|
+
# {a => 1, b => 2}.convert_to(Array).join(', ')
|
40
|
+
# # would result in "a, 1, b, 2"
|
41
|
+
# ```
|
42
|
+
#
|
43
|
+
# For more detailed control over the formatting (including indentations and line breaks, delimiters around arrays
|
44
|
+
# and hash entries, between key/values in hash entries, and individual formatting of values in the array)
|
45
|
+
# see the `new` function for `String` and its formatting options for `Array` and `Hash`.
|
46
|
+
#
|
47
|
+
Puppet::Functions.create_function(:join) do
|
48
|
+
dispatch :join do
|
49
|
+
param 'Array', :arg
|
50
|
+
optional_param 'String', :delimiter
|
51
|
+
end
|
52
|
+
|
53
|
+
def join(arg, delimiter = '', puppet_formatting = false)
|
54
|
+
arg.join(delimiter)
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# Returns the keys of a hash as an Array
|
2
|
+
#
|
3
|
+
# @example Using `keys`
|
4
|
+
#
|
5
|
+
# ```puppet
|
6
|
+
# $hsh = {"apples" => 3, "oranges" => 4 }
|
7
|
+
# $hsh.keys()
|
8
|
+
# keys($hsh)
|
9
|
+
# # both results in the array ["apples", "oranges"]
|
10
|
+
# ```
|
11
|
+
#
|
12
|
+
# * Note that a hash in the puppet language accepts any data value (including `undef`) unless
|
13
|
+
# it is constrained with a `Hash` data type that narrows the allowed data types.
|
14
|
+
# * For an empty hash, an empty array is returned.
|
15
|
+
# * The order of the keys is the same as the order in the hash (typically the order in which they were added).
|
16
|
+
#
|
17
|
+
Puppet::Functions.create_function(:keys) do
|
18
|
+
dispatch :keys do
|
19
|
+
param 'Hash', :hsh
|
20
|
+
end
|
21
|
+
|
22
|
+
def keys(hsh)
|
23
|
+
hsh.keys
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# Returns the length of an Array, Hash, String, or Binary value.
|
2
|
+
#
|
3
|
+
# The returned value is a positive integer indicating the number
|
4
|
+
# of elements in the container; counting (possibly multibyte) characters for a `String`,
|
5
|
+
# bytes in a `Binary`, number of elements in an `Array`, and number of
|
6
|
+
# key-value associations in a Hash.
|
7
|
+
#
|
8
|
+
# @example Using `length`
|
9
|
+
#
|
10
|
+
# ```puppet
|
11
|
+
# "roses".length() # 5
|
12
|
+
# length("violets") # 7
|
13
|
+
# [10, 20].length # 2
|
14
|
+
# {a => 1, b => 3}.length # 2
|
15
|
+
# ```
|
16
|
+
#
|
17
|
+
# @since 5.5.0 - also supporting Binary
|
18
|
+
#
|
19
|
+
Puppet::Functions.create_function(:length) do
|
20
|
+
dispatch :collection_length do
|
21
|
+
param 'Collection', :arg
|
22
|
+
end
|
23
|
+
|
24
|
+
dispatch :string_length do
|
25
|
+
param 'String', :arg
|
26
|
+
end
|
27
|
+
|
28
|
+
dispatch :binary_length do
|
29
|
+
param 'Binary', :arg
|
30
|
+
end
|
31
|
+
|
32
|
+
def collection_length(col)
|
33
|
+
col.size
|
34
|
+
end
|
35
|
+
|
36
|
+
def string_length(s)
|
37
|
+
s.length
|
38
|
+
end
|
39
|
+
|
40
|
+
def binary_length(bin)
|
41
|
+
bin.length
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|