puppet 8.3.1-x86-mingw32 → 8.4.0-x86-mingw32
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/Gemfile.lock +51 -43
- data/README.md +4 -4
- data/Rakefile +0 -27
- data/examples/enc/regexp_nodes/regexp_nodes.rb +1 -1
- data/ext/windows/service/daemon.rb +4 -5
- data/lib/hiera/puppet_function.rb +3 -2
- data/lib/hiera/scope.rb +2 -2
- data/lib/hiera_puppet.rb +1 -3
- data/lib/puppet/agent/disabler.rb +2 -1
- data/lib/puppet/agent/locker.rb +1 -2
- data/lib/puppet/agent.rb +2 -1
- data/lib/puppet/application/agent.rb +292 -291
- data/lib/puppet/application/apply.rb +143 -139
- data/lib/puppet/application/catalog.rb +1 -0
- data/lib/puppet/application/config.rb +1 -0
- data/lib/puppet/application/describe.rb +53 -55
- data/lib/puppet/application/device.rb +150 -150
- data/lib/puppet/application/doc.rb +60 -59
- data/lib/puppet/application/epp.rb +1 -0
- data/lib/puppet/application/face_base.rb +8 -7
- data/lib/puppet/application/facts.rb +1 -0
- data/lib/puppet/application/filebucket.rb +186 -184
- data/lib/puppet/application/generate.rb +1 -0
- data/lib/puppet/application/help.rb +1 -0
- data/lib/puppet/application/indirection_base.rb +1 -0
- data/lib/puppet/application/lookup.rb +168 -171
- data/lib/puppet/application/module.rb +1 -0
- data/lib/puppet/application/node.rb +1 -0
- data/lib/puppet/application/parser.rb +1 -0
- data/lib/puppet/application/plugin.rb +1 -0
- data/lib/puppet/application/report.rb +1 -0
- data/lib/puppet/application/resource.rb +111 -108
- data/lib/puppet/application/script.rb +92 -93
- data/lib/puppet/application/ssl.rb +89 -88
- data/lib/puppet/application.rb +9 -8
- data/lib/puppet/application_support.rb +1 -1
- data/lib/puppet/coercion.rb +3 -2
- data/lib/puppet/compilable_resource_type.rb +1 -0
- data/lib/puppet/concurrent/lock.rb +1 -2
- data/lib/puppet/concurrent/synchronized.rb +1 -2
- data/lib/puppet/concurrent/thread_local_singleton.rb +1 -0
- data/lib/puppet/concurrent.rb +1 -0
- data/lib/puppet/configurer/downloader.rb +1 -1
- data/lib/puppet/configurer/fact_handler.rb +2 -1
- data/lib/puppet/configurer/plugin_handler.rb +1 -0
- data/lib/puppet/configurer.rb +17 -13
- data/lib/puppet/confine/any.rb +1 -0
- data/lib/puppet/confine/boolean.rb +1 -0
- data/lib/puppet/confine/exists.rb +1 -0
- data/lib/puppet/confine/false.rb +1 -0
- data/lib/puppet/confine/feature.rb +1 -0
- data/lib/puppet/confine/true.rb +1 -0
- data/lib/puppet/confine/variable.rb +1 -0
- data/lib/puppet/confine.rb +2 -0
- data/lib/puppet/confine_collection.rb +3 -1
- data/lib/puppet/confiner.rb +1 -0
- data/lib/puppet/context/trusted_information.rb +1 -0
- data/lib/puppet/context.rb +1 -0
- data/lib/puppet/daemon.rb +4 -1
- data/lib/puppet/data_binding.rb +2 -1
- data/lib/puppet/datatypes/error.rb +2 -1
- data/lib/puppet/datatypes/impl/error.rb +1 -0
- data/lib/puppet/datatypes.rb +5 -1
- data/lib/puppet/defaults.rb +19 -18
- data/lib/puppet/environments.rb +3 -2
- data/lib/puppet/error.rb +9 -7
- data/lib/puppet/etc.rb +6 -3
- data/lib/puppet/external/dot.rb +12 -31
- data/lib/puppet/face/catalog/select.rb +2 -1
- data/lib/puppet/face/catalog.rb +3 -2
- data/lib/puppet/face/config.rb +18 -20
- data/lib/puppet/face/epp.rb +6 -6
- data/lib/puppet/face/facts.rb +4 -3
- data/lib/puppet/face/generate.rb +2 -0
- data/lib/puppet/face/help.rb +8 -7
- data/lib/puppet/face/module/changes.rb +2 -0
- data/lib/puppet/face/module/install.rb +2 -1
- data/lib/puppet/face/module/list.rb +7 -8
- data/lib/puppet/face/module/uninstall.rb +1 -0
- data/lib/puppet/face/module.rb +1 -0
- data/lib/puppet/face/node/clean.rb +2 -1
- data/lib/puppet/face/node.rb +2 -1
- data/lib/puppet/face/parser.rb +2 -2
- data/lib/puppet/face/plugin.rb +2 -1
- data/lib/puppet/face/report.rb +2 -1
- data/lib/puppet/face/resource.rb +1 -0
- data/lib/puppet/face.rb +1 -0
- data/lib/puppet/feature/base.rb +2 -1
- data/lib/puppet/feature/bolt.rb +1 -0
- data/lib/puppet/feature/cfpropertylist.rb +1 -0
- data/lib/puppet/feature/eventlog.rb +1 -0
- data/lib/puppet/feature/hiera_eyaml.rb +1 -0
- data/lib/puppet/feature/hocon.rb +1 -0
- data/lib/puppet/feature/libuser.rb +4 -3
- data/lib/puppet/feature/msgpack.rb +1 -0
- data/lib/puppet/feature/pe_license.rb +2 -1
- data/lib/puppet/feature/pson.rb +1 -0
- data/lib/puppet/feature/selinux.rb +1 -0
- data/lib/puppet/feature/ssh.rb +1 -0
- data/lib/puppet/feature/telnet.rb +1 -0
- data/lib/puppet/feature/zlib.rb +1 -0
- data/lib/puppet/ffi/posix/constants.rb +1 -0
- data/lib/puppet/ffi/posix/functions.rb +1 -1
- data/lib/puppet/ffi/posix.rb +1 -0
- data/lib/puppet/ffi/windows/api_types.rb +1 -0
- data/lib/puppet/ffi/windows/constants.rb +78 -77
- data/lib/puppet/ffi/windows/functions.rb +73 -73
- data/lib/puppet/ffi/windows/structs.rb +3 -3
- data/lib/puppet/ffi/windows.rb +1 -0
- data/lib/puppet/file_bucket/dipper.rb +7 -1
- data/lib/puppet/file_bucket/file.rb +1 -0
- data/lib/puppet/file_bucket.rb +1 -0
- data/lib/puppet/file_serving/base.rb +13 -6
- data/lib/puppet/file_serving/configuration/parser.rb +3 -1
- data/lib/puppet/file_serving/configuration.rb +5 -3
- data/lib/puppet/file_serving/content.rb +1 -0
- data/lib/puppet/file_serving/fileset.rb +9 -6
- data/lib/puppet/file_serving/http_metadata.rb +1 -3
- data/lib/puppet/file_serving/metadata.rb +9 -10
- data/lib/puppet/file_serving/mount/file.rb +6 -3
- data/lib/puppet/file_serving/mount/locales.rb +2 -1
- data/lib/puppet/file_serving/mount/modules.rb +2 -0
- data/lib/puppet/file_serving/mount/pluginfacts.rb +2 -1
- data/lib/puppet/file_serving/mount/plugins.rb +2 -1
- data/lib/puppet/file_serving/mount/scripts.rb +2 -0
- data/lib/puppet/file_serving/mount/tasks.rb +2 -0
- data/lib/puppet/file_serving/mount.rb +2 -0
- data/lib/puppet/file_serving/terminus_helper.rb +1 -0
- data/lib/puppet/file_serving/terminus_selector.rb +1 -0
- data/lib/puppet/file_serving.rb +1 -0
- data/lib/puppet/file_system/file_impl.rb +2 -2
- data/lib/puppet/file_system/jruby.rb +1 -0
- data/lib/puppet/file_system/memory_file.rb +2 -0
- data/lib/puppet/file_system/memory_impl.rb +3 -0
- data/lib/puppet/file_system/path_pattern.rb +1 -0
- data/lib/puppet/file_system/posix.rb +5 -1
- data/lib/puppet/file_system/uniquefile.rb +11 -11
- data/lib/puppet/file_system/windows.rb +4 -2
- data/lib/puppet/file_system.rb +3 -2
- data/lib/puppet/forge/cache.rb +1 -1
- data/lib/puppet/forge/errors.rb +1 -3
- data/lib/puppet/forge/repository.rb +2 -0
- data/lib/puppet/forge.rb +3 -0
- data/lib/puppet/functions/abs.rb +2 -1
- data/lib/puppet/functions/alert.rb +1 -0
- data/lib/puppet/functions/all.rb +1 -0
- data/lib/puppet/functions/annotate.rb +1 -0
- data/lib/puppet/functions/any.rb +1 -0
- data/lib/puppet/functions/assert_type.rb +1 -0
- data/lib/puppet/functions/binary_file.rb +3 -1
- data/lib/puppet/functions/break.rb +2 -1
- data/lib/puppet/functions/call.rb +1 -1
- data/lib/puppet/functions/camelcase.rb +1 -1
- data/lib/puppet/functions/capitalize.rb +1 -1
- data/lib/puppet/functions/ceiling.rb +2 -2
- data/lib/puppet/functions/chomp.rb +1 -1
- data/lib/puppet/functions/chop.rb +1 -1
- data/lib/puppet/functions/compare.rb +1 -0
- data/lib/puppet/functions/contain.rb +1 -0
- data/lib/puppet/functions/convert_to.rb +1 -0
- data/lib/puppet/functions/crit.rb +1 -0
- data/lib/puppet/functions/debug.rb +1 -0
- data/lib/puppet/functions/defined.rb +7 -4
- data/lib/puppet/functions/dig.rb +10 -8
- data/lib/puppet/functions/downcase.rb +1 -0
- data/lib/puppet/functions/each.rb +1 -0
- data/lib/puppet/functions/emerg.rb +1 -0
- data/lib/puppet/functions/empty.rb +1 -0
- data/lib/puppet/functions/epp.rb +1 -1
- data/lib/puppet/functions/err.rb +1 -0
- data/lib/puppet/functions/eyaml_lookup_key.rb +6 -4
- data/lib/puppet/functions/filter.rb +1 -0
- data/lib/puppet/functions/find_file.rb +1 -0
- data/lib/puppet/functions/find_template.rb +1 -0
- data/lib/puppet/functions/flatten.rb +1 -0
- data/lib/puppet/functions/floor.rb +2 -2
- data/lib/puppet/functions/get.rb +2 -1
- data/lib/puppet/functions/getvar.rb +2 -1
- data/lib/puppet/functions/hiera.rb +1 -0
- data/lib/puppet/functions/hiera_array.rb +1 -0
- data/lib/puppet/functions/hiera_hash.rb +1 -0
- data/lib/puppet/functions/hiera_include.rb +2 -0
- data/lib/puppet/functions/hocon_data.rb +1 -0
- data/lib/puppet/functions/import.rb +1 -0
- data/lib/puppet/functions/include.rb +1 -0
- data/lib/puppet/functions/index.rb +2 -2
- data/lib/puppet/functions/info.rb +1 -0
- data/lib/puppet/functions/inline_epp.rb +1 -1
- data/lib/puppet/functions/join.rb +2 -1
- data/lib/puppet/functions/json_data.rb +1 -0
- data/lib/puppet/functions/keys.rb +1 -0
- data/lib/puppet/functions/length.rb +1 -1
- data/lib/puppet/functions/lest.rb +1 -0
- data/lib/puppet/functions/lookup.rb +8 -9
- data/lib/puppet/functions/lstrip.rb +1 -1
- data/lib/puppet/functions/map.rb +1 -0
- data/lib/puppet/functions/match.rb +3 -1
- data/lib/puppet/functions/max.rb +4 -4
- data/lib/puppet/functions/min.rb +4 -4
- data/lib/puppet/functions/module_directory.rb +1 -0
- data/lib/puppet/functions/new.rb +2 -1
- data/lib/puppet/functions/next.rb +1 -0
- data/lib/puppet/functions/notice.rb +1 -0
- data/lib/puppet/functions/reduce.rb +1 -1
- data/lib/puppet/functions/regsubst.rb +1 -0
- data/lib/puppet/functions/require.rb +2 -0
- data/lib/puppet/functions/return.rb +1 -0
- data/lib/puppet/functions/reverse_each.rb +1 -0
- data/lib/puppet/functions/round.rb +1 -0
- data/lib/puppet/functions/rstrip.rb +1 -1
- data/lib/puppet/functions/scanf.rb +1 -0
- data/lib/puppet/functions/size.rb +1 -2
- data/lib/puppet/functions/slice.rb +2 -0
- data/lib/puppet/functions/sort.rb +1 -0
- data/lib/puppet/functions/split.rb +1 -0
- data/lib/puppet/functions/step.rb +1 -0
- data/lib/puppet/functions/strftime.rb +3 -2
- data/lib/puppet/functions/strip.rb +1 -1
- data/lib/puppet/functions/then.rb +2 -0
- data/lib/puppet/functions/tree_each.rb +1 -1
- data/lib/puppet/functions/type.rb +1 -0
- data/lib/puppet/functions/unique.rb +2 -1
- data/lib/puppet/functions/unwrap.rb +1 -0
- data/lib/puppet/functions/upcase.rb +1 -0
- data/lib/puppet/functions/values.rb +1 -0
- data/lib/puppet/functions/versioncmp.rb +2 -2
- data/lib/puppet/functions/warning.rb +1 -0
- data/lib/puppet/functions/with.rb +1 -0
- data/lib/puppet/functions/yaml_data.rb +1 -0
- data/lib/puppet/functions.rb +9 -9
- data/lib/puppet/generate/models/type/property.rb +2 -0
- data/lib/puppet/generate/models/type/type.rb +2 -0
- data/lib/puppet/generate/type.rb +6 -1
- data/lib/puppet/gettext/config.rb +6 -0
- data/lib/puppet/gettext/module_translations.rb +1 -1
- data/lib/puppet/gettext/stubs.rb +1 -0
- data/lib/puppet/graph/key.rb +1 -0
- data/lib/puppet/graph/prioritizer.rb +1 -0
- data/lib/puppet/graph/rb_tree_map.rb +12 -2
- data/lib/puppet/graph/relationship_graph.rb +3 -2
- data/lib/puppet/graph/sequential_prioritizer.rb +1 -0
- data/lib/puppet/graph/simple_graph.rb +38 -31
- data/lib/puppet/graph.rb +1 -0
- data/lib/puppet/http/client.rb +4 -1
- data/lib/puppet/http/dns.rb +5 -5
- data/lib/puppet/http/errors.rb +1 -0
- data/lib/puppet/http/external_client.rb +2 -2
- data/lib/puppet/http/factory.rb +1 -0
- data/lib/puppet/http/pool.rb +2 -1
- data/lib/puppet/http/pool_entry.rb +1 -0
- data/lib/puppet/http/proxy.rb +3 -2
- data/lib/puppet/http/redirector.rb +1 -0
- data/lib/puppet/http/resolver/server_list.rb +1 -1
- data/lib/puppet/http/resolver/settings.rb +1 -1
- data/lib/puppet/http/resolver/srv.rb +1 -1
- data/lib/puppet/http/resolver.rb +1 -0
- data/lib/puppet/http/response.rb +1 -0
- data/lib/puppet/http/response_converter.rb +1 -0
- data/lib/puppet/http/response_net_http.rb +1 -1
- data/lib/puppet/http/retry_after_handler.rb +1 -1
- data/lib/puppet/http/service/ca.rb +1 -0
- data/lib/puppet/http/service/compiler.rb +9 -3
- data/lib/puppet/http/service/file_server.rb +2 -1
- data/lib/puppet/http/service/puppetserver.rb +1 -1
- data/lib/puppet/http/service/report.rb +1 -1
- data/lib/puppet/http/service.rb +1 -0
- data/lib/puppet/http/session.rb +2 -1
- data/lib/puppet/http/site.rb +1 -0
- data/lib/puppet/http.rb +1 -0
- data/lib/puppet/indirector/catalog/compiler.rb +50 -40
- data/lib/puppet/indirector/catalog/json.rb +1 -0
- data/lib/puppet/indirector/catalog/msgpack.rb +1 -0
- data/lib/puppet/indirector/catalog/rest.rb +9 -0
- data/lib/puppet/indirector/catalog/store_configs.rb +1 -2
- data/lib/puppet/indirector/catalog/yaml.rb +1 -0
- data/lib/puppet/indirector/code.rb +1 -0
- data/lib/puppet/indirector/data_binding/hiera.rb +1 -0
- data/lib/puppet/indirector/data_binding/none.rb +1 -0
- data/lib/puppet/indirector/direct_file_server.rb +3 -1
- data/lib/puppet/indirector/envelope.rb +1 -0
- data/lib/puppet/indirector/errors.rb +1 -0
- data/lib/puppet/indirector/exec.rb +1 -0
- data/lib/puppet/indirector/face.rb +7 -6
- data/lib/puppet/indirector/fact_search.rb +1 -0
- data/lib/puppet/indirector/facts/facter.rb +2 -0
- data/lib/puppet/indirector/facts/json.rb +1 -0
- data/lib/puppet/indirector/facts/memory.rb +1 -0
- data/lib/puppet/indirector/facts/network_device.rb +1 -0
- data/lib/puppet/indirector/facts/rest.rb +1 -0
- data/lib/puppet/indirector/facts/store_configs.rb +1 -1
- data/lib/puppet/indirector/facts/yaml.rb +1 -0
- data/lib/puppet/indirector/file_bucket_file/file.rb +10 -5
- data/lib/puppet/indirector/file_bucket_file/rest.rb +2 -0
- data/lib/puppet/indirector/file_bucket_file/selector.rb +1 -0
- data/lib/puppet/indirector/file_content/file.rb +1 -0
- data/lib/puppet/indirector/file_content/file_server.rb +1 -0
- data/lib/puppet/indirector/file_content/rest.rb +1 -0
- data/lib/puppet/indirector/file_content/selector.rb +1 -0
- data/lib/puppet/indirector/file_content.rb +1 -0
- data/lib/puppet/indirector/file_metadata/file.rb +1 -0
- data/lib/puppet/indirector/file_metadata/file_server.rb +1 -0
- data/lib/puppet/indirector/file_metadata/http.rb +1 -0
- data/lib/puppet/indirector/file_metadata/rest.rb +1 -0
- data/lib/puppet/indirector/file_metadata/selector.rb +1 -0
- data/lib/puppet/indirector/file_metadata.rb +1 -0
- data/lib/puppet/indirector/file_server.rb +2 -0
- data/lib/puppet/indirector/generic_http.rb +1 -0
- data/lib/puppet/indirector/hiera.rb +5 -4
- data/lib/puppet/indirector/indirection.rb +11 -1
- data/lib/puppet/indirector/json.rb +3 -1
- data/lib/puppet/indirector/memory.rb +2 -0
- data/lib/puppet/indirector/msgpack.rb +5 -2
- data/lib/puppet/indirector/node/exec.rb +3 -2
- data/lib/puppet/indirector/node/json.rb +1 -1
- data/lib/puppet/indirector/node/memory.rb +1 -0
- data/lib/puppet/indirector/node/msgpack.rb +1 -0
- data/lib/puppet/indirector/node/plain.rb +1 -0
- data/lib/puppet/indirector/node/rest.rb +1 -0
- data/lib/puppet/indirector/node/store_configs.rb +1 -2
- data/lib/puppet/indirector/node/yaml.rb +1 -0
- data/lib/puppet/indirector/none.rb +1 -0
- data/lib/puppet/indirector/plain.rb +1 -0
- data/lib/puppet/indirector/report/json.rb +1 -0
- data/lib/puppet/indirector/report/msgpack.rb +1 -0
- data/lib/puppet/indirector/report/processor.rb +2 -0
- data/lib/puppet/indirector/report/rest.rb +1 -0
- data/lib/puppet/indirector/report/yaml.rb +1 -0
- data/lib/puppet/indirector/request.rb +7 -5
- data/lib/puppet/indirector/resource/ral.rb +1 -0
- data/lib/puppet/indirector/resource/store_configs.rb +1 -0
- data/lib/puppet/indirector/resource/validator.rb +1 -0
- data/lib/puppet/indirector/rest.rb +1 -0
- data/lib/puppet/indirector/store_configs.rb +1 -0
- data/lib/puppet/indirector/terminus.rb +4 -1
- data/lib/puppet/indirector/yaml.rb +1 -0
- data/lib/puppet/indirector.rb +2 -0
- data/lib/puppet/info_service/class_information_service.rb +5 -3
- data/lib/puppet/info_service/plan_information_service.rb +1 -0
- data/lib/puppet/info_service/task_information_service.rb +1 -0
- data/lib/puppet/interface/action.rb +32 -27
- data/lib/puppet/interface/action_builder.rb +14 -14
- data/lib/puppet/interface/action_manager.rb +2 -0
- data/lib/puppet/interface/documentation.rb +21 -15
- data/lib/puppet/interface/face_collection.rb +5 -2
- data/lib/puppet/interface/option.rb +15 -4
- data/lib/puppet/interface/option_builder.rb +13 -9
- data/lib/puppet/interface/option_manager.rb +3 -2
- data/lib/puppet/interface.rb +3 -3
- data/lib/puppet/loaders.rb +1 -1
- data/lib/puppet/metatype/manager.rb +9 -8
- data/lib/puppet/module/plan.rb +10 -4
- data/lib/puppet/module/task.rb +8 -2
- data/lib/puppet/module.rb +13 -3
- data/lib/puppet/module_tool/applications/application.rb +6 -4
- data/lib/puppet/module_tool/applications/checksummer.rb +1 -2
- data/lib/puppet/module_tool/applications/installer.rb +32 -45
- data/lib/puppet/module_tool/applications/uninstaller.rb +22 -21
- data/lib/puppet/module_tool/applications/unpacker.rb +3 -0
- data/lib/puppet/module_tool/applications/upgrader.rb +28 -26
- data/lib/puppet/module_tool/applications.rb +1 -0
- data/lib/puppet/module_tool/checksums.rb +1 -1
- data/lib/puppet/module_tool/contents_description.rb +1 -2
- data/lib/puppet/module_tool/dependency.rb +1 -1
- data/lib/puppet/module_tool/errors/base.rb +1 -0
- data/lib/puppet/module_tool/errors/installer.rb +4 -4
- data/lib/puppet/module_tool/errors/shared.rb +12 -12
- data/lib/puppet/module_tool/errors/uninstaller.rb +2 -2
- data/lib/puppet/module_tool/errors/upgrader.rb +3 -3
- data/lib/puppet/module_tool/errors.rb +1 -0
- data/lib/puppet/module_tool/install_directory.rb +6 -4
- data/lib/puppet/module_tool/installed_modules.rb +2 -0
- data/lib/puppet/module_tool/local_tarball.rb +3 -0
- data/lib/puppet/module_tool/metadata.rb +21 -20
- data/lib/puppet/module_tool/shared_behaviors.rb +23 -21
- data/lib/puppet/module_tool/tar/gnu.rb +1 -0
- data/lib/puppet/module_tool/tar/mini.rb +1 -0
- data/lib/puppet/module_tool/tar.rb +2 -1
- data/lib/puppet/module_tool.rb +1 -1
- data/lib/puppet/network/authconfig.rb +1 -0
- data/lib/puppet/network/authorization.rb +1 -0
- data/lib/puppet/network/client_request.rb +1 -0
- data/lib/puppet/network/format.rb +5 -0
- data/lib/puppet/network/format_handler.rb +2 -1
- data/lib/puppet/network/format_support.rb +6 -5
- data/lib/puppet/network/formats.rb +15 -11
- data/lib/puppet/network/http/api/indirected_routes.rb +8 -8
- data/lib/puppet/network/http/api/indirection_type.rb +1 -1
- data/lib/puppet/network/http/api/master/v3/environments.rb +1 -0
- data/lib/puppet/network/http/api/master/v3.rb +1 -0
- data/lib/puppet/network/http/api/master.rb +1 -0
- data/lib/puppet/network/http/api/server/v3/environments.rb +20 -14
- data/lib/puppet/network/http/api/server/v3.rb +13 -13
- data/lib/puppet/network/http/api/server.rb +1 -0
- data/lib/puppet/network/http/api.rb +11 -10
- data/lib/puppet/network/http/connection.rb +1 -0
- data/lib/puppet/network/http/error.rb +2 -1
- data/lib/puppet/network/http/handler.rb +3 -2
- data/lib/puppet/network/http/issues.rb +1 -0
- data/lib/puppet/network/http/memory_response.rb +1 -0
- data/lib/puppet/network/http/request.rb +13 -6
- data/lib/puppet/network/http/response.rb +1 -0
- data/lib/puppet/network/http/route.rb +4 -2
- data/lib/puppet/network/http.rb +1 -0
- data/lib/puppet/network/http_pool.rb +2 -1
- data/lib/puppet/network/uri.rb +1 -0
- data/lib/puppet/network.rb +1 -0
- data/lib/puppet/node/environment.rb +12 -9
- data/lib/puppet/node/facts.rb +2 -1
- data/lib/puppet/node.rb +3 -2
- data/lib/puppet/pal/catalog_compiler.rb +1 -3
- data/lib/puppet/pal/compiler.rb +6 -2
- data/lib/puppet/pal/function_signature.rb +2 -1
- data/lib/puppet/pal/json_catalog_encoder.rb +5 -1
- data/lib/puppet/pal/pal_api.rb +1 -0
- data/lib/puppet/pal/pal_impl.rb +20 -19
- data/lib/puppet/pal/plan_signature.rb +2 -1
- data/lib/puppet/pal/script_compiler.rb +3 -2
- data/lib/puppet/pal/task_signature.rb +14 -9
- data/lib/puppet/parameter/boolean.rb +1 -0
- data/lib/puppet/parameter/package_options.rb +1 -0
- data/lib/puppet/parameter/path.rb +3 -0
- data/lib/puppet/parameter/value.rb +1 -0
- data/lib/puppet/parameter/value_collection.rb +5 -5
- data/lib/puppet/parameter.rb +4 -3
- data/lib/puppet/parser/abstract_compiler.rb +0 -2
- data/lib/puppet/parser/ast/block_expression.rb +1 -0
- data/lib/puppet/parser/ast/branch.rb +1 -0
- data/lib/puppet/parser/ast/hostclass.rb +1 -0
- data/lib/puppet/parser/ast/leaf.rb +2 -0
- data/lib/puppet/parser/ast/node.rb +1 -0
- data/lib/puppet/parser/ast/pops_bridge.rb +6 -6
- data/lib/puppet/parser/ast/resource.rb +2 -3
- data/lib/puppet/parser/ast/resource_instance.rb +2 -0
- data/lib/puppet/parser/ast/resourceparam.rb +6 -5
- data/lib/puppet/parser/ast/top_level_construct.rb +1 -0
- data/lib/puppet/parser/ast.rb +4 -3
- data/lib/puppet/parser/catalog_compiler.rb +1 -2
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +3 -0
- data/lib/puppet/parser/compiler/catalog_validator.rb +1 -0
- data/lib/puppet/parser/compiler.rb +10 -8
- data/lib/puppet/parser/e4_parser_adapter.rb +15 -15
- data/lib/puppet/parser/files.rb +1 -1
- data/lib/puppet/parser/functions/assert_type.rb +55 -54
- data/lib/puppet/parser/functions/binary_file.rb +19 -18
- data/lib/puppet/parser/functions/break.rb +35 -34
- data/lib/puppet/parser/functions/contain.rb +1 -0
- data/lib/puppet/parser/functions/create_resources.rb +8 -6
- data/lib/puppet/parser/functions/defined.rb +102 -101
- data/lib/puppet/parser/functions/dig.rb +33 -32
- data/lib/puppet/parser/functions/digest.rb +1 -0
- data/lib/puppet/parser/functions/each.rb +99 -98
- data/lib/puppet/parser/functions/epp.rb +2 -2
- data/lib/puppet/parser/functions/fail.rb +9 -8
- data/lib/puppet/parser/functions/file.rb +14 -13
- data/lib/puppet/parser/functions/filter.rb +74 -73
- data/lib/puppet/parser/functions/find_file.rb +22 -21
- data/lib/puppet/parser/functions/fqdn_rand.rb +23 -22
- data/lib/puppet/parser/functions/generate.rb +20 -20
- data/lib/puppet/parser/functions/hiera.rb +94 -93
- data/lib/puppet/parser/functions/hiera_array.rb +82 -81
- data/lib/puppet/parser/functions/hiera_hash.rb +92 -91
- data/lib/puppet/parser/functions/hiera_include.rb +92 -91
- data/lib/puppet/parser/functions/include.rb +2 -1
- data/lib/puppet/parser/functions/inline_epp.rb +2 -2
- data/lib/puppet/parser/functions/inline_template.rb +11 -11
- data/lib/puppet/parser/functions/lest.rb +44 -43
- data/lib/puppet/parser/functions/lookup.rb +131 -130
- data/lib/puppet/parser/functions/map.rb +71 -70
- data/lib/puppet/parser/functions/match.rb +39 -38
- data/lib/puppet/parser/functions/md5.rb +2 -1
- data/lib/puppet/parser/functions/new.rb +985 -984
- data/lib/puppet/parser/functions/next.rb +34 -33
- data/lib/puppet/parser/functions/realize.rb +9 -9
- data/lib/puppet/parser/functions/reduce.rb +132 -131
- data/lib/puppet/parser/functions/regsubst.rb +6 -5
- data/lib/puppet/parser/functions/require.rb +5 -4
- data/lib/puppet/parser/functions/return.rb +88 -87
- data/lib/puppet/parser/functions/reverse_each.rb +78 -77
- data/lib/puppet/parser/functions/scanf.rb +28 -27
- data/lib/puppet/parser/functions/sha1.rb +2 -1
- data/lib/puppet/parser/functions/sha256.rb +1 -0
- data/lib/puppet/parser/functions/shellquote.rb +1 -0
- data/lib/puppet/parser/functions/slice.rb +34 -33
- data/lib/puppet/parser/functions/split.rb +5 -6
- data/lib/puppet/parser/functions/sprintf.rb +3 -3
- data/lib/puppet/parser/functions/step.rb +79 -78
- data/lib/puppet/parser/functions/strftime.rb +180 -179
- data/lib/puppet/parser/functions/tag.rb +7 -6
- data/lib/puppet/parser/functions/tagged.rb +13 -12
- data/lib/puppet/parser/functions/template.rb +24 -23
- data/lib/puppet/parser/functions/then.rb +68 -67
- data/lib/puppet/parser/functions/type.rb +48 -47
- data/lib/puppet/parser/functions/versioncmp.rb +1 -1
- data/lib/puppet/parser/functions/with.rb +23 -22
- data/lib/puppet/parser/functions.rb +2 -0
- data/lib/puppet/parser/parser_factory.rb +1 -0
- data/lib/puppet/parser/relationship.rb +3 -0
- data/lib/puppet/parser/resource/param.rb +1 -0
- data/lib/puppet/parser/resource.rb +10 -4
- data/lib/puppet/parser/scope.rb +40 -32
- data/lib/puppet/parser/script_compiler.rb +5 -6
- data/lib/puppet/parser/templatewrapper.rb +1 -0
- data/lib/puppet/parser/type_loader.rb +19 -17
- data/lib/puppet/parser.rb +1 -0
- data/lib/puppet/plugins/configuration.rb +1 -0
- data/lib/puppet/plugins/syntax_checkers.rb +1 -1
- data/lib/puppet/plugins.rb +1 -0
- data/lib/puppet/pops/adaptable.rb +3 -1
- data/lib/puppet/pops/adapters.rb +3 -1
- data/lib/puppet/pops/evaluator/access_operator.rb +79 -65
- data/lib/puppet/pops/evaluator/callable_signature.rb +1 -1
- data/lib/puppet/pops/evaluator/closure.rb +273 -277
- data/lib/puppet/pops/evaluator/collector_transformer.rb +11 -9
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -0
- data/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +2 -2
- data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +4 -4
- data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +1 -1
- data/lib/puppet/pops/evaluator/compare_operator.rb +15 -3
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +2 -2
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +10 -10
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +140 -138
- data/lib/puppet/pops/evaluator/external_syntax_support.rb +1 -1
- data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +2 -1
- data/lib/puppet/pops/evaluator/literal_evaluator.rb +1 -1
- data/lib/puppet/pops/evaluator/puppet_proc.rb +2 -0
- data/lib/puppet/pops/evaluator/relationship_operator.rb +5 -3
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +21 -19
- data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +31 -33
- data/lib/puppet/pops/evaluator/runtime3_support.rb +16 -19
- data/lib/puppet/pops/functions/dispatch.rb +1 -0
- data/lib/puppet/pops/functions/dispatcher.rb +1 -1
- data/lib/puppet/pops/functions/function.rb +1 -2
- data/lib/puppet/pops/issue_reporter.rb +19 -17
- data/lib/puppet/pops/issues.rb +8 -4
- data/lib/puppet/pops/label_provider.rb +1 -0
- data/lib/puppet/pops/loader/base_loader.rb +2 -2
- data/lib/puppet/pops/loader/dependency_loader.rb +3 -0
- data/lib/puppet/pops/loader/gem_support.rb +3 -1
- data/lib/puppet/pops/loader/generic_plan_instantiator.rb +1 -0
- data/lib/puppet/pops/loader/loader.rb +1 -2
- data/lib/puppet/pops/loader/loader_paths.rb +20 -19
- data/lib/puppet/pops/loader/module_loaders.rb +28 -28
- data/lib/puppet/pops/loader/predefined_loader.rb +1 -2
- data/lib/puppet/pops/loader/puppet_function_instantiator.rb +4 -2
- data/lib/puppet/pops/loader/puppet_plan_instantiator.rb +4 -2
- data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +1 -1
- data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +4 -1
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +4 -1
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -2
- data/lib/puppet/pops/loader/runtime3_type_loader.rb +2 -2
- data/lib/puppet/pops/loader/simple_environment_loader.rb +1 -2
- data/lib/puppet/pops/loader/static_loader.rb +22 -21
- data/lib/puppet/pops/loader/task_instantiator.rb +1 -0
- data/lib/puppet/pops/loader/type_definition_instantiator.rb +6 -4
- data/lib/puppet/pops/loader/typed_name.rb +1 -0
- data/lib/puppet/pops/loader/uri_helper.rb +1 -0
- data/lib/puppet/pops/loaders.rb +21 -18
- data/lib/puppet/pops/lookup/configured_data_provider.rb +1 -0
- data/lib/puppet/pops/lookup/context.rb +24 -23
- data/lib/puppet/pops/lookup/data_adapter.rb +1 -0
- data/lib/puppet/pops/lookup/data_dig_function_provider.rb +2 -2
- data/lib/puppet/pops/lookup/data_hash_function_provider.rb +1 -0
- data/lib/puppet/pops/lookup/data_provider.rb +1 -0
- data/lib/puppet/pops/lookup/environment_data_provider.rb +1 -0
- data/lib/puppet/pops/lookup/explainer.rb +34 -33
- data/lib/puppet/pops/lookup/function_provider.rb +7 -6
- data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +136 -100
- data/lib/puppet/pops/lookup/interpolation.rb +5 -1
- data/lib/puppet/pops/lookup/invocation.rb +3 -0
- data/lib/puppet/pops/lookup/key_recorder.rb +3 -1
- data/lib/puppet/pops/lookup/location_resolver.rb +2 -1
- data/lib/puppet/pops/lookup/lookup_adapter.rb +22 -20
- data/lib/puppet/pops/lookup/lookup_key.rb +1 -0
- data/lib/puppet/pops/lookup/lookup_key_function_provider.rb +1 -0
- data/lib/puppet/pops/lookup/module_data_provider.rb +3 -1
- data/lib/puppet/pops/lookup/sub_lookup.rb +5 -2
- data/lib/puppet/pops/lookup.rb +13 -8
- data/lib/puppet/pops/merge_strategy.rb +5 -2
- data/lib/puppet/pops/migration/migration_checker.rb +3 -1
- data/lib/puppet/pops/model/ast.rb +786 -685
- data/lib/puppet/pops/model/ast_transformer.rb +4 -3
- data/lib/puppet/pops/model/factory.rb +17 -13
- data/lib/puppet/pops/model/model_label_provider.rb +1 -1
- data/lib/puppet/pops/model/model_tree_dumper.rb +10 -9
- data/lib/puppet/pops/model/pn_transformer.rb +4 -6
- data/lib/puppet/pops/model/tree_dumper.rb +2 -0
- data/lib/puppet/pops/parser/code_merger.rb +0 -1
- data/lib/puppet/pops/parser/epp_parser.rb +1 -1
- data/lib/puppet/pops/parser/epp_support.rb +2 -2
- data/lib/puppet/pops/parser/evaluating_parser.rb +5 -2
- data/lib/puppet/pops/parser/heredoc_support.rb +6 -7
- data/lib/puppet/pops/parser/interpolation_support.rb +2 -3
- data/lib/puppet/pops/parser/lexer2.rb +32 -29
- data/lib/puppet/pops/parser/lexer_support.rb +38 -41
- data/lib/puppet/pops/parser/locatable.rb +1 -2
- data/lib/puppet/pops/parser/locator.rb +31 -28
- data/lib/puppet/pops/parser/parser_support.rb +2 -0
- data/lib/puppet/pops/parser/pn_parser.rb +1 -1
- data/lib/puppet/pops/parser/slurp_support.rb +33 -32
- data/lib/puppet/pops/patterns.rb +2 -3
- data/lib/puppet/pops/pcore.rb +2 -2
- data/lib/puppet/pops/pn.rb +3 -0
- data/lib/puppet/pops/puppet_stack.rb +1 -0
- data/lib/puppet/pops/resource/param.rb +11 -10
- data/lib/puppet/pops/resource/resource_type_impl.rb +37 -36
- data/lib/puppet/pops/semantic_error.rb +1 -0
- data/lib/puppet/pops/serialization/abstract_reader.rb +3 -2
- data/lib/puppet/pops/serialization/abstract_writer.rb +5 -4
- data/lib/puppet/pops/serialization/deserializer.rb +2 -0
- data/lib/puppet/pops/serialization/extension.rb +7 -0
- data/lib/puppet/pops/serialization/from_data_converter.rb +3 -0
- data/lib/puppet/pops/serialization/instance_reader.rb +1 -0
- data/lib/puppet/pops/serialization/instance_writer.rb +1 -0
- data/lib/puppet/pops/serialization/json.rb +6 -3
- data/lib/puppet/pops/serialization/json_path.rb +1 -0
- data/lib/puppet/pops/serialization/object.rb +4 -1
- data/lib/puppet/pops/serialization/serializer.rb +6 -2
- data/lib/puppet/pops/serialization/time_factory.rb +1 -1
- data/lib/puppet/pops/serialization/to_data_converter.rb +4 -2
- data/lib/puppet/pops/serialization/to_stringified_converter.rb +2 -2
- data/lib/puppet/pops/serialization.rb +1 -0
- data/lib/puppet/pops/time/timespan.rb +12 -2
- data/lib/puppet/pops/time/timestamp.rb +4 -0
- data/lib/puppet/pops/types/annotatable.rb +1 -1
- data/lib/puppet/pops/types/annotation.rb +1 -0
- data/lib/puppet/pops/types/class_loader.rb +8 -6
- data/lib/puppet/pops/types/implementation_registry.rb +1 -0
- data/lib/puppet/pops/types/iterable.rb +18 -9
- data/lib/puppet/pops/types/p_binary_type.rb +2 -3
- data/lib/puppet/pops/types/p_init_type.rb +12 -9
- data/lib/puppet/pops/types/p_meta_type.rb +1 -1
- data/lib/puppet/pops/types/p_object_type.rb +65 -42
- data/lib/puppet/pops/types/p_object_type_extension.rb +10 -7
- data/lib/puppet/pops/types/p_runtime_type.rb +11 -9
- data/lib/puppet/pops/types/p_sem_ver_range_type.rb +1 -1
- data/lib/puppet/pops/types/p_sem_ver_type.rb +5 -5
- data/lib/puppet/pops/types/p_sensitive_type.rb +1 -4
- data/lib/puppet/pops/types/p_timespan_type.rb +4 -2
- data/lib/puppet/pops/types/p_timestamp_type.rb +3 -2
- data/lib/puppet/pops/types/p_type_set_type.rb +36 -28
- data/lib/puppet/pops/types/p_uri_type.rb +25 -18
- data/lib/puppet/pops/types/puppet_object.rb +1 -1
- data/lib/puppet/pops/types/recursion_guard.rb +7 -2
- data/lib/puppet/pops/types/ruby_generator.rb +7 -4
- data/lib/puppet/pops/types/ruby_method.rb +6 -5
- data/lib/puppet/pops/types/string_converter.rb +65 -57
- data/lib/puppet/pops/types/tree_iterators.rb +6 -7
- data/lib/puppet/pops/types/type_acceptor.rb +1 -0
- data/lib/puppet/pops/types/type_asserter.rb +1 -0
- data/lib/puppet/pops/types/type_assertion_error.rb +0 -1
- data/lib/puppet/pops/types/type_calculator.rb +10 -4
- data/lib/puppet/pops/types/type_conversion_error.rb +1 -10
- data/lib/puppet/pops/types/type_factory.rb +7 -4
- data/lib/puppet/pops/types/type_formatter.rb +12 -11
- data/lib/puppet/pops/types/type_mismatch_describer.rb +13 -8
- data/lib/puppet/pops/types/type_parser.rb +111 -107
- data/lib/puppet/pops/types/type_set_reference.rb +2 -0
- data/lib/puppet/pops/types/type_with_members.rb +1 -1
- data/lib/puppet/pops/types/types.rb +177 -152
- data/lib/puppet/pops/utils.rb +1 -0
- data/lib/puppet/pops/validation/checker4_0.rb +17 -11
- data/lib/puppet/pops/validation/tasks_checker.rb +2 -1
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
- data/lib/puppet/pops/validation.rb +8 -6
- data/lib/puppet/pops/visitable.rb +1 -0
- data/lib/puppet/pops/visitor.rb +14 -1
- data/lib/puppet/pops.rb +2 -0
- data/lib/puppet/property/boolean.rb +1 -0
- data/lib/puppet/property/ensure.rb +4 -1
- data/lib/puppet/property/keyvalue.rb +5 -4
- data/lib/puppet/property/list.rb +5 -5
- data/lib/puppet/property/ordered_list.rb +4 -4
- data/lib/puppet/property.rb +13 -11
- data/lib/puppet/provider/aix_object.rb +5 -0
- data/lib/puppet/provider/command.rb +1 -0
- data/lib/puppet/provider/confine.rb +1 -0
- data/lib/puppet/provider/exec/posix.rb +2 -0
- data/lib/puppet/provider/exec/shell.rb +1 -0
- data/lib/puppet/provider/exec/windows.rb +2 -1
- data/lib/puppet/provider/exec.rb +1 -0
- data/lib/puppet/provider/file/posix.rb +1 -0
- data/lib/puppet/provider/file/windows.rb +10 -6
- data/lib/puppet/provider/group/aix.rb +1 -0
- data/lib/puppet/provider/group/directoryservice.rb +1 -1
- data/lib/puppet/provider/group/groupadd.rb +9 -4
- data/lib/puppet/provider/group/ldap.rb +2 -0
- data/lib/puppet/provider/group/pw.rb +1 -0
- data/lib/puppet/provider/group/windows_adsi.rb +2 -0
- data/lib/puppet/provider/ldap.rb +2 -0
- data/lib/puppet/provider/nameservice/directoryservice.rb +28 -19
- data/lib/puppet/provider/nameservice/objectadd.rb +1 -0
- data/lib/puppet/provider/nameservice/pw.rb +6 -5
- data/lib/puppet/provider/nameservice.rb +8 -4
- data/lib/puppet/provider/network_device.rb +1 -2
- data/lib/puppet/provider/package/aix.rb +5 -4
- data/lib/puppet/provider/package/appdmg.rb +20 -19
- data/lib/puppet/provider/package/apple.rb +3 -2
- data/lib/puppet/provider/package/apt.rb +4 -4
- data/lib/puppet/provider/package/aptitude.rb +1 -0
- data/lib/puppet/provider/package/aptrpm.rb +2 -1
- data/lib/puppet/provider/package/blastwave.rb +6 -6
- data/lib/puppet/provider/package/dnf.rb +2 -0
- data/lib/puppet/provider/package/dnfmodule.rb +8 -7
- data/lib/puppet/provider/package/dpkg.rb +4 -4
- data/lib/puppet/provider/package/fink.rb +2 -1
- data/lib/puppet/provider/package/freebsd.rb +3 -2
- data/lib/puppet/provider/package/gem.rb +9 -5
- data/lib/puppet/provider/package/hpux.rb +4 -3
- data/lib/puppet/provider/package/macports.rb +2 -1
- data/lib/puppet/provider/package/nim.rb +13 -15
- data/lib/puppet/provider/package/openbsd.rb +6 -4
- data/lib/puppet/provider/package/opkg.rb +2 -0
- data/lib/puppet/provider/package/pacman.rb +12 -12
- data/lib/puppet/provider/package/pip.rb +3 -1
- data/lib/puppet/provider/package/pip2.rb +2 -2
- data/lib/puppet/provider/package/pip3.rb +2 -2
- data/lib/puppet/provider/package/pkg.rb +17 -13
- data/lib/puppet/provider/package/pkgdmg.rb +7 -2
- data/lib/puppet/provider/package/pkgin.rb +5 -5
- data/lib/puppet/provider/package/pkgng.rb +11 -7
- data/lib/puppet/provider/package/pkgutil.rb +7 -6
- data/lib/puppet/provider/package/portage.rb +11 -6
- data/lib/puppet/provider/package/ports.rb +6 -5
- data/lib/puppet/provider/package/portupgrade.rb +6 -12
- data/lib/puppet/provider/package/puppet_gem.rb +1 -0
- data/lib/puppet/provider/package/puppetserver_gem.rb +1 -0
- data/lib/puppet/provider/package/rpm.rb +10 -6
- data/lib/puppet/provider/package/rug.rb +2 -1
- data/lib/puppet/provider/package/sun.rb +20 -17
- data/lib/puppet/provider/package/sunfreeware.rb +1 -0
- data/lib/puppet/provider/package/tdnf.rb +1 -0
- data/lib/puppet/provider/package/up2date.rb +2 -1
- data/lib/puppet/provider/package/urpmi.rb +1 -0
- data/lib/puppet/provider/package/windows/exe_package.rb +1 -0
- data/lib/puppet/provider/package/windows/msi_package.rb +1 -0
- data/lib/puppet/provider/package/windows/package.rb +5 -3
- data/lib/puppet/provider/package/windows.rb +4 -2
- data/lib/puppet/provider/package/yum.rb +16 -13
- data/lib/puppet/provider/package/zypper.rb +15 -14
- data/lib/puppet/provider/package.rb +7 -6
- data/lib/puppet/provider/package_targetable.rb +1 -0
- data/lib/puppet/provider/parsedfile.rb +7 -2
- data/lib/puppet/provider/service/base.rb +2 -1
- data/lib/puppet/provider/service/bsd.rb +1 -0
- data/lib/puppet/provider/service/daemontools.rb +9 -7
- data/lib/puppet/provider/service/debian.rb +4 -3
- data/lib/puppet/provider/service/freebsd.rb +5 -6
- data/lib/puppet/provider/service/gentoo.rb +5 -4
- data/lib/puppet/provider/service/init.rb +10 -11
- data/lib/puppet/provider/service/launchd.rb +10 -4
- data/lib/puppet/provider/service/openbsd.rb +4 -4
- data/lib/puppet/provider/service/openrc.rb +1 -1
- data/lib/puppet/provider/service/openwrt.rb +1 -1
- data/lib/puppet/provider/service/rcng.rb +1 -0
- data/lib/puppet/provider/service/redhat.rb +3 -2
- data/lib/puppet/provider/service/runit.rb +8 -7
- data/lib/puppet/provider/service/service.rb +1 -0
- data/lib/puppet/provider/service/smf.rb +5 -2
- data/lib/puppet/provider/service/src.rb +16 -16
- data/lib/puppet/provider/service/systemd.rb +8 -4
- data/lib/puppet/provider/service/upstart.rb +8 -7
- data/lib/puppet/provider/service/windows.rb +22 -26
- data/lib/puppet/provider/user/aix.rb +3 -2
- data/lib/puppet/provider/user/directoryservice.rb +52 -44
- data/lib/puppet/provider/user/hpux.rb +15 -14
- data/lib/puppet/provider/user/ldap.rb +8 -6
- data/lib/puppet/provider/user/openbsd.rb +21 -20
- data/lib/puppet/provider/user/pw.rb +3 -2
- data/lib/puppet/provider/user/user_role_add.rb +19 -14
- data/lib/puppet/provider/user/useradd.rb +51 -41
- data/lib/puppet/provider/user/windows_adsi.rb +4 -1
- data/lib/puppet/provider.rb +9 -9
- data/lib/puppet/reference/configuration.rb +43 -42
- data/lib/puppet/reference/function.rb +1 -0
- data/lib/puppet/reference/indirection.rb +42 -41
- data/lib/puppet/reference/metaparameter.rb +1 -0
- data/lib/puppet/reference/providers.rb +2 -0
- data/lib/puppet/reference/report.rb +1 -0
- data/lib/puppet/reference/type.rb +4 -3
- data/lib/puppet/relationship.rb +3 -2
- data/lib/puppet/reports/http.rb +1 -1
- data/lib/puppet/reports/log.rb +1 -0
- data/lib/puppet/reports/store.rb +3 -1
- data/lib/puppet/reports.rb +4 -3
- data/lib/puppet/resource/catalog.rb +14 -10
- data/lib/puppet/resource/status.rb +1 -1
- data/lib/puppet/resource/type.rb +28 -18
- data/lib/puppet/resource/type_collection.rb +4 -0
- data/lib/puppet/resource.rb +24 -16
- data/lib/puppet/runtime.rb +1 -0
- data/lib/puppet/scheduler/job.rb +1 -0
- data/lib/puppet/scheduler/scheduler.rb +1 -0
- data/lib/puppet/scheduler/splay_job.rb +1 -0
- data/lib/puppet/scheduler/timer.rb +1 -0
- data/lib/puppet/scheduler.rb +1 -0
- data/lib/puppet/settings/alias_setting.rb +1 -0
- data/lib/puppet/settings/array_setting.rb +1 -1
- data/lib/puppet/settings/autosign_setting.rb +1 -1
- data/lib/puppet/settings/base_setting.rb +9 -5
- data/lib/puppet/settings/boolean_setting.rb +1 -0
- data/lib/puppet/settings/certificate_revocation_setting.rb +1 -1
- data/lib/puppet/settings/config_file.rb +3 -3
- data/lib/puppet/settings/directory_setting.rb +1 -0
- data/lib/puppet/settings/duration_setting.rb +1 -0
- data/lib/puppet/settings/enum_setting.rb +2 -1
- data/lib/puppet/settings/environment_conf.rb +9 -8
- data/lib/puppet/settings/errors.rb +2 -0
- data/lib/puppet/settings/file_or_directory_setting.rb +1 -5
- data/lib/puppet/settings/file_setting.rb +3 -13
- data/lib/puppet/settings/http_extra_headers_setting.rb +1 -1
- data/lib/puppet/settings/ini_file.rb +1 -0
- data/lib/puppet/settings/integer_setting.rb +1 -0
- data/lib/puppet/settings/path_setting.rb +1 -0
- data/lib/puppet/settings/port_setting.rb +2 -1
- data/lib/puppet/settings/priority_setting.rb +9 -8
- data/lib/puppet/settings/server_list_setting.rb +2 -2
- data/lib/puppet/settings/string_setting.rb +1 -0
- data/lib/puppet/settings/symbolic_enum_setting.rb +2 -1
- data/lib/puppet/settings/terminus_setting.rb +1 -0
- data/lib/puppet/settings/ttl_setting.rb +2 -0
- data/lib/puppet/settings/value_translator.rb +8 -7
- data/lib/puppet/settings.rb +89 -66
- data/lib/puppet/ssl/base.rb +4 -0
- data/lib/puppet/ssl/certificate.rb +3 -2
- data/lib/puppet/ssl/certificate_request.rb +9 -7
- data/lib/puppet/ssl/certificate_request_attributes.rb +3 -1
- data/lib/puppet/ssl/certificate_signer.rb +2 -3
- data/lib/puppet/ssl/digest.rb +1 -0
- data/lib/puppet/ssl/error.rb +2 -0
- data/lib/puppet/ssl/oids.rb +3 -3
- data/lib/puppet/ssl/openssl_loader.rb +1 -0
- data/lib/puppet/ssl/ssl_context.rb +11 -15
- data/lib/puppet/ssl/ssl_provider.rb +2 -1
- data/lib/puppet/ssl/state_machine.rb +1 -0
- data/lib/puppet/ssl/verifier.rb +2 -2
- data/lib/puppet/ssl.rb +1 -0
- data/lib/puppet/syntax_checkers/base64.rb +2 -1
- data/lib/puppet/syntax_checkers/epp.rb +1 -1
- data/lib/puppet/syntax_checkers/json.rb +1 -2
- data/lib/puppet/syntax_checkers/pp.rb +1 -1
- data/lib/puppet/syntax_checkers.rb +1 -0
- data/lib/puppet/test/test_helper.rb +16 -14
- data/lib/puppet/thread_local.rb +1 -0
- data/lib/puppet/transaction/additional_resource_generator.rb +5 -1
- data/lib/puppet/transaction/event.rb +5 -3
- data/lib/puppet/transaction/event_manager.rb +4 -3
- data/lib/puppet/transaction/persistence.rb +2 -1
- data/lib/puppet/transaction/report.rb +23 -15
- data/lib/puppet/transaction/resource_harness.rb +6 -3
- data/lib/puppet/transaction.rb +11 -6
- data/lib/puppet/trusted_external.rb +8 -4
- data/lib/puppet/type/component.rb +11 -5
- data/lib/puppet/type/exec.rb +26 -10
- data/lib/puppet/type/file/checksum.rb +1 -0
- data/lib/puppet/type/file/checksum_value.rb +3 -2
- data/lib/puppet/type/file/content.rb +16 -13
- data/lib/puppet/type/file/ctime.rb +2 -1
- data/lib/puppet/type/file/data_sync.rb +4 -2
- data/lib/puppet/type/file/ensure.rb +5 -5
- data/lib/puppet/type/file/group.rb +2 -1
- data/lib/puppet/type/file/mode.rb +4 -2
- data/lib/puppet/type/file/mtime.rb +2 -1
- data/lib/puppet/type/file/owner.rb +2 -1
- data/lib/puppet/type/file/selcontext.rb +2 -2
- data/lib/puppet/type/file/source.rb +12 -10
- data/lib/puppet/type/file/target.rb +2 -2
- data/lib/puppet/type/file/type.rb +2 -1
- data/lib/puppet/type/file.rb +22 -13
- data/lib/puppet/type/filebucket.rb +1 -0
- data/lib/puppet/type/group.rb +8 -8
- data/lib/puppet/type/notify.rb +1 -1
- data/lib/puppet/type/package.rb +21 -21
- data/lib/puppet/type/resources.rb +30 -25
- data/lib/puppet/type/schedule.rb +9 -10
- data/lib/puppet/type/service.rb +9 -7
- data/lib/puppet/type/stage.rb +1 -0
- data/lib/puppet/type/tidy.rb +9 -4
- data/lib/puppet/type/user.rb +28 -24
- data/lib/puppet/type/whit.rb +1 -1
- data/lib/puppet/type.rb +71 -61
- data/lib/puppet/util/at_fork/noop.rb +1 -0
- data/lib/puppet/util/at_fork/solaris.rb +2 -1
- data/lib/puppet/util/at_fork.rb +2 -1
- data/lib/puppet/util/autoload.rb +5 -0
- data/lib/puppet/util/backups.rb +3 -2
- data/lib/puppet/util/character_encoding.rb +1 -0
- data/lib/puppet/util/checksums.rb +11 -9
- data/lib/puppet/util/classgen.rb +8 -13
- data/lib/puppet/util/colors.rb +32 -31
- data/lib/puppet/util/command_line/puppet_option_parser.rb +12 -12
- data/lib/puppet/util/command_line/trollop.rb +693 -690
- data/lib/puppet/util/command_line.rb +1 -0
- data/lib/puppet/util/constant_inflector.rb +3 -3
- data/lib/puppet/util/diff.rb +13 -13
- data/lib/puppet/util/docs.rb +3 -0
- data/lib/puppet/util/errors.rb +1 -0
- data/lib/puppet/util/execution.rb +16 -18
- data/lib/puppet/util/execution_stub.rb +1 -0
- data/lib/puppet/util/feature.rb +1 -0
- data/lib/puppet/util/file_watcher.rb +2 -0
- data/lib/puppet/util/fileparsing.rb +2 -0
- data/lib/puppet/util/filetype.rb +3 -0
- data/lib/puppet/util/http_proxy.rb +1 -0
- data/lib/puppet/util/inifile.rb +3 -3
- data/lib/puppet/util/instance_loader.rb +2 -0
- data/lib/puppet/util/json.rb +1 -0
- data/lib/puppet/util/json_lockfile.rb +3 -1
- data/lib/puppet/util/ldap/connection.rb +19 -18
- data/lib/puppet/util/ldap/generator.rb +1 -0
- data/lib/puppet/util/ldap/manager.rb +3 -2
- data/lib/puppet/util/ldap.rb +1 -0
- data/lib/puppet/util/libuser.rb +1 -1
- data/lib/puppet/util/limits.rb +1 -0
- data/lib/puppet/util/lockfile.rb +1 -0
- data/lib/puppet/util/log/destination.rb +1 -0
- data/lib/puppet/util/log/destinations.rb +14 -13
- data/lib/puppet/util/log.rb +21 -17
- data/lib/puppet/util/logging.rb +18 -14
- data/lib/puppet/util/metaid.rb +1 -0
- data/lib/puppet/util/metric.rb +2 -0
- data/lib/puppet/util/monkey_patches.rb +1 -0
- data/lib/puppet/util/multi_match.rb +4 -1
- data/lib/puppet/util/network_device/base.rb +1 -1
- data/lib/puppet/util/network_device/config.rb +3 -4
- data/lib/puppet/util/network_device/transport/base.rb +0 -1
- data/lib/puppet/util/network_device/transport.rb +1 -0
- data/lib/puppet/util/network_device.rb +1 -0
- data/lib/puppet/util/package/version/debian.rb +5 -3
- data/lib/puppet/util/package/version/gem.rb +2 -0
- data/lib/puppet/util/package/version/pip.rb +7 -2
- data/lib/puppet/util/package/version/range/eq.rb +2 -0
- data/lib/puppet/util/package/version/range/gt.rb +2 -0
- data/lib/puppet/util/package/version/range/gt_eq.rb +2 -0
- data/lib/puppet/util/package/version/range/lt.rb +2 -0
- data/lib/puppet/util/package/version/range/lt_eq.rb +2 -0
- data/lib/puppet/util/package/version/range/min_max.rb +4 -0
- data/lib/puppet/util/package/version/range/simple.rb +1 -0
- data/lib/puppet/util/package/version/range.rb +3 -0
- data/lib/puppet/util/package/version/rpm.rb +6 -4
- data/lib/puppet/util/package.rb +3 -0
- data/lib/puppet/util/pidlock.rb +7 -7
- data/lib/puppet/util/platform.rb +1 -0
- data/lib/puppet/util/plist.rb +1 -1
- data/lib/puppet/util/posix.rb +8 -5
- data/lib/puppet/util/profiler/aggregate.rb +2 -5
- data/lib/puppet/util/profiler/around_profiler.rb +1 -1
- data/lib/puppet/util/profiler/logging.rb +1 -0
- data/lib/puppet/util/profiler/object_counts.rb +1 -0
- data/lib/puppet/util/profiler/wall_clock.rb +1 -0
- data/lib/puppet/util/profiler.rb +1 -0
- data/lib/puppet/util/provider_features.rb +4 -0
- data/lib/puppet/util/psych_support.rb +1 -0
- data/lib/puppet/util/rdoc/code_objects.rb +3 -7
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +37 -50
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +50 -68
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +5 -5
- data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -0
- data/lib/puppet/util/rdoc/parser.rb +1 -0
- data/lib/puppet/util/rdoc.rb +1 -1
- data/lib/puppet/util/reference.rb +1 -1
- data/lib/puppet/util/resource_template.rb +2 -0
- data/lib/puppet/util/retry_action.rb +3 -3
- data/lib/puppet/util/rpm_compare.rb +6 -3
- data/lib/puppet/util/rubygems.rb +1 -1
- data/lib/puppet/util/run_mode.rb +2 -1
- data/lib/puppet/util/selinux.rb +22 -11
- data/lib/puppet/util/skip_tags.rb +1 -0
- data/lib/puppet/util/splayer.rb +1 -0
- data/lib/puppet/util/storage.rb +2 -1
- data/lib/puppet/util/suidmanager.rb +8 -5
- data/lib/puppet/util/symbolic_file_mode.rb +3 -1
- data/lib/puppet/util/tag_set.rb +1 -0
- data/lib/puppet/util/tagging.rb +2 -1
- data/lib/puppet/util/terminal.rb +1 -0
- data/lib/puppet/util/user_attr.rb +1 -0
- data/lib/puppet/util/warnings.rb +3 -0
- data/lib/puppet/util/watched_file.rb +1 -0
- data/lib/puppet/util/watcher/change_watcher.rb +1 -0
- data/lib/puppet/util/watcher/periodic_watcher.rb +1 -0
- data/lib/puppet/util/watcher/timer.rb +1 -0
- data/lib/puppet/util/watcher.rb +1 -0
- data/lib/puppet/util/windows/access_control_entry.rb +1 -0
- data/lib/puppet/util/windows/access_control_list.rb +3 -2
- data/lib/puppet/util/windows/adsi.rb +32 -25
- data/lib/puppet/util/windows/com.rb +5 -3
- data/lib/puppet/util/windows/daemon.rb +33 -33
- data/lib/puppet/util/windows/error.rb +3 -2
- data/lib/puppet/util/windows/eventlog.rb +8 -5
- data/lib/puppet/util/windows/file.rb +30 -24
- data/lib/puppet/util/windows/monkey_patches/process.rb +0 -1
- data/lib/puppet/util/windows/principal.rb +27 -27
- data/lib/puppet/util/windows/process.rb +7 -6
- data/lib/puppet/util/windows/registry.rb +43 -41
- data/lib/puppet/util/windows/root_certs.rb +1 -0
- data/lib/puppet/util/windows/security.rb +43 -44
- data/lib/puppet/util/windows/security_descriptor.rb +1 -0
- data/lib/puppet/util/windows/service.rb +12 -1
- data/lib/puppet/util/windows/sid.rb +6 -6
- data/lib/puppet/util/windows/string.rb +1 -0
- data/lib/puppet/util/windows/user.rb +33 -33
- data/lib/puppet/util/windows.rb +6 -0
- data/lib/puppet/util/yaml.rb +1 -0
- data/lib/puppet/util.rb +18 -20
- data/lib/puppet/vendor.rb +2 -1
- data/lib/puppet/version.rb +3 -1
- data/lib/puppet/x509/cert_provider.rb +7 -1
- data/lib/puppet/x509/pem_store.rb +1 -0
- data/lib/puppet/x509.rb +1 -0
- data/lib/puppet.rb +1 -0
- data/lib/puppet_pal.rb +1 -0
- data/lib/puppet_x.rb +1 -0
- data/locales/puppet.pot +195 -199
- data/man/man5/puppet.conf.5 +2 -2
- data/man/man8/puppet-agent.8 +1 -1
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +1 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +1 -1
- data/man/man8/puppet-filebucket.8 +1 -1
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-module.8 +1 -1
- data/man/man8/puppet-node.8 +1 -1
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- data/spec/integration/application/agent_spec.rb +13 -0
- data/spec/lib/puppet_spec/puppetserver.rb +1 -0
- data/spec/lib/puppet_spec/verbose.rb +5 -3
- data/spec/unit/agent_spec.rb +2 -7
- data/spec/unit/daemon_spec.rb +3 -20
- data/spec/unit/indirector/catalog/compiler_spec.rb +17 -0
- data/spec/unit/indirector/catalog/rest_spec.rb +17 -0
- data/spec/unit/provider/package/appdmg_spec.rb +1 -1
- data/spec/unit/provider/package/dnf_spec.rb +7 -0
- data/spec/unit/provider/package/dnfmodule_spec.rb +22 -2
- data/spec/unit/provider/service/systemd_spec.rb +8 -6
- data/spec/unit/type/exec_spec.rb +14 -9
- data/spec/unit/util/rpm_compare_spec.rb +8 -8
- metadata +2 -3
- data/CONTRIBUTING.md +0 -161
@@ -1,186 +1,187 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
Puppet::Parser::Functions::newfunction(
|
3
4
|
:strftime,
|
4
5
|
:type => :rvalue,
|
5
6
|
:arity => -3,
|
6
|
-
:doc =>
|
7
|
-
Formats timestamp or timespan according to the directives in the given format string. The directives begins with a percent (%) character.
|
8
|
-
Any text not listed as a directive will be passed through to the output string.
|
9
|
-
|
10
|
-
A third optional timezone argument can be provided. The first argument will then be formatted to represent a local time in that
|
11
|
-
timezone. The timezone can be any timezone that is recognized when using the '%z' or '%Z' formats, or the word 'current', in which
|
12
|
-
case the current timezone of the evaluating process will be used. The timezone argument is case insensitive.
|
13
|
-
|
14
|
-
The default timezone, when no argument is provided, or when using the keyword `default`, is 'UTC'.
|
15
|
-
|
16
|
-
The directive consists of a percent (%) character, zero or more flags, optional minimum field width and
|
17
|
-
a conversion specifier as follows:
|
18
|
-
```
|
19
|
-
%[Flags][Width]Conversion
|
20
|
-
```
|
21
|
-
|
22
|
-
### Flags that controls padding
|
23
|
-
|
24
|
-
| Flag | Meaning
|
25
|
-
| ---- | ---------------
|
26
|
-
| - | Don't pad numerical output
|
27
|
-
| _ | Use spaces for padding
|
28
|
-
| 0 | Use zeros for padding
|
29
|
-
|
30
|
-
### `Timestamp` specific flags
|
31
|
-
|
32
|
-
| Flag | Meaning
|
33
|
-
| ---- | ---------------
|
34
|
-
| # | Change case
|
35
|
-
| ^ | Use uppercase
|
36
|
-
| : | Use colons for %z
|
37
|
-
|
38
|
-
### Format directives applicable to `Timestamp` (names and padding can be altered using flags):
|
39
|
-
|
40
|
-
**Date (Year, Month, Day):**
|
41
|
-
|
42
|
-
| Format | Meaning |
|
43
|
-
| ------ | ------- |
|
44
|
-
| Y | Year with century, zero-padded to at least 4 digits |
|
45
|
-
| C | year / 100 (rounded down such as 20 in 2009) |
|
46
|
-
| y | year % 100 (00..99) |
|
47
|
-
| m | Month of the year, zero-padded (01..12) |
|
48
|
-
| B | The full month name ("January") |
|
49
|
-
| b | The abbreviated month name ("Jan") |
|
50
|
-
| h | Equivalent to %b |
|
51
|
-
| d | Day of the month, zero-padded (01..31) |
|
52
|
-
| e | Day of the month, blank-padded ( 1..31) |
|
53
|
-
| j | Day of the year (001..366) |
|
54
|
-
|
55
|
-
**Time (Hour, Minute, Second, Subsecond):**
|
56
|
-
|
57
|
-
| Format | Meaning |
|
58
|
-
| ------ | ------- |
|
59
|
-
| H | Hour of the day, 24-hour clock, zero-padded (00..23) |
|
60
|
-
| k | Hour of the day, 24-hour clock, blank-padded ( 0..23) |
|
61
|
-
| I | Hour of the day, 12-hour clock, zero-padded (01..12) |
|
62
|
-
| l | Hour of the day, 12-hour clock, blank-padded ( 1..12) |
|
63
|
-
| P | Meridian indicator, lowercase ("am" or "pm") |
|
64
|
-
| p | Meridian indicator, uppercase ("AM" or "PM") |
|
65
|
-
| M | Minute of the hour (00..59) |
|
66
|
-
| S | Second of the minute (00..60) |
|
67
|
-
| L | Millisecond of the second (000..999). Digits under millisecond are truncated to not produce 1000 |
|
68
|
-
| N | Fractional seconds digits, default is 9 digits (nanosecond). Digits under a specified width are truncated to avoid carry up |
|
69
|
-
|
70
|
-
**Time (Hour, Minute, Second, Subsecond):**
|
71
|
-
|
72
|
-
| Format | Meaning |
|
73
|
-
| ------ | ------- |
|
74
|
-
| z | Time zone as hour and minute offset from UTC (e.g. +0900) |
|
75
|
-
| :z | hour and minute offset from UTC with a colon (e.g. +09:00) |
|
76
|
-
| ::z | hour, minute and second offset from UTC (e.g. +09:00:00) |
|
77
|
-
| Z | Abbreviated time zone name or similar information. (OS dependent) |
|
78
|
-
|
79
|
-
**Weekday:**
|
80
|
-
|
81
|
-
| Format | Meaning |
|
82
|
-
| ------ | ------- |
|
83
|
-
| A | The full weekday name ("Sunday") |
|
84
|
-
| a | The abbreviated name ("Sun") |
|
85
|
-
| u | Day of the week (Monday is 1, 1..7) |
|
86
|
-
| w | Day of the week (Sunday is 0, 0..6) |
|
87
|
-
|
88
|
-
**ISO 8601 week-based year and week number:**
|
89
|
-
|
90
|
-
The first week of YYYY starts with a Monday and includes YYYY-01-04.
|
91
|
-
The days in the year before the first week are in the last week of
|
92
|
-
the previous year.
|
93
|
-
|
94
|
-
| Format | Meaning |
|
95
|
-
| ------ | ------- |
|
96
|
-
| G | The week-based year |
|
97
|
-
| g | The last 2 digits of the week-based year (00..99) |
|
98
|
-
| V | Week number of the week-based year (01..53) |
|
99
|
-
|
100
|
-
**Week number:**
|
101
|
-
|
102
|
-
The first week of YYYY that starts with a Sunday or Monday (according to %U
|
103
|
-
or %W). The days in the year before the first week are in week 0.
|
104
|
-
|
105
|
-
| Format | Meaning |
|
106
|
-
| ------ | ------- |
|
107
|
-
| U | Week number of the year. The week starts with Sunday. (00..53) |
|
108
|
-
| W | Week number of the year. The week starts with Monday. (00..53) |
|
109
|
-
|
110
|
-
**Seconds since the Epoch:**
|
111
|
-
|
112
|
-
| Format | Meaning |
|
113
|
-
| s | Number of seconds since 1970-01-01 00:00:00 UTC. |
|
114
|
-
|
115
|
-
**Literal string:**
|
116
|
-
|
117
|
-
| Format | Meaning |
|
118
|
-
| ------ | ------- |
|
119
|
-
| n | Newline character (\n) |
|
120
|
-
| t | Tab character (\t) |
|
121
|
-
| % | Literal "%" character |
|
122
|
-
|
123
|
-
**Combination:**
|
124
|
-
|
125
|
-
| Format | Meaning |
|
126
|
-
| ------ | ------- |
|
127
|
-
| c | date and time (%a %b %e %T %Y) |
|
128
|
-
| D | Date (%m/%d/%y) |
|
129
|
-
| F | The ISO 8601 date format (%Y-%m-%d) |
|
130
|
-
| v | VMS date (%e-%^b-%4Y) |
|
131
|
-
| x | Same as %D |
|
132
|
-
| X | Same as %T |
|
133
|
-
| r | 12-hour time (%I:%M:%S %p) |
|
134
|
-
| R | 24-hour time (%H:%M) |
|
135
|
-
| T | 24-hour time (%H:%M:%S) |
|
136
|
-
|
137
|
-
**Example**: Using `strftime` with a `Timestamp`:
|
138
|
-
|
139
|
-
~~~ puppet
|
140
|
-
$timestamp = Timestamp('2016-08-24T12:13:14')
|
141
|
-
|
142
|
-
# Notice the timestamp using a format that notices the ISO 8601 date format
|
143
|
-
notice($timestamp.strftime('%F')) # outputs '2016-08-24'
|
144
|
-
|
145
|
-
# Notice the timestamp using a format that notices weekday, month, day, time (as UTC), and year
|
146
|
-
notice($timestamp.strftime('%c')) # outputs 'Wed Aug 24 12:13:14 2016'
|
147
|
-
|
148
|
-
# Notice the timestamp using a specific timezone
|
149
|
-
notice($timestamp.strftime('%F %T %z', 'PST')) # outputs '2016-08-24 04:13:14 -0800'
|
150
|
-
|
151
|
-
# Notice the timestamp using timezone that is current for the evaluating process
|
152
|
-
notice($timestamp.strftime('%F %T', 'current')) # outputs the timestamp using the timezone for the current process
|
153
|
-
~~~
|
154
|
-
|
155
|
-
### Format directives applicable to `Timespan`:
|
156
|
-
|
157
|
-
| Format | Meaning |
|
158
|
-
| ------ | ------- |
|
159
|
-
| D | Number of Days |
|
160
|
-
| H | Hour of the day, 24-hour clock |
|
161
|
-
| M | Minute of the hour (00..59) |
|
162
|
-
| S | Second of the minute (00..59) |
|
163
|
-
| L | Millisecond of the second (000..999). Digits under millisecond are truncated to not produce 1000. |
|
164
|
-
| N | Fractional seconds digits, default is 9 digits (nanosecond). Digits under a specified length are truncated to avoid carry up |
|
165
|
-
|
166
|
-
The format directive that represents the highest magnitude in the format will be allowed to overflow.
|
167
|
-
I.e. if no "%D" is used but a "%H" is present, then the hours will be more than 23 in case the
|
168
|
-
timespan reflects more than a day.
|
169
|
-
|
170
|
-
**Example**: Using `strftime` with a Timespan and a format
|
171
|
-
|
172
|
-
~~~ puppet
|
173
|
-
$duration = Timespan({ hours => 3, minutes => 20, seconds => 30 })
|
174
|
-
|
175
|
-
# Notice the duration using a format that outputs <hours>:<minutes>:<seconds>
|
176
|
-
notice($duration.strftime('%H:%M:%S')) # outputs '03:20:30'
|
177
|
-
|
178
|
-
# Notice the duration using a format that outputs <minutes>:<seconds>
|
179
|
-
notice($duration.strftime('%M:%S')) # outputs '200:30'
|
180
|
-
~~~
|
181
|
-
|
182
|
-
- Since 4.8.0
|
183
|
-
DOC
|
184
|
-
) do |
|
7
|
+
:doc => <<~DOC
|
8
|
+
Formats timestamp or timespan according to the directives in the given format string. The directives begins with a percent (%) character.
|
9
|
+
Any text not listed as a directive will be passed through to the output string.
|
10
|
+
|
11
|
+
A third optional timezone argument can be provided. The first argument will then be formatted to represent a local time in that
|
12
|
+
timezone. The timezone can be any timezone that is recognized when using the '%z' or '%Z' formats, or the word 'current', in which
|
13
|
+
case the current timezone of the evaluating process will be used. The timezone argument is case insensitive.
|
14
|
+
|
15
|
+
The default timezone, when no argument is provided, or when using the keyword `default`, is 'UTC'.
|
16
|
+
|
17
|
+
The directive consists of a percent (%) character, zero or more flags, optional minimum field width and
|
18
|
+
a conversion specifier as follows:
|
19
|
+
```
|
20
|
+
%[Flags][Width]Conversion
|
21
|
+
```
|
22
|
+
|
23
|
+
### Flags that controls padding
|
24
|
+
|
25
|
+
| Flag | Meaning
|
26
|
+
| ---- | ---------------
|
27
|
+
| - | Don't pad numerical output
|
28
|
+
| _ | Use spaces for padding
|
29
|
+
| 0 | Use zeros for padding
|
30
|
+
|
31
|
+
### `Timestamp` specific flags
|
32
|
+
|
33
|
+
| Flag | Meaning
|
34
|
+
| ---- | ---------------
|
35
|
+
| # | Change case
|
36
|
+
| ^ | Use uppercase
|
37
|
+
| : | Use colons for %z
|
38
|
+
|
39
|
+
### Format directives applicable to `Timestamp` (names and padding can be altered using flags):
|
40
|
+
|
41
|
+
**Date (Year, Month, Day):**
|
42
|
+
|
43
|
+
| Format | Meaning |
|
44
|
+
| ------ | ------- |
|
45
|
+
| Y | Year with century, zero-padded to at least 4 digits |
|
46
|
+
| C | year / 100 (rounded down such as 20 in 2009) |
|
47
|
+
| y | year % 100 (00..99) |
|
48
|
+
| m | Month of the year, zero-padded (01..12) |
|
49
|
+
| B | The full month name ("January") |
|
50
|
+
| b | The abbreviated month name ("Jan") |
|
51
|
+
| h | Equivalent to %b |
|
52
|
+
| d | Day of the month, zero-padded (01..31) |
|
53
|
+
| e | Day of the month, blank-padded ( 1..31) |
|
54
|
+
| j | Day of the year (001..366) |
|
55
|
+
|
56
|
+
**Time (Hour, Minute, Second, Subsecond):**
|
57
|
+
|
58
|
+
| Format | Meaning |
|
59
|
+
| ------ | ------- |
|
60
|
+
| H | Hour of the day, 24-hour clock, zero-padded (00..23) |
|
61
|
+
| k | Hour of the day, 24-hour clock, blank-padded ( 0..23) |
|
62
|
+
| I | Hour of the day, 12-hour clock, zero-padded (01..12) |
|
63
|
+
| l | Hour of the day, 12-hour clock, blank-padded ( 1..12) |
|
64
|
+
| P | Meridian indicator, lowercase ("am" or "pm") |
|
65
|
+
| p | Meridian indicator, uppercase ("AM" or "PM") |
|
66
|
+
| M | Minute of the hour (00..59) |
|
67
|
+
| S | Second of the minute (00..60) |
|
68
|
+
| L | Millisecond of the second (000..999). Digits under millisecond are truncated to not produce 1000 |
|
69
|
+
| N | Fractional seconds digits, default is 9 digits (nanosecond). Digits under a specified width are truncated to avoid carry up |
|
70
|
+
|
71
|
+
**Time (Hour, Minute, Second, Subsecond):**
|
72
|
+
|
73
|
+
| Format | Meaning |
|
74
|
+
| ------ | ------- |
|
75
|
+
| z | Time zone as hour and minute offset from UTC (e.g. +0900) |
|
76
|
+
| :z | hour and minute offset from UTC with a colon (e.g. +09:00) |
|
77
|
+
| ::z | hour, minute and second offset from UTC (e.g. +09:00:00) |
|
78
|
+
| Z | Abbreviated time zone name or similar information. (OS dependent) |
|
79
|
+
|
80
|
+
**Weekday:**
|
81
|
+
|
82
|
+
| Format | Meaning |
|
83
|
+
| ------ | ------- |
|
84
|
+
| A | The full weekday name ("Sunday") |
|
85
|
+
| a | The abbreviated name ("Sun") |
|
86
|
+
| u | Day of the week (Monday is 1, 1..7) |
|
87
|
+
| w | Day of the week (Sunday is 0, 0..6) |
|
88
|
+
|
89
|
+
**ISO 8601 week-based year and week number:**
|
90
|
+
|
91
|
+
The first week of YYYY starts with a Monday and includes YYYY-01-04.
|
92
|
+
The days in the year before the first week are in the last week of
|
93
|
+
the previous year.
|
94
|
+
|
95
|
+
| Format | Meaning |
|
96
|
+
| ------ | ------- |
|
97
|
+
| G | The week-based year |
|
98
|
+
| g | The last 2 digits of the week-based year (00..99) |
|
99
|
+
| V | Week number of the week-based year (01..53) |
|
100
|
+
|
101
|
+
**Week number:**
|
102
|
+
|
103
|
+
The first week of YYYY that starts with a Sunday or Monday (according to %U
|
104
|
+
or %W). The days in the year before the first week are in week 0.
|
105
|
+
|
106
|
+
| Format | Meaning |
|
107
|
+
| ------ | ------- |
|
108
|
+
| U | Week number of the year. The week starts with Sunday. (00..53) |
|
109
|
+
| W | Week number of the year. The week starts with Monday. (00..53) |
|
110
|
+
|
111
|
+
**Seconds since the Epoch:**
|
112
|
+
|
113
|
+
| Format | Meaning |
|
114
|
+
| s | Number of seconds since 1970-01-01 00:00:00 UTC. |
|
115
|
+
|
116
|
+
**Literal string:**
|
117
|
+
|
118
|
+
| Format | Meaning |
|
119
|
+
| ------ | ------- |
|
120
|
+
| n | Newline character (\n) |
|
121
|
+
| t | Tab character (\t) |
|
122
|
+
| % | Literal "%" character |
|
123
|
+
|
124
|
+
**Combination:**
|
125
|
+
|
126
|
+
| Format | Meaning |
|
127
|
+
| ------ | ------- |
|
128
|
+
| c | date and time (%a %b %e %T %Y) |
|
129
|
+
| D | Date (%m/%d/%y) |
|
130
|
+
| F | The ISO 8601 date format (%Y-%m-%d) |
|
131
|
+
| v | VMS date (%e-%^b-%4Y) |
|
132
|
+
| x | Same as %D |
|
133
|
+
| X | Same as %T |
|
134
|
+
| r | 12-hour time (%I:%M:%S %p) |
|
135
|
+
| R | 24-hour time (%H:%M) |
|
136
|
+
| T | 24-hour time (%H:%M:%S) |
|
137
|
+
|
138
|
+
**Example**: Using `strftime` with a `Timestamp`:
|
139
|
+
|
140
|
+
~~~ puppet
|
141
|
+
$timestamp = Timestamp('2016-08-24T12:13:14')
|
142
|
+
|
143
|
+
# Notice the timestamp using a format that notices the ISO 8601 date format
|
144
|
+
notice($timestamp.strftime('%F')) # outputs '2016-08-24'
|
145
|
+
|
146
|
+
# Notice the timestamp using a format that notices weekday, month, day, time (as UTC), and year
|
147
|
+
notice($timestamp.strftime('%c')) # outputs 'Wed Aug 24 12:13:14 2016'
|
148
|
+
|
149
|
+
# Notice the timestamp using a specific timezone
|
150
|
+
notice($timestamp.strftime('%F %T %z', 'PST')) # outputs '2016-08-24 04:13:14 -0800'
|
151
|
+
|
152
|
+
# Notice the timestamp using timezone that is current for the evaluating process
|
153
|
+
notice($timestamp.strftime('%F %T', 'current')) # outputs the timestamp using the timezone for the current process
|
154
|
+
~~~
|
155
|
+
|
156
|
+
### Format directives applicable to `Timespan`:
|
157
|
+
|
158
|
+
| Format | Meaning |
|
159
|
+
| ------ | ------- |
|
160
|
+
| D | Number of Days |
|
161
|
+
| H | Hour of the day, 24-hour clock |
|
162
|
+
| M | Minute of the hour (00..59) |
|
163
|
+
| S | Second of the minute (00..59) |
|
164
|
+
| L | Millisecond of the second (000..999). Digits under millisecond are truncated to not produce 1000. |
|
165
|
+
| N | Fractional seconds digits, default is 9 digits (nanosecond). Digits under a specified length are truncated to avoid carry up |
|
166
|
+
|
167
|
+
The format directive that represents the highest magnitude in the format will be allowed to overflow.
|
168
|
+
I.e. if no "%D" is used but a "%H" is present, then the hours will be more than 23 in case the
|
169
|
+
timespan reflects more than a day.
|
170
|
+
|
171
|
+
**Example**: Using `strftime` with a Timespan and a format
|
172
|
+
|
173
|
+
~~~ puppet
|
174
|
+
$duration = Timespan({ hours => 3, minutes => 20, seconds => 30 })
|
175
|
+
|
176
|
+
# Notice the duration using a format that outputs <hours>:<minutes>:<seconds>
|
177
|
+
notice($duration.strftime('%H:%M:%S')) # outputs '03:20:30'
|
178
|
+
|
179
|
+
# Notice the duration using a format that outputs <minutes>:<seconds>
|
180
|
+
notice($duration.strftime('%M:%S')) # outputs '200:30'
|
181
|
+
~~~
|
182
|
+
|
183
|
+
- Since 4.8.0
|
184
|
+
DOC
|
185
|
+
) do |_args|
|
185
186
|
Puppet::Parser::Functions::Error.is4x('strftime')
|
186
187
|
end
|
@@ -1,13 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
# Tag the current scope with each passed name
|
3
4
|
Puppet::Parser::Functions::newfunction(:tag, :arity => -2, :doc => "Add the specified tags to the containing class
|
4
5
|
or definition. All contained objects will then acquire that tag, also.
|
5
6
|
") do |vals|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
7
|
+
if Puppet[:tasks]
|
8
|
+
raise Puppet::ParseErrorWithIssue.from_issue_and_stack(
|
9
|
+
Puppet::Pops::Issues::CATALOG_OPERATION_NOT_SUPPORTED_WHEN_SCRIPTING,
|
10
|
+
{:operation => 'tag'})
|
11
|
+
end
|
11
12
|
|
12
|
-
|
13
|
+
self.resource.tag(*vals)
|
13
14
|
end
|
@@ -1,22 +1,23 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
# Test whether a given tag is set. This functions as a big OR -- if any of the specified tags are unset, we return false.
|
3
4
|
Puppet::Parser::Functions::newfunction(:tagged, :type => :rvalue, :arity => -2, :doc => "A boolean function that
|
4
5
|
tells you whether the current container is tagged with the specified tags.
|
5
6
|
The tags are ANDed, so that all of the specified tags must be included for
|
6
7
|
the function to return true.") do |vals|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
8
|
+
if Puppet[:tasks]
|
9
|
+
raise Puppet::ParseErrorWithIssue.from_issue_and_stack(
|
10
|
+
Puppet::Pops::Issues::CATALOG_OPERATION_NOT_SUPPORTED_WHEN_SCRIPTING,
|
11
|
+
{:operation => 'tagged'})
|
12
|
+
end
|
12
13
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
end
|
14
|
+
retval = true
|
15
|
+
vals.each do |val|
|
16
|
+
unless compiler.catalog.tagged?(val) or resource.tagged?(val)
|
17
|
+
retval = false
|
18
|
+
break
|
19
19
|
end
|
20
|
+
end
|
20
21
|
|
21
|
-
|
22
|
+
return retval
|
22
23
|
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
Puppet::Parser::Functions::newfunction(:template, :type => :rvalue, :arity => -2, :doc =>
|
3
4
|
"Loads an ERB template from a module, evaluates it, and returns the resulting
|
4
5
|
value as a string.
|
@@ -13,28 +14,28 @@ Puppet::Parser::Functions::newfunction(:template, :type => :rvalue, :arity => -2
|
|
13
14
|
* An absolute path, which can load a template file from anywhere on disk.
|
14
15
|
* Multiple arguments, which will evaluate all of the specified templates and
|
15
16
|
return their outputs concatenated into a single string.") do |vals|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
17
|
+
if Puppet[:tasks]
|
18
|
+
raise Puppet::ParseErrorWithIssue.from_issue_and_stack(
|
19
|
+
Puppet::Pops::Issues::FEATURE_NOT_SUPPORTED_WHEN_SCRIPTING,
|
20
|
+
{:feature => 'ERB template'})
|
21
|
+
end
|
22
|
+
vals.collect do |file|
|
23
|
+
# Use a wrapper, so the template can't get access to the full
|
24
|
+
# Scope object.
|
25
|
+
debug "Retrieving template #{file}"
|
25
26
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
27
|
+
wrapper = Puppet::Parser::TemplateWrapper.new(self)
|
28
|
+
wrapper.file = file
|
29
|
+
begin
|
30
|
+
wrapper.result
|
31
|
+
rescue => detail
|
32
|
+
info = detail.backtrace.first.split(':')
|
33
|
+
message = []
|
34
|
+
message << _("Failed to parse template %{file}:") % { file: file }
|
35
|
+
message << _(" Filepath: %{file_path}") % { file_path: info[0] }
|
36
|
+
message << _(" Line: %{line}") % { line: info[1] }
|
37
|
+
message << _(" Detail: %{detail}") % { detail: detail }
|
38
|
+
raise Puppet::ParseError, message.join("\n") + "\n"
|
39
|
+
end
|
40
|
+
end.join("")
|
40
41
|
end
|
@@ -1,74 +1,75 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
Puppet::Parser::Functions::newfunction(
|
3
4
|
:then,
|
4
5
|
:type => :rvalue,
|
5
6
|
:arity => -2,
|
6
|
-
:doc =>
|
7
|
-
Call a [lambda](https://puppet.com/docs/puppet/latest/lang_lambdas.html)
|
8
|
-
with the given argument unless the argument is undef. Return `undef` if argument is
|
9
|
-
`undef`, and otherwise the result of giving the argument to the lambda.
|
10
|
-
|
11
|
-
This is useful to process a sequence of operations where an intermediate
|
12
|
-
result may be `undef` (which makes the entire sequence `undef`).
|
13
|
-
The `then` function is especially useful with the function `dig` which
|
14
|
-
performs in a similar way "digging out" a value in a complex structure.
|
15
|
-
|
16
|
-
**Example:** Using `dig` and `then`
|
17
|
-
|
18
|
-
```puppet
|
19
|
-
$data = {a => { b => [{x => 10, y => 20}, {x => 100, y => 200}]}}
|
20
|
-
notice $data.dig(a, b, 1, x).then |$x| { $x * 2 }
|
21
|
-
```
|
22
|
-
|
23
|
-
Would notice the value 200
|
24
|
-
|
25
|
-
Contrast this with:
|
26
|
-
|
27
|
-
```puppet
|
28
|
-
$data = {a => { b => [{x => 10, y => 20}, {ex => 100, why => 200}]}}
|
29
|
-
notice $data.dig(a, b, 1, x).then |$x| { $x * 2 }
|
30
|
-
```
|
31
|
-
|
32
|
-
Which would notice `undef` since the last lookup of 'x' results in `undef` which
|
33
|
-
is returned (without calling the lambda given to the `then` function).
|
34
|
-
|
35
|
-
As a result there is no need for conditional logic or a temporary (non local)
|
36
|
-
variable as the result is now either the wanted value (`x`) multiplied
|
37
|
-
by 2 or `undef`.
|
38
|
-
|
39
|
-
Calls to `then` can be chained. In the next example, a structure is using an offset based on
|
40
|
-
using 1 as the index to the first element (instead of 0 which is used in the language).
|
41
|
-
We are not sure if user input actually contains an index at all, or if it is
|
42
|
-
outside the range of available names.args.
|
43
|
-
|
44
|
-
**Example:** Chaining calls to the `then` function
|
45
|
-
|
46
|
-
```puppet
|
47
|
-
# Names to choose from
|
48
|
-
$names = ['Ringo', 'Paul', 'George', 'John']
|
49
|
-
|
50
|
-
# Structure where 'beatle 2' is wanted (but where the number refers
|
51
|
-
# to 'Paul' because input comes from a source using 1 for the first
|
52
|
-
# element).
|
53
|
-
|
54
|
-
$data = ['singer', { beatle => 2 }]
|
55
|
-
$picked = assert_type(String,
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
)
|
64
|
-
```
|
65
|
-
|
66
|
-
Would notice "Picked Beatle 'Paul'", and would raise an error if the result
|
67
|
-
was not a String.
|
68
|
-
|
69
|
-
* Since 4.5.0
|
70
|
-
|
71
|
-
DOC
|
72
|
-
) do |
|
7
|
+
:doc => <<~DOC
|
8
|
+
Call a [lambda](https://puppet.com/docs/puppet/latest/lang_lambdas.html)
|
9
|
+
with the given argument unless the argument is undef. Return `undef` if argument is
|
10
|
+
`undef`, and otherwise the result of giving the argument to the lambda.
|
11
|
+
|
12
|
+
This is useful to process a sequence of operations where an intermediate
|
13
|
+
result may be `undef` (which makes the entire sequence `undef`).
|
14
|
+
The `then` function is especially useful with the function `dig` which
|
15
|
+
performs in a similar way "digging out" a value in a complex structure.
|
16
|
+
|
17
|
+
**Example:** Using `dig` and `then`
|
18
|
+
|
19
|
+
```puppet
|
20
|
+
$data = {a => { b => [{x => 10, y => 20}, {x => 100, y => 200}]}}
|
21
|
+
notice $data.dig(a, b, 1, x).then |$x| { $x * 2 }
|
22
|
+
```
|
23
|
+
|
24
|
+
Would notice the value 200
|
25
|
+
|
26
|
+
Contrast this with:
|
27
|
+
|
28
|
+
```puppet
|
29
|
+
$data = {a => { b => [{x => 10, y => 20}, {ex => 100, why => 200}]}}
|
30
|
+
notice $data.dig(a, b, 1, x).then |$x| { $x * 2 }
|
31
|
+
```
|
32
|
+
|
33
|
+
Which would notice `undef` since the last lookup of 'x' results in `undef` which
|
34
|
+
is returned (without calling the lambda given to the `then` function).
|
35
|
+
|
36
|
+
As a result there is no need for conditional logic or a temporary (non local)
|
37
|
+
variable as the result is now either the wanted value (`x`) multiplied
|
38
|
+
by 2 or `undef`.
|
39
|
+
|
40
|
+
Calls to `then` can be chained. In the next example, a structure is using an offset based on
|
41
|
+
using 1 as the index to the first element (instead of 0 which is used in the language).
|
42
|
+
We are not sure if user input actually contains an index at all, or if it is
|
43
|
+
outside the range of available names.args.
|
44
|
+
|
45
|
+
**Example:** Chaining calls to the `then` function
|
46
|
+
|
47
|
+
```puppet
|
48
|
+
# Names to choose from
|
49
|
+
$names = ['Ringo', 'Paul', 'George', 'John']
|
50
|
+
|
51
|
+
# Structure where 'beatle 2' is wanted (but where the number refers
|
52
|
+
# to 'Paul' because input comes from a source using 1 for the first
|
53
|
+
# element).
|
54
|
+
|
55
|
+
$data = ['singer', { beatle => 2 }]
|
56
|
+
$picked = assert_type(String,
|
57
|
+
# the data we are interested in is the second in the array,
|
58
|
+
# a hash, where we want the value of the key 'beatle'
|
59
|
+
$data.dig(1, 'beatle')
|
60
|
+
# and we want the index in $names before the given index
|
61
|
+
.then |$x| { $names[$x-1] }
|
62
|
+
# so we can construct a string with that beatle's name
|
63
|
+
.then |$x| { "Picked Beatle '${x}'" }
|
64
|
+
)
|
65
|
+
```
|
66
|
+
|
67
|
+
Would notice "Picked Beatle 'Paul'", and would raise an error if the result
|
68
|
+
was not a String.
|
69
|
+
|
70
|
+
* Since 4.5.0
|
71
|
+
|
72
|
+
DOC
|
73
|
+
) do |_args|
|
73
74
|
Puppet::Parser::Functions::Error.is4x('then')
|
74
75
|
end
|