puppet 8.5.0-universal-darwin → 8.6.0-universal-darwin
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 +29 -26
- data/ext/windows/service/daemon.rb +49 -55
- data/lib/hiera/scope.rb +3 -3
- data/lib/hiera_puppet.rb +1 -1
- data/lib/puppet/agent/disabler.rb +1 -1
- data/lib/puppet/application/agent.rb +2 -2
- data/lib/puppet/application/apply.rb +2 -2
- data/lib/puppet/application/describe.rb +6 -6
- data/lib/puppet/application/device.rb +99 -100
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/face_base.rb +7 -7
- data/lib/puppet/application/filebucket.rb +1 -1
- data/lib/puppet/application/lookup.rb +5 -5
- data/lib/puppet/application/resource.rb +10 -3
- data/lib/puppet/application/ssl.rb +3 -3
- data/lib/puppet/application.rb +16 -18
- data/lib/puppet/coercion.rb +1 -1
- data/lib/puppet/configurer/downloader.rb +9 -4
- data/lib/puppet/configurer/fact_handler.rb +12 -13
- data/lib/puppet/configurer.rb +16 -18
- data/lib/puppet/confine/feature.rb +1 -1
- data/lib/puppet/confine/variable.rb +1 -1
- data/lib/puppet/confine.rb +2 -2
- data/lib/puppet/confine_collection.rb +1 -1
- data/lib/puppet/confiner.rb +2 -2
- data/lib/puppet/daemon.rb +3 -3
- data/lib/puppet/datatypes.rb +5 -6
- data/lib/puppet/defaults.rb +14 -8
- data/lib/puppet/environments.rb +3 -7
- data/lib/puppet/error.rb +3 -3
- data/lib/puppet/external/dot.rb +42 -34
- data/lib/puppet/face/catalog/select.rb +1 -1
- data/lib/puppet/face/epp.rb +7 -9
- data/lib/puppet/face/help.rb +12 -12
- data/lib/puppet/face/module/changes.rb +1 -3
- data/lib/puppet/face/module/list.rb +37 -37
- data/lib/puppet/face/node/clean.rb +1 -1
- data/lib/puppet/face/parser.rb +6 -8
- data/lib/puppet/face/report.rb +5 -7
- data/lib/puppet/facter_impl.rb +1 -1
- data/lib/puppet/feature/base.rb +9 -11
- data/lib/puppet/feature/pe_license.rb +1 -1
- data/lib/puppet/feature/ssh.rb +1 -1
- data/lib/puppet/feature/telnet.rb +3 -5
- data/lib/puppet/feature/zlib.rb +1 -1
- data/lib/puppet/ffi/windows/constants.rb +1 -1
- data/lib/puppet/ffi/windows/functions.rb +2 -2
- data/lib/puppet/ffi/windows/structs.rb +3 -3
- data/lib/puppet/file_bucket/dipper.rb +4 -4
- data/lib/puppet/file_bucket/file.rb +4 -4
- data/lib/puppet/file_serving/base.rb +5 -5
- data/lib/puppet/file_serving/configuration/parser.rb +9 -9
- data/lib/puppet/file_serving/configuration.rb +3 -3
- data/lib/puppet/file_serving/fileset.rb +13 -13
- data/lib/puppet/file_serving/http_metadata.rb +1 -1
- data/lib/puppet/file_serving/metadata.rb +13 -9
- data/lib/puppet/file_serving/mount/file.rb +6 -6
- data/lib/puppet/file_serving/mount/locales.rb +2 -4
- data/lib/puppet/file_serving/mount/pluginfacts.rb +2 -4
- data/lib/puppet/file_serving/mount/plugins.rb +2 -4
- data/lib/puppet/file_serving/mount.rb +1 -1
- data/lib/puppet/file_system/file_impl.rb +3 -3
- data/lib/puppet/file_system/memory_impl.rb +1 -1
- data/lib/puppet/file_system/path_pattern.rb +1 -1
- data/lib/puppet/file_system/uniquefile.rb +17 -16
- data/lib/puppet/file_system/windows.rb +26 -18
- data/lib/puppet/forge/cache.rb +2 -2
- data/lib/puppet/forge/errors.rb +1 -1
- data/lib/puppet/forge/repository.rb +2 -2
- data/lib/puppet/forge.rb +13 -19
- data/lib/puppet/functions/abs.rb +2 -2
- data/lib/puppet/functions/camelcase.rb +1 -1
- data/lib/puppet/functions/compare.rb +2 -2
- data/lib/puppet/functions/contain.rb +1 -1
- data/lib/puppet/functions/defined.rb +2 -2
- data/lib/puppet/functions/dig.rb +1 -1
- data/lib/puppet/functions/eyaml_lookup_key.rb +11 -13
- data/lib/puppet/functions/get.rb +1 -1
- data/lib/puppet/functions/hocon_data.rb +3 -5
- data/lib/puppet/functions/import.rb +1 -1
- data/lib/puppet/functions/json_data.rb +4 -6
- data/lib/puppet/functions/max.rb +2 -2
- data/lib/puppet/functions/min.rb +2 -2
- data/lib/puppet/functions/new.rb +1 -1
- data/lib/puppet/functions/reduce.rb +6 -10
- data/lib/puppet/functions/regsubst.rb +2 -2
- data/lib/puppet/functions/require.rb +1 -1
- data/lib/puppet/functions/yaml_data.rb +11 -13
- data/lib/puppet/functions.rb +32 -37
- data/lib/puppet/generate/type.rb +2 -2
- data/lib/puppet/gettext/config.rb +9 -9
- data/lib/puppet/graph/rb_tree_map.rb +31 -23
- data/lib/puppet/graph/relationship_graph.rb +12 -12
- data/lib/puppet/graph/simple_graph.rb +8 -10
- data/lib/puppet/http/client.rb +1 -1
- data/lib/puppet/http/dns.rb +4 -4
- data/lib/puppet/http/external_client.rb +1 -1
- data/lib/puppet/http/factory.rb +1 -1
- data/lib/puppet/http/proxy.rb +15 -15
- data/lib/puppet/http/redirector.rb +6 -2
- data/lib/puppet/http/resolver.rb +2 -2
- data/lib/puppet/http/retry_after_handler.rb +2 -2
- data/lib/puppet/http/service/ca.rb +1 -1
- data/lib/puppet/http/service/compiler.rb +4 -4
- data/lib/puppet/http/service/file_server.rb +1 -1
- data/lib/puppet/http/service/report.rb +2 -2
- data/lib/puppet/http/service.rb +9 -13
- data/lib/puppet/http/session.rb +1 -1
- data/lib/puppet/http/site.rb +1 -1
- data/lib/puppet/indirector/catalog/compiler.rb +44 -45
- data/lib/puppet/indirector/catalog/rest.rb +7 -5
- data/lib/puppet/indirector/catalog/store_configs.rb +1 -1
- data/lib/puppet/indirector/exec.rb +2 -2
- data/lib/puppet/indirector/face.rb +7 -9
- data/lib/puppet/indirector/fact_search.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +6 -6
- data/lib/puppet/indirector/facts/json.rb +1 -1
- data/lib/puppet/indirector/facts/store_configs.rb +1 -1
- data/lib/puppet/indirector/file_bucket_file/file.rb +17 -17
- data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -3
- data/lib/puppet/indirector/file_content/rest.rb +1 -1
- data/lib/puppet/indirector/file_metadata/rest.rb +1 -1
- data/lib/puppet/indirector/hiera.rb +1 -1
- data/lib/puppet/indirector/indirection.rb +27 -29
- data/lib/puppet/indirector/json.rb +4 -4
- data/lib/puppet/indirector/memory.rb +2 -2
- data/lib/puppet/indirector/msgpack.rb +5 -5
- data/lib/puppet/indirector/node/store_configs.rb +1 -1
- data/lib/puppet/indirector/none.rb +1 -1
- data/lib/puppet/indirector/report/json.rb +1 -1
- data/lib/puppet/indirector/report/yaml.rb +1 -1
- data/lib/puppet/indirector/request.rb +4 -4
- data/lib/puppet/indirector/resource/ral.rb +2 -4
- data/lib/puppet/indirector/resource/store_configs.rb +1 -1
- data/lib/puppet/indirector/terminus.rb +4 -4
- data/lib/puppet/indirector/yaml.rb +3 -3
- data/lib/puppet/info_service/class_information_service.rb +5 -8
- data/lib/puppet/info_service/task_information_service.rb +6 -7
- data/lib/puppet/interface/action.rb +5 -5
- data/lib/puppet/interface/action_manager.rb +5 -5
- data/lib/puppet/interface/documentation.rb +5 -5
- data/lib/puppet/interface/face_collection.rb +7 -7
- data/lib/puppet/interface/option.rb +2 -2
- data/lib/puppet/interface/option_manager.rb +6 -6
- data/lib/puppet/interface.rb +4 -4
- data/lib/puppet/metatype/manager.rb +2 -2
- data/lib/puppet/module/plan.rb +10 -10
- data/lib/puppet/module/task.rb +8 -8
- data/lib/puppet/module.rb +39 -41
- data/lib/puppet/module_tool/applications/application.rb +10 -8
- data/lib/puppet/module_tool/applications/installer.rb +53 -50
- data/lib/puppet/module_tool/applications/unpacker.rb +6 -8
- data/lib/puppet/module_tool/applications/upgrader.rb +37 -34
- data/lib/puppet/module_tool/checksums.rb +2 -2
- data/lib/puppet/module_tool/dependency.rb +1 -1
- data/lib/puppet/module_tool/errors/base.rb +1 -1
- data/lib/puppet/module_tool/install_directory.rb +1 -1
- data/lib/puppet/module_tool/local_tarball.rb +3 -5
- data/lib/puppet/module_tool/metadata.rb +12 -8
- data/lib/puppet/module_tool/shared_behaviors.rb +27 -12
- data/lib/puppet/module_tool/tar/mini.rb +3 -3
- data/lib/puppet/module_tool.rb +4 -4
- data/lib/puppet/network/client_request.rb +5 -3
- data/lib/puppet/network/format.rb +2 -2
- data/lib/puppet/network/format_support.rb +1 -1
- data/lib/puppet/network/formats.rb +1 -1
- data/lib/puppet/network/http/api/indirected_routes.rb +24 -44
- data/lib/puppet/network/http/api/server/v3.rb +1 -1
- data/lib/puppet/network/http/connection.rb +1 -1
- data/lib/puppet/network/http/handler.rb +8 -12
- data/lib/puppet/network/http/request.rb +1 -1
- data/lib/puppet/network/http/route.rb +9 -9
- data/lib/puppet/node/environment.rb +21 -23
- data/lib/puppet/node/facts.rb +1 -1
- data/lib/puppet/node.rb +5 -5
- data/lib/puppet/pal/json_catalog_encoder.rb +1 -1
- data/lib/puppet/pal/pal_impl.rb +48 -50
- data/lib/puppet/pal/plan_signature.rb +1 -1
- data/lib/puppet/pal/task_signature.rb +1 -1
- data/lib/puppet/parameter/package_options.rb +1 -1
- data/lib/puppet/parameter/value.rb +2 -2
- data/lib/puppet/parameter/value_collection.rb +7 -7
- data/lib/puppet/parameter.rb +8 -9
- data/lib/puppet/parser/ast/block_expression.rb +2 -2
- data/lib/puppet/parser/ast/hostclass.rb +1 -1
- data/lib/puppet/parser/ast/pops_bridge.rb +3 -4
- data/lib/puppet/parser/ast/resource.rb +4 -4
- data/lib/puppet/parser/ast/resourceparam.rb +4 -4
- data/lib/puppet/parser/ast.rb +14 -15
- data/lib/puppet/parser/compiler.rb +26 -28
- data/lib/puppet/parser/functions/create_resources.rb +3 -3
- data/lib/puppet/parser/functions/fail.rb +1 -1
- data/lib/puppet/parser/functions/generate.rb +2 -2
- data/lib/puppet/parser/functions/tag.rb +1 -1
- data/lib/puppet/parser/functions.rb +2 -2
- data/lib/puppet/parser/relationship.rb +3 -1
- data/lib/puppet/parser/resource/param.rb +2 -2
- data/lib/puppet/parser/resource.rb +23 -23
- data/lib/puppet/parser/scope.rb +10 -10
- data/lib/puppet/parser/script_compiler.rb +1 -1
- data/lib/puppet/parser/templatewrapper.rb +1 -1
- data/lib/puppet/parser/type_loader.rb +10 -12
- data/lib/puppet/parser.rb +1 -1
- data/lib/puppet/pops/adaptable.rb +1 -1
- data/lib/puppet/pops/evaluator/access_operator.rb +8 -8
- data/lib/puppet/pops/evaluator/callable_signature.rb +4 -4
- data/lib/puppet/pops/evaluator/collector_transformer.rb +4 -4
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +7 -7
- data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +6 -6
- data/lib/puppet/pops/evaluator/compare_operator.rb +10 -10
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +1 -1
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +2 -2
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +56 -60
- data/lib/puppet/pops/evaluator/literal_evaluator.rb +4 -0
- data/lib/puppet/pops/evaluator/relationship_operator.rb +2 -2
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +3 -3
- data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
- data/lib/puppet/pops/functions/dispatcher.rb +3 -3
- data/lib/puppet/pops/functions/function.rb +14 -16
- data/lib/puppet/pops/issue_reporter.rb +2 -2
- data/lib/puppet/pops/label_provider.rb +2 -2
- data/lib/puppet/pops/loader/dependency_loader.rb +3 -3
- data/lib/puppet/pops/loader/loader.rb +4 -4
- data/lib/puppet/pops/loader/loader_paths.rb +3 -3
- data/lib/puppet/pops/loader/module_loaders.rb +11 -11
- data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +1 -1
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -1
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +5 -1
- data/lib/puppet/pops/loader/static_loader.rb +3 -3
- data/lib/puppet/pops/loaders.rb +3 -3
- data/lib/puppet/pops/lookup/data_dig_function_provider.rb +1 -1
- data/lib/puppet/pops/lookup/explainer.rb +2 -2
- data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +15 -11
- data/lib/puppet/pops/lookup/interpolation.rb +3 -3
- data/lib/puppet/pops/lookup/key_recorder.rb +1 -1
- data/lib/puppet/pops/lookup/location_resolver.rb +1 -1
- data/lib/puppet/pops/lookup/lookup_adapter.rb +7 -7
- data/lib/puppet/pops/lookup/sub_lookup.rb +1 -1
- data/lib/puppet/pops/merge_strategy.rb +6 -6
- data/lib/puppet/pops/migration/migration_checker.rb +1 -1
- data/lib/puppet/pops/model/ast_transformer.rb +9 -11
- data/lib/puppet/pops/model/factory.rb +4 -5
- data/lib/puppet/pops/parser/epp_parser.rb +2 -2
- data/lib/puppet/pops/parser/epp_support.rb +1 -1
- data/lib/puppet/pops/parser/evaluating_parser.rb +2 -2
- data/lib/puppet/pops/parser/heredoc_support.rb +4 -4
- data/lib/puppet/pops/parser/interpolation_support.rb +3 -3
- data/lib/puppet/pops/parser/lexer2.rb +20 -12
- data/lib/puppet/pops/parser/lexer_support.rb +1 -1
- data/lib/puppet/pops/parser/locator.rb +4 -4
- data/lib/puppet/pops/parser/parser_support.rb +12 -14
- data/lib/puppet/pops/parser/pn_parser.rb +3 -3
- data/lib/puppet/pops/parser/slurp_support.rb +8 -8
- data/lib/puppet/pops/patterns.rb +12 -12
- data/lib/puppet/pops/pcore.rb +1 -1
- data/lib/puppet/pops/pn.rb +2 -2
- data/lib/puppet/pops/puppet_stack.rb +1 -1
- data/lib/puppet/pops/resource/resource_type_impl.rb +1 -1
- data/lib/puppet/pops/serialization/abstract_reader.rb +2 -2
- data/lib/puppet/pops/serialization/abstract_writer.rb +3 -3
- data/lib/puppet/pops/time/timestamp.rb +1 -1
- data/lib/puppet/pops/types/class_loader.rb +4 -6
- data/lib/puppet/pops/types/iterable.rb +1 -1
- data/lib/puppet/pops/types/p_binary_type.rb +1 -1
- data/lib/puppet/pops/types/p_init_type.rb +1 -1
- data/lib/puppet/pops/types/p_object_type.rb +5 -5
- data/lib/puppet/pops/types/p_object_type_extension.rb +4 -6
- data/lib/puppet/pops/types/p_sem_ver_range_type.rb +1 -1
- data/lib/puppet/pops/types/p_sensitive_type.rb +1 -1
- data/lib/puppet/pops/types/p_timespan_type.rb +2 -2
- data/lib/puppet/pops/types/p_type_set_type.rb +10 -10
- data/lib/puppet/pops/types/p_uri_type.rb +4 -4
- data/lib/puppet/pops/types/recursion_guard.rb +4 -4
- data/lib/puppet/pops/types/ruby_generator.rb +2 -2
- data/lib/puppet/pops/types/string_converter.rb +12 -8
- data/lib/puppet/pops/types/tree_iterators.rb +4 -6
- data/lib/puppet/pops/types/type_calculator.rb +10 -10
- data/lib/puppet/pops/types/type_factory.rb +7 -3
- data/lib/puppet/pops/types/type_formatter.rb +22 -24
- data/lib/puppet/pops/types/type_mismatch_describer.rb +24 -24
- data/lib/puppet/pops/types/types.rb +28 -24
- data/lib/puppet/pops/utils.rb +38 -42
- data/lib/puppet/pops/validation/checker4_0.rb +10 -10
- data/lib/puppet/pops/validation/tasks_checker.rb +1 -1
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +2 -0
- data/lib/puppet/pops/validation.rb +4 -4
- data/lib/puppet/pops/visitor.rb +2 -2
- data/lib/puppet/property/ensure.rb +12 -14
- data/lib/puppet/property/keyvalue.rb +4 -4
- data/lib/puppet/property/list.rb +4 -4
- data/lib/puppet/property/ordered_list.rb +1 -1
- data/lib/puppet/property.rb +31 -33
- data/lib/puppet/provider/exec.rb +2 -2
- data/lib/puppet/provider/file/posix.rb +19 -17
- data/lib/puppet/provider/file/windows.rb +13 -19
- data/lib/puppet/provider/group/directoryservice.rb +3 -2
- data/lib/puppet/provider/group/groupadd.rb +4 -4
- data/lib/puppet/provider/group/windows_adsi.rb +2 -2
- data/lib/puppet/provider/nameservice/directoryservice.rb +29 -29
- data/lib/puppet/provider/nameservice/objectadd.rb +2 -4
- data/lib/puppet/provider/nameservice/pw.rb +1 -2
- data/lib/puppet/provider/nameservice.rb +8 -8
- data/lib/puppet/provider/package/aix.rb +19 -19
- data/lib/puppet/provider/package/appdmg.rb +2 -2
- data/lib/puppet/provider/package/apple.rb +1 -1
- data/lib/puppet/provider/package/apt.rb +18 -18
- data/lib/puppet/provider/package/aptitude.rb +1 -3
- data/lib/puppet/provider/package/aptrpm.rb +9 -9
- data/lib/puppet/provider/package/blastwave.rb +10 -14
- data/lib/puppet/provider/package/dnfmodule.rb +3 -3
- data/lib/puppet/provider/package/dpkg.rb +11 -13
- data/lib/puppet/provider/package/fink.rb +14 -14
- data/lib/puppet/provider/package/freebsd.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +12 -14
- data/lib/puppet/provider/package/macports.rb +2 -2
- data/lib/puppet/provider/package/nim.rb +10 -10
- data/lib/puppet/provider/package/openbsd.rb +22 -22
- data/lib/puppet/provider/package/opkg.rb +6 -6
- data/lib/puppet/provider/package/pacman.rb +35 -29
- data/lib/puppet/provider/package/pip.rb +25 -24
- data/lib/puppet/provider/package/pkg.rb +15 -15
- data/lib/puppet/provider/package/pkgdmg.rb +10 -10
- data/lib/puppet/provider/package/pkgin.rb +2 -2
- data/lib/puppet/provider/package/pkgng.rb +5 -5
- data/lib/puppet/provider/package/pkgutil.rb +17 -21
- data/lib/puppet/provider/package/portage.rb +59 -61
- data/lib/puppet/provider/package/ports.rb +12 -11
- data/lib/puppet/provider/package/portupgrade.rb +35 -35
- data/lib/puppet/provider/package/puppetserver_gem.rb +10 -9
- data/lib/puppet/provider/package/rpm.rb +26 -26
- data/lib/puppet/provider/package/rug.rb +7 -9
- data/lib/puppet/provider/package/sun.rb +4 -4
- data/lib/puppet/provider/package/up2date.rb +5 -7
- data/lib/puppet/provider/package/urpmi.rb +6 -6
- data/lib/puppet/provider/package/windows/exe_package.rb +7 -7
- data/lib/puppet/provider/package/windows/msi_package.rb +3 -3
- data/lib/puppet/provider/package/windows/package.rb +2 -2
- data/lib/puppet/provider/package/windows.rb +3 -5
- data/lib/puppet/provider/package/yum.rb +33 -37
- data/lib/puppet/provider/package/zypper.rb +12 -14
- data/lib/puppet/provider/package.rb +1 -1
- data/lib/puppet/provider/package_targetable.rb +1 -1
- data/lib/puppet/provider/parsedfile.rb +9 -9
- data/lib/puppet/provider/service/base.rb +16 -21
- data/lib/puppet/provider/service/bsd.rb +4 -4
- data/lib/puppet/provider/service/daemontools.rb +31 -31
- data/lib/puppet/provider/service/debian.rb +6 -6
- data/lib/puppet/provider/service/freebsd.rb +36 -36
- data/lib/puppet/provider/service/gentoo.rb +6 -6
- data/lib/puppet/provider/service/init.rb +19 -19
- data/lib/puppet/provider/service/launchd.rb +22 -22
- data/lib/puppet/provider/service/openbsd.rb +10 -10
- data/lib/puppet/provider/service/openrc.rb +1 -1
- data/lib/puppet/provider/service/openwrt.rb +3 -3
- data/lib/puppet/provider/service/rcng.rb +3 -3
- data/lib/puppet/provider/service/redhat.rb +4 -4
- data/lib/puppet/provider/service/runit.rb +6 -6
- data/lib/puppet/provider/service/service.rb +5 -7
- data/lib/puppet/provider/service/smf.rb +28 -27
- data/lib/puppet/provider/service/src.rb +7 -7
- data/lib/puppet/provider/service/systemd.rb +31 -37
- data/lib/puppet/provider/service/upstart.rb +17 -17
- data/lib/puppet/provider/service/windows.rb +7 -7
- data/lib/puppet/provider/user/aix.rb +4 -2
- data/lib/puppet/provider/user/directoryservice.rb +34 -36
- data/lib/puppet/provider/user/hpux.rb +10 -14
- data/lib/puppet/provider/user/pw.rb +1 -1
- data/lib/puppet/provider/user/user_role_add.rb +16 -18
- data/lib/puppet/provider/user/useradd.rb +7 -7
- data/lib/puppet/provider/user/windows_adsi.rb +1 -1
- data/lib/puppet/provider.rb +8 -8
- data/lib/puppet/reference/indirection.rb +3 -0
- data/lib/puppet/reference/metaparameter.rb +1 -1
- data/lib/puppet/reference/providers.rb +3 -3
- data/lib/puppet/reference/type.rb +1 -1
- data/lib/puppet/relationship.rb +4 -5
- data/lib/puppet/reports/http.rb +1 -1
- data/lib/puppet/reports/log.rb +2 -2
- data/lib/puppet/reports/store.rb +4 -4
- data/lib/puppet/reports.rb +2 -2
- data/lib/puppet/resource/catalog.rb +16 -16
- data/lib/puppet/resource/status.rb +3 -3
- data/lib/puppet/resource/type.rb +8 -8
- data/lib/puppet/resource/type_collection.rb +1 -1
- data/lib/puppet/resource.rb +41 -41
- data/lib/puppet/scheduler/scheduler.rb +1 -1
- data/lib/puppet/settings/alias_setting.rb +3 -5
- data/lib/puppet/settings/base_setting.rb +11 -11
- data/lib/puppet/settings/boolean_setting.rb +2 -2
- data/lib/puppet/settings/config_file.rb +5 -4
- data/lib/puppet/settings/duration_setting.rb +2 -2
- data/lib/puppet/settings/environment_conf.rb +3 -3
- data/lib/puppet/settings/file_or_directory_setting.rb +2 -2
- data/lib/puppet/settings/file_setting.rb +11 -11
- data/lib/puppet/settings/ini_file.rb +3 -3
- data/lib/puppet/settings/port_setting.rb +1 -1
- data/lib/puppet/settings/priority_setting.rb +2 -2
- data/lib/puppet/settings/ttl_setting.rb +2 -2
- data/lib/puppet/settings/value_translator.rb +8 -8
- data/lib/puppet/settings.rb +65 -70
- data/lib/puppet/ssl/base.rb +2 -4
- data/lib/puppet/ssl/certificate_request.rb +18 -22
- data/lib/puppet/ssl/certificate_request_attributes.rb +3 -3
- data/lib/puppet/ssl/oids.rb +2 -2
- data/lib/puppet/ssl/openssl_loader.rb +4 -4
- data/lib/puppet/syntax_checkers/base64.rb +3 -3
- data/lib/puppet/syntax_checkers/epp.rb +3 -3
- data/lib/puppet/syntax_checkers/json.rb +3 -3
- data/lib/puppet/syntax_checkers/pp.rb +3 -3
- data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
- data/lib/puppet/transaction/event.rb +2 -2
- data/lib/puppet/transaction/event_manager.rb +5 -5
- data/lib/puppet/transaction/persistence.rb +12 -14
- data/lib/puppet/transaction/report.rb +4 -4
- data/lib/puppet/transaction/resource_harness.rb +2 -2
- data/lib/puppet/transaction.rb +14 -18
- data/lib/puppet/type/component.rb +3 -3
- data/lib/puppet/type/exec.rb +43 -45
- data/lib/puppet/type/file/checksum_value.rb +1 -1
- data/lib/puppet/type/file/content.rb +6 -6
- data/lib/puppet/type/file/ctime.rb +2 -2
- data/lib/puppet/type/file/data_sync.rb +3 -3
- data/lib/puppet/type/file/ensure.rb +16 -15
- data/lib/puppet/type/file/mode.rb +9 -9
- data/lib/puppet/type/file/mtime.rb +2 -2
- data/lib/puppet/type/file/selcontext.rb +14 -14
- data/lib/puppet/type/file/source.rb +19 -21
- data/lib/puppet/type/file/target.rb +11 -11
- data/lib/puppet/type/file.rb +21 -21
- data/lib/puppet/type/filebucket.rb +3 -3
- data/lib/puppet/type/group.rb +3 -3
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/package.rb +4 -4
- data/lib/puppet/type/resources.rb +6 -6
- data/lib/puppet/type/schedule.rb +9 -9
- data/lib/puppet/type/service.rb +6 -8
- data/lib/puppet/type/tidy.rb +22 -24
- data/lib/puppet/type/user.rb +13 -13
- data/lib/puppet/type.rb +76 -88
- data/lib/puppet/util/at_fork/solaris.rb +33 -37
- data/lib/puppet/util/autoload.rb +2 -2
- data/lib/puppet/util/backups.rb +9 -9
- data/lib/puppet/util/character_encoding.rb +7 -6
- data/lib/puppet/util/checksums.rb +2 -2
- data/lib/puppet/util/classgen.rb +8 -8
- data/lib/puppet/util/colors.rb +1 -1
- data/lib/puppet/util/command_line/puppet_option_parser.rb +1 -1
- data/lib/puppet/util/command_line/trollop.rb +42 -46
- data/lib/puppet/util/command_line.rb +2 -2
- data/lib/puppet/util/constant_inflector.rb +2 -2
- data/lib/puppet/util/diff.rb +19 -21
- data/lib/puppet/util/docs.rb +2 -2
- data/lib/puppet/util/errors.rb +9 -9
- data/lib/puppet/util/execution.rb +32 -9
- data/lib/puppet/util/feature.rb +1 -1
- data/lib/puppet/util/fileparsing.rb +12 -16
- data/lib/puppet/util/filetype.rb +36 -40
- data/lib/puppet/util/inifile.rb +6 -12
- data/lib/puppet/util/ldap/connection.rb +1 -1
- data/lib/puppet/util/ldap/manager.rb +10 -12
- data/lib/puppet/util/lockfile.rb +6 -8
- data/lib/puppet/util/log/destination.rb +2 -2
- data/lib/puppet/util/log/destinations.rb +4 -4
- data/lib/puppet/util/log.rb +12 -9
- data/lib/puppet/util/logging.rb +11 -11
- data/lib/puppet/util/metric.rb +3 -3
- data/lib/puppet/util/monkey_patches.rb +5 -7
- data/lib/puppet/util/network_device/config.rb +3 -3
- data/lib/puppet/util/package/version/debian.rb +27 -28
- data/lib/puppet/util/package/version/pip.rb +5 -5
- data/lib/puppet/util/package/version/range/eq.rb +1 -1
- data/lib/puppet/util/package/version/rpm.rb +1 -1
- data/lib/puppet/util/package.rb +2 -2
- data/lib/puppet/util/pidlock.rb +2 -2
- data/lib/puppet/util/platform.rb +1 -1
- data/lib/puppet/util/plist.rb +8 -10
- data/lib/puppet/util/posix.rb +17 -17
- data/lib/puppet/util/profiler/aggregate.rb +1 -1
- data/lib/puppet/util/provider_features.rb +3 -3
- data/lib/puppet/util/rdoc/code_objects.rb +3 -3
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +63 -64
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +23 -23
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +12 -12
- data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -1
- data/lib/puppet/util/rdoc/parser.rb +1 -1
- data/lib/puppet/util/reference.rb +13 -9
- data/lib/puppet/util/retry_action.rb +1 -1
- data/lib/puppet/util/rpm_compare.rb +17 -18
- data/lib/puppet/util/rubygems.rb +1 -1
- data/lib/puppet/util/selinux.rb +7 -7
- data/lib/puppet/util/storage.rb +10 -12
- data/lib/puppet/util/suidmanager.rb +18 -19
- data/lib/puppet/util/symbolic_file_mode.rb +71 -75
- data/lib/puppet/util/tag_set.rb +2 -2
- data/lib/puppet/util/tagging.rb +8 -10
- data/lib/puppet/util/terminal.rb +4 -4
- data/lib/puppet/util/user_attr.rb +7 -7
- data/lib/puppet/util/watcher.rb +3 -5
- data/lib/puppet/util/windows/access_control_list.rb +1 -1
- data/lib/puppet/util/windows/adsi.rb +42 -42
- data/lib/puppet/util/windows/daemon.rb +64 -68
- data/lib/puppet/util/windows/error.rb +2 -2
- data/lib/puppet/util/windows/file.rb +18 -25
- data/lib/puppet/util/windows/monkey_patches/process.rb +1 -1
- data/lib/puppet/util/windows/principal.rb +8 -8
- data/lib/puppet/util/windows/process.rb +16 -28
- data/lib/puppet/util/windows/registry.rb +16 -15
- data/lib/puppet/util/windows/root_certs.rb +2 -2
- data/lib/puppet/util/windows/security.rb +31 -31
- data/lib/puppet/util/windows/service.rb +11 -11
- data/lib/puppet/util/windows/sid.rb +8 -8
- data/lib/puppet/util/windows/user.rb +18 -20
- data/lib/puppet/util/yaml.rb +1 -1
- data/lib/puppet/util.rb +55 -46
- data/lib/puppet/version.rb +2 -2
- data/lib/puppet/x509/pem_store.rb +1 -1
- data/lib/puppet.rb +3 -3
- data/man/man5/puppet.conf.5 +10 -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 +5 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- metadata +2 -2
@@ -40,23 +40,21 @@ class Puppet::Pops::Functions::Function
|
|
40
40
|
#
|
41
41
|
# @api public
|
42
42
|
def call(scope, *args, &block)
|
43
|
+
result = catch(:return) do
|
44
|
+
return self.class.dispatcher.dispatch(self, scope, args, &block)
|
45
|
+
end
|
46
|
+
result.value
|
47
|
+
rescue Puppet::Pops::Evaluator::Next => jumper
|
43
48
|
begin
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
end
|
54
|
-
rescue Puppet::Pops::Evaluator::Return => jumper
|
55
|
-
begin
|
56
|
-
throw :return, jumper
|
57
|
-
rescue Puppet::Parser::Scope::UNCAUGHT_THROW_EXCEPTION
|
58
|
-
raise Puppet::ParseError.new("return() from context where this is illegal", jumper.file, jumper.line)
|
59
|
-
end
|
49
|
+
throw :next, jumper.value
|
50
|
+
rescue Puppet::Parser::Scope::UNCAUGHT_THROW_EXCEPTION
|
51
|
+
raise Puppet::ParseError.new("next() from context where this is illegal", jumper.file, jumper.line)
|
52
|
+
end
|
53
|
+
rescue Puppet::Pops::Evaluator::Return => jumper
|
54
|
+
begin
|
55
|
+
throw :return, jumper
|
56
|
+
rescue Puppet::Parser::Scope::UNCAUGHT_THROW_EXCEPTION
|
57
|
+
raise Puppet::ParseError.new("return() from context where this is illegal", jumper.file, jumper.line)
|
60
58
|
end
|
61
59
|
end
|
62
60
|
|
@@ -48,7 +48,7 @@ class IssueReporter
|
|
48
48
|
errors = acceptor.errors
|
49
49
|
if errors.size > 0
|
50
50
|
unless emit_errors
|
51
|
-
raise emit_exception
|
51
|
+
raise emit_exception, emit_message
|
52
52
|
end
|
53
53
|
|
54
54
|
formatter = Validation::DiagnosticFormatterPuppetStyle.new
|
@@ -70,7 +70,7 @@ class IssueReporter
|
|
70
70
|
emitted += 1
|
71
71
|
break if emitted >= max_errors
|
72
72
|
end
|
73
|
-
giving_up_message = if
|
73
|
+
giving_up_message = if emit_warnings && warnings.size > 0
|
74
74
|
_("Language validation logged %{error_count} errors, and %{warning_count} warnings. Giving up") %
|
75
75
|
{ error_count: errors.size, warning_count: warnings.size }
|
76
76
|
else
|
@@ -4,8 +4,8 @@
|
|
4
4
|
# This simple implementation calls #to_s on the given object, and handles articles 'a/an/the'.
|
5
5
|
#
|
6
6
|
module Puppet::Pops::LabelProvider
|
7
|
-
VOWELS = %w
|
8
|
-
SKIPPED_CHARACTERS = %w
|
7
|
+
VOWELS = %w[a e i o u y]
|
8
|
+
SKIPPED_CHARACTERS = %w[" ']
|
9
9
|
A = "a"
|
10
10
|
AN = "an"
|
11
11
|
|
@@ -44,7 +44,7 @@ class Puppet::Pops::Loader::DependencyLoader < Puppet::Pops::Loader::BaseLoader
|
|
44
44
|
# (Note: superclass caches the result in this loader as it would have to repeat this search for every
|
45
45
|
# lookup otherwise).
|
46
46
|
loaded = @dependency_loaders.reduce(nil) do |previous, loader|
|
47
|
-
break previous
|
47
|
+
break previous unless previous.nil?
|
48
48
|
|
49
49
|
loader.load_typed(typed_name)
|
50
50
|
end
|
@@ -62,7 +62,7 @@ class Puppet::Pops::Loader::DependencyLoader < Puppet::Pops::Loader::BaseLoader
|
|
62
62
|
end
|
63
63
|
|
64
64
|
def to_s
|
65
|
-
"(DependencyLoader '#{@loader_name}' [" + @dependency_loaders.map
|
65
|
+
"(DependencyLoader '#{@loader_name}' [" + @dependency_loaders.map(&:to_s).join(' ,') + "])"
|
66
66
|
end
|
67
67
|
|
68
68
|
private
|
@@ -81,7 +81,7 @@ class Puppet::Pops::Loader::DependencyLoader < Puppet::Pops::Loader::BaseLoader
|
|
81
81
|
# (Note: superclass caches the result in this loader as it would have to repeat this search for every
|
82
82
|
# lookup otherwise).
|
83
83
|
@dependency_loaders.reduce(nil) do |previous, loader|
|
84
|
-
break previous
|
84
|
+
break previous unless previous.nil?
|
85
85
|
|
86
86
|
loader.loaded_entry(typed_name, check_dependencies)
|
87
87
|
end
|
@@ -54,7 +54,7 @@ class Loader
|
|
54
54
|
# @yieldreturn [Boolean] `true` to keep the entry, `false` to discard it.
|
55
55
|
# @return [Array<TypedName>] the list of names of discovered values
|
56
56
|
def discover(type, error_collector = nil, name_authority = Pcore::RUNTIME_NAME_AUTHORITY, &block)
|
57
|
-
|
57
|
+
EMPTY_ARRAY
|
58
58
|
end
|
59
59
|
|
60
60
|
# Produces the value associated with the given name if already loaded, or available for loading
|
@@ -164,7 +164,7 @@ class Loader
|
|
164
164
|
# @api private
|
165
165
|
#
|
166
166
|
def set_entry(type, name, value, origin = nil)
|
167
|
-
raise NotImplementedError
|
167
|
+
raise NotImplementedError
|
168
168
|
end
|
169
169
|
|
170
170
|
# Produces a NamedEntry if a value is bound to the given name, or nil if nothing is bound.
|
@@ -175,7 +175,7 @@ class Loader
|
|
175
175
|
# @api private
|
176
176
|
#
|
177
177
|
def get_entry(typed_name)
|
178
|
-
raise NotImplementedError
|
178
|
+
raise NotImplementedError
|
179
179
|
end
|
180
180
|
|
181
181
|
# A loader is by default a loader for all kinds of loadables. An implementation may override
|
@@ -199,7 +199,7 @@ class Loader
|
|
199
199
|
# at this point to inspect (ie children would print out `loader_name`
|
200
200
|
# rather than their version of to_s if they chose to implement it).
|
201
201
|
def inspect
|
202
|
-
|
202
|
+
to_s
|
203
203
|
end
|
204
204
|
|
205
205
|
# An entry for one entity loaded by the loader.
|
@@ -108,11 +108,11 @@ module LoaderPaths
|
|
108
108
|
end
|
109
109
|
|
110
110
|
def relative_path
|
111
|
-
raise NotImplementedError
|
111
|
+
raise NotImplementedError
|
112
112
|
end
|
113
113
|
|
114
114
|
def instantiator
|
115
|
-
raise NotImplementedError
|
115
|
+
raise NotImplementedError
|
116
116
|
end
|
117
117
|
end
|
118
118
|
|
@@ -234,7 +234,7 @@ module LoaderPaths
|
|
234
234
|
# match more than one path with one name
|
235
235
|
class TaskPath < PuppetSmartPath
|
236
236
|
TASKS_PATH = 'tasks'
|
237
|
-
FORBIDDEN_EXTENSIONS = %w
|
237
|
+
FORBIDDEN_EXTENSIONS = %w[.conf .md].freeze
|
238
238
|
|
239
239
|
def extension
|
240
240
|
EMPTY_STRING
|
@@ -82,7 +82,7 @@ module ModuleLoaders
|
|
82
82
|
|
83
83
|
class EmptyLoader < BaseLoader
|
84
84
|
def find(typed_name)
|
85
|
-
|
85
|
+
nil
|
86
86
|
end
|
87
87
|
|
88
88
|
def private_loader
|
@@ -199,7 +199,7 @@ module ModuleLoaders
|
|
199
199
|
# Can be defined in module using a global name. No action required
|
200
200
|
|
201
201
|
when :plan
|
202
|
-
|
202
|
+
unless global?
|
203
203
|
# Global name must be the name of the module
|
204
204
|
return nil unless name_parts[0] == module_name
|
205
205
|
|
@@ -209,7 +209,7 @@ module ModuleLoaders
|
|
209
209
|
end
|
210
210
|
|
211
211
|
when :task
|
212
|
-
|
212
|
+
unless global?
|
213
213
|
# Global name must be the name of the module
|
214
214
|
return nil unless name_parts[0] == module_name
|
215
215
|
|
@@ -219,7 +219,7 @@ module ModuleLoaders
|
|
219
219
|
end
|
220
220
|
|
221
221
|
when :type
|
222
|
-
|
222
|
+
unless global?
|
223
223
|
# Global name must be the name of the module
|
224
224
|
unless name_parts[0] == module_name || module_name == NAMESPACE_WILDCARD
|
225
225
|
# Check for ruby defined data type in global namespace before giving up
|
@@ -297,7 +297,7 @@ module ModuleLoaders
|
|
297
297
|
# @return [Boolean] true if there is content in the directory appointed by the relative path
|
298
298
|
#
|
299
299
|
def meaningful_to_search?(smart_path)
|
300
|
-
raise NotImplementedError
|
300
|
+
raise NotImplementedError
|
301
301
|
end
|
302
302
|
|
303
303
|
# Abstract method that subclasses override to answer if the given relative path exists, and if so returns that path
|
@@ -306,7 +306,7 @@ module ModuleLoaders
|
|
306
306
|
# @return [String, nil] the found path or nil if no such path was found
|
307
307
|
#
|
308
308
|
def existing_path(resolved_path)
|
309
|
-
raise NotImplementedError
|
309
|
+
raise NotImplementedError
|
310
310
|
end
|
311
311
|
|
312
312
|
# Abstract method that subclasses override to return an array of paths that may be associated with the resolved path.
|
@@ -315,7 +315,7 @@ module ModuleLoaders
|
|
315
315
|
# @return [Array<String>]
|
316
316
|
#
|
317
317
|
def candidate_paths(resolved_path)
|
318
|
-
raise NotImplementedError
|
318
|
+
raise NotImplementedError
|
319
319
|
end
|
320
320
|
|
321
321
|
# Abstract method that subclasses override to produce the content of the effective path.
|
@@ -325,7 +325,7 @@ module ModuleLoaders
|
|
325
325
|
# @return [String] the content of the file
|
326
326
|
#
|
327
327
|
def get_contents(effective_path)
|
328
|
-
raise NotImplementedError
|
328
|
+
raise NotImplementedError
|
329
329
|
end
|
330
330
|
|
331
331
|
# Abstract method that subclasses override to produce a source reference String used to identify the
|
@@ -335,7 +335,7 @@ module ModuleLoaders
|
|
335
335
|
# @return [String] a reference to the source file (in file system, zip file, or elsewhere).
|
336
336
|
#
|
337
337
|
def get_source_ref(relative_path)
|
338
|
-
raise NotImplementedError
|
338
|
+
raise NotImplementedError
|
339
339
|
end
|
340
340
|
|
341
341
|
# Answers the question if this loader represents a global component (true for resource type loader and environment loader)
|
@@ -347,7 +347,7 @@ module ModuleLoaders
|
|
347
347
|
end
|
348
348
|
|
349
349
|
# Answers `true` if the loader used by this instance is rooted beneath 'lib'. This is
|
350
|
-
# typically true for the
|
350
|
+
# typically true for the system_loader. It will have a path relative to the parent
|
351
351
|
# of 'puppet' instead of the parent of 'lib/puppet' since the 'lib' directory of puppet
|
352
352
|
# is renamed during install. This is significant for loaders that load ruby code.
|
353
353
|
#
|
@@ -370,7 +370,7 @@ module ModuleLoaders
|
|
370
370
|
# @param smart_path [SmartPath] the path to find relative paths for
|
371
371
|
# @return [Array<String>] found paths
|
372
372
|
def relative_paths(smart_path)
|
373
|
-
raise NotImplementedError
|
373
|
+
raise NotImplementedError
|
374
374
|
end
|
375
375
|
|
376
376
|
private
|
@@ -15,7 +15,7 @@ class Puppet::Pops::Loader::RubyDataTypeInstantiator
|
|
15
15
|
# @return [Puppet::Pops::Types::PAnyType] - an instantiated data type associated with the given loader
|
16
16
|
#
|
17
17
|
def self.create(loader, typed_name, source_ref, ruby_code_string)
|
18
|
-
unless ruby_code_string.is_a?(String) && ruby_code_string =~ /Puppet
|
18
|
+
unless ruby_code_string.is_a?(String) && ruby_code_string =~ /Puppet::DataTypes\.create_type/
|
19
19
|
raise ArgumentError, _("The code loaded from %{source_ref} does not seem to be a Puppet 5x API data type - no create_type call.") % { source_ref: source_ref }
|
20
20
|
end
|
21
21
|
|
@@ -15,7 +15,7 @@ class Puppet::Pops::Loader::RubyFunctionInstantiator
|
|
15
15
|
# @return [Puppet::Pops::Functions.Function] - an instantiated function with global scope closure associated with the given loader
|
16
16
|
#
|
17
17
|
def self.create(loader, typed_name, source_ref, ruby_code_string)
|
18
|
-
unless ruby_code_string.is_a?(String) && ruby_code_string =~ /Puppet
|
18
|
+
unless ruby_code_string.is_a?(String) && ruby_code_string =~ /Puppet::Functions\.create_function/
|
19
19
|
raise ArgumentError, _("The code loaded from %{source_ref} does not seem to be a Puppet 4x API function - no create_function call.") % { source_ref: source_ref }
|
20
20
|
end
|
21
21
|
|
@@ -120,7 +120,11 @@ class Puppet::Pops::Loader::RubyLegacyFunctionInstantiator
|
|
120
120
|
# Returns an Array; a tuple with method name and line number or "<unknown>" if either is missing, or format is not the expected
|
121
121
|
#
|
122
122
|
def self.extract_name_line(x)
|
123
|
-
(
|
123
|
+
(if x.is_a?(Array)
|
124
|
+
[x[1], x[2].is_a?(Array) ? x[2][1] : nil]
|
125
|
+
else
|
126
|
+
[nil, nil]
|
127
|
+
end).map { |v| v.nil? ? UNKNOWN : v }
|
124
128
|
end
|
125
129
|
private_class_method :extract_name_line
|
126
130
|
end
|
@@ -6,7 +6,7 @@
|
|
6
6
|
module Puppet::Pops
|
7
7
|
module Loader
|
8
8
|
class StaticLoader < Loader
|
9
|
-
BUILTIN_TYPE_NAMES = %w
|
9
|
+
BUILTIN_TYPE_NAMES = %w[
|
10
10
|
Component
|
11
11
|
Exec
|
12
12
|
File
|
@@ -22,9 +22,9 @@ class StaticLoader < Loader
|
|
22
22
|
Tidy
|
23
23
|
User
|
24
24
|
Whit
|
25
|
-
|
25
|
+
].freeze
|
26
26
|
|
27
|
-
BUILTIN_TYPE_NAMES_LC = Set.new(BUILTIN_TYPE_NAMES.map
|
27
|
+
BUILTIN_TYPE_NAMES_LC = Set.new(BUILTIN_TYPE_NAMES.map(&:downcase)).freeze
|
28
28
|
|
29
29
|
BUILTIN_ALIASES = {
|
30
30
|
'Data' => 'Variant[ScalarData,Undef,Hash[String,Data],Array[Data]]',
|
data/lib/puppet/pops/loaders.rb
CHANGED
@@ -28,7 +28,7 @@ class Loaders
|
|
28
28
|
environment.lock.synchronize do
|
29
29
|
obj = environment.loaders
|
30
30
|
if obj.nil?
|
31
|
-
obj =
|
31
|
+
obj = allocate
|
32
32
|
obj.send(:initialize, environment, for_agent, load_from_pcore)
|
33
33
|
end
|
34
34
|
obj
|
@@ -37,7 +37,7 @@ class Loaders
|
|
37
37
|
|
38
38
|
def initialize(environment, for_agent, load_from_pcore = true)
|
39
39
|
# Protect against environment havoc
|
40
|
-
raise ArgumentError
|
40
|
+
raise ArgumentError, _("Attempt to redefine already initialized loaders for environment") unless environment.loaders.nil?
|
41
41
|
|
42
42
|
environment.loaders = self
|
43
43
|
@environment = environment
|
@@ -518,7 +518,7 @@ class Loaders
|
|
518
518
|
end
|
519
519
|
|
520
520
|
def all_module_loaders
|
521
|
-
@all_module_loaders ||= @index.values.map
|
521
|
+
@all_module_loaders ||= @index.values.map(&:public_loader)
|
522
522
|
end
|
523
523
|
|
524
524
|
def resolve(module_data)
|
@@ -92,7 +92,7 @@ class V3BackendFunctionProvider < DataDigFunctionProvider
|
|
92
92
|
require 'hiera/backend'
|
93
93
|
require "hiera/backend/#{backend_name.downcase}_backend"
|
94
94
|
backend = Hiera::Backend.const_get("#{backend_name.capitalize}_backend").new
|
95
|
-
|
95
|
+
backend.method(:lookup).arity == 4 ? Hiera::Backend::Backend1xWrapper.new(backend) : backend
|
96
96
|
rescue LoadError => e
|
97
97
|
lookup_invocation.report_text { "Unable to load backend '#{backend_name}': #{e.message}" }
|
98
98
|
throw :no_such_key
|
@@ -15,7 +15,7 @@ module Lookup
|
|
15
15
|
|
16
16
|
def to_hash
|
17
17
|
hash = {}
|
18
|
-
hash[:branches] = @branches.map
|
18
|
+
hash[:branches] = @branches.map(&:to_hash) unless @branches.nil? || @branches.empty?
|
19
19
|
hash
|
20
20
|
end
|
21
21
|
|
@@ -469,7 +469,7 @@ module Lookup
|
|
469
469
|
end
|
470
470
|
|
471
471
|
def push(qualifier_type, qualifier)
|
472
|
-
node = case
|
472
|
+
node = case qualifier_type
|
473
473
|
when :global
|
474
474
|
ExplainGlobal.new(@current, qualifier)
|
475
475
|
when :location
|
@@ -13,7 +13,7 @@ class GlobalDataProvider < ConfiguredDataProvider
|
|
13
13
|
|
14
14
|
def unchecked_key_lookup(key, lookup_invocation, merge)
|
15
15
|
config = config(lookup_invocation)
|
16
|
-
if
|
16
|
+
if config.version == 3
|
17
17
|
# Hiera version 3 needs access to special scope variables
|
18
18
|
scope = lookup_invocation.scope
|
19
19
|
unless scope.is_a?(Hiera::Scope)
|
@@ -105,7 +105,7 @@ class HieraConfig
|
|
105
105
|
end
|
106
106
|
|
107
107
|
def self.symkeys_to_string(struct)
|
108
|
-
case
|
108
|
+
case struct
|
109
109
|
when Hash
|
110
110
|
map = {}
|
111
111
|
struct.each_pair { |k, v| map[k.is_a?(Symbol) ? k.to_s : k] = symkeys_to_string(v) }
|
@@ -212,7 +212,7 @@ class HieraConfig
|
|
212
212
|
# Raise a LookupError with a RUNTIME_ERROR issue to prevent this being translated to an evaluation error triggered in the pp file
|
213
213
|
# where the lookup started
|
214
214
|
if e.message =~ /^Undefined variable '([^']+)'/
|
215
|
-
var =
|
215
|
+
var = ::Regexp.last_match(1)
|
216
216
|
fail(Issues::HIERA_UNDEFINED_VARIABLE, { :name => var }, find_line_matching(/%\{['"]?#{var}['"]?}/))
|
217
217
|
end
|
218
218
|
raise e
|
@@ -287,7 +287,7 @@ class HieraConfig
|
|
287
287
|
|
288
288
|
def create_hiera3_backend_provider(name, backend, parent_data_provider, datadir, paths, hiera3_config)
|
289
289
|
# Custom backend. Hiera 3 must be installed, its logger configured, and it must be made aware of the loaded config
|
290
|
-
raise Puppet::DataBinding::LookupError, 'Hiera 3 is not installed'
|
290
|
+
raise Puppet::DataBinding::LookupError, 'Hiera 3 is not installed' unless Puppet.features.hiera?
|
291
291
|
|
292
292
|
if Hiera::Config.instance_variable_defined?(:@config) && (current_config = Hiera::Config.instance_variable_get(:@config)).is_a?(Hash)
|
293
293
|
current_config.each_pair do |key, val|
|
@@ -308,7 +308,7 @@ class HieraConfig
|
|
308
308
|
# Replace the class methods 'hiera_interpolate' and 'alias_interpolate' with a method that wires back and performs global
|
309
309
|
# lookups using the lookup framework. This is necessary since the classic Hiera is made aware only of custom backends.
|
310
310
|
class << Hiera::Interpolate
|
311
|
-
hiera_interpolate =
|
311
|
+
hiera_interpolate = proc do |_data, key, scope, _extra_data, context|
|
312
312
|
override = context[:order_override]
|
313
313
|
invocation = Puppet::Pops::Lookup::Invocation.current
|
314
314
|
unless override.nil? && invocation.global_only?
|
@@ -431,8 +431,8 @@ class HieraConfigV3 < HieraConfig
|
|
431
431
|
end
|
432
432
|
|
433
433
|
DEFAULT_CONFIG_HASH = {
|
434
|
-
KEY_BACKENDS => %w
|
435
|
-
KEY_HIERARCHY => %w
|
434
|
+
KEY_BACKENDS => %w[yaml],
|
435
|
+
KEY_HIERARCHY => %w[nodes/%{::trusted.certname} common],
|
436
436
|
KEY_MERGE_BEHAVIOR => 'native'
|
437
437
|
}
|
438
438
|
|
@@ -689,7 +689,7 @@ class HieraConfigV5 < HieraConfig
|
|
689
689
|
|
690
690
|
options = he[KEY_OPTIONS] || defaults[KEY_OPTIONS]
|
691
691
|
options = options.nil? ? EMPTY_HASH : interpolate(options, lookup_invocation, false)
|
692
|
-
if
|
692
|
+
if function_kind == KEY_V3_BACKEND
|
693
693
|
v3options = { :datadir => entry_datadir.to_s }
|
694
694
|
options.each_pair { |k, v| v3options[k.to_sym] = v }
|
695
695
|
data_providers[name] =
|
@@ -700,9 +700,13 @@ class HieraConfigV5 < HieraConfig
|
|
700
700
|
locations,
|
701
701
|
{
|
702
702
|
:hierarchy =>
|
703
|
-
locations.nil?
|
704
|
-
|
705
|
-
|
703
|
+
if locations.nil?
|
704
|
+
[]
|
705
|
+
else
|
706
|
+
locations.map do |loc|
|
707
|
+
path = loc.original_location
|
708
|
+
path.end_with?(".#{function_name}") ? path[0..-(function_name.length + 2)] : path
|
709
|
+
end
|
706
710
|
end,
|
707
711
|
function_name.to_sym => v3options,
|
708
712
|
:backends => [function_name],
|
@@ -719,7 +723,7 @@ class HieraConfigV5 < HieraConfig
|
|
719
723
|
@config.include?(KEY_DEFAULT_HIERARCHY)
|
720
724
|
end
|
721
725
|
|
722
|
-
RESERVED_OPTION_KEYS = [
|
726
|
+
RESERVED_OPTION_KEYS = %w[path uri].freeze
|
723
727
|
|
724
728
|
DEFAULT_CONFIG_HASH = {
|
725
729
|
KEY_VERSION => 5,
|
@@ -48,8 +48,8 @@ module Interpolation
|
|
48
48
|
def interpolate_string(subject, context, allow_methods)
|
49
49
|
lookup_invocation = context.is_a?(Invocation) ? context : context.invocation
|
50
50
|
lookup_invocation.with(:interpolate, subject) do
|
51
|
-
subject.gsub(/%\{([
|
52
|
-
expr =
|
51
|
+
subject.gsub(/%\{([^}]*)\}/) do |match|
|
52
|
+
expr = ::Regexp.last_match(1)
|
53
53
|
# Leading and trailing spaces inside an interpolation expression are insignificant
|
54
54
|
expr.strip!
|
55
55
|
value = nil
|
@@ -144,7 +144,7 @@ module Interpolation
|
|
144
144
|
end
|
145
145
|
|
146
146
|
def get_method_and_data(data, allow_methods)
|
147
|
-
match = data.match(/^(\w+)\((?:
|
147
|
+
match = data.match(/^(\w+)\((?:"([^"]+)"|'([^']+)')\)$/)
|
148
148
|
if match
|
149
149
|
fail(Issues::HIERA_INTERPOLATION_METHOD_SYNTAX_NOT_ALLOWED) unless allow_methods
|
150
150
|
|
@@ -43,7 +43,7 @@ module Lookup
|
|
43
43
|
def expand_globs(datadir, declared_globs, lookup_invocation)
|
44
44
|
declared_globs.map do |declared_glob|
|
45
45
|
glob = datadir + interpolate(declared_glob, lookup_invocation, false)
|
46
|
-
Pathname.glob(glob).reject
|
46
|
+
Pathname.glob(glob).reject(&:directory?).map { |path| ResolvedLocation.new(glob.to_s, path, true) }
|
47
47
|
end.flatten
|
48
48
|
end
|
49
49
|
|
@@ -297,18 +297,18 @@ class LookupAdapter < DataAdapter
|
|
297
297
|
|
298
298
|
def validate_lookup_options(options, module_name)
|
299
299
|
return nil if options.nil?
|
300
|
-
raise Puppet::DataBinding::LookupError
|
300
|
+
raise Puppet::DataBinding::LookupError, _("value of %{opts} must be a hash") % { opts: LOOKUP_OPTIONS } unless options.is_a?(Hash)
|
301
301
|
return options if module_name.nil?
|
302
302
|
|
303
303
|
pfx = "#{module_name}::"
|
304
304
|
options.each_pair do |key, _value|
|
305
305
|
if key.start_with?(LOOKUP_OPTIONS_PATTERN_START)
|
306
306
|
unless key[1..pfx.length] == pfx
|
307
|
-
raise Puppet::DataBinding::LookupError
|
307
|
+
raise Puppet::DataBinding::LookupError, _("all %{opts} patterns must match a key starting with module name '%{module_name}'") % { opts: LOOKUP_OPTIONS, module_name: module_name }
|
308
308
|
end
|
309
309
|
else
|
310
310
|
unless key.start_with?(pfx)
|
311
|
-
raise Puppet::DataBinding::LookupError
|
311
|
+
raise Puppet::DataBinding::LookupError, _("all %{opts} keys must start with module name '%{module_name}'") % { opts: LOOKUP_OPTIONS, module_name: module_name }
|
312
312
|
end
|
313
313
|
end
|
314
314
|
end
|
@@ -373,7 +373,7 @@ class LookupAdapter < DataAdapter
|
|
373
373
|
|
374
374
|
# Retrieve and cache the global lookup options
|
375
375
|
def global_lookup_options(lookup_invocation, merge_strategy)
|
376
|
-
|
376
|
+
unless instance_variable_defined?(:@global_lookup_options)
|
377
377
|
@global_lookup_options = nil
|
378
378
|
catch(:no_such_key) { @global_lookup_options = validate_lookup_options(lookup_global(LookupKey::LOOKUP_OPTIONS, lookup_invocation, merge_strategy), nil) }
|
379
379
|
end
|
@@ -383,7 +383,7 @@ class LookupAdapter < DataAdapter
|
|
383
383
|
# Retrieve and cache lookup options specific to the environment of the compiler that this adapter is attached to (i.e. a merge
|
384
384
|
# of global and environment lookup options).
|
385
385
|
def env_lookup_options(lookup_invocation, merge_strategy)
|
386
|
-
|
386
|
+
unless instance_variable_defined?(:@env_lookup_options)
|
387
387
|
global_options = global_lookup_options(lookup_invocation, merge_strategy)
|
388
388
|
@env_only_lookup_options = nil
|
389
389
|
catch(:no_such_key) { @env_only_lookup_options = validate_lookup_options(lookup_in_environment(LookupKey::LOOKUP_OPTIONS, lookup_invocation, merge_strategy), nil) }
|
@@ -411,7 +411,7 @@ class LookupAdapter < DataAdapter
|
|
411
411
|
def module_provider(lookup_invocation, module_name)
|
412
412
|
# Test if the key is present for the given module_name. It might be there even if the
|
413
413
|
# value is nil (which indicates that no module provider is configured for the given name)
|
414
|
-
unless
|
414
|
+
unless include?(module_name)
|
415
415
|
self[module_name] = initialize_module_provider(lookup_invocation, module_name)
|
416
416
|
end
|
417
417
|
self[module_name]
|
@@ -514,7 +514,7 @@ class LookupAdapter < DataAdapter
|
|
514
514
|
ep.config = HieraConfigV5.v4_function_config(env_path, 'environment::data', ep)
|
515
515
|
ep
|
516
516
|
else
|
517
|
-
raise Puppet::Error
|
517
|
+
raise Puppet::Error, _("Environment '%{env}', cannot find environment_data_provider '%{provider}'") % { env: environment.name, provider: provider_name }
|
518
518
|
end
|
519
519
|
end
|
520
520
|
end
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Puppet::Pops
|
4
4
|
module Lookup
|
5
5
|
module SubLookup
|
6
|
-
SPECIAL = /['"
|
6
|
+
SPECIAL = /['".]/
|
7
7
|
|
8
8
|
# Split key into segments. A segment may be a quoted string (both single and double quotes can
|
9
9
|
# be used) and the segment separator is the '.' character. Whitespace will be trimmed off on
|
@@ -208,7 +208,7 @@ module Puppet::Pops
|
|
208
208
|
# Simple strategy that returns the first value found. It never merges any values.
|
209
209
|
#
|
210
210
|
class FirstFoundStrategy < MergeStrategy
|
211
|
-
INSTANCE =
|
211
|
+
INSTANCE = new(EMPTY_HASH)
|
212
212
|
|
213
213
|
def self.key
|
214
214
|
:first
|
@@ -238,7 +238,7 @@ module Puppet::Pops
|
|
238
238
|
|
239
239
|
# Same as {FirstFoundStrategy} but used when no strategy has been explicitly given
|
240
240
|
class DefaultMergeStrategy < FirstFoundStrategy
|
241
|
-
INSTANCE =
|
241
|
+
INSTANCE = new(EMPTY_HASH)
|
242
242
|
|
243
243
|
def self.key
|
244
244
|
:default
|
@@ -251,7 +251,7 @@ module Puppet::Pops
|
|
251
251
|
# will be those of e1
|
252
252
|
#
|
253
253
|
class HashMergeStrategy < MergeStrategy
|
254
|
-
INSTANCE =
|
254
|
+
INSTANCE = new(EMPTY_HASH)
|
255
255
|
|
256
256
|
def self.key
|
257
257
|
:hash
|
@@ -281,7 +281,7 @@ module Puppet::Pops
|
|
281
281
|
# first contributor of elements and e2 the second.
|
282
282
|
#
|
283
283
|
class UniqueMergeStrategy < MergeStrategy
|
284
|
-
INSTANCE =
|
284
|
+
INSTANCE = new(EMPTY_HASH)
|
285
285
|
|
286
286
|
def self.key
|
287
287
|
:unique
|
@@ -363,7 +363,7 @@ module Puppet::Pops
|
|
363
363
|
# Results: {:x => [{:y => 1, :z => 2}]}
|
364
364
|
#
|
365
365
|
class DeepMergeStrategy < MergeStrategy
|
366
|
-
INSTANCE =
|
366
|
+
INSTANCE = new(EMPTY_HASH)
|
367
367
|
|
368
368
|
def self.key
|
369
369
|
:deep
|
@@ -432,7 +432,7 @@ module Puppet::Pops
|
|
432
432
|
# Same as {UnconstrainedDeepMergeStrategy} but with reverse priority of merged elements.
|
433
433
|
# (needed for backward compatibility with Hiera v3)
|
434
434
|
class ReverseDeepMergeStrategy < UnconstrainedDeepMergeStrategy
|
435
|
-
INSTANCE =
|
435
|
+
INSTANCE = new(EMPTY_HASH)
|
436
436
|
|
437
437
|
def self.key
|
438
438
|
:reverse_deep
|