openvox 7.37.2 → 8.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -19
- data/Gemfile +18 -17
- data/README.md +25 -30
- data/Rakefile +44 -34
- data/bin/puppet +1 -0
- data/examples/hiera/README.md +68 -57
- data/examples/hiera/data/common.yaml +12 -0
- data/examples/hiera/data/dc1.yaml +6 -0
- data/examples/hiera/hiera.yaml +15 -0
- data/examples/hiera/modules/ntp/data/common.yaml +4 -0
- data/examples/hiera/modules/ntp/hiera.yaml +9 -0
- data/examples/hiera/modules/ntp/manifests/config.pp +16 -4
- data/examples/hiera/modules/ntp/templates/ntp.conf.epp +3 -0
- data/examples/hiera/modules/users/manifests/common.pp +7 -2
- data/examples/hiera/modules/users/manifests/dc1.pp +7 -2
- data/examples/hiera/site.pp +1 -1
- data/ext/build_defaults.yaml +1 -1
- data/ext/windows/service/daemon.rb +54 -60
- data/install.rb +21 -92
- data/lib/hiera/puppet_function.rb +8 -6
- data/lib/hiera/scope.rb +15 -13
- data/lib/hiera_puppet.rb +4 -6
- data/lib/puppet/agent/disabler.rb +5 -3
- data/lib/puppet/agent/locker.rb +2 -2
- data/lib/puppet/agent.rb +6 -4
- data/lib/puppet/application/agent.rb +305 -301
- data/lib/puppet/application/apply.rb +124 -117
- data/lib/puppet/application/catalog.rb +2 -0
- data/lib/puppet/application/config.rb +2 -0
- data/lib/puppet/application/describe.rb +50 -48
- data/lib/puppet/application/device.rb +224 -223
- data/lib/puppet/application/doc.rb +57 -58
- data/lib/puppet/application/epp.rb +2 -0
- data/lib/puppet/application/face_base.rb +18 -17
- data/lib/puppet/application/facts.rb +2 -0
- data/lib/puppet/application/filebucket.rb +174 -168
- data/lib/puppet/application/generate.rb +3 -1
- data/lib/puppet/application/help.rb +2 -0
- data/lib/puppet/application/indirection_base.rb +2 -0
- data/lib/puppet/application/lookup.rb +181 -181
- data/lib/puppet/application/module.rb +2 -0
- data/lib/puppet/application/node.rb +2 -0
- data/lib/puppet/application/parser.rb +2 -0
- data/lib/puppet/application/plugin.rb +2 -0
- data/lib/puppet/application/report.rb +2 -0
- data/lib/puppet/application/resource.rb +106 -96
- data/lib/puppet/application/script.rb +76 -74
- data/lib/puppet/application/ssl.rb +100 -92
- data/lib/puppet/application.rb +32 -32
- data/lib/puppet/application_support.rb +3 -2
- data/lib/puppet/coercion.rb +5 -3
- data/lib/puppet/compilable_resource_type.rb +4 -2
- data/lib/puppet/concurrent/lock.rb +2 -3
- data/lib/puppet/concurrent/synchronized.rb +2 -2
- data/lib/puppet/concurrent/thread_local_singleton.rb +1 -0
- data/lib/puppet/concurrent.rb +2 -0
- data/lib/puppet/configurer/downloader.rb +11 -5
- data/lib/puppet/configurer/fact_handler.rb +17 -16
- data/lib/puppet/configurer/plugin_handler.rb +2 -0
- data/lib/puppet/configurer.rb +40 -36
- data/lib/puppet/confine/any.rb +3 -1
- data/lib/puppet/confine/boolean.rb +3 -1
- data/lib/puppet/confine/exists.rb +3 -1
- data/lib/puppet/confine/false.rb +3 -1
- data/lib/puppet/confine/feature.rb +3 -2
- data/lib/puppet/confine/true.rb +3 -1
- data/lib/puppet/confine/variable.rb +4 -2
- data/lib/puppet/confine.rb +5 -2
- data/lib/puppet/confine_collection.rb +6 -3
- data/lib/puppet/confiner.rb +5 -3
- data/lib/puppet/context/trusted_information.rb +12 -10
- data/lib/puppet/context.rb +2 -0
- data/lib/puppet/daemon.rb +26 -10
- data/lib/puppet/data_binding.rb +3 -1
- data/lib/puppet/datatypes/error.rb +3 -1
- data/lib/puppet/datatypes/impl/error.rb +2 -0
- data/lib/puppet/datatypes.rb +12 -7
- data/lib/puppet/defaults.rb +164 -125
- data/lib/puppet/environments.rb +13 -15
- data/lib/puppet/error.rb +19 -15
- data/lib/puppet/etc.rb +10 -5
- data/lib/puppet/external/dot.rb +65 -75
- data/lib/puppet/face/catalog/select.rb +4 -2
- data/lib/puppet/face/catalog.rb +7 -5
- data/lib/puppet/face/config.rb +30 -31
- data/lib/puppet/face/epp.rb +25 -26
- data/lib/puppet/face/facts.rb +8 -6
- data/lib/puppet/face/generate.rb +5 -2
- data/lib/puppet/face/help/action.erb +0 -1
- data/lib/puppet/face/help/face.erb +0 -1
- data/lib/puppet/face/help/global.erb +1 -1
- data/lib/puppet/face/help.rb +80 -62
- data/lib/puppet/face/module/changes.rb +4 -3
- data/lib/puppet/face/module/install.rb +7 -4
- data/lib/puppet/face/module/list.rb +52 -53
- data/lib/puppet/face/module/uninstall.rb +2 -0
- data/lib/puppet/face/module/upgrade.rb +5 -3
- data/lib/puppet/face/module.rb +3 -1
- data/lib/puppet/face/node/clean.rb +4 -2
- data/lib/puppet/face/node.rb +5 -3
- data/lib/puppet/face/parser.rb +18 -19
- data/lib/puppet/face/plugin.rb +10 -8
- data/lib/puppet/face/report.rb +10 -10
- data/lib/puppet/face/resource.rb +2 -0
- data/lib/puppet/face.rb +2 -0
- data/lib/puppet/facter_impl.rb +1 -1
- data/lib/puppet/feature/base.rb +13 -13
- data/lib/puppet/feature/bolt.rb +2 -0
- data/lib/puppet/feature/cfpropertylist.rb +2 -0
- data/lib/puppet/feature/eventlog.rb +2 -0
- data/lib/puppet/feature/hiera_eyaml.rb +2 -0
- data/lib/puppet/feature/hocon.rb +2 -0
- data/lib/puppet/feature/libuser.rb +5 -3
- data/lib/puppet/feature/msgpack.rb +2 -0
- data/lib/puppet/feature/pe_license.rb +4 -2
- data/lib/puppet/feature/pson.rb +6 -0
- data/lib/puppet/feature/selinux.rb +2 -0
- data/lib/puppet/feature/ssh.rb +3 -1
- data/lib/puppet/feature/telnet.rb +3 -7
- data/lib/puppet/feature/zlib.rb +3 -1
- data/lib/puppet/ffi/posix/constants.rb +3 -1
- data/lib/puppet/ffi/posix/functions.rb +2 -1
- data/lib/puppet/ffi/posix.rb +2 -0
- data/lib/puppet/ffi/windows/api_types.rb +3 -1
- data/lib/puppet/ffi/windows/constants.rb +80 -78
- data/lib/puppet/ffi/windows/functions.rb +76 -75
- data/lib/puppet/ffi/windows/structs.rb +6 -5
- data/lib/puppet/ffi/windows.rb +2 -0
- data/lib/puppet/file_bucket/dipper.rb +20 -11
- data/lib/puppet/file_bucket/file.rb +8 -6
- data/lib/puppet/file_bucket.rb +2 -0
- data/lib/puppet/file_serving/base.rb +17 -9
- data/lib/puppet/file_serving/configuration/parser.rb +13 -10
- data/lib/puppet/file_serving/configuration.rb +10 -7
- data/lib/puppet/file_serving/content.rb +2 -0
- data/lib/puppet/file_serving/fileset.rb +23 -19
- data/lib/puppet/file_serving/http_metadata.rb +3 -4
- data/lib/puppet/file_serving/metadata.rb +26 -23
- data/lib/puppet/file_serving/mount/file.rb +15 -11
- data/lib/puppet/file_serving/mount/locales.rb +5 -5
- data/lib/puppet/file_serving/mount/modules.rb +3 -0
- data/lib/puppet/file_serving/mount/pluginfacts.rb +5 -5
- data/lib/puppet/file_serving/mount/plugins.rb +5 -5
- data/lib/puppet/file_serving/mount/scripts.rb +3 -0
- data/lib/puppet/file_serving/mount/tasks.rb +3 -0
- data/lib/puppet/file_serving/mount.rb +4 -1
- data/lib/puppet/file_serving/terminus_helper.rb +2 -0
- data/lib/puppet/file_serving/terminus_selector.rb +3 -1
- data/lib/puppet/file_serving.rb +2 -0
- data/lib/puppet/file_system/file_impl.rb +9 -8
- data/lib/puppet/file_system/jruby.rb +2 -0
- data/lib/puppet/file_system/memory_file.rb +3 -0
- data/lib/puppet/file_system/memory_impl.rb +5 -1
- data/lib/puppet/file_system/path_pattern.rb +4 -2
- data/lib/puppet/file_system/posix.rb +7 -2
- data/lib/puppet/file_system/uniquefile.rb +33 -31
- data/lib/puppet/file_system/windows.rb +33 -22
- data/lib/puppet/file_system.rb +5 -3
- data/lib/puppet/forge/cache.rb +4 -3
- data/lib/puppet/forge/errors.rb +3 -4
- data/lib/puppet/forge/repository.rb +6 -3
- data/lib/puppet/forge.rb +20 -22
- data/lib/puppet/functions/abs.rb +7 -4
- data/lib/puppet/functions/alert.rb +2 -0
- data/lib/puppet/functions/all.rb +3 -1
- data/lib/puppet/functions/annotate.rb +2 -0
- data/lib/puppet/functions/any.rb +3 -1
- data/lib/puppet/functions/assert_type.rb +5 -2
- data/lib/puppet/functions/binary_file.rb +4 -1
- data/lib/puppet/functions/break.rb +4 -2
- data/lib/puppet/functions/call.rb +2 -1
- data/lib/puppet/functions/camelcase.rb +4 -3
- data/lib/puppet/functions/capitalize.rb +4 -3
- data/lib/puppet/functions/ceiling.rb +3 -2
- data/lib/puppet/functions/chomp.rb +3 -2
- data/lib/puppet/functions/chop.rb +3 -2
- data/lib/puppet/functions/compare.rb +5 -3
- data/lib/puppet/functions/contain.rb +7 -4
- data/lib/puppet/functions/convert_to.rb +2 -0
- data/lib/puppet/functions/crit.rb +2 -0
- data/lib/puppet/functions/debug.rb +2 -0
- data/lib/puppet/functions/defined.rb +10 -6
- data/lib/puppet/functions/dig.rb +13 -10
- data/lib/puppet/functions/downcase.rb +4 -2
- data/lib/puppet/functions/each.rb +2 -0
- data/lib/puppet/functions/emerg.rb +2 -0
- data/lib/puppet/functions/empty.rb +2 -0
- data/lib/puppet/functions/epp.rb +2 -1
- data/lib/puppet/functions/err.rb +2 -0
- data/lib/puppet/functions/eyaml_lookup_key.rb +17 -16
- data/lib/puppet/functions/filter.rb +8 -7
- data/lib/puppet/functions/find_file.rb +6 -0
- data/lib/puppet/functions/find_template.rb +2 -0
- data/lib/puppet/functions/flatten.rb +2 -0
- data/lib/puppet/functions/floor.rb +3 -2
- data/lib/puppet/functions/get.rb +4 -2
- data/lib/puppet/functions/getvar.rb +7 -5
- data/lib/puppet/functions/group_by.rb +2 -2
- data/lib/puppet/functions/hiera.rb +2 -0
- data/lib/puppet/functions/hiera_array.rb +2 -0
- data/lib/puppet/functions/hiera_hash.rb +2 -0
- data/lib/puppet/functions/hiera_include.rb +3 -0
- data/lib/puppet/functions/hocon_data.rb +5 -5
- data/lib/puppet/functions/import.rb +3 -1
- data/lib/puppet/functions/include.rb +5 -2
- data/lib/puppet/functions/index.rb +5 -4
- data/lib/puppet/functions/info.rb +2 -0
- data/lib/puppet/functions/inline_epp.rb +2 -1
- data/lib/puppet/functions/join.rb +4 -2
- data/lib/puppet/functions/json_data.rb +6 -6
- data/lib/puppet/functions/keys.rb +2 -0
- data/lib/puppet/functions/length.rb +2 -1
- data/lib/puppet/functions/lest.rb +2 -0
- data/lib/puppet/functions/lookup.rb +12 -12
- data/lib/puppet/functions/lstrip.rb +3 -2
- data/lib/puppet/functions/map.rb +4 -2
- data/lib/puppet/functions/match.rb +8 -5
- data/lib/puppet/functions/max.rb +75 -8
- data/lib/puppet/functions/min.rb +75 -8
- data/lib/puppet/functions/module_directory.rb +2 -0
- data/lib/puppet/functions/new.rb +5 -3
- data/lib/puppet/functions/next.rb +3 -1
- data/lib/puppet/functions/notice.rb +2 -0
- data/lib/puppet/functions/reduce.rb +8 -11
- data/lib/puppet/functions/regsubst.rb +15 -16
- data/lib/puppet/functions/require.rb +7 -3
- data/lib/puppet/functions/return.rb +2 -0
- data/lib/puppet/functions/reverse_each.rb +2 -0
- data/lib/puppet/functions/round.rb +2 -0
- data/lib/puppet/functions/rstrip.rb +3 -2
- data/lib/puppet/functions/scanf.rb +2 -0
- data/lib/puppet/functions/size.rb +2 -2
- data/lib/puppet/functions/slice.rb +4 -1
- data/lib/puppet/functions/sort.rb +2 -0
- data/lib/puppet/functions/split.rb +2 -0
- data/lib/puppet/functions/step.rb +2 -0
- data/lib/puppet/functions/strftime.rb +5 -3
- data/lib/puppet/functions/strip.rb +3 -2
- data/lib/puppet/functions/then.rb +3 -0
- data/lib/puppet/functions/tree_each.rb +4 -3
- data/lib/puppet/functions/type.rb +2 -0
- data/lib/puppet/functions/unique.rb +12 -9
- data/lib/puppet/functions/unwrap.rb +2 -0
- data/lib/puppet/functions/upcase.rb +4 -2
- data/lib/puppet/functions/values.rb +2 -0
- data/lib/puppet/functions/versioncmp.rb +2 -1
- data/lib/puppet/functions/warning.rb +2 -0
- data/lib/puppet/functions/with.rb +2 -0
- data/lib/puppet/functions/yaml_data.rb +13 -13
- data/lib/puppet/functions.rb +57 -61
- data/lib/puppet/generate/models/type/property.rb +4 -1
- data/lib/puppet/generate/models/type/type.rb +5 -2
- data/lib/puppet/generate/type.rb +11 -5
- data/lib/puppet/gettext/config.rb +16 -9
- data/lib/puppet/gettext/module_translations.rb +2 -1
- data/lib/puppet/gettext/stubs.rb +2 -0
- data/lib/puppet/graph/key.rb +2 -0
- data/lib/puppet/graph/prioritizer.rb +2 -0
- data/lib/puppet/graph/rb_tree_map.rb +43 -24
- data/lib/puppet/graph/relationship_graph.rb +31 -29
- data/lib/puppet/graph/sequential_prioritizer.rb +2 -0
- data/lib/puppet/graph/simple_graph.rb +63 -57
- data/lib/puppet/graph.rb +2 -0
- data/lib/puppet/http/client.rb +10 -6
- data/lib/puppet/http/dns.rb +12 -12
- data/lib/puppet/http/errors.rb +4 -2
- data/lib/puppet/http/external_client.rb +4 -3
- data/lib/puppet/http/factory.rb +3 -1
- data/lib/puppet/http/pool.rb +3 -1
- data/lib/puppet/http/pool_entry.rb +2 -0
- data/lib/puppet/http/proxy.rb +21 -19
- data/lib/puppet/http/redirector.rb +5 -3
- data/lib/puppet/http/resolver/server_list.rb +5 -4
- data/lib/puppet/http/resolver/settings.rb +2 -1
- data/lib/puppet/http/resolver/srv.rb +2 -1
- data/lib/puppet/http/resolver.rb +4 -2
- data/lib/puppet/http/response.rb +2 -0
- data/lib/puppet/http/response_converter.rb +4 -3
- data/lib/puppet/http/response_net_http.rb +2 -1
- data/lib/puppet/http/retry_after_handler.rb +4 -3
- data/lib/puppet/http/service/ca.rb +37 -5
- data/lib/puppet/http/service/compiler.rb +13 -10
- data/lib/puppet/http/service/file_server.rb +5 -3
- data/lib/puppet/http/service/puppetserver.rb +3 -2
- data/lib/puppet/http/service/report.rb +5 -7
- data/lib/puppet/http/service.rb +17 -22
- data/lib/puppet/http/session.rb +6 -4
- data/lib/puppet/http/site.rb +3 -1
- data/lib/puppet/http.rb +4 -2
- data/lib/puppet/indirector/catalog/compiler.rb +81 -80
- data/lib/puppet/indirector/catalog/json.rb +2 -0
- data/lib/puppet/indirector/catalog/msgpack.rb +2 -0
- data/lib/puppet/indirector/catalog/rest.rb +2 -0
- data/lib/puppet/indirector/catalog/store_configs.rb +3 -3
- data/lib/puppet/indirector/catalog/yaml.rb +2 -0
- data/lib/puppet/indirector/code.rb +2 -0
- data/lib/puppet/indirector/data_binding/hiera.rb +2 -1
- data/lib/puppet/indirector/data_binding/none.rb +2 -0
- data/lib/puppet/indirector/direct_file_server.rb +4 -1
- data/lib/puppet/indirector/envelope.rb +2 -0
- data/lib/puppet/indirector/errors.rb +2 -0
- data/lib/puppet/indirector/exec.rb +5 -3
- data/lib/puppet/indirector/face.rb +17 -28
- data/lib/puppet/indirector/fact_search.rb +4 -2
- data/lib/puppet/indirector/facts/facter.rb +10 -7
- data/lib/puppet/indirector/facts/json.rb +4 -2
- data/lib/puppet/indirector/facts/memory.rb +2 -0
- data/lib/puppet/indirector/facts/network_device.rb +2 -0
- data/lib/puppet/indirector/facts/rest.rb +2 -0
- data/lib/puppet/indirector/facts/store_configs.rb +3 -2
- data/lib/puppet/indirector/facts/yaml.rb +2 -0
- data/lib/puppet/indirector/file_bucket_file/file.rb +33 -27
- data/lib/puppet/indirector/file_bucket_file/rest.rb +6 -3
- data/lib/puppet/indirector/file_bucket_file/selector.rb +2 -1
- data/lib/puppet/indirector/file_content/file.rb +2 -0
- data/lib/puppet/indirector/file_content/file_server.rb +2 -0
- data/lib/puppet/indirector/file_content/rest.rb +3 -1
- data/lib/puppet/indirector/file_content/selector.rb +2 -0
- data/lib/puppet/indirector/file_content.rb +2 -0
- data/lib/puppet/indirector/file_metadata/file.rb +2 -0
- data/lib/puppet/indirector/file_metadata/file_server.rb +2 -0
- data/lib/puppet/indirector/file_metadata/http.rb +4 -2
- data/lib/puppet/indirector/file_metadata/rest.rb +3 -1
- data/lib/puppet/indirector/file_metadata/selector.rb +2 -0
- data/lib/puppet/indirector/file_metadata.rb +2 -0
- data/lib/puppet/indirector/file_server.rb +3 -0
- data/lib/puppet/indirector/generic_http.rb +2 -0
- data/lib/puppet/indirector/hiera.rb +8 -7
- data/lib/puppet/indirector/indirection.rb +50 -41
- data/lib/puppet/indirector/json.rb +9 -6
- data/lib/puppet/indirector/memory.rb +5 -2
- data/lib/puppet/indirector/msgpack.rb +11 -7
- data/lib/puppet/indirector/node/exec.rb +6 -6
- data/lib/puppet/indirector/node/json.rb +2 -1
- data/lib/puppet/indirector/node/memory.rb +2 -0
- data/lib/puppet/indirector/node/msgpack.rb +2 -0
- data/lib/puppet/indirector/node/plain.rb +2 -0
- data/lib/puppet/indirector/node/rest.rb +2 -0
- data/lib/puppet/indirector/node/store_configs.rb +3 -3
- data/lib/puppet/indirector/node/yaml.rb +2 -0
- data/lib/puppet/indirector/none.rb +3 -2
- data/lib/puppet/indirector/plain.rb +2 -0
- data/lib/puppet/indirector/report/json.rb +4 -2
- data/lib/puppet/indirector/report/msgpack.rb +3 -1
- data/lib/puppet/indirector/report/processor.rb +3 -0
- data/lib/puppet/indirector/report/rest.rb +2 -13
- data/lib/puppet/indirector/report/yaml.rb +4 -2
- data/lib/puppet/indirector/request.rb +15 -12
- data/lib/puppet/indirector/resource/ral.rb +10 -10
- data/lib/puppet/indirector/resource/store_configs.rb +3 -1
- data/lib/puppet/indirector/resource/validator.rb +2 -0
- data/lib/puppet/indirector/rest.rb +3 -1
- data/lib/puppet/indirector/store_configs.rb +2 -0
- data/lib/puppet/indirector/terminus.rb +8 -4
- data/lib/puppet/indirector/yaml.rb +7 -5
- data/lib/puppet/indirector.rb +3 -0
- data/lib/puppet/info_service/class_information_service.rb +16 -17
- data/lib/puppet/info_service/plan_information_service.rb +5 -3
- data/lib/puppet/info_service/task_information_service.rb +10 -9
- data/lib/puppet/info_service.rb +1 -0
- data/lib/puppet/interface/action.rb +46 -42
- data/lib/puppet/interface/action_builder.rb +12 -6
- data/lib/puppet/interface/action_manager.rb +9 -6
- data/lib/puppet/interface/documentation.rb +40 -34
- data/lib/puppet/interface/face_collection.rb +18 -14
- data/lib/puppet/interface/option.rb +23 -11
- data/lib/puppet/interface/option_builder.rb +14 -9
- data/lib/puppet/interface/option_manager.rb +12 -10
- data/lib/puppet/interface.rb +9 -8
- data/lib/puppet/loaders.rb +2 -1
- data/lib/puppet/metatype/manager.rb +16 -15
- data/lib/puppet/module/plan.rb +22 -15
- data/lib/puppet/module/task.rb +33 -28
- data/lib/puppet/module.rb +59 -47
- data/lib/puppet/module_tool/applications/application.rb +17 -12
- data/lib/puppet/module_tool/applications/checksummer.rb +3 -3
- data/lib/puppet/module_tool/applications/installer.rb +78 -87
- data/lib/puppet/module_tool/applications/uninstaller.rb +24 -22
- data/lib/puppet/module_tool/applications/unpacker.rb +11 -9
- data/lib/puppet/module_tool/applications/upgrader.rb +66 -60
- data/lib/puppet/module_tool/applications.rb +2 -0
- data/lib/puppet/module_tool/checksums.rb +4 -3
- data/lib/puppet/module_tool/dependency.rb +5 -4
- data/lib/puppet/module_tool/errors/base.rb +3 -1
- data/lib/puppet/module_tool/errors/installer.rb +6 -5
- data/lib/puppet/module_tool/errors/shared.rb +16 -15
- data/lib/puppet/module_tool/errors/uninstaller.rb +3 -2
- data/lib/puppet/module_tool/errors/upgrader.rb +4 -3
- data/lib/puppet/module_tool/errors.rb +2 -0
- data/lib/puppet/module_tool/install_directory.rb +8 -5
- data/lib/puppet/module_tool/installed_modules.rb +5 -2
- data/lib/puppet/module_tool/local_tarball.rb +10 -8
- data/lib/puppet/module_tool/metadata.rb +36 -30
- data/lib/puppet/module_tool/shared_behaviors.rb +61 -43
- data/lib/puppet/module_tool/tar/gnu.rb +12 -8
- data/lib/puppet/module_tool/tar/mini.rb +6 -4
- data/lib/puppet/module_tool/tar.rb +4 -2
- data/lib/puppet/module_tool.rb +11 -11
- data/lib/puppet/network/authconfig.rb +2 -0
- data/lib/puppet/network/authorization.rb +2 -0
- data/lib/puppet/network/client_request.rb +7 -4
- data/lib/puppet/network/format.rb +9 -3
- data/lib/puppet/network/format_handler.rb +9 -7
- data/lib/puppet/network/format_support.rb +8 -7
- data/lib/puppet/network/formats.rb +34 -25
- data/lib/puppet/network/http/api/indirected_routes.rb +38 -45
- data/lib/puppet/network/http/api/indirection_type.rb +2 -1
- data/lib/puppet/network/http/api/master/v3/environments.rb +2 -1
- data/lib/puppet/network/http/api/master/v3.rb +2 -1
- data/lib/puppet/network/http/api/master.rb +2 -0
- data/lib/puppet/network/http/api/server/v3/environments.rb +21 -15
- data/lib/puppet/network/http/api/server/v3.rb +14 -13
- data/lib/puppet/network/http/api/server.rb +2 -0
- data/lib/puppet/network/http/api.rb +20 -18
- data/lib/puppet/network/http/connection.rb +6 -4
- data/lib/puppet/network/http/error.rb +5 -3
- data/lib/puppet/network/http/handler.rb +12 -14
- data/lib/puppet/network/http/issues.rb +2 -0
- data/lib/puppet/network/http/memory_response.rb +3 -1
- data/lib/puppet/network/http/request.rb +22 -10
- data/lib/puppet/network/http/response.rb +2 -0
- data/lib/puppet/network/http/route.rb +14 -11
- data/lib/puppet/network/http.rb +2 -0
- data/lib/puppet/network/http_pool.rb +4 -3
- data/lib/puppet/network/uri.rb +2 -0
- data/lib/puppet/network.rb +2 -0
- data/lib/puppet/node/environment.rb +36 -33
- data/lib/puppet/node/facts.rb +10 -10
- data/lib/puppet/node/server_facts.rb +7 -7
- data/lib/puppet/node.rb +12 -12
- data/lib/puppet/pal/catalog_compiler.rb +2 -3
- data/lib/puppet/pal/compiler.rb +11 -6
- data/lib/puppet/pal/function_signature.rb +5 -3
- data/lib/puppet/pal/json_catalog_encoder.rb +7 -2
- data/lib/puppet/pal/pal_api.rb +2 -0
- data/lib/puppet/pal/pal_impl.rb +103 -108
- data/lib/puppet/pal/plan_signature.rb +4 -2
- data/lib/puppet/pal/script_compiler.rb +4 -2
- data/lib/puppet/pal/task_signature.rb +15 -9
- data/lib/puppet/parameter/boolean.rb +2 -0
- data/lib/puppet/parameter/package_options.rb +3 -1
- data/lib/puppet/parameter/path.rb +7 -3
- data/lib/puppet/parameter/value.rb +5 -3
- data/lib/puppet/parameter/value_collection.rb +17 -16
- data/lib/puppet/parameter.rb +17 -16
- data/lib/puppet/parser/abstract_compiler.rb +2 -3
- data/lib/puppet/parser/ast/block_expression.rb +4 -2
- data/lib/puppet/parser/ast/branch.rb +2 -0
- data/lib/puppet/parser/ast/hostclass.rb +4 -2
- data/lib/puppet/parser/ast/leaf.rb +3 -0
- data/lib/puppet/parser/ast/node.rb +2 -0
- data/lib/puppet/parser/ast/pops_bridge.rb +13 -13
- data/lib/puppet/parser/ast/resource.rb +8 -8
- data/lib/puppet/parser/ast/resource_instance.rb +3 -0
- data/lib/puppet/parser/ast/resourceparam.rb +9 -7
- data/lib/puppet/parser/ast/top_level_construct.rb +2 -0
- data/lib/puppet/parser/ast.rb +16 -15
- data/lib/puppet/parser/catalog_compiler.rb +3 -3
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +4 -2
- data/lib/puppet/parser/compiler/catalog_validator.rb +2 -0
- data/lib/puppet/parser/compiler.rb +45 -44
- data/lib/puppet/parser/e4_parser_adapter.rb +17 -16
- data/lib/puppet/parser/files.rb +8 -6
- data/lib/puppet/parser/functions/assert_type.rb +43 -41
- data/lib/puppet/parser/functions/binary_file.rb +16 -14
- data/lib/puppet/parser/functions/break.rb +29 -27
- data/lib/puppet/parser/functions/contain.rb +3 -1
- data/lib/puppet/parser/functions/create_resources.rb +18 -14
- data/lib/puppet/parser/functions/defined.rb +104 -102
- data/lib/puppet/parser/functions/dig.rb +26 -24
- data/lib/puppet/parser/functions/digest.rb +3 -1
- data/lib/puppet/parser/functions/each.rb +101 -99
- data/lib/puppet/parser/functions/epp.rb +4 -3
- data/lib/puppet/parser/functions/fail.rb +11 -9
- data/lib/puppet/parser/functions/file.rb +16 -14
- data/lib/puppet/parser/functions/filter.rb +57 -55
- data/lib/puppet/parser/functions/find_file.rb +19 -18
- data/lib/puppet/parser/functions/fqdn_rand.rb +25 -23
- data/lib/puppet/parser/functions/generate.rb +23 -21
- data/lib/puppet/parser/functions/hiera.rb +95 -93
- data/lib/puppet/parser/functions/hiera_array.rb +83 -82
- data/lib/puppet/parser/functions/hiera_hash.rb +93 -92
- data/lib/puppet/parser/functions/hiera_include.rb +93 -92
- data/lib/puppet/parser/functions/include.rb +5 -3
- data/lib/puppet/parser/functions/inline_epp.rb +4 -3
- data/lib/puppet/parser/functions/inline_template.rb +15 -13
- data/lib/puppet/parser/functions/lest.rb +36 -34
- data/lib/puppet/parser/functions/lookup.rb +132 -130
- data/lib/puppet/parser/functions/map.rb +54 -52
- data/lib/puppet/parser/functions/match.rb +31 -29
- data/lib/puppet/parser/functions/md5.rb +4 -2
- data/lib/puppet/parser/functions/new.rb +916 -915
- data/lib/puppet/parser/functions/next.rb +36 -34
- data/lib/puppet/parser/functions/realize.rb +13 -11
- data/lib/puppet/parser/functions/reduce.rb +134 -132
- data/lib/puppet/parser/functions/regsubst.rb +8 -5
- data/lib/puppet/parser/functions/require.rb +8 -5
- data/lib/puppet/parser/functions/return.rb +90 -88
- data/lib/puppet/parser/functions/reverse_each.rb +59 -57
- data/lib/puppet/parser/functions/scanf.rb +25 -23
- data/lib/puppet/parser/functions/sha1.rb +4 -2
- data/lib/puppet/parser/functions/sha256.rb +3 -1
- data/lib/puppet/parser/functions/shellquote.rb +2 -0
- data/lib/puppet/parser/functions/slice.rb +27 -25
- data/lib/puppet/parser/functions/split.rb +7 -6
- data/lib/puppet/parser/functions/sprintf.rb +8 -7
- data/lib/puppet/parser/functions/step.rb +62 -60
- data/lib/puppet/parser/functions/strftime.rb +175 -173
- data/lib/puppet/parser/functions/tag.rb +10 -7
- data/lib/puppet/parser/functions/tagged.rb +16 -13
- data/lib/puppet/parser/functions/template.rb +27 -24
- data/lib/puppet/parser/functions/then.rb +54 -52
- data/lib/puppet/parser/functions/type.rb +36 -34
- data/lib/puppet/parser/functions/versioncmp.rb +3 -2
- data/lib/puppet/parser/functions/with.rb +22 -20
- data/lib/puppet/parser/functions.rb +12 -9
- data/lib/puppet/parser/parser_factory.rb +2 -0
- data/lib/puppet/parser/relationship.rb +9 -3
- data/lib/puppet/parser/resource/param.rb +4 -2
- data/lib/puppet/parser/resource.rb +42 -40
- data/lib/puppet/parser/scope.rb +84 -70
- data/lib/puppet/parser/script_compiler.rb +12 -12
- data/lib/puppet/parser/templatewrapper.rb +3 -2
- data/lib/puppet/parser/type_loader.rb +31 -30
- data/lib/puppet/parser.rb +3 -1
- data/lib/puppet/plugins/configuration.rb +2 -0
- data/lib/puppet/plugins/syntax_checkers.rb +2 -1
- data/lib/puppet/plugins.rb +3 -1
- data/lib/puppet/pops/adaptable.rb +5 -3
- data/lib/puppet/pops/adapters.rb +4 -1
- data/lib/puppet/pops/evaluator/access_operator.rb +133 -120
- data/lib/puppet/pops/evaluator/callable_signature.rb +6 -5
- data/lib/puppet/pops/evaluator/closure.rb +272 -277
- data/lib/puppet/pops/evaluator/collector_transformer.rb +18 -15
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +10 -8
- data/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +4 -3
- data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +6 -5
- data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +10 -10
- data/lib/puppet/pops/evaluator/compare_operator.rb +36 -21
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +19 -17
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +19 -18
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +245 -245
- data/lib/puppet/pops/evaluator/external_syntax_support.rb +3 -2
- data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +6 -5
- data/lib/puppet/pops/evaluator/literal_evaluator.rb +5 -5
- data/lib/puppet/pops/evaluator/puppet_proc.rb +6 -3
- data/lib/puppet/pops/evaluator/relationship_operator.rb +14 -11
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +34 -30
- data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +35 -35
- data/lib/puppet/pops/evaluator/runtime3_support.rb +32 -39
- data/lib/puppet/pops/functions/dispatch.rb +7 -7
- data/lib/puppet/pops/functions/dispatcher.rb +8 -7
- data/lib/puppet/pops/functions/function.rb +18 -20
- data/lib/puppet/pops/issue_reporter.rb +25 -22
- data/lib/puppet/pops/issues.rb +10 -5
- data/lib/puppet/pops/label_provider.rb +6 -4
- data/lib/puppet/pops/loader/base_loader.rb +4 -4
- data/lib/puppet/pops/loader/dependency_loader.rb +8 -4
- data/lib/puppet/pops/loader/gem_support.rb +5 -2
- data/lib/puppet/pops/loader/generic_plan_instantiator.rb +2 -0
- data/lib/puppet/pops/loader/loader.rb +8 -8
- data/lib/puppet/pops/loader/loader_paths.rb +42 -41
- data/lib/puppet/pops/loader/module_loaders.rb +45 -49
- data/lib/puppet/pops/loader/predefined_loader.rb +3 -3
- data/lib/puppet/pops/loader/puppet_function_instantiator.rb +6 -2
- data/lib/puppet/pops/loader/puppet_plan_instantiator.rb +6 -2
- data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +6 -5
- data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +5 -1
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +5 -1
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +18 -8
- data/lib/puppet/pops/loader/runtime3_type_loader.rb +4 -3
- data/lib/puppet/pops/loader/simple_environment_loader.rb +3 -3
- data/lib/puppet/pops/loader/static_loader.rb +29 -27
- data/lib/puppet/pops/loader/task_instantiator.rb +4 -2
- data/lib/puppet/pops/loader/type_definition_instantiator.rb +9 -5
- data/lib/puppet/pops/loader/typed_name.rb +4 -2
- data/lib/puppet/pops/loader/uri_helper.rb +3 -1
- data/lib/puppet/pops/loaders.rb +27 -23
- data/lib/puppet/pops/lookup/configured_data_provider.rb +2 -0
- data/lib/puppet/pops/lookup/context.rb +32 -23
- data/lib/puppet/pops/lookup/data_adapter.rb +2 -0
- data/lib/puppet/pops/lookup/data_dig_function_provider.rb +8 -7
- data/lib/puppet/pops/lookup/data_hash_function_provider.rb +5 -3
- data/lib/puppet/pops/lookup/data_provider.rb +2 -0
- data/lib/puppet/pops/lookup/environment_data_provider.rb +2 -0
- data/lib/puppet/pops/lookup/explainer.rb +47 -45
- data/lib/puppet/pops/lookup/function_provider.rb +8 -6
- data/lib/puppet/pops/lookup/global_data_provider.rb +4 -3
- data/lib/puppet/pops/lookup/hiera_config.rb +208 -160
- data/lib/puppet/pops/lookup/interpolation.rb +21 -10
- data/lib/puppet/pops/lookup/invocation.rb +4 -0
- data/lib/puppet/pops/lookup/key_recorder.rb +6 -3
- data/lib/puppet/pops/lookup/location_resolver.rb +4 -2
- data/lib/puppet/pops/lookup/lookup_adapter.rb +39 -34
- data/lib/puppet/pops/lookup/lookup_key.rb +3 -1
- data/lib/puppet/pops/lookup/lookup_key_function_provider.rb +4 -2
- data/lib/puppet/pops/lookup/module_data_provider.rb +12 -9
- data/lib/puppet/pops/lookup/sub_lookup.rb +7 -3
- data/lib/puppet/pops/lookup.rb +16 -11
- data/lib/puppet/pops/merge_strategy.rb +22 -16
- data/lib/puppet/pops/migration/migration_checker.rb +8 -5
- data/lib/puppet/pops/model/ast.rb +786 -685
- data/lib/puppet/pops/model/ast_transformer.rb +18 -18
- data/lib/puppet/pops/model/factory.rb +33 -31
- data/lib/puppet/pops/model/model_label_provider.rb +5 -2
- data/lib/puppet/pops/model/model_tree_dumper.rb +32 -30
- data/lib/puppet/pops/model/pn_transformer.rb +5 -6
- data/lib/puppet/pops/model/tree_dumper.rb +7 -4
- data/lib/puppet/pops/parser/code_merger.rb +3 -3
- data/lib/puppet/pops/parser/epp_parser.rb +6 -5
- data/lib/puppet/pops/parser/epp_support.rb +10 -9
- data/lib/puppet/pops/parser/evaluating_parser.rb +13 -9
- data/lib/puppet/pops/parser/heredoc_support.rb +14 -14
- data/lib/puppet/pops/parser/interpolation_support.rb +25 -25
- data/lib/puppet/pops/parser/lexer2.rb +74 -62
- data/lib/puppet/pops/parser/lexer_support.rb +57 -57
- data/lib/puppet/pops/parser/locatable.rb +2 -2
- data/lib/puppet/pops/parser/locator.rb +47 -43
- data/lib/puppet/pops/parser/parser_support.rb +22 -21
- data/lib/puppet/pops/parser/pn_parser.rb +10 -9
- data/lib/puppet/pops/parser/slurp_support.rb +41 -40
- data/lib/puppet/pops/patterns.rb +14 -14
- data/lib/puppet/pops/pcore.rb +7 -6
- data/lib/puppet/pops/pn.rb +8 -5
- data/lib/puppet/pops/puppet_stack.rb +3 -1
- data/lib/puppet/pops/resource/param.rb +13 -12
- data/lib/puppet/pops/resource/resource_type_impl.rb +47 -45
- data/lib/puppet/pops/semantic_error.rb +3 -1
- data/lib/puppet/pops/serialization/abstract_reader.rb +6 -4
- data/lib/puppet/pops/serialization/abstract_writer.rb +11 -9
- data/lib/puppet/pops/serialization/deserializer.rb +3 -0
- data/lib/puppet/pops/serialization/extension.rb +8 -0
- data/lib/puppet/pops/serialization/from_data_converter.rb +16 -9
- data/lib/puppet/pops/serialization/instance_reader.rb +2 -0
- data/lib/puppet/pops/serialization/instance_writer.rb +2 -0
- data/lib/puppet/pops/serialization/json.rb +9 -5
- data/lib/puppet/pops/serialization/json_path.rb +3 -1
- data/lib/puppet/pops/serialization/object.rb +6 -3
- data/lib/puppet/pops/serialization/serializer.rb +20 -16
- data/lib/puppet/pops/serialization/time_factory.rb +2 -1
- data/lib/puppet/pops/serialization/to_data_converter.rb +9 -6
- data/lib/puppet/pops/serialization/to_stringified_converter.rb +8 -7
- data/lib/puppet/pops/serialization.rb +10 -8
- data/lib/puppet/pops/time/timespan.rb +33 -21
- data/lib/puppet/pops/time/timestamp.rb +12 -5
- data/lib/puppet/pops/types/annotatable.rb +3 -2
- data/lib/puppet/pops/types/annotation.rb +6 -4
- data/lib/puppet/pops/types/class_loader.rb +17 -15
- data/lib/puppet/pops/types/implementation_registry.rb +4 -1
- data/lib/puppet/pops/types/iterable.rb +24 -14
- data/lib/puppet/pops/types/p_binary_type.rb +6 -6
- data/lib/puppet/pops/types/p_init_type.rb +15 -12
- data/lib/puppet/pops/types/p_meta_type.rb +6 -5
- data/lib/puppet/pops/types/p_object_type.rb +104 -79
- data/lib/puppet/pops/types/p_object_type_extension.rb +15 -14
- data/lib/puppet/pops/types/p_runtime_type.rb +12 -10
- data/lib/puppet/pops/types/p_sem_ver_range_type.rb +3 -2
- data/lib/puppet/pops/types/p_sem_ver_type.rb +8 -8
- data/lib/puppet/pops/types/p_sensitive_type.rb +3 -5
- data/lib/puppet/pops/types/p_timespan_type.rb +7 -5
- data/lib/puppet/pops/types/p_timestamp_type.rb +4 -3
- data/lib/puppet/pops/types/p_type_set_type.rb +51 -44
- data/lib/puppet/pops/types/p_uri_type.rb +41 -33
- data/lib/puppet/pops/types/puppet_object.rb +2 -1
- data/lib/puppet/pops/types/recursion_guard.rb +12 -6
- data/lib/puppet/pops/types/ruby_generator.rb +19 -14
- data/lib/puppet/pops/types/ruby_method.rb +8 -7
- data/lib/puppet/pops/types/string_converter.rb +113 -103
- data/lib/puppet/pops/types/tree_iterators.rb +16 -20
- data/lib/puppet/pops/types/type_acceptor.rb +2 -0
- data/lib/puppet/pops/types/type_asserter.rb +5 -3
- data/lib/puppet/pops/types/type_assertion_error.rb +1 -1
- data/lib/puppet/pops/types/type_calculator.rb +56 -49
- data/lib/puppet/pops/types/type_conversion_error.rb +2 -10
- data/lib/puppet/pops/types/type_factory.rb +25 -16
- data/lib/puppet/pops/types/type_formatter.rb +60 -65
- data/lib/puppet/pops/types/type_mismatch_describer.rb +62 -53
- data/lib/puppet/pops/types/type_parser.rb +124 -117
- data/lib/puppet/pops/types/type_set_reference.rb +3 -0
- data/lib/puppet/pops/types/type_with_members.rb +2 -2
- data/lib/puppet/pops/types/types.rb +267 -249
- data/lib/puppet/pops/utils.rb +43 -45
- data/lib/puppet/pops/validation/checker4_0.rb +65 -58
- data/lib/puppet/pops/validation/tasks_checker.rb +7 -5
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +2 -2
- data/lib/puppet/pops/validation.rb +26 -23
- data/lib/puppet/pops/visitable.rb +2 -0
- data/lib/puppet/pops/visitor.rb +18 -4
- data/lib/puppet/pops.rb +6 -3
- data/lib/puppet/property/boolean.rb +2 -0
- data/lib/puppet/property/ensure.rb +17 -16
- data/lib/puppet/property/keyvalue.rb +15 -14
- data/lib/puppet/property/list.rb +10 -9
- data/lib/puppet/property/ordered_list.rb +6 -5
- data/lib/puppet/property.rb +47 -48
- data/lib/puppet/provider/aix_object.rb +15 -9
- data/lib/puppet/provider/command.rb +2 -0
- data/lib/puppet/provider/confine.rb +2 -0
- data/lib/puppet/provider/exec/posix.rb +4 -1
- data/lib/puppet/provider/exec/shell.rb +2 -0
- data/lib/puppet/provider/exec/windows.rb +6 -4
- data/lib/puppet/provider/exec.rb +6 -4
- data/lib/puppet/provider/file/posix.rb +37 -19
- data/lib/puppet/provider/file/windows.rb +28 -29
- data/lib/puppet/provider/group/aix.rb +4 -2
- data/lib/puppet/provider/group/directoryservice.rb +7 -5
- data/lib/puppet/provider/group/groupadd.rb +16 -10
- data/lib/puppet/provider/group/ldap.rb +3 -0
- data/lib/puppet/provider/group/pw.rb +4 -3
- data/lib/puppet/provider/group/windows_adsi.rb +10 -7
- data/lib/puppet/provider/ldap.rb +5 -3
- data/lib/puppet/provider/nameservice/directoryservice.rb +72 -62
- data/lib/puppet/provider/nameservice/objectadd.rb +4 -4
- data/lib/puppet/provider/nameservice/pw.rb +8 -8
- data/lib/puppet/provider/nameservice.rb +23 -19
- data/lib/puppet/provider/network_device.rb +2 -2
- data/lib/puppet/provider/package/aix.rb +29 -27
- data/lib/puppet/provider/package/appdmg.rb +24 -22
- data/lib/puppet/provider/package/apple.rb +7 -5
- data/lib/puppet/provider/package/apt.rb +28 -25
- data/lib/puppet/provider/package/aptitude.rb +3 -3
- data/lib/puppet/provider/package/aptrpm.rb +18 -14
- data/lib/puppet/provider/package/blastwave.rb +19 -22
- data/lib/puppet/provider/package/dnf.rb +12 -5
- data/lib/puppet/provider/package/dnfmodule.rb +17 -15
- data/lib/puppet/provider/package/dpkg.rb +24 -25
- data/lib/puppet/provider/package/fink.rb +17 -15
- data/lib/puppet/provider/package/freebsd.rb +6 -4
- data/lib/puppet/provider/package/gem.rb +29 -26
- data/lib/puppet/provider/package/hpux.rb +9 -7
- data/lib/puppet/provider/package/macports.rb +6 -4
- data/lib/puppet/provider/package/nim.rb +27 -28
- data/lib/puppet/provider/package/openbsd.rb +37 -34
- data/lib/puppet/provider/package/opkg.rb +17 -14
- data/lib/puppet/provider/package/pacman.rb +39 -42
- data/lib/puppet/provider/package/pip.rb +32 -31
- data/lib/puppet/provider/package/pip2.rb +3 -2
- data/lib/puppet/provider/package/pip3.rb +3 -2
- data/lib/puppet/provider/package/pkg.rb +46 -41
- data/lib/puppet/provider/package/pkgdmg.rb +23 -17
- data/lib/puppet/provider/package/pkgin.rb +14 -13
- data/lib/puppet/provider/package/pkgng.rb +20 -15
- data/lib/puppet/provider/package/pkgutil.rb +40 -41
- data/lib/puppet/provider/package/portage.rb +73 -69
- data/lib/puppet/provider/package/ports.rb +19 -16
- data/lib/puppet/provider/package/portupgrade.rb +48 -55
- data/lib/puppet/provider/package/puppet_gem.rb +6 -15
- data/lib/puppet/provider/package/puppetserver_gem.rb +16 -13
- data/lib/puppet/provider/package/rpm.rb +45 -40
- data/lib/puppet/provider/package/rug.rb +11 -11
- data/lib/puppet/provider/package/sun.rb +28 -24
- data/lib/puppet/provider/package/sunfreeware.rb +3 -1
- data/lib/puppet/provider/package/tdnf.rb +9 -2
- data/lib/puppet/provider/package/up2date.rb +10 -10
- data/lib/puppet/provider/package/urpmi.rb +9 -7
- data/lib/puppet/provider/package/windows/exe_package.rb +11 -9
- data/lib/puppet/provider/package/windows/msi_package.rb +5 -3
- data/lib/puppet/provider/package/windows/package.rb +8 -5
- data/lib/puppet/provider/package/windows.rb +10 -9
- data/lib/puppet/provider/package/xbps.rb +127 -0
- data/lib/puppet/provider/package/yum.rb +65 -62
- data/lib/puppet/provider/package/zypper.rb +29 -29
- data/lib/puppet/provider/package.rb +9 -7
- data/lib/puppet/provider/package_targetable.rb +5 -3
- data/lib/puppet/provider/parsedfile.rb +21 -17
- data/lib/puppet/provider/service/base.rb +19 -23
- data/lib/puppet/provider/service/bsd.rb +7 -5
- data/lib/puppet/provider/service/daemontools.rb +42 -39
- data/lib/puppet/provider/service/debian.rb +12 -10
- data/lib/puppet/provider/service/freebsd.rb +50 -52
- data/lib/puppet/provider/service/gentoo.rb +11 -9
- data/lib/puppet/provider/service/init.rb +33 -31
- data/lib/puppet/provider/service/launchd.rb +38 -31
- data/lib/puppet/provider/service/openbsd.rb +17 -16
- data/lib/puppet/provider/service/openrc.rb +6 -5
- data/lib/puppet/provider/service/openwrt.rb +7 -6
- data/lib/puppet/provider/service/rcng.rb +7 -5
- data/lib/puppet/provider/service/redhat.rb +10 -7
- data/lib/puppet/provider/service/runit.rb +16 -15
- data/lib/puppet/provider/service/service.rb +7 -8
- data/lib/puppet/provider/service/smf.rb +42 -37
- data/lib/puppet/provider/service/src.rb +29 -29
- data/lib/puppet/provider/service/systemd.rb +48 -48
- data/lib/puppet/provider/service/upstart.rb +37 -37
- data/lib/puppet/provider/service/windows.rb +45 -48
- data/lib/puppet/provider/user/aix.rb +24 -20
- data/lib/puppet/provider/user/directoryservice.rb +98 -91
- data/lib/puppet/provider/user/hpux.rb +33 -35
- data/lib/puppet/provider/user/ldap.rb +13 -10
- data/lib/puppet/provider/user/openbsd.rb +24 -22
- data/lib/puppet/provider/user/pw.rb +8 -7
- data/lib/puppet/provider/user/user_role_add.rb +40 -36
- data/lib/puppet/provider/user/useradd.rb +64 -53
- data/lib/puppet/provider/user/windows_adsi.rb +14 -10
- data/lib/puppet/provider.rb +20 -19
- data/lib/puppet/reference/configuration.rb +55 -47
- data/lib/puppet/reference/function.rb +2 -0
- data/lib/puppet/reference/indirection.rb +33 -28
- data/lib/puppet/reference/metaparameter.rb +3 -1
- data/lib/puppet/reference/providers.rb +12 -10
- data/lib/puppet/reference/report.rb +2 -0
- data/lib/puppet/reference/type.rb +7 -5
- data/lib/puppet/relationship.rb +10 -9
- data/lib/puppet/reports/http.rb +3 -2
- data/lib/puppet/reports/log.rb +4 -3
- data/lib/puppet/reports/store.rb +9 -6
- data/lib/puppet/reports.rb +8 -6
- data/lib/puppet/resource/catalog.rb +54 -53
- data/lib/puppet/resource/status.rb +9 -7
- data/lib/puppet/resource/type.rb +65 -41
- data/lib/puppet/resource/type_collection.rb +10 -6
- data/lib/puppet/resource.rb +91 -81
- data/lib/puppet/runtime.rb +2 -0
- data/lib/puppet/scheduler/job.rb +2 -0
- data/lib/puppet/scheduler/scheduler.rb +4 -2
- data/lib/puppet/scheduler/splay_job.rb +16 -3
- data/lib/puppet/scheduler/timer.rb +2 -0
- data/lib/puppet/scheduler.rb +3 -1
- data/lib/puppet/settings/alias_setting.rb +5 -5
- data/lib/puppet/settings/array_setting.rb +2 -1
- data/lib/puppet/settings/autosign_setting.rb +2 -1
- data/lib/puppet/settings/base_setting.rb +23 -18
- data/lib/puppet/settings/boolean_setting.rb +5 -3
- data/lib/puppet/settings/certificate_revocation_setting.rb +2 -1
- data/lib/puppet/settings/config_file.rb +11 -9
- data/lib/puppet/settings/directory_setting.rb +2 -0
- data/lib/puppet/settings/duration_setting.rb +5 -4
- data/lib/puppet/settings/enum_setting.rb +3 -1
- data/lib/puppet/settings/environment_conf.rb +19 -15
- data/lib/puppet/settings/errors.rb +6 -3
- data/lib/puppet/settings/file_or_directory_setting.rb +4 -7
- data/lib/puppet/settings/file_setting.rb +15 -24
- data/lib/puppet/settings/http_extra_headers_setting.rb +2 -1
- data/lib/puppet/settings/ini_file.rb +5 -3
- data/lib/puppet/settings/integer_setting.rb +3 -1
- data/lib/puppet/settings/path_setting.rb +2 -0
- data/lib/puppet/settings/port_setting.rb +4 -2
- data/lib/puppet/settings/priority_setting.rb +13 -12
- data/lib/puppet/settings/server_list_setting.rb +7 -6
- data/lib/puppet/settings/string_setting.rb +2 -0
- data/lib/puppet/settings/symbolic_enum_setting.rb +3 -1
- data/lib/puppet/settings/terminus_setting.rb +2 -0
- data/lib/puppet/settings/ttl_setting.rb +7 -5
- data/lib/puppet/settings/value_translator.rb +9 -7
- data/lib/puppet/settings.rb +171 -163
- data/lib/puppet/ssl/base.rb +9 -6
- data/lib/puppet/ssl/certificate.rb +6 -4
- data/lib/puppet/ssl/certificate_request.rb +34 -38
- data/lib/puppet/ssl/certificate_request_attributes.rb +7 -4
- data/lib/puppet/ssl/certificate_signer.rb +3 -3
- data/lib/puppet/ssl/digest.rb +2 -0
- data/lib/puppet/ssl/error.rb +3 -0
- data/lib/puppet/ssl/oids.rb +11 -9
- data/lib/puppet/ssl/openssl_loader.rb +6 -4
- data/lib/puppet/ssl/ssl_context.rb +2 -0
- data/lib/puppet/ssl/ssl_provider.rb +13 -9
- data/lib/puppet/ssl/state_machine.rb +153 -22
- data/lib/puppet/ssl/verifier.rb +3 -2
- data/lib/puppet/ssl.rb +3 -1
- data/lib/puppet/syntax_checkers/base64.rb +7 -5
- data/lib/puppet/syntax_checkers/epp.rb +7 -6
- data/lib/puppet/syntax_checkers/json.rb +7 -7
- data/lib/puppet/syntax_checkers/pp.rb +7 -6
- data/lib/puppet/syntax_checkers.rb +3 -1
- data/lib/puppet/test/test_helper.rb +30 -44
- data/lib/puppet/thread_local.rb +2 -0
- data/lib/puppet/transaction/additional_resource_generator.rb +12 -7
- data/lib/puppet/transaction/event.rb +8 -5
- data/lib/puppet/transaction/event_manager.rb +12 -11
- data/lib/puppet/transaction/persistence.rb +16 -16
- data/lib/puppet/transaction/report.rb +34 -27
- data/lib/puppet/transaction/resource_harness.rb +17 -9
- data/lib/puppet/transaction.rb +37 -35
- data/lib/puppet/trusted_external.rb +10 -5
- data/lib/puppet/type/component.rb +14 -7
- data/lib/puppet/type/exec.rb +71 -61
- data/lib/puppet/type/file/checksum.rb +6 -2
- data/lib/puppet/type/file/checksum_value.rb +6 -4
- data/lib/puppet/type/file/content.rb +24 -20
- data/lib/puppet/type/file/ctime.rb +5 -4
- data/lib/puppet/type/file/data_sync.rb +9 -6
- data/lib/puppet/type/file/ensure.rb +24 -25
- data/lib/puppet/type/file/group.rb +3 -1
- data/lib/puppet/type/file/mode.rb +14 -11
- data/lib/puppet/type/file/mtime.rb +5 -3
- data/lib/puppet/type/file/owner.rb +3 -2
- data/lib/puppet/type/file/selcontext.rb +24 -23
- data/lib/puppet/type/file/source.rb +31 -30
- data/lib/puppet/type/file/target.rb +23 -25
- data/lib/puppet/type/file/type.rb +3 -2
- data/lib/puppet/type/file.rb +60 -54
- data/lib/puppet/type/filebucket.rb +6 -4
- data/lib/puppet/type/group.rb +14 -13
- data/lib/puppet/type/notify.rb +4 -3
- data/lib/puppet/type/package.rb +47 -45
- data/lib/puppet/type/resources.rb +39 -34
- data/lib/puppet/type/schedule.rb +21 -21
- data/lib/puppet/type/service.rb +19 -18
- data/lib/puppet/type/stage.rb +2 -0
- data/lib/puppet/type/tidy.rb +40 -34
- data/lib/puppet/type/user.rb +62 -56
- data/lib/puppet/type/whit.rb +2 -1
- data/lib/puppet/type.rb +180 -227
- data/lib/puppet/util/at_fork/noop.rb +2 -0
- data/lib/puppet/util/at_fork/solaris.rb +37 -39
- data/lib/puppet/util/at_fork.rb +3 -1
- data/lib/puppet/util/autoload.rb +10 -4
- data/lib/puppet/util/backups.rb +13 -11
- data/lib/puppet/util/character_encoding.rb +9 -6
- data/lib/puppet/util/checksums.rb +16 -12
- data/lib/puppet/util/classgen.rb +18 -23
- data/lib/puppet/util/colors.rb +67 -65
- data/lib/puppet/util/command_line/puppet_option_parser.rb +18 -16
- data/lib/puppet/util/command_line/trollop.rb +695 -673
- data/lib/puppet/util/command_line.rb +7 -5
- data/lib/puppet/util/constant_inflector.rb +4 -3
- data/lib/puppet/util/diff.rb +17 -18
- data/lib/puppet/util/docs.rb +8 -4
- data/lib/puppet/util/errors.rb +13 -11
- data/lib/puppet/util/execution.rb +58 -36
- data/lib/puppet/util/execution_stub.rb +2 -0
- data/lib/puppet/util/feature.rb +9 -9
- data/lib/puppet/util/file_watcher.rb +3 -0
- data/lib/puppet/util/fileparsing.rb +20 -24
- data/lib/puppet/util/filetype.rb +43 -43
- data/lib/puppet/util/http_proxy.rb +2 -0
- data/lib/puppet/util/inifile.rb +13 -18
- data/lib/puppet/util/instance_loader.rb +3 -0
- data/lib/puppet/util/json.rb +2 -0
- data/lib/puppet/util/json_lockfile.rb +4 -1
- data/lib/puppet/util/ldap/connection.rb +21 -19
- data/lib/puppet/util/ldap/generator.rb +2 -0
- data/lib/puppet/util/ldap/manager.rb +20 -21
- data/lib/puppet/util/ldap.rb +2 -0
- data/lib/puppet/util/libuser.rb +3 -2
- data/lib/puppet/util/limits.rb +2 -0
- data/lib/puppet/util/lockfile.rb +8 -8
- data/lib/puppet/util/log/destination.rb +4 -3
- data/lib/puppet/util/log/destinations.rb +20 -20
- data/lib/puppet/util/log.rb +40 -31
- data/lib/puppet/util/logging.rb +34 -30
- data/lib/puppet/util/metaid.rb +2 -1
- data/lib/puppet/util/metric.rb +9 -6
- data/lib/puppet/util/monkey_patches.rb +22 -30
- data/lib/puppet/util/multi_match.rb +9 -5
- data/lib/puppet/util/network_device/base.rb +3 -2
- data/lib/puppet/util/network_device/config.rb +9 -9
- data/lib/puppet/util/network_device/transport/base.rb +1 -1
- data/lib/puppet/util/network_device/transport.rb +2 -0
- data/lib/puppet/util/network_device.rb +2 -0
- data/lib/puppet/util/package/version/debian.rb +33 -31
- data/lib/puppet/util/package/version/gem.rb +3 -0
- data/lib/puppet/util/package/version/pip.rb +14 -8
- data/lib/puppet/util/package/version/range/eq.rb +4 -1
- data/lib/puppet/util/package/version/range/gt.rb +3 -0
- data/lib/puppet/util/package/version/range/gt_eq.rb +3 -0
- data/lib/puppet/util/package/version/range/lt.rb +4 -1
- data/lib/puppet/util/package/version/range/lt_eq.rb +3 -0
- data/lib/puppet/util/package/version/range/min_max.rb +5 -0
- data/lib/puppet/util/package/version/range/simple.rb +2 -0
- data/lib/puppet/util/package/version/range.rb +9 -5
- data/lib/puppet/util/package/version/rpm.rb +7 -5
- data/lib/puppet/util/package.rb +5 -2
- data/lib/puppet/util/pidlock.rb +11 -10
- data/lib/puppet/util/platform.rb +5 -3
- data/lib/puppet/util/plist.rb +16 -16
- data/lib/puppet/util/posix.rb +27 -24
- data/lib/puppet/util/profiler/aggregate.rb +7 -10
- data/lib/puppet/util/profiler/around_profiler.rb +2 -1
- data/lib/puppet/util/profiler/logging.rb +3 -1
- data/lib/puppet/util/profiler/object_counts.rb +2 -0
- data/lib/puppet/util/profiler/wall_clock.rb +6 -5
- data/lib/puppet/util/profiler.rb +2 -0
- data/lib/puppet/util/provider_features.rb +10 -6
- data/lib/puppet/util/psych_support.rb +2 -0
- data/lib/puppet/util/rdoc/code_objects.rb +18 -20
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +118 -128
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +62 -79
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +32 -29
- data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +3 -1
- data/lib/puppet/util/rdoc/parser.rb +3 -1
- data/lib/puppet/util/rdoc.rb +10 -9
- data/lib/puppet/util/reference.rb +7 -32
- data/lib/puppet/util/resource_template.rb +3 -1
- data/lib/puppet/util/retry_action.rb +6 -5
- data/lib/puppet/util/rpm_compare.rb +31 -28
- data/lib/puppet/util/rubygems.rb +3 -3
- data/lib/puppet/util/run_mode.rb +46 -4
- data/lib/puppet/util/selinux.rb +72 -38
- data/lib/puppet/util/skip_tags.rb +2 -0
- data/lib/puppet/util/splayer.rb +2 -0
- data/lib/puppet/util/storage.rb +13 -13
- data/lib/puppet/util/suidmanager.rb +38 -37
- data/lib/puppet/util/symbolic_file_mode.rb +76 -76
- data/lib/puppet/util/tag_set.rb +4 -2
- data/lib/puppet/util/tagging.rb +12 -13
- data/lib/puppet/util/terminal.rb +6 -4
- data/lib/puppet/util/user_attr.rb +9 -7
- data/lib/puppet/util/warnings.rb +4 -0
- data/lib/puppet/util/watched_file.rb +4 -1
- data/lib/puppet/util/watcher/change_watcher.rb +2 -0
- data/lib/puppet/util/watcher/periodic_watcher.rb +2 -1
- data/lib/puppet/util/watcher/timer.rb +2 -0
- data/lib/puppet/util/watcher.rb +5 -5
- data/lib/puppet/util/windows/access_control_entry.rb +3 -1
- data/lib/puppet/util/windows/access_control_list.rb +10 -7
- data/lib/puppet/util/windows/adsi.rb +82 -74
- data/lib/puppet/util/windows/com.rb +10 -7
- data/lib/puppet/util/windows/daemon.rb +77 -80
- data/lib/puppet/util/windows/error.rb +7 -5
- data/lib/puppet/util/windows/eventlog.rb +13 -9
- data/lib/puppet/util/windows/file.rb +49 -45
- data/lib/puppet/util/windows/monkey_patches/process.rb +2 -3
- data/lib/puppet/util/windows/principal.rb +37 -34
- data/lib/puppet/util/windows/process.rb +36 -40
- data/lib/puppet/util/windows/registry.rb +60 -58
- data/lib/puppet/util/windows/root_certs.rb +5 -3
- data/lib/puppet/util/windows/security.rb +92 -90
- data/lib/puppet/util/windows/security_descriptor.rb +2 -0
- data/lib/puppet/util/windows/service.rb +24 -12
- data/lib/puppet/util/windows/sid.rb +23 -21
- data/lib/puppet/util/windows/string.rb +2 -0
- data/lib/puppet/util/windows/user.rb +56 -55
- data/lib/puppet/util/windows.rb +8 -1
- data/lib/puppet/util/yaml.rb +3 -1
- data/lib/puppet/util.rb +112 -161
- data/lib/puppet/vendor.rb +3 -1
- data/lib/puppet/version.rb +5 -2
- data/lib/puppet/x509/cert_provider.rb +48 -12
- data/lib/puppet/x509/pem_store.rb +3 -1
- data/lib/puppet/x509.rb +2 -0
- data/lib/puppet.rb +22 -19
- data/lib/puppet_pal.rb +2 -0
- data/lib/puppet_x.rb +2 -0
- data/locales/puppet.pot +9723 -5
- data/man/man5/puppet.conf.5 +121 -912
- data/man/man8/puppet-agent.8 +39 -107
- data/man/man8/puppet-apply.8 +18 -51
- data/man/man8/puppet-catalog.8 +25 -122
- data/man/man8/puppet-config.8 +22 -70
- data/man/man8/puppet-describe.8 +6 -22
- data/man/man8/puppet-device.8 +13 -49
- data/man/man8/puppet-doc.8 +8 -24
- data/man/man8/puppet-epp.8 +23 -168
- data/man/man8/puppet-facts.8 +14 -92
- data/man/man8/puppet-filebucket.8 +22 -54
- data/man/man8/puppet-generate.8 +5 -35
- data/man/man8/puppet-help.8 +8 -29
- data/man/man8/puppet-lookup.8 +25 -61
- data/man/man8/puppet-module.8 +19 -124
- data/man/man8/puppet-node.8 +47 -68
- data/man/man8/puppet-parser.8 +12 -55
- data/man/man8/puppet-plugin.8 +10 -33
- data/man/man8/puppet-report.8 +10 -53
- data/man/man8/puppet-resource.8 +19 -44
- data/man/man8/puppet-script.8 +11 -33
- data/man/man8/puppet-ssl.8 +12 -30
- data/man/man8/puppet.8 +90 -20
- data/tasks/tag.rake +34 -0
- metadata +77 -65
- data/CONTRIBUTING.md +0 -161
- data/examples/hiera/etc/hiera.yaml +0 -15
- data/examples/hiera/etc/hieradb/common.yaml +0 -3
- data/examples/hiera/etc/hieradb/dc1.yaml +0 -6
- data/examples/hiera/etc/hieradb/development.yaml +0 -2
- data/examples/hiera/etc/puppet.conf +0 -3
- data/examples/hiera/modules/data/manifests/common.pp +0 -4
- data/examples/hiera/modules/ntp/manifests/data.pp +0 -4
- data/examples/hiera/modules/ntp/templates/ntp.conf.erb +0 -3
- data/examples/hiera/modules/users/manifests/development.pp +0 -4
- data/lib/puppet/external/pson/common.rb +0 -374
- data/lib/puppet/external/pson/pure/generator.rb +0 -395
- data/lib/puppet/external/pson/pure/parser.rb +0 -308
- data/lib/puppet/external/pson/pure.rb +0 -15
- data/lib/puppet/external/pson/version.rb +0 -8
- data/lib/puppet/module_tool/contents_description.rb +0 -89
- data/tasks/benchmark.rake +0 -180
- data/tasks/ci.rake +0 -24
- data/tasks/generate_ast_model.rake +0 -90
- data/tasks/generate_cert_fixtures.rake +0 -194
- data/tasks/manpages.rake +0 -67
- data/tasks/memwalk.rake +0 -195
- data/tasks/parallel.rake +0 -410
- data/tasks/parser.rake +0 -22
- data/tasks/yard.rake +0 -59
@@ -1,39 +1,41 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
Puppet::Parser::Functions.newfunction(
|
2
4
|
:break,
|
3
5
|
:arity => 0,
|
4
|
-
:doc =>
|
5
|
-
Breaks the innermost iteration as if it encountered an end of input.
|
6
|
-
This function does not return to the caller.
|
6
|
+
:doc => <<~DOC
|
7
|
+
Breaks the innermost iteration as if it encountered an end of input.
|
8
|
+
This function does not return to the caller.
|
7
9
|
|
8
|
-
The signal produced to stop the iteration bubbles up through
|
9
|
-
the call stack until either terminating the innermost iteration or
|
10
|
-
raising an error if the end of the call stack is reached.
|
10
|
+
The signal produced to stop the iteration bubbles up through
|
11
|
+
the call stack until either terminating the innermost iteration or
|
12
|
+
raising an error if the end of the call stack is reached.
|
11
13
|
|
12
|
-
The break() function does not accept an argument.
|
14
|
+
The break() function does not accept an argument.
|
13
15
|
|
14
|
-
**Example:** Using `break`
|
16
|
+
**Example:** Using `break`
|
15
17
|
|
16
|
-
```puppet
|
17
|
-
$data = [1,2,3]
|
18
|
-
notice $data.map |$x| { if $x == 3 { break() } $x*10 }
|
19
|
-
```
|
18
|
+
```puppet
|
19
|
+
$data = [1,2,3]
|
20
|
+
notice $data.map |$x| { if $x == 3 { break() } $x*10 }
|
21
|
+
```
|
20
22
|
|
21
|
-
Would notice the value `[10, 20]`
|
23
|
+
Would notice the value `[10, 20]`
|
22
24
|
|
23
|
-
**Example:** Using a nested `break`
|
25
|
+
**Example:** Using a nested `break`
|
24
26
|
|
25
|
-
```puppet
|
26
|
-
function break_if_even($x) {
|
27
|
-
|
28
|
-
}
|
29
|
-
$data = [1,2,3]
|
30
|
-
notice $data.map |$x| { break_if_even($x); $x*10 }
|
31
|
-
```
|
32
|
-
Would notice the value `[10]`
|
27
|
+
```puppet
|
28
|
+
function break_if_even($x) {
|
29
|
+
if $x % 2 == 0 { break() }
|
30
|
+
}
|
31
|
+
$data = [1,2,3]
|
32
|
+
notice $data.map |$x| { break_if_even($x); $x*10 }
|
33
|
+
```
|
34
|
+
Would notice the value `[10]`
|
33
35
|
|
34
|
-
* Also see functions `next` and `return`
|
35
|
-
* Since 4.8.0
|
36
|
-
DOC
|
37
|
-
) do |
|
36
|
+
* Also see functions `next` and `return`
|
37
|
+
* Since 4.8.0
|
38
|
+
DOC
|
39
|
+
) do |_args|
|
38
40
|
Puppet::Parser::Functions::Error.is4x('break')
|
39
41
|
end
|
@@ -1,7 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# Called within a class definition, establishes a containment
|
2
4
|
# relationship with another class
|
3
5
|
|
4
|
-
Puppet::Parser::Functions
|
6
|
+
Puppet::Parser::Functions.newfunction(
|
5
7
|
:contain,
|
6
8
|
:arity => -2,
|
7
9
|
:doc => "Contain one or more classes inside the current class. If any of
|
@@ -1,6 +1,8 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
Puppet::Parser::Functions.newfunction(:create_resources, :arity => -3, :doc => <<-'ENDHEREDOC') do |args|
|
2
4
|
Converts a hash into a set of resources and adds them to the catalog.
|
3
|
-
|
5
|
+
|
4
6
|
**Note**: Use this function selectively. It's generally better to write resources in
|
5
7
|
[Puppet](https://puppet.com/docs/puppet/latest/lang_resources.html), as
|
6
8
|
resources created with `create_resource` are difficult to read and troubleshoot.
|
@@ -50,17 +52,19 @@ Puppet::Parser::Functions::newfunction(:create_resources, :arity => -3, :doc =>
|
|
50
52
|
data binding and Puppet default value expressions are considered (in that order) for the
|
51
53
|
final value of a parameter (just as when setting a parameter to `undef` in a Puppet language
|
52
54
|
resource declaration).
|
53
|
-
|
55
|
+
ENDHEREDOC
|
54
56
|
if Puppet[:tasks]
|
55
57
|
raise Puppet::ParseErrorWithIssue.from_issue_and_stack(
|
56
58
|
Puppet::Pops::Issues::CATALOG_OPERATION_NOT_SUPPORTED_WHEN_SCRIPTING,
|
57
|
-
{:operation => 'create_resources'}
|
59
|
+
{ :operation => 'create_resources' }
|
60
|
+
)
|
58
61
|
end
|
59
62
|
|
60
63
|
raise ArgumentError, (_("create_resources(): wrong number of arguments (%{count}; must be 2 or 3)") % { count: args.length }) if args.length > 3
|
61
|
-
raise ArgumentError,
|
64
|
+
raise ArgumentError, _('create_resources(): second argument must be a hash') unless args[1].is_a?(Hash)
|
65
|
+
|
62
66
|
if args.length == 3
|
63
|
-
raise ArgumentError,
|
67
|
+
raise ArgumentError, _('create_resources(): third argument, if provided, must be a hash') unless args[2].is_a?(Hash)
|
64
68
|
end
|
65
69
|
|
66
70
|
type, instances, defaults = args
|
@@ -89,22 +93,22 @@ Puppet::Parser::Functions::newfunction(:create_resources, :arity => -3, :doc =>
|
|
89
93
|
|
90
94
|
instances.map do |title, params|
|
91
95
|
# Add support for iteration if title is an array
|
92
|
-
resource_titles = title.is_a?(Array) ? title
|
96
|
+
resource_titles = title.is_a?(Array) ? title : [title]
|
93
97
|
Puppet::Pops::Evaluator::Runtime3ResourceSupport.create_resources(
|
94
98
|
file, line,
|
95
99
|
self,
|
96
100
|
virtual, exported,
|
97
101
|
type_name,
|
98
102
|
resource_titles,
|
99
|
-
defaults.merge(params).
|
103
|
+
defaults.merge(params).filter_map do |name, value|
|
100
104
|
value = nil if value == :undef
|
101
105
|
Puppet::Parser::Resource::Param.new(
|
102
|
-
:name
|
103
|
-
:value
|
104
|
-
:source =>
|
105
|
-
:add
|
106
|
+
:name => name,
|
107
|
+
:value => value, # wide open to various data types, must be correct
|
108
|
+
:source => source, # TODO: support :line => line, :file => file,
|
109
|
+
:add => false
|
106
110
|
)
|
107
|
-
end
|
108
|
-
|
111
|
+
end
|
112
|
+
)
|
109
113
|
end.flatten.compact
|
110
114
|
end
|
@@ -1,107 +1,109 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
Puppet::Parser::Functions.newfunction(
|
2
4
|
:defined,
|
3
5
|
:type => :rvalue,
|
4
6
|
:arity => -2,
|
5
|
-
:doc =>
|
6
|
-
Determines whether a given class or resource type is defined and returns a Boolean
|
7
|
-
value. You can also use `defined` to determine whether a specific resource is defined,
|
8
|
-
or whether a variable has a value (including `undef`, as opposed to the variable never
|
9
|
-
being declared or assigned).
|
10
|
-
|
11
|
-
This function takes at least one string argument, which can be a class name, type name,
|
12
|
-
resource reference, or variable reference of the form `'$name'`.
|
13
|
-
|
14
|
-
The `defined` function checks both native and defined types, including types
|
15
|
-
provided by modules. Types and classes are matched by their names. The function matches
|
16
|
-
resource declarations by using resource references.
|
17
|
-
|
18
|
-
**Examples**: Different types of `defined` function matches
|
19
|
-
|
20
|
-
~~~ puppet
|
21
|
-
# Matching resource types
|
22
|
-
defined("file")
|
23
|
-
defined("customtype")
|
24
|
-
|
25
|
-
# Matching defines and classes
|
26
|
-
defined("foo")
|
27
|
-
defined("foo::bar")
|
28
|
-
|
29
|
-
# Matching variables
|
30
|
-
defined('$name')
|
31
|
-
|
32
|
-
# Matching declared resources
|
33
|
-
defined(File['/tmp/file'])
|
34
|
-
~~~
|
35
|
-
|
36
|
-
Puppet depends on the configuration's evaluation order when checking whether a resource
|
37
|
-
is declared.
|
38
|
-
|
39
|
-
**Example**: Importance of evaluation order when using `defined`
|
40
|
-
|
41
|
-
~~~ puppet
|
42
|
-
# Assign values to $is_defined_before and $is_defined_after using identical `defined`
|
43
|
-
# functions.
|
44
|
-
|
45
|
-
$is_defined_before = defined(File['/tmp/file'])
|
46
|
-
|
47
|
-
file { "/tmp/file":
|
48
|
-
|
49
|
-
}
|
50
|
-
|
51
|
-
$is_defined_after = defined(File['/tmp/file'])
|
52
|
-
|
53
|
-
# $is_defined_before returns false, but $is_defined_after returns true.
|
54
|
-
~~~
|
55
|
-
|
56
|
-
This order requirement only refers to evaluation order. The order of resources in the
|
57
|
-
configuration graph (e.g. with `before` or `require`) does not affect the `defined`
|
58
|
-
function's behavior.
|
59
|
-
|
60
|
-
> **Warning:** Avoid relying on the result of the `defined` function in modules, as you
|
61
|
-
> might not be able to guarantee the evaluation order well enough to produce consistent
|
62
|
-
> results. This can cause other code that relies on the function's result to behave
|
63
|
-
> inconsistently or fail.
|
64
|
-
|
65
|
-
If you pass more than one argument to `defined`, the function returns `true` if _any_
|
66
|
-
of the arguments are defined. You can also match resources by type, allowing you to
|
67
|
-
match conditions of different levels of specificity, such as whether a specific resource
|
68
|
-
is of a specific data type.
|
69
|
-
|
70
|
-
**Example**: Matching multiple resources and resources by different types with `defined`
|
71
|
-
|
72
|
-
~~~ puppet
|
73
|
-
file { "/tmp/file1":
|
74
|
-
|
75
|
-
}
|
76
|
-
|
77
|
-
$tmp_file = file { "/tmp/file2":
|
78
|
-
|
79
|
-
}
|
80
|
-
|
81
|
-
# Each of these statements return `true` ...
|
82
|
-
defined(File['/tmp/file1'])
|
83
|
-
defined(File['/tmp/file1'],File['/tmp/file2'])
|
84
|
-
defined(File['/tmp/file1'],File['/tmp/file2'],File['/tmp/file3'])
|
85
|
-
# ... but this returns `false`.
|
86
|
-
defined(File['/tmp/file3'])
|
87
|
-
|
88
|
-
# Each of these statements returns `true` ...
|
89
|
-
defined(Type[Resource['file','/tmp/file2']])
|
90
|
-
defined(Resource['file','/tmp/file2'])
|
91
|
-
defined(File['/tmp/file2'])
|
92
|
-
defined('$tmp_file')
|
93
|
-
# ... but each of these returns `false`.
|
94
|
-
defined(Type[Resource['exec','/tmp/file2']])
|
95
|
-
defined(Resource['exec','/tmp/file2'])
|
96
|
-
defined(File['/tmp/file3'])
|
97
|
-
defined('$tmp_file2')
|
98
|
-
~~~
|
99
|
-
|
100
|
-
- Since 2.7.0
|
101
|
-
- Since 3.6.0 variable reference and future parser types
|
102
|
-
- Since 3.8.1 type specific requests with future parser
|
103
|
-
- Since 4.0.0 includes all future parser features
|
104
|
-
DOC
|
105
|
-
) do |
|
7
|
+
:doc => <<~DOC
|
8
|
+
Determines whether a given class or resource type is defined and returns a Boolean
|
9
|
+
value. You can also use `defined` to determine whether a specific resource is defined,
|
10
|
+
or whether a variable has a value (including `undef`, as opposed to the variable never
|
11
|
+
being declared or assigned).
|
12
|
+
|
13
|
+
This function takes at least one string argument, which can be a class name, type name,
|
14
|
+
resource reference, or variable reference of the form `'$name'`.
|
15
|
+
|
16
|
+
The `defined` function checks both native and defined types, including types
|
17
|
+
provided by modules. Types and classes are matched by their names. The function matches
|
18
|
+
resource declarations by using resource references.
|
19
|
+
|
20
|
+
**Examples**: Different types of `defined` function matches
|
21
|
+
|
22
|
+
~~~ puppet
|
23
|
+
# Matching resource types
|
24
|
+
defined("file")
|
25
|
+
defined("customtype")
|
26
|
+
|
27
|
+
# Matching defines and classes
|
28
|
+
defined("foo")
|
29
|
+
defined("foo::bar")
|
30
|
+
|
31
|
+
# Matching variables
|
32
|
+
defined('$name')
|
33
|
+
|
34
|
+
# Matching declared resources
|
35
|
+
defined(File['/tmp/file'])
|
36
|
+
~~~
|
37
|
+
|
38
|
+
Puppet depends on the configuration's evaluation order when checking whether a resource
|
39
|
+
is declared.
|
40
|
+
|
41
|
+
**Example**: Importance of evaluation order when using `defined`
|
42
|
+
|
43
|
+
~~~ puppet
|
44
|
+
# Assign values to $is_defined_before and $is_defined_after using identical `defined`
|
45
|
+
# functions.
|
46
|
+
|
47
|
+
$is_defined_before = defined(File['/tmp/file'])
|
48
|
+
|
49
|
+
file { "/tmp/file":
|
50
|
+
ensure => present,
|
51
|
+
}
|
52
|
+
|
53
|
+
$is_defined_after = defined(File['/tmp/file'])
|
54
|
+
|
55
|
+
# $is_defined_before returns false, but $is_defined_after returns true.
|
56
|
+
~~~
|
57
|
+
|
58
|
+
This order requirement only refers to evaluation order. The order of resources in the
|
59
|
+
configuration graph (e.g. with `before` or `require`) does not affect the `defined`
|
60
|
+
function's behavior.
|
61
|
+
|
62
|
+
> **Warning:** Avoid relying on the result of the `defined` function in modules, as you
|
63
|
+
> might not be able to guarantee the evaluation order well enough to produce consistent
|
64
|
+
> results. This can cause other code that relies on the function's result to behave
|
65
|
+
> inconsistently or fail.
|
66
|
+
|
67
|
+
If you pass more than one argument to `defined`, the function returns `true` if _any_
|
68
|
+
of the arguments are defined. You can also match resources by type, allowing you to
|
69
|
+
match conditions of different levels of specificity, such as whether a specific resource
|
70
|
+
is of a specific data type.
|
71
|
+
|
72
|
+
**Example**: Matching multiple resources and resources by different types with `defined`
|
73
|
+
|
74
|
+
~~~ puppet
|
75
|
+
file { "/tmp/file1":
|
76
|
+
ensure => file,
|
77
|
+
}
|
78
|
+
|
79
|
+
$tmp_file = file { "/tmp/file2":
|
80
|
+
ensure => file,
|
81
|
+
}
|
82
|
+
|
83
|
+
# Each of these statements return `true` ...
|
84
|
+
defined(File['/tmp/file1'])
|
85
|
+
defined(File['/tmp/file1'],File['/tmp/file2'])
|
86
|
+
defined(File['/tmp/file1'],File['/tmp/file2'],File['/tmp/file3'])
|
87
|
+
# ... but this returns `false`.
|
88
|
+
defined(File['/tmp/file3'])
|
89
|
+
|
90
|
+
# Each of these statements returns `true` ...
|
91
|
+
defined(Type[Resource['file','/tmp/file2']])
|
92
|
+
defined(Resource['file','/tmp/file2'])
|
93
|
+
defined(File['/tmp/file2'])
|
94
|
+
defined('$tmp_file')
|
95
|
+
# ... but each of these returns `false`.
|
96
|
+
defined(Type[Resource['exec','/tmp/file2']])
|
97
|
+
defined(Resource['exec','/tmp/file2'])
|
98
|
+
defined(File['/tmp/file3'])
|
99
|
+
defined('$tmp_file2')
|
100
|
+
~~~
|
101
|
+
|
102
|
+
- Since 2.7.0
|
103
|
+
- Since 3.6.0 variable reference and future parser types
|
104
|
+
- Since 3.8.1 type specific requests with future parser
|
105
|
+
- Since 4.0.0 includes all future parser features
|
106
|
+
DOC
|
107
|
+
) do |_vals|
|
106
108
|
Puppet::Parser::Functions::Error.is4x('defined')
|
107
109
|
end
|
@@ -1,38 +1,40 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
Puppet::Parser::Functions.newfunction(
|
2
4
|
:dig,
|
3
5
|
:type => :rvalue,
|
4
6
|
:arity => -1,
|
5
|
-
:doc =>
|
6
|
-
Returns a value for a sequence of given keys/indexes into a structure, such as
|
7
|
-
an array or hash.
|
8
|
-
This function is used to "dig into" a complex data structure by
|
9
|
-
using a sequence of keys / indexes to access a value from which
|
10
|
-
the next key/index is accessed recursively.
|
7
|
+
:doc => <<~DOC
|
8
|
+
Returns a value for a sequence of given keys/indexes into a structure, such as
|
9
|
+
an array or hash.
|
10
|
+
This function is used to "dig into" a complex data structure by
|
11
|
+
using a sequence of keys / indexes to access a value from which
|
12
|
+
the next key/index is accessed recursively.
|
11
13
|
|
12
|
-
The first encountered `undef` value or key stops the "dig" and `undef` is returned.
|
14
|
+
The first encountered `undef` value or key stops the "dig" and `undef` is returned.
|
13
15
|
|
14
|
-
An error is raised if an attempt is made to "dig" into
|
15
|
-
something other than an `undef` (which immediately returns `undef`), an `Array` or a `Hash`.
|
16
|
+
An error is raised if an attempt is made to "dig" into
|
17
|
+
something other than an `undef` (which immediately returns `undef`), an `Array` or a `Hash`.
|
16
18
|
|
17
19
|
|
18
20
|
|
19
|
-
**Example:** Using `dig`
|
21
|
+
**Example:** Using `dig`
|
20
22
|
|
21
|
-
```puppet
|
22
|
-
$data = {a => { b => [{x => 10, y => 20}, {x => 100, y => 200}]}}
|
23
|
-
notice $data.dig('a', 'b', 1, 'x')
|
24
|
-
```
|
23
|
+
```puppet
|
24
|
+
$data = {a => { b => [{x => 10, y => 20}, {x => 100, y => 200}]}}
|
25
|
+
notice $data.dig('a', 'b', 1, 'x')
|
26
|
+
```
|
25
27
|
|
26
|
-
Would notice the value 100.
|
28
|
+
Would notice the value 100.
|
27
29
|
|
28
|
-
This is roughly equivalent to `$data['a']['b'][1]['x']`. However, a standard
|
29
|
-
index will return an error and cause catalog compilation failure if any parent
|
30
|
-
of the final key (`'x'`) is `undef`. The `dig` function will return undef,
|
31
|
-
rather than failing catalog compilation. This allows you to check if data
|
32
|
-
exists in a structure without mandating that it always exists.
|
30
|
+
This is roughly equivalent to `$data['a']['b'][1]['x']`. However, a standard
|
31
|
+
index will return an error and cause catalog compilation failure if any parent
|
32
|
+
of the final key (`'x'`) is `undef`. The `dig` function will return undef,
|
33
|
+
rather than failing catalog compilation. This allows you to check if data
|
34
|
+
exists in a structure without mandating that it always exists.
|
33
35
|
|
34
|
-
* Since 4.5.0
|
35
|
-
DOC
|
36
|
-
) do |
|
36
|
+
* Since 4.5.0
|
37
|
+
DOC
|
38
|
+
) do |_args|
|
37
39
|
Puppet::Parser::Functions::Error.is4x('dig')
|
38
40
|
end
|
@@ -1,5 +1,7 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require_relative '../../../puppet/util/checksums'
|
2
|
-
Puppet::Parser::Functions
|
4
|
+
Puppet::Parser::Functions.newfunction(:digest, :type => :rvalue, :arity => 1, :doc => "Returns a hash value from a provided string using the digest_algorithm setting from the Puppet config file.") do |args|
|
3
5
|
algo = Puppet[:digest_algorithm]
|
4
6
|
Puppet::Util::Checksums.method(algo.intern).call args[0]
|
5
7
|
end
|
@@ -1,104 +1,106 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
Puppet::Parser::Functions.newfunction(
|
2
4
|
:each,
|
3
5
|
:type => :rvalue,
|
4
6
|
:arity => -3,
|
5
|
-
:doc =>
|
6
|
-
Runs a [lambda](https://puppet.com/docs/puppet/latest/lang_lambdas.html)
|
7
|
-
repeatedly using each value in a data structure, then returns the values unchanged.
|
8
|
-
|
9
|
-
This function takes two mandatory arguments, in this order:
|
10
|
-
|
11
|
-
1. An array or hash the function will iterate over.
|
12
|
-
2. A lambda, which the function calls for each element in the first argument. It can
|
13
|
-
request one or two parameters.
|
14
|
-
|
15
|
-
**Example**: Using the `each` function
|
16
|
-
|
17
|
-
`$data.each |$parameter| { <PUPPET CODE BLOCK> }`
|
18
|
-
|
19
|
-
or
|
20
|
-
|
21
|
-
`each($data) |$parameter| { <PUPPET CODE BLOCK> }`
|
22
|
-
|
23
|
-
When the first argument (`$data` in the above example) is an array, Puppet passes each
|
24
|
-
value in turn to the lambda, then returns the original values.
|
25
|
-
|
26
|
-
**Example**: Using the `each` function with an array and a one-parameter lambda
|
27
|
-
|
28
|
-
~~~ puppet
|
29
|
-
# For the array $data, run a lambda that creates a resource for each item.
|
30
|
-
$data = ["routers", "servers", "workstations"]
|
31
|
-
$data.each |$item| {
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
}
|
36
|
-
# Puppet creates one resource for each of the three items in $data. Each resource is
|
37
|
-
# named after the item's value and uses the item's value in a parameter.
|
38
|
-
~~~
|
39
|
-
|
40
|
-
When the first argument is a hash, Puppet passes each key and value pair to the lambda
|
41
|
-
as an array in the form `[key, value]` and returns the original hash.
|
42
|
-
|
43
|
-
**Example**: Using the `each` function with a hash and a one-parameter lambda
|
44
|
-
|
45
|
-
~~~ puppet
|
46
|
-
# For the hash $data, run a lambda using each item as a key-value array that creates a
|
47
|
-
# resource for each item.
|
48
|
-
$data = {"rtr" => "Router", "svr" => "Server", "wks" => "Workstation"}
|
49
|
-
$data.each |$items| {
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
}
|
54
|
-
# Puppet creates one resource for each of the three items in $data, each named after the
|
55
|
-
# item's key and containing a parameter using the item's value.
|
56
|
-
~~~
|
57
|
-
|
58
|
-
When the first argument is an array and the lambda has two parameters, Puppet passes the
|
59
|
-
array's indexes (enumerated from 0) in the first parameter and its values in the second
|
60
|
-
parameter.
|
61
|
-
|
62
|
-
**Example**: Using the `each` function with an array and a two-parameter lambda
|
63
|
-
|
64
|
-
~~~ puppet
|
65
|
-
# For the array $data, run a lambda using each item's index and value that creates a
|
66
|
-
# resource for each item.
|
67
|
-
$data = ["routers", "servers", "workstations"]
|
68
|
-
$data.each |$index, $value| {
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
}
|
73
|
-
# Puppet creates one resource for each of the three items in $data, each named after the
|
74
|
-
# item's value and containing a parameter using the item's index.
|
75
|
-
~~~
|
76
|
-
|
77
|
-
When the first argument is a hash, Puppet passes its keys to the first parameter and its
|
78
|
-
values to the second parameter.
|
79
|
-
|
80
|
-
**Example**: Using the `each` function with a hash and a two-parameter lambda
|
81
|
-
|
82
|
-
~~~ puppet
|
83
|
-
# For the hash $data, run a lambda using each item's key and value to create a resource
|
84
|
-
# for each item.
|
85
|
-
$data = {"rtr" => "Router", "svr" => "Server", "wks" => "Workstation"}
|
86
|
-
$data.each |$key, $value| {
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
}
|
91
|
-
# Puppet creates one resource for each of the three items in $data, each named after the
|
92
|
-
# item's key and containing a parameter using the item's value.
|
93
|
-
~~~
|
94
|
-
|
95
|
-
For an example that demonstrates how to create multiple `file` resources using `each`,
|
96
|
-
see the Puppet
|
97
|
-
[iteration](https://puppet.com/docs/puppet/latest/lang_iteration.html)
|
98
|
-
documentation.
|
99
|
-
|
100
|
-
- Since 4.0.0
|
101
|
-
DOC
|
102
|
-
) do |
|
7
|
+
:doc => <<~DOC
|
8
|
+
Runs a [lambda](https://puppet.com/docs/puppet/latest/lang_lambdas.html)
|
9
|
+
repeatedly using each value in a data structure, then returns the values unchanged.
|
10
|
+
|
11
|
+
This function takes two mandatory arguments, in this order:
|
12
|
+
|
13
|
+
1. An array or hash the function will iterate over.
|
14
|
+
2. A lambda, which the function calls for each element in the first argument. It can
|
15
|
+
request one or two parameters.
|
16
|
+
|
17
|
+
**Example**: Using the `each` function
|
18
|
+
|
19
|
+
`$data.each |$parameter| { <PUPPET CODE BLOCK> }`
|
20
|
+
|
21
|
+
or
|
22
|
+
|
23
|
+
`each($data) |$parameter| { <PUPPET CODE BLOCK> }`
|
24
|
+
|
25
|
+
When the first argument (`$data` in the above example) is an array, Puppet passes each
|
26
|
+
value in turn to the lambda, then returns the original values.
|
27
|
+
|
28
|
+
**Example**: Using the `each` function with an array and a one-parameter lambda
|
29
|
+
|
30
|
+
~~~ puppet
|
31
|
+
# For the array $data, run a lambda that creates a resource for each item.
|
32
|
+
$data = ["routers", "servers", "workstations"]
|
33
|
+
$data.each |$item| {
|
34
|
+
notify { $item:
|
35
|
+
message => $item
|
36
|
+
}
|
37
|
+
}
|
38
|
+
# Puppet creates one resource for each of the three items in $data. Each resource is
|
39
|
+
# named after the item's value and uses the item's value in a parameter.
|
40
|
+
~~~
|
41
|
+
|
42
|
+
When the first argument is a hash, Puppet passes each key and value pair to the lambda
|
43
|
+
as an array in the form `[key, value]` and returns the original hash.
|
44
|
+
|
45
|
+
**Example**: Using the `each` function with a hash and a one-parameter lambda
|
46
|
+
|
47
|
+
~~~ puppet
|
48
|
+
# For the hash $data, run a lambda using each item as a key-value array that creates a
|
49
|
+
# resource for each item.
|
50
|
+
$data = {"rtr" => "Router", "svr" => "Server", "wks" => "Workstation"}
|
51
|
+
$data.each |$items| {
|
52
|
+
notify { $items[0]:
|
53
|
+
message => $items[1]
|
54
|
+
}
|
55
|
+
}
|
56
|
+
# Puppet creates one resource for each of the three items in $data, each named after the
|
57
|
+
# item's key and containing a parameter using the item's value.
|
58
|
+
~~~
|
59
|
+
|
60
|
+
When the first argument is an array and the lambda has two parameters, Puppet passes the
|
61
|
+
array's indexes (enumerated from 0) in the first parameter and its values in the second
|
62
|
+
parameter.
|
63
|
+
|
64
|
+
**Example**: Using the `each` function with an array and a two-parameter lambda
|
65
|
+
|
66
|
+
~~~ puppet
|
67
|
+
# For the array $data, run a lambda using each item's index and value that creates a
|
68
|
+
# resource for each item.
|
69
|
+
$data = ["routers", "servers", "workstations"]
|
70
|
+
$data.each |$index, $value| {
|
71
|
+
notify { $value:
|
72
|
+
message => $index
|
73
|
+
}
|
74
|
+
}
|
75
|
+
# Puppet creates one resource for each of the three items in $data, each named after the
|
76
|
+
# item's value and containing a parameter using the item's index.
|
77
|
+
~~~
|
78
|
+
|
79
|
+
When the first argument is a hash, Puppet passes its keys to the first parameter and its
|
80
|
+
values to the second parameter.
|
81
|
+
|
82
|
+
**Example**: Using the `each` function with a hash and a two-parameter lambda
|
83
|
+
|
84
|
+
~~~ puppet
|
85
|
+
# For the hash $data, run a lambda using each item's key and value to create a resource
|
86
|
+
# for each item.
|
87
|
+
$data = {"rtr" => "Router", "svr" => "Server", "wks" => "Workstation"}
|
88
|
+
$data.each |$key, $value| {
|
89
|
+
notify { $key:
|
90
|
+
message => $value
|
91
|
+
}
|
92
|
+
}
|
93
|
+
# Puppet creates one resource for each of the three items in $data, each named after the
|
94
|
+
# item's key and containing a parameter using the item's value.
|
95
|
+
~~~
|
96
|
+
|
97
|
+
For an example that demonstrates how to create multiple `file` resources using `each`,
|
98
|
+
see the Puppet
|
99
|
+
[iteration](https://puppet.com/docs/puppet/latest/lang_iteration.html)
|
100
|
+
documentation.
|
101
|
+
|
102
|
+
- Since 4.0.0
|
103
|
+
DOC
|
104
|
+
) do |_args|
|
103
105
|
Puppet::Parser::Functions::Error.is4x('each')
|
104
106
|
end
|
@@ -1,4 +1,6 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
Puppet::Parser::Functions.newfunction(:epp, :type => :rvalue, :arity => -2, :doc =>
|
2
4
|
"Evaluates an Embedded Puppet (EPP) template file and returns the rendered text
|
3
5
|
result as a String.
|
4
6
|
|
@@ -33,7 +35,6 @@ Parameters are required only if they are declared in the called template's
|
|
33
35
|
parameter tag without default values. Puppet produces an error if the `epp`
|
34
36
|
function fails to pass any required parameter.
|
35
37
|
|
36
|
-
- Since 4.0.0") do |
|
37
|
-
|
38
|
+
- Since 4.0.0") do |_args|
|
38
39
|
Puppet::Parser::Functions::Error.is4x('epp')
|
39
40
|
end
|