puppet 8.5.1 → 8.6.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|