puppet 8.5.1-x64-mingw32 → 8.6.0-x64-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 +23 -20
- 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/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 +1 -1
- 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
@@ -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
|
@@ -61,14 +61,12 @@ class Puppet::Pops::Model::AstTransformer
|
|
61
61
|
|
62
62
|
# Transforms pops expressions into AST 3.1 statements/expressions
|
63
63
|
def transform(o)
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
loc_data[:file], loc_data[:line], loc_data[:pos], e)
|
71
|
-
end
|
64
|
+
@@transform_visitor.visit_this_0(self, o)
|
65
|
+
rescue StandardError => e
|
66
|
+
loc_data = {}
|
67
|
+
merge_location(loc_data, o)
|
68
|
+
raise Puppet::ParseError.new(_("Error while transforming to Puppet 3 AST: %{message}") % { message: e.message },
|
69
|
+
loc_data[:file], loc_data[:line], loc_data[:pos], e)
|
72
70
|
end
|
73
71
|
|
74
72
|
# Transforms pops expressions into AST 3.1 query expressions
|
@@ -93,11 +91,11 @@ class Puppet::Pops::Model::AstTransformer
|
|
93
91
|
end
|
94
92
|
|
95
93
|
def hostname_LiteralValue(o)
|
96
|
-
|
94
|
+
o.value
|
97
95
|
end
|
98
96
|
|
99
97
|
def hostname_QualifiedName(o)
|
100
|
-
|
98
|
+
o.value
|
101
99
|
end
|
102
100
|
|
103
101
|
def hostname_LiteralNumber(o)
|
@@ -105,7 +103,7 @@ class Puppet::Pops::Model::AstTransformer
|
|
105
103
|
end
|
106
104
|
|
107
105
|
def hostname_LiteralDefault(o)
|
108
|
-
|
106
|
+
'default'
|
109
107
|
end
|
110
108
|
|
111
109
|
def hostname_LiteralRegularExpression(o)
|
@@ -648,7 +648,7 @@ class Factory
|
|
648
648
|
return false unless expr.instance_of?(self) && expr.model_class <= AbstractResource
|
649
649
|
|
650
650
|
expr['form'] = form
|
651
|
-
|
651
|
+
true
|
652
652
|
end
|
653
653
|
|
654
654
|
# Returns symbolic information about an expected shape of a resource expression given the LHS of a resource expr.
|
@@ -1052,8 +1052,7 @@ class Factory
|
|
1052
1052
|
end
|
1053
1053
|
a_hash = HASH(keyed_entries)
|
1054
1054
|
a_hash.record_position(left[KEY_LOCATOR], lbrace_token, rbrace_token)
|
1055
|
-
|
1056
|
-
result
|
1055
|
+
block_or_expression(transform_calls([left, a_hash]))
|
1057
1056
|
end
|
1058
1057
|
|
1059
1058
|
def interpolate_Factory(c)
|
@@ -1062,7 +1061,7 @@ class Factory
|
|
1062
1061
|
|
1063
1062
|
def interpolate_LiteralInteger(c)
|
1064
1063
|
# convert number to a variable
|
1065
|
-
|
1064
|
+
var
|
1066
1065
|
end
|
1067
1066
|
|
1068
1067
|
def interpolate_Object(c)
|
@@ -1070,7 +1069,7 @@ class Factory
|
|
1070
1069
|
end
|
1071
1070
|
|
1072
1071
|
def interpolate_QualifiedName(c)
|
1073
|
-
|
1072
|
+
var
|
1074
1073
|
end
|
1075
1074
|
|
1076
1075
|
# rewrite left expression to variable if it is name, number, and recurse if it is an access expression
|
@@ -14,7 +14,7 @@ class Puppet::Pops::Parser::EppParser < Puppet::Pops::Parser::Parser
|
|
14
14
|
def parse_file(file)
|
15
15
|
unless FileTest.exist?(file)
|
16
16
|
unless file =~ /\.epp$/
|
17
|
-
file
|
17
|
+
file += ".epp"
|
18
18
|
end
|
19
19
|
end
|
20
20
|
@lexer.file = file
|
@@ -43,7 +43,7 @@ class Puppet::Pops::Parser::EppParser < Puppet::Pops::Parser::Parser
|
|
43
43
|
# rescue => except
|
44
44
|
# raise Puppet::ParseError.new(except.message, @lexer.file, @lexer.line, @lexer.pos, except)
|
45
45
|
end
|
46
|
-
|
46
|
+
main
|
47
47
|
ensure
|
48
48
|
@lexer.clear
|
49
49
|
@namestack = []
|
@@ -71,7 +71,7 @@ class EvaluatingParser
|
|
71
71
|
|
72
72
|
def evaluator
|
73
73
|
# Do not use the cached evaluator if this is a migration run
|
74
|
-
if
|
74
|
+
if Puppet.lookup(:migration_checker) { nil }
|
75
75
|
return Evaluator::EvaluatorImpl.new()
|
76
76
|
end
|
77
77
|
|
@@ -146,7 +146,7 @@ class EvaluatingParser
|
|
146
146
|
when '"'
|
147
147
|
escaped << '\\"'
|
148
148
|
when '\\'
|
149
|
-
escaped <<
|
149
|
+
escaped << ((c == '$' || c == 's') ? p : '\\\\') # don't escape \ when followed by s or $
|
150
150
|
else
|
151
151
|
escaped << p
|
152
152
|
end
|
@@ -8,7 +8,7 @@ module HeredocSupport
|
|
8
8
|
# Pattern for heredoc `@(endtag[:syntax][/escapes])
|
9
9
|
# Produces groups for endtag (group 1), syntax (group 2), and escapes (group 3)
|
10
10
|
#
|
11
|
-
PATTERN_HEREDOC = %r{@\(([^:/\r\n
|
11
|
+
PATTERN_HEREDOC = %r{@\(([^:/\r\n)]+)(?::[[:blank:]]*([a-z][a-zA-Z0-9_+]+)[[:blank:]]*)?(?:/((?:\w|[$])*)[[:blank:]]*)?\)}
|
12
12
|
|
13
13
|
def heredoc
|
14
14
|
scn = @scanner
|
@@ -32,7 +32,7 @@ module HeredocSupport
|
|
32
32
|
# Is this a dq string style heredoc? (endtag enclosed in "")
|
33
33
|
if endtag =~ /^"(.*)"$/
|
34
34
|
dqstring_style = true
|
35
|
-
endtag =
|
35
|
+
endtag = ::Regexp.last_match(1).strip
|
36
36
|
end
|
37
37
|
|
38
38
|
lex_error(Issues::HEREDOC_EMPTY_ENDTAG) unless endtag.length >= 1
|
@@ -81,9 +81,9 @@ module HeredocSupport
|
|
81
81
|
# that terminates the heredoc is found.
|
82
82
|
|
83
83
|
# (Endline in EBNF form): WS* ('|' WS*)? ('-' WS*)? endtag WS* \r? (\n|$)
|
84
|
-
endline_pattern = /([[:blank:]]*)(?:([|])[[:blank:]]*)?(?:(
|
84
|
+
endline_pattern = /([[:blank:]]*)(?:([|])[[:blank:]]*)?(?:(-)[[:blank:]]*)?#{Regexp.escape(endtag)}[[:blank:]]*\r?(?:\n|\z)/
|
85
85
|
lines = []
|
86
|
-
|
86
|
+
until scn.eos?
|
87
87
|
one_line = scn.scan_until(/(?:\n|\z)/)
|
88
88
|
raise eof_error unless one_line
|
89
89
|
|
@@ -7,7 +7,7 @@
|
|
7
7
|
# of passing parameters and evaluating conditional logic has a negative impact on performance.
|
8
8
|
#
|
9
9
|
module Puppet::Pops::Parser::InterpolationSupport
|
10
|
-
PATTERN_VARIABLE =
|
10
|
+
PATTERN_VARIABLE = /(::)?(\w+::)*\w+/
|
11
11
|
|
12
12
|
# This is the starting point for a double quoted string with possible interpolation
|
13
13
|
# The structure mimics that of the grammar.
|
@@ -194,7 +194,7 @@ module Puppet::Pops::Parser::InterpolationSupport
|
|
194
194
|
|
195
195
|
scn.skip(self.class::PATTERN_WS)
|
196
196
|
queue_size = queue.size
|
197
|
-
until scn.eos?
|
197
|
+
until scn.eos?
|
198
198
|
token = lex_token
|
199
199
|
if token
|
200
200
|
if token.equal?(queue_base)
|
@@ -242,7 +242,7 @@ module Puppet::Pops::Parser::InterpolationSupport
|
|
242
242
|
def interpolate_uq_to(lexer)
|
243
243
|
interpolate_uq
|
244
244
|
queue = @token_queue
|
245
|
-
until queue.empty?
|
245
|
+
until queue.empty?
|
246
246
|
lexer.enqueue(queue.shift)
|
247
247
|
end
|
248
248
|
end
|