puppet 8.5.0-universal-darwin → 8.6.0-universal-darwin
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +29 -26
- data/ext/windows/service/daemon.rb +49 -55
- data/lib/hiera/scope.rb +3 -3
- data/lib/hiera_puppet.rb +1 -1
- data/lib/puppet/agent/disabler.rb +1 -1
- data/lib/puppet/application/agent.rb +2 -2
- data/lib/puppet/application/apply.rb +2 -2
- data/lib/puppet/application/describe.rb +6 -6
- data/lib/puppet/application/device.rb +99 -100
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/face_base.rb +7 -7
- data/lib/puppet/application/filebucket.rb +1 -1
- data/lib/puppet/application/lookup.rb +5 -5
- data/lib/puppet/application/resource.rb +10 -3
- data/lib/puppet/application/ssl.rb +3 -3
- data/lib/puppet/application.rb +16 -18
- data/lib/puppet/coercion.rb +1 -1
- data/lib/puppet/configurer/downloader.rb +9 -4
- data/lib/puppet/configurer/fact_handler.rb +12 -13
- data/lib/puppet/configurer.rb +16 -18
- data/lib/puppet/confine/feature.rb +1 -1
- data/lib/puppet/confine/variable.rb +1 -1
- data/lib/puppet/confine.rb +2 -2
- data/lib/puppet/confine_collection.rb +1 -1
- data/lib/puppet/confiner.rb +2 -2
- data/lib/puppet/daemon.rb +3 -3
- data/lib/puppet/datatypes.rb +5 -6
- data/lib/puppet/defaults.rb +14 -8
- data/lib/puppet/environments.rb +3 -7
- data/lib/puppet/error.rb +3 -3
- data/lib/puppet/external/dot.rb +42 -34
- data/lib/puppet/face/catalog/select.rb +1 -1
- data/lib/puppet/face/epp.rb +7 -9
- data/lib/puppet/face/help.rb +12 -12
- data/lib/puppet/face/module/changes.rb +1 -3
- data/lib/puppet/face/module/list.rb +37 -37
- data/lib/puppet/face/node/clean.rb +1 -1
- data/lib/puppet/face/parser.rb +6 -8
- data/lib/puppet/face/report.rb +5 -7
- data/lib/puppet/facter_impl.rb +1 -1
- data/lib/puppet/feature/base.rb +9 -11
- data/lib/puppet/feature/pe_license.rb +1 -1
- data/lib/puppet/feature/ssh.rb +1 -1
- data/lib/puppet/feature/telnet.rb +3 -5
- data/lib/puppet/feature/zlib.rb +1 -1
- data/lib/puppet/ffi/windows/constants.rb +1 -1
- data/lib/puppet/ffi/windows/functions.rb +2 -2
- data/lib/puppet/ffi/windows/structs.rb +3 -3
- data/lib/puppet/file_bucket/dipper.rb +4 -4
- data/lib/puppet/file_bucket/file.rb +4 -4
- data/lib/puppet/file_serving/base.rb +5 -5
- data/lib/puppet/file_serving/configuration/parser.rb +9 -9
- data/lib/puppet/file_serving/configuration.rb +3 -3
- data/lib/puppet/file_serving/fileset.rb +13 -13
- data/lib/puppet/file_serving/http_metadata.rb +1 -1
- data/lib/puppet/file_serving/metadata.rb +13 -9
- data/lib/puppet/file_serving/mount/file.rb +6 -6
- data/lib/puppet/file_serving/mount/locales.rb +2 -4
- data/lib/puppet/file_serving/mount/pluginfacts.rb +2 -4
- data/lib/puppet/file_serving/mount/plugins.rb +2 -4
- data/lib/puppet/file_serving/mount.rb +1 -1
- data/lib/puppet/file_system/file_impl.rb +3 -3
- data/lib/puppet/file_system/memory_impl.rb +1 -1
- data/lib/puppet/file_system/path_pattern.rb +1 -1
- data/lib/puppet/file_system/uniquefile.rb +17 -16
- data/lib/puppet/file_system/windows.rb +26 -18
- data/lib/puppet/forge/cache.rb +2 -2
- data/lib/puppet/forge/errors.rb +1 -1
- data/lib/puppet/forge/repository.rb +2 -2
- data/lib/puppet/forge.rb +13 -19
- data/lib/puppet/functions/abs.rb +2 -2
- data/lib/puppet/functions/camelcase.rb +1 -1
- data/lib/puppet/functions/compare.rb +2 -2
- data/lib/puppet/functions/contain.rb +1 -1
- data/lib/puppet/functions/defined.rb +2 -2
- data/lib/puppet/functions/dig.rb +1 -1
- data/lib/puppet/functions/eyaml_lookup_key.rb +11 -13
- data/lib/puppet/functions/get.rb +1 -1
- data/lib/puppet/functions/hocon_data.rb +3 -5
- data/lib/puppet/functions/import.rb +1 -1
- data/lib/puppet/functions/json_data.rb +4 -6
- data/lib/puppet/functions/max.rb +2 -2
- data/lib/puppet/functions/min.rb +2 -2
- data/lib/puppet/functions/new.rb +1 -1
- data/lib/puppet/functions/reduce.rb +6 -10
- data/lib/puppet/functions/regsubst.rb +2 -2
- data/lib/puppet/functions/require.rb +1 -1
- data/lib/puppet/functions/yaml_data.rb +11 -13
- data/lib/puppet/functions.rb +32 -37
- data/lib/puppet/generate/type.rb +2 -2
- data/lib/puppet/gettext/config.rb +9 -9
- data/lib/puppet/graph/rb_tree_map.rb +31 -23
- data/lib/puppet/graph/relationship_graph.rb +12 -12
- data/lib/puppet/graph/simple_graph.rb +8 -10
- data/lib/puppet/http/client.rb +1 -1
- data/lib/puppet/http/dns.rb +4 -4
- data/lib/puppet/http/external_client.rb +1 -1
- data/lib/puppet/http/factory.rb +1 -1
- data/lib/puppet/http/proxy.rb +15 -15
- data/lib/puppet/http/redirector.rb +6 -2
- data/lib/puppet/http/resolver.rb +2 -2
- data/lib/puppet/http/retry_after_handler.rb +2 -2
- data/lib/puppet/http/service/ca.rb +1 -1
- data/lib/puppet/http/service/compiler.rb +4 -4
- data/lib/puppet/http/service/file_server.rb +1 -1
- data/lib/puppet/http/service/report.rb +2 -2
- data/lib/puppet/http/service.rb +9 -13
- data/lib/puppet/http/session.rb +1 -1
- data/lib/puppet/http/site.rb +1 -1
- data/lib/puppet/indirector/catalog/compiler.rb +44 -45
- data/lib/puppet/indirector/catalog/rest.rb +7 -5
- data/lib/puppet/indirector/catalog/store_configs.rb +1 -1
- data/lib/puppet/indirector/exec.rb +2 -2
- data/lib/puppet/indirector/face.rb +7 -9
- data/lib/puppet/indirector/fact_search.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +6 -6
- data/lib/puppet/indirector/facts/json.rb +1 -1
- data/lib/puppet/indirector/facts/store_configs.rb +1 -1
- data/lib/puppet/indirector/file_bucket_file/file.rb +17 -17
- data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -3
- data/lib/puppet/indirector/file_content/rest.rb +1 -1
- data/lib/puppet/indirector/file_metadata/rest.rb +1 -1
- data/lib/puppet/indirector/hiera.rb +1 -1
- data/lib/puppet/indirector/indirection.rb +27 -29
- data/lib/puppet/indirector/json.rb +4 -4
- data/lib/puppet/indirector/memory.rb +2 -2
- data/lib/puppet/indirector/msgpack.rb +5 -5
- data/lib/puppet/indirector/node/store_configs.rb +1 -1
- data/lib/puppet/indirector/none.rb +1 -1
- data/lib/puppet/indirector/report/json.rb +1 -1
- data/lib/puppet/indirector/report/yaml.rb +1 -1
- data/lib/puppet/indirector/request.rb +4 -4
- data/lib/puppet/indirector/resource/ral.rb +2 -4
- data/lib/puppet/indirector/resource/store_configs.rb +1 -1
- data/lib/puppet/indirector/terminus.rb +4 -4
- data/lib/puppet/indirector/yaml.rb +3 -3
- data/lib/puppet/info_service/class_information_service.rb +5 -8
- data/lib/puppet/info_service/task_information_service.rb +6 -7
- data/lib/puppet/interface/action.rb +5 -5
- data/lib/puppet/interface/action_manager.rb +5 -5
- data/lib/puppet/interface/documentation.rb +5 -5
- data/lib/puppet/interface/face_collection.rb +7 -7
- data/lib/puppet/interface/option.rb +2 -2
- data/lib/puppet/interface/option_manager.rb +6 -6
- data/lib/puppet/interface.rb +4 -4
- data/lib/puppet/metatype/manager.rb +2 -2
- data/lib/puppet/module/plan.rb +10 -10
- data/lib/puppet/module/task.rb +8 -8
- data/lib/puppet/module.rb +39 -41
- data/lib/puppet/module_tool/applications/application.rb +10 -8
- data/lib/puppet/module_tool/applications/installer.rb +53 -50
- data/lib/puppet/module_tool/applications/unpacker.rb +6 -8
- data/lib/puppet/module_tool/applications/upgrader.rb +37 -34
- data/lib/puppet/module_tool/checksums.rb +2 -2
- data/lib/puppet/module_tool/dependency.rb +1 -1
- data/lib/puppet/module_tool/errors/base.rb +1 -1
- data/lib/puppet/module_tool/install_directory.rb +1 -1
- data/lib/puppet/module_tool/local_tarball.rb +3 -5
- data/lib/puppet/module_tool/metadata.rb +12 -8
- data/lib/puppet/module_tool/shared_behaviors.rb +27 -12
- data/lib/puppet/module_tool/tar/mini.rb +3 -3
- data/lib/puppet/module_tool.rb +4 -4
- data/lib/puppet/network/client_request.rb +5 -3
- data/lib/puppet/network/format.rb +2 -2
- data/lib/puppet/network/format_support.rb +1 -1
- data/lib/puppet/network/formats.rb +1 -1
- data/lib/puppet/network/http/api/indirected_routes.rb +24 -44
- data/lib/puppet/network/http/api/server/v3.rb +1 -1
- data/lib/puppet/network/http/connection.rb +1 -1
- data/lib/puppet/network/http/handler.rb +8 -12
- data/lib/puppet/network/http/request.rb +1 -1
- data/lib/puppet/network/http/route.rb +9 -9
- data/lib/puppet/node/environment.rb +21 -23
- data/lib/puppet/node/facts.rb +1 -1
- data/lib/puppet/node.rb +5 -5
- data/lib/puppet/pal/json_catalog_encoder.rb +1 -1
- data/lib/puppet/pal/pal_impl.rb +48 -50
- data/lib/puppet/pal/plan_signature.rb +1 -1
- data/lib/puppet/pal/task_signature.rb +1 -1
- data/lib/puppet/parameter/package_options.rb +1 -1
- data/lib/puppet/parameter/value.rb +2 -2
- data/lib/puppet/parameter/value_collection.rb +7 -7
- data/lib/puppet/parameter.rb +8 -9
- data/lib/puppet/parser/ast/block_expression.rb +2 -2
- data/lib/puppet/parser/ast/hostclass.rb +1 -1
- data/lib/puppet/parser/ast/pops_bridge.rb +3 -4
- data/lib/puppet/parser/ast/resource.rb +4 -4
- data/lib/puppet/parser/ast/resourceparam.rb +4 -4
- data/lib/puppet/parser/ast.rb +14 -15
- data/lib/puppet/parser/compiler.rb +26 -28
- data/lib/puppet/parser/functions/create_resources.rb +3 -3
- data/lib/puppet/parser/functions/fail.rb +1 -1
- data/lib/puppet/parser/functions/generate.rb +2 -2
- data/lib/puppet/parser/functions/tag.rb +1 -1
- data/lib/puppet/parser/functions.rb +2 -2
- data/lib/puppet/parser/relationship.rb +3 -1
- data/lib/puppet/parser/resource/param.rb +2 -2
- data/lib/puppet/parser/resource.rb +23 -23
- data/lib/puppet/parser/scope.rb +10 -10
- data/lib/puppet/parser/script_compiler.rb +1 -1
- data/lib/puppet/parser/templatewrapper.rb +1 -1
- data/lib/puppet/parser/type_loader.rb +10 -12
- data/lib/puppet/parser.rb +1 -1
- data/lib/puppet/pops/adaptable.rb +1 -1
- data/lib/puppet/pops/evaluator/access_operator.rb +8 -8
- data/lib/puppet/pops/evaluator/callable_signature.rb +4 -4
- data/lib/puppet/pops/evaluator/collector_transformer.rb +4 -4
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +7 -7
- data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +6 -6
- data/lib/puppet/pops/evaluator/compare_operator.rb +10 -10
- data/lib/puppet/pops/evaluator/deferred_resolver.rb +1 -1
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +2 -2
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +56 -60
- data/lib/puppet/pops/evaluator/literal_evaluator.rb +4 -0
- data/lib/puppet/pops/evaluator/relationship_operator.rb +2 -2
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +3 -3
- data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
- data/lib/puppet/pops/functions/dispatcher.rb +3 -3
- data/lib/puppet/pops/functions/function.rb +14 -16
- data/lib/puppet/pops/issue_reporter.rb +2 -2
- data/lib/puppet/pops/label_provider.rb +2 -2
- data/lib/puppet/pops/loader/dependency_loader.rb +3 -3
- data/lib/puppet/pops/loader/loader.rb +4 -4
- data/lib/puppet/pops/loader/loader_paths.rb +3 -3
- data/lib/puppet/pops/loader/module_loaders.rb +11 -11
- data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +1 -1
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -1
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +5 -1
- data/lib/puppet/pops/loader/static_loader.rb +3 -3
- data/lib/puppet/pops/loaders.rb +3 -3
- data/lib/puppet/pops/lookup/data_dig_function_provider.rb +1 -1
- data/lib/puppet/pops/lookup/explainer.rb +2 -2
- data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +15 -11
- data/lib/puppet/pops/lookup/interpolation.rb +3 -3
- data/lib/puppet/pops/lookup/key_recorder.rb +1 -1
- data/lib/puppet/pops/lookup/location_resolver.rb +1 -1
- data/lib/puppet/pops/lookup/lookup_adapter.rb +7 -7
- data/lib/puppet/pops/lookup/sub_lookup.rb +1 -1
- data/lib/puppet/pops/merge_strategy.rb +6 -6
- data/lib/puppet/pops/migration/migration_checker.rb +1 -1
- data/lib/puppet/pops/model/ast_transformer.rb +9 -11
- data/lib/puppet/pops/model/factory.rb +4 -5
- data/lib/puppet/pops/parser/epp_parser.rb +2 -2
- data/lib/puppet/pops/parser/epp_support.rb +1 -1
- data/lib/puppet/pops/parser/evaluating_parser.rb +2 -2
- data/lib/puppet/pops/parser/heredoc_support.rb +4 -4
- data/lib/puppet/pops/parser/interpolation_support.rb +3 -3
- data/lib/puppet/pops/parser/lexer2.rb +20 -12
- data/lib/puppet/pops/parser/lexer_support.rb +1 -1
- data/lib/puppet/pops/parser/locator.rb +4 -4
- data/lib/puppet/pops/parser/parser_support.rb +12 -14
- data/lib/puppet/pops/parser/pn_parser.rb +3 -3
- data/lib/puppet/pops/parser/slurp_support.rb +8 -8
- data/lib/puppet/pops/patterns.rb +12 -12
- data/lib/puppet/pops/pcore.rb +1 -1
- data/lib/puppet/pops/pn.rb +2 -2
- data/lib/puppet/pops/puppet_stack.rb +1 -1
- data/lib/puppet/pops/resource/resource_type_impl.rb +1 -1
- data/lib/puppet/pops/serialization/abstract_reader.rb +2 -2
- data/lib/puppet/pops/serialization/abstract_writer.rb +3 -3
- data/lib/puppet/pops/time/timestamp.rb +1 -1
- data/lib/puppet/pops/types/class_loader.rb +4 -6
- data/lib/puppet/pops/types/iterable.rb +1 -1
- data/lib/puppet/pops/types/p_binary_type.rb +1 -1
- data/lib/puppet/pops/types/p_init_type.rb +1 -1
- data/lib/puppet/pops/types/p_object_type.rb +5 -5
- data/lib/puppet/pops/types/p_object_type_extension.rb +4 -6
- data/lib/puppet/pops/types/p_sem_ver_range_type.rb +1 -1
- data/lib/puppet/pops/types/p_sensitive_type.rb +1 -1
- data/lib/puppet/pops/types/p_timespan_type.rb +2 -2
- data/lib/puppet/pops/types/p_type_set_type.rb +10 -10
- data/lib/puppet/pops/types/p_uri_type.rb +4 -4
- data/lib/puppet/pops/types/recursion_guard.rb +4 -4
- data/lib/puppet/pops/types/ruby_generator.rb +2 -2
- data/lib/puppet/pops/types/string_converter.rb +12 -8
- data/lib/puppet/pops/types/tree_iterators.rb +4 -6
- data/lib/puppet/pops/types/type_calculator.rb +10 -10
- data/lib/puppet/pops/types/type_factory.rb +7 -3
- data/lib/puppet/pops/types/type_formatter.rb +22 -24
- data/lib/puppet/pops/types/type_mismatch_describer.rb +24 -24
- data/lib/puppet/pops/types/types.rb +28 -24
- data/lib/puppet/pops/utils.rb +38 -42
- data/lib/puppet/pops/validation/checker4_0.rb +10 -10
- data/lib/puppet/pops/validation/tasks_checker.rb +1 -1
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +2 -0
- data/lib/puppet/pops/validation.rb +4 -4
- data/lib/puppet/pops/visitor.rb +2 -2
- data/lib/puppet/property/ensure.rb +12 -14
- data/lib/puppet/property/keyvalue.rb +4 -4
- data/lib/puppet/property/list.rb +4 -4
- data/lib/puppet/property/ordered_list.rb +1 -1
- data/lib/puppet/property.rb +31 -33
- data/lib/puppet/provider/exec.rb +2 -2
- data/lib/puppet/provider/file/posix.rb +19 -17
- data/lib/puppet/provider/file/windows.rb +13 -19
- data/lib/puppet/provider/group/directoryservice.rb +3 -2
- data/lib/puppet/provider/group/groupadd.rb +4 -4
- data/lib/puppet/provider/group/windows_adsi.rb +2 -2
- data/lib/puppet/provider/nameservice/directoryservice.rb +29 -29
- data/lib/puppet/provider/nameservice/objectadd.rb +2 -4
- data/lib/puppet/provider/nameservice/pw.rb +1 -2
- data/lib/puppet/provider/nameservice.rb +8 -8
- data/lib/puppet/provider/package/aix.rb +19 -19
- data/lib/puppet/provider/package/appdmg.rb +2 -2
- data/lib/puppet/provider/package/apple.rb +1 -1
- data/lib/puppet/provider/package/apt.rb +18 -18
- data/lib/puppet/provider/package/aptitude.rb +1 -3
- data/lib/puppet/provider/package/aptrpm.rb +9 -9
- data/lib/puppet/provider/package/blastwave.rb +10 -14
- data/lib/puppet/provider/package/dnfmodule.rb +3 -3
- data/lib/puppet/provider/package/dpkg.rb +11 -13
- data/lib/puppet/provider/package/fink.rb +14 -14
- data/lib/puppet/provider/package/freebsd.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +12 -14
- data/lib/puppet/provider/package/macports.rb +2 -2
- data/lib/puppet/provider/package/nim.rb +10 -10
- data/lib/puppet/provider/package/openbsd.rb +22 -22
- data/lib/puppet/provider/package/opkg.rb +6 -6
- data/lib/puppet/provider/package/pacman.rb +35 -29
- data/lib/puppet/provider/package/pip.rb +25 -24
- data/lib/puppet/provider/package/pkg.rb +15 -15
- data/lib/puppet/provider/package/pkgdmg.rb +10 -10
- data/lib/puppet/provider/package/pkgin.rb +2 -2
- data/lib/puppet/provider/package/pkgng.rb +5 -5
- data/lib/puppet/provider/package/pkgutil.rb +17 -21
- data/lib/puppet/provider/package/portage.rb +59 -61
- data/lib/puppet/provider/package/ports.rb +12 -11
- data/lib/puppet/provider/package/portupgrade.rb +35 -35
- data/lib/puppet/provider/package/puppetserver_gem.rb +10 -9
- data/lib/puppet/provider/package/rpm.rb +26 -26
- data/lib/puppet/provider/package/rug.rb +7 -9
- data/lib/puppet/provider/package/sun.rb +4 -4
- data/lib/puppet/provider/package/up2date.rb +5 -7
- data/lib/puppet/provider/package/urpmi.rb +6 -6
- data/lib/puppet/provider/package/windows/exe_package.rb +7 -7
- data/lib/puppet/provider/package/windows/msi_package.rb +3 -3
- data/lib/puppet/provider/package/windows/package.rb +2 -2
- data/lib/puppet/provider/package/windows.rb +3 -5
- data/lib/puppet/provider/package/yum.rb +33 -37
- data/lib/puppet/provider/package/zypper.rb +12 -14
- data/lib/puppet/provider/package.rb +1 -1
- data/lib/puppet/provider/package_targetable.rb +1 -1
- data/lib/puppet/provider/parsedfile.rb +9 -9
- data/lib/puppet/provider/service/base.rb +16 -21
- data/lib/puppet/provider/service/bsd.rb +4 -4
- data/lib/puppet/provider/service/daemontools.rb +31 -31
- data/lib/puppet/provider/service/debian.rb +6 -6
- data/lib/puppet/provider/service/freebsd.rb +36 -36
- data/lib/puppet/provider/service/gentoo.rb +6 -6
- data/lib/puppet/provider/service/init.rb +19 -19
- data/lib/puppet/provider/service/launchd.rb +22 -22
- data/lib/puppet/provider/service/openbsd.rb +10 -10
- data/lib/puppet/provider/service/openrc.rb +1 -1
- data/lib/puppet/provider/service/openwrt.rb +3 -3
- data/lib/puppet/provider/service/rcng.rb +3 -3
- data/lib/puppet/provider/service/redhat.rb +4 -4
- data/lib/puppet/provider/service/runit.rb +6 -6
- data/lib/puppet/provider/service/service.rb +5 -7
- data/lib/puppet/provider/service/smf.rb +28 -27
- data/lib/puppet/provider/service/src.rb +7 -7
- data/lib/puppet/provider/service/systemd.rb +31 -37
- data/lib/puppet/provider/service/upstart.rb +17 -17
- data/lib/puppet/provider/service/windows.rb +7 -7
- data/lib/puppet/provider/user/aix.rb +4 -2
- data/lib/puppet/provider/user/directoryservice.rb +34 -36
- data/lib/puppet/provider/user/hpux.rb +10 -14
- data/lib/puppet/provider/user/pw.rb +1 -1
- data/lib/puppet/provider/user/user_role_add.rb +16 -18
- data/lib/puppet/provider/user/useradd.rb +7 -7
- data/lib/puppet/provider/user/windows_adsi.rb +1 -1
- data/lib/puppet/provider.rb +8 -8
- data/lib/puppet/reference/indirection.rb +3 -0
- data/lib/puppet/reference/metaparameter.rb +1 -1
- data/lib/puppet/reference/providers.rb +3 -3
- data/lib/puppet/reference/type.rb +1 -1
- data/lib/puppet/relationship.rb +4 -5
- data/lib/puppet/reports/http.rb +1 -1
- data/lib/puppet/reports/log.rb +2 -2
- data/lib/puppet/reports/store.rb +4 -4
- data/lib/puppet/reports.rb +2 -2
- data/lib/puppet/resource/catalog.rb +16 -16
- data/lib/puppet/resource/status.rb +3 -3
- data/lib/puppet/resource/type.rb +8 -8
- data/lib/puppet/resource/type_collection.rb +1 -1
- data/lib/puppet/resource.rb +41 -41
- data/lib/puppet/scheduler/scheduler.rb +1 -1
- data/lib/puppet/settings/alias_setting.rb +3 -5
- data/lib/puppet/settings/base_setting.rb +11 -11
- data/lib/puppet/settings/boolean_setting.rb +2 -2
- data/lib/puppet/settings/config_file.rb +5 -4
- data/lib/puppet/settings/duration_setting.rb +2 -2
- data/lib/puppet/settings/environment_conf.rb +3 -3
- data/lib/puppet/settings/file_or_directory_setting.rb +2 -2
- data/lib/puppet/settings/file_setting.rb +11 -11
- data/lib/puppet/settings/ini_file.rb +3 -3
- data/lib/puppet/settings/port_setting.rb +1 -1
- data/lib/puppet/settings/priority_setting.rb +2 -2
- data/lib/puppet/settings/ttl_setting.rb +2 -2
- data/lib/puppet/settings/value_translator.rb +8 -8
- data/lib/puppet/settings.rb +65 -70
- data/lib/puppet/ssl/base.rb +2 -4
- data/lib/puppet/ssl/certificate_request.rb +18 -22
- data/lib/puppet/ssl/certificate_request_attributes.rb +3 -3
- data/lib/puppet/ssl/oids.rb +2 -2
- data/lib/puppet/ssl/openssl_loader.rb +4 -4
- data/lib/puppet/syntax_checkers/base64.rb +3 -3
- data/lib/puppet/syntax_checkers/epp.rb +3 -3
- data/lib/puppet/syntax_checkers/json.rb +3 -3
- data/lib/puppet/syntax_checkers/pp.rb +3 -3
- data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
- data/lib/puppet/transaction/event.rb +2 -2
- data/lib/puppet/transaction/event_manager.rb +5 -5
- data/lib/puppet/transaction/persistence.rb +12 -14
- data/lib/puppet/transaction/report.rb +4 -4
- data/lib/puppet/transaction/resource_harness.rb +2 -2
- data/lib/puppet/transaction.rb +14 -18
- data/lib/puppet/type/component.rb +3 -3
- data/lib/puppet/type/exec.rb +43 -45
- data/lib/puppet/type/file/checksum_value.rb +1 -1
- data/lib/puppet/type/file/content.rb +6 -6
- data/lib/puppet/type/file/ctime.rb +2 -2
- data/lib/puppet/type/file/data_sync.rb +3 -3
- data/lib/puppet/type/file/ensure.rb +16 -15
- data/lib/puppet/type/file/mode.rb +9 -9
- data/lib/puppet/type/file/mtime.rb +2 -2
- data/lib/puppet/type/file/selcontext.rb +14 -14
- data/lib/puppet/type/file/source.rb +19 -21
- data/lib/puppet/type/file/target.rb +11 -11
- data/lib/puppet/type/file.rb +21 -21
- data/lib/puppet/type/filebucket.rb +3 -3
- data/lib/puppet/type/group.rb +3 -3
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/package.rb +4 -4
- data/lib/puppet/type/resources.rb +6 -6
- data/lib/puppet/type/schedule.rb +9 -9
- data/lib/puppet/type/service.rb +6 -8
- data/lib/puppet/type/tidy.rb +22 -24
- data/lib/puppet/type/user.rb +13 -13
- data/lib/puppet/type.rb +76 -88
- data/lib/puppet/util/at_fork/solaris.rb +33 -37
- data/lib/puppet/util/autoload.rb +2 -2
- data/lib/puppet/util/backups.rb +9 -9
- data/lib/puppet/util/character_encoding.rb +7 -6
- data/lib/puppet/util/checksums.rb +2 -2
- data/lib/puppet/util/classgen.rb +8 -8
- data/lib/puppet/util/colors.rb +1 -1
- data/lib/puppet/util/command_line/puppet_option_parser.rb +1 -1
- data/lib/puppet/util/command_line/trollop.rb +42 -46
- data/lib/puppet/util/command_line.rb +2 -2
- data/lib/puppet/util/constant_inflector.rb +2 -2
- data/lib/puppet/util/diff.rb +19 -21
- data/lib/puppet/util/docs.rb +2 -2
- data/lib/puppet/util/errors.rb +9 -9
- data/lib/puppet/util/execution.rb +32 -9
- data/lib/puppet/util/feature.rb +1 -1
- data/lib/puppet/util/fileparsing.rb +12 -16
- data/lib/puppet/util/filetype.rb +36 -40
- data/lib/puppet/util/inifile.rb +6 -12
- data/lib/puppet/util/ldap/connection.rb +1 -1
- data/lib/puppet/util/ldap/manager.rb +10 -12
- data/lib/puppet/util/lockfile.rb +6 -8
- data/lib/puppet/util/log/destination.rb +2 -2
- data/lib/puppet/util/log/destinations.rb +4 -4
- data/lib/puppet/util/log.rb +12 -9
- data/lib/puppet/util/logging.rb +11 -11
- data/lib/puppet/util/metric.rb +3 -3
- data/lib/puppet/util/monkey_patches.rb +5 -7
- data/lib/puppet/util/network_device/config.rb +3 -3
- data/lib/puppet/util/package/version/debian.rb +27 -28
- data/lib/puppet/util/package/version/pip.rb +5 -5
- data/lib/puppet/util/package/version/range/eq.rb +1 -1
- data/lib/puppet/util/package/version/rpm.rb +1 -1
- data/lib/puppet/util/package.rb +2 -2
- data/lib/puppet/util/pidlock.rb +2 -2
- data/lib/puppet/util/platform.rb +1 -1
- data/lib/puppet/util/plist.rb +8 -10
- data/lib/puppet/util/posix.rb +17 -17
- data/lib/puppet/util/profiler/aggregate.rb +1 -1
- data/lib/puppet/util/provider_features.rb +3 -3
- data/lib/puppet/util/rdoc/code_objects.rb +3 -3
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +63 -64
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +23 -23
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +12 -12
- data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -1
- data/lib/puppet/util/rdoc/parser.rb +1 -1
- data/lib/puppet/util/reference.rb +13 -9
- data/lib/puppet/util/retry_action.rb +1 -1
- data/lib/puppet/util/rpm_compare.rb +17 -18
- data/lib/puppet/util/rubygems.rb +1 -1
- data/lib/puppet/util/selinux.rb +7 -7
- data/lib/puppet/util/storage.rb +10 -12
- data/lib/puppet/util/suidmanager.rb +18 -19
- data/lib/puppet/util/symbolic_file_mode.rb +71 -75
- data/lib/puppet/util/tag_set.rb +2 -2
- data/lib/puppet/util/tagging.rb +8 -10
- data/lib/puppet/util/terminal.rb +4 -4
- data/lib/puppet/util/user_attr.rb +7 -7
- data/lib/puppet/util/watcher.rb +3 -5
- data/lib/puppet/util/windows/access_control_list.rb +1 -1
- data/lib/puppet/util/windows/adsi.rb +42 -42
- data/lib/puppet/util/windows/daemon.rb +64 -68
- data/lib/puppet/util/windows/error.rb +2 -2
- data/lib/puppet/util/windows/file.rb +18 -25
- data/lib/puppet/util/windows/monkey_patches/process.rb +1 -1
- data/lib/puppet/util/windows/principal.rb +8 -8
- data/lib/puppet/util/windows/process.rb +16 -28
- data/lib/puppet/util/windows/registry.rb +16 -15
- data/lib/puppet/util/windows/root_certs.rb +2 -2
- data/lib/puppet/util/windows/security.rb +31 -31
- data/lib/puppet/util/windows/service.rb +11 -11
- data/lib/puppet/util/windows/sid.rb +8 -8
- data/lib/puppet/util/windows/user.rb +18 -20
- data/lib/puppet/util/yaml.rb +1 -1
- data/lib/puppet/util.rb +55 -46
- data/lib/puppet/version.rb +2 -2
- data/lib/puppet/x509/pem_store.rb +1 -1
- data/lib/puppet.rb +3 -3
- data/man/man5/puppet.conf.5 +10 -2
- data/man/man8/puppet-agent.8 +1 -1
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +1 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +1 -1
- data/man/man8/puppet-filebucket.8 +1 -1
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-module.8 +1 -1
- data/man/man8/puppet-node.8 +1 -1
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +5 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- metadata +2 -2
@@ -36,7 +36,7 @@ class Puppet::Network::HTTP::API::IndirectedRoutes
|
|
36
36
|
indirection, method, key, params = uri2indirection(request.method, request.path, request.params)
|
37
37
|
certificate = request.client_cert
|
38
38
|
|
39
|
-
|
39
|
+
unless indirection.allow_remote_requests?
|
40
40
|
# TODO: should we tell the user we found an indirection but it doesn't
|
41
41
|
# allow remote requests, or just pretend there's no handler at all? what
|
42
42
|
# are the security implications for the former?
|
@@ -62,9 +62,7 @@ class Puppet::Network::HTTP::API::IndirectedRoutes
|
|
62
62
|
environment = params.delete(:environment)
|
63
63
|
|
64
64
|
if indirection_name !~ /^\w+$/
|
65
|
-
raise Puppet::Network::HTTP::Error::HTTPBadRequestError
|
66
|
-
_("The indirection name must be purely alphanumeric, not '%{indirection_name}'") % { indirection_name: indirection_name }
|
67
|
-
)
|
65
|
+
raise Puppet::Network::HTTP::Error::HTTPBadRequestError, _("The indirection name must be purely alphanumeric, not '%{indirection_name}'") % { indirection_name: indirection_name }
|
68
66
|
end
|
69
67
|
|
70
68
|
# this also depluralizes the indirection_name if it is a search
|
@@ -73,29 +71,23 @@ class Puppet::Network::HTTP::API::IndirectedRoutes
|
|
73
71
|
# check whether this indirection matches the prefix and version in the
|
74
72
|
# request
|
75
73
|
if url_prefix != IndirectionType.url_prefix_for(indirection_name)
|
76
|
-
raise Puppet::Network::HTTP::Error::HTTPBadRequestError
|
77
|
-
_("Indirection '%{indirection_name}' does not match url prefix '%{url_prefix}'") % { indirection_name: indirection_name, url_prefix: url_prefix }
|
78
|
-
)
|
74
|
+
raise Puppet::Network::HTTP::Error::HTTPBadRequestError, _("Indirection '%{indirection_name}' does not match url prefix '%{url_prefix}'") % { indirection_name: indirection_name, url_prefix: url_prefix }
|
79
75
|
end
|
80
76
|
|
81
77
|
indirection = Puppet::Indirector::Indirection.instance(indirection_name.to_sym)
|
82
|
-
|
78
|
+
unless indirection
|
83
79
|
raise Puppet::Network::HTTP::Error::HTTPNotFoundError.new(
|
84
80
|
_("Could not find indirection '%{indirection_name}'") % { indirection_name: indirection_name },
|
85
81
|
Puppet::Network::HTTP::Issues::HANDLER_NOT_FOUND
|
86
82
|
)
|
87
83
|
end
|
88
84
|
|
89
|
-
|
90
|
-
raise Puppet::Network::HTTP::Error::HTTPBadRequestError
|
91
|
-
_("An environment parameter must be specified")
|
92
|
-
)
|
85
|
+
unless environment
|
86
|
+
raise Puppet::Network::HTTP::Error::HTTPBadRequestError, _("An environment parameter must be specified")
|
93
87
|
end
|
94
88
|
|
95
|
-
|
96
|
-
raise Puppet::Network::HTTP::Error::HTTPBadRequestError
|
97
|
-
_("The environment must be purely alphanumeric, not '%{environment}'") % { environment: environment }
|
98
|
-
)
|
89
|
+
unless Puppet::Node::Environment.valid_name?(environment)
|
90
|
+
raise Puppet::Network::HTTP::Error::HTTPBadRequestError, _("The environment must be purely alphanumeric, not '%{environment}'") % { environment: environment }
|
99
91
|
end
|
100
92
|
|
101
93
|
configured_environment = Puppet.lookup(:environments).get(environment)
|
@@ -105,17 +97,13 @@ class Puppet::Network::HTTP::API::IndirectedRoutes
|
|
105
97
|
end
|
106
98
|
|
107
99
|
if configured_environment.nil? && indirection.terminus.require_environment?
|
108
|
-
raise Puppet::Network::HTTP::Error::HTTPNotFoundError
|
109
|
-
_("Could not find environment '%{environment}'") % { environment: environment }
|
110
|
-
)
|
100
|
+
raise Puppet::Network::HTTP::Error::HTTPNotFoundError, _("Could not find environment '%{environment}'") % { environment: environment }
|
111
101
|
end
|
112
102
|
|
113
103
|
params.delete(:bucket_path)
|
114
104
|
|
115
105
|
if key == "" or key.nil?
|
116
|
-
raise Puppet::Network::HTTP::Error::HTTPBadRequestError
|
117
|
-
_("No request key specified in %{uri}") % { uri: uri }
|
118
|
-
)
|
106
|
+
raise Puppet::Network::HTTP::Error::HTTPBadRequestError, _("No request key specified in %{uri}") % { uri: uri }
|
119
107
|
end
|
120
108
|
|
121
109
|
[indirection, method, key, params]
|
@@ -196,19 +184,17 @@ class Puppet::Network::HTTP::API::IndirectedRoutes
|
|
196
184
|
def first_response_formatter_for(model, request, key, &block)
|
197
185
|
formats = accepted_response_formatters_for(model, request)
|
198
186
|
formatter = formats.find do |format|
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
raise Puppet::Network::FormatHandler::FormatError.new(msg)
|
209
|
-
end
|
210
|
-
false
|
187
|
+
yield format
|
188
|
+
true
|
189
|
+
rescue Puppet::Network::FormatHandler::FormatError => err
|
190
|
+
msg = _("Failed to serialize %{model} for '%{key}': %{detail}") %
|
191
|
+
{ model: model, key: key, detail: err }
|
192
|
+
if Puppet[:allow_pson_serialization]
|
193
|
+
Puppet.warning(msg)
|
194
|
+
else
|
195
|
+
raise Puppet::Network::FormatHandler::FormatError, msg
|
211
196
|
end
|
197
|
+
false
|
212
198
|
end
|
213
199
|
|
214
200
|
return formatter if formatter
|
@@ -239,9 +225,7 @@ class Puppet::Network::HTTP::API::IndirectedRoutes
|
|
239
225
|
begin
|
240
226
|
return model_class.convert_from(formatter.name.to_s, data)
|
241
227
|
rescue => e
|
242
|
-
raise Puppet::Network::HTTP::Error::HTTPBadRequestError.
|
243
|
-
_("The request body is invalid: %{message}") % { message: e.message }
|
244
|
-
)
|
228
|
+
raise Puppet::Network::HTTP::Error::HTTPBadRequestError, _("The request body is invalid: %{message}") % { message: e.message }
|
245
229
|
end
|
246
230
|
end
|
247
231
|
|
@@ -253,22 +237,18 @@ class Puppet::Network::HTTP::API::IndirectedRoutes
|
|
253
237
|
end
|
254
238
|
|
255
239
|
def indirection_method(http_method, indirection)
|
256
|
-
raise Puppet::Network::HTTP::Error::HTTPMethodNotAllowedError
|
257
|
-
_("No support for http method %{http_method}") % { http_method: http_method }
|
258
|
-
) unless METHOD_MAP[http_method]
|
240
|
+
raise Puppet::Network::HTTP::Error::HTTPMethodNotAllowedError, _("No support for http method %{http_method}") % { http_method: http_method } unless METHOD_MAP[http_method]
|
259
241
|
|
260
242
|
method = METHOD_MAP[http_method][plurality(indirection)]
|
261
243
|
unless method
|
262
|
-
raise Puppet::Network::HTTP::Error::HTTPBadRequestError
|
263
|
-
_("No support for plurality %{indirection} for %{http_method} operations") % { indirection: plurality(indirection), http_method: http_method }
|
264
|
-
)
|
244
|
+
raise Puppet::Network::HTTP::Error::HTTPBadRequestError, _("No support for plurality %{indirection} for %{http_method} operations") % { indirection: plurality(indirection), http_method: http_method }
|
265
245
|
end
|
266
246
|
|
267
247
|
method
|
268
248
|
end
|
269
249
|
|
270
250
|
def self.pluralize(indirection)
|
271
|
-
|
251
|
+
(indirection == "status" ? "statuses" : indirection + "s")
|
272
252
|
end
|
273
253
|
private_class_method :pluralize
|
274
254
|
|
@@ -245,7 +245,7 @@ class Puppet::Network::HTTP::Connection
|
|
245
245
|
end
|
246
246
|
|
247
247
|
def to_url(path)
|
248
|
-
if path =~
|
248
|
+
if path =~ %r{^https?://}
|
249
249
|
# The old Connection class accepts a URL as the request path, and sends
|
250
250
|
# it in "absolute-form" in the request line, e.g. GET https://puppet:8140/.
|
251
251
|
# See https://httpwg.org/specs/rfc7230.html#absolute-form. It just so happens
|
@@ -13,7 +13,7 @@ module Puppet::Network::HTTP::Handler
|
|
13
13
|
|
14
14
|
# These shouldn't be allowed to be set by clients
|
15
15
|
# in the query string, for security reasons.
|
16
|
-
DISALLOWED_KEYS = [
|
16
|
+
DISALLOWED_KEYS = %w[node ip]
|
17
17
|
|
18
18
|
def register(routes)
|
19
19
|
# There's got to be a simpler way to do this, right?
|
@@ -21,7 +21,7 @@ module Puppet::Network::HTTP::Handler
|
|
21
21
|
routes.each { |r| dupes[r.path_matcher] = (dupes[r.path_matcher] || 0) + 1 }
|
22
22
|
dupes = dupes.filter_map { |pm, count| pm if count > 1 }
|
23
23
|
if dupes.count > 0
|
24
|
-
raise ArgumentError, _("Given multiple routes with identical path regexes: %{regexes}") % { regexes: dupes.map
|
24
|
+
raise ArgumentError, _("Given multiple routes with identical path regexes: %{regexes}") % { regexes: dupes.map(&:inspect).join(', ') }
|
25
25
|
end
|
26
26
|
|
27
27
|
@routes = routes
|
@@ -107,14 +107,10 @@ module Puppet::Network::HTTP::Handler
|
|
107
107
|
|
108
108
|
def find_route_or_raise(request)
|
109
109
|
route = @routes.find { |r| r.matches?(request) }
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
_("No route for %{request} %{path}") % { request: request.method, path: request.path },
|
115
|
-
HANDLER_NOT_FOUND
|
116
|
-
)
|
117
|
-
end
|
110
|
+
route || raise(Puppet::Network::HTTP::Error::HTTPNotFoundError.new(
|
111
|
+
_("No route for %{request} %{path}") % { request: request.method, path: request.path },
|
112
|
+
HANDLER_NOT_FOUND
|
113
|
+
))
|
118
114
|
end
|
119
115
|
|
120
116
|
def set_puppet_version_header(response)
|
@@ -178,7 +174,7 @@ module Puppet::Network::HTTP::Handler
|
|
178
174
|
end
|
179
175
|
|
180
176
|
def allowed_parameter?(name)
|
181
|
-
|
177
|
+
!(name.nil? || name.empty? || DISALLOWED_KEYS.include?(name))
|
182
178
|
end
|
183
179
|
|
184
180
|
def parse_parameter_value(param, value)
|
@@ -205,7 +201,7 @@ module Puppet::Network::HTTP::Handler
|
|
205
201
|
end
|
206
202
|
|
207
203
|
def configure_profiler(request_headers, request_params)
|
208
|
-
if
|
204
|
+
if request_headers.has_key?(Puppet::Network::HTTP::HEADER_ENABLE_PROFILING.downcase) or Puppet[:profile]
|
209
205
|
Puppet::Util::Profiler.add_profiler(Puppet::Util::Profiler::Aggregate.new(Puppet.method(:info), request_params.object_id))
|
210
206
|
end
|
211
207
|
end
|
@@ -78,6 +78,6 @@ Puppet::Network::HTTP::Request = Struct.new(:headers, :params, :method, :path, :
|
|
78
78
|
|
79
79
|
def valid_network_format?(format)
|
80
80
|
# YAML in network requests is not supported. See http://links.puppet.com/deprecate_yaml_on_network
|
81
|
-
format
|
81
|
+
!format.nil? && format.name != :yaml && format.name != :b64_zlib_yaml
|
82
82
|
end
|
83
83
|
end
|
@@ -28,39 +28,39 @@ class Puppet::Network::HTTP::Route
|
|
28
28
|
|
29
29
|
def get(*handlers)
|
30
30
|
@method_handlers[:GET] = handlers
|
31
|
-
|
31
|
+
self
|
32
32
|
end
|
33
33
|
|
34
34
|
def head(*handlers)
|
35
35
|
@method_handlers[:HEAD] = handlers
|
36
|
-
|
36
|
+
self
|
37
37
|
end
|
38
38
|
|
39
39
|
def options(*handlers)
|
40
40
|
@method_handlers[:OPTIONS] = handlers
|
41
|
-
|
41
|
+
self
|
42
42
|
end
|
43
43
|
|
44
44
|
def post(*handlers)
|
45
45
|
@method_handlers[:POST] = handlers
|
46
|
-
|
46
|
+
self
|
47
47
|
end
|
48
48
|
|
49
49
|
def put(*handlers)
|
50
50
|
@method_handlers[:PUT] = handlers
|
51
|
-
|
51
|
+
self
|
52
52
|
end
|
53
53
|
|
54
54
|
def delete(*handlers)
|
55
55
|
@method_handlers[:DELETE] = handlers
|
56
|
-
|
56
|
+
self
|
57
57
|
end
|
58
58
|
|
59
59
|
def any(*handlers)
|
60
60
|
@method_handlers.each do |method, _registered_handlers|
|
61
61
|
@method_handlers[method] = handlers
|
62
62
|
end
|
63
|
-
|
63
|
+
self
|
64
64
|
end
|
65
65
|
|
66
66
|
def chain(*routes)
|
@@ -69,14 +69,14 @@ class Puppet::Network::HTTP::Route
|
|
69
69
|
end
|
70
70
|
|
71
71
|
def matches?(request)
|
72
|
-
Puppet.debug { "Evaluating match for #{
|
72
|
+
Puppet.debug { "Evaluating match for #{inspect}" }
|
73
73
|
if match(request.routing_path)
|
74
74
|
return true
|
75
75
|
else
|
76
76
|
Puppet.debug { "Did not match path (#{request.routing_path.inspect})" }
|
77
77
|
end
|
78
78
|
|
79
|
-
|
79
|
+
false
|
80
80
|
end
|
81
81
|
|
82
82
|
def process(request, response)
|
@@ -87,10 +87,10 @@ class Puppet::Node::Environment
|
|
87
87
|
# parameters (:modulepath, :manifest, :config_version)
|
88
88
|
# @return [Puppet::Node::Environment]
|
89
89
|
def override_with(env_params)
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
90
|
+
self.class.create(name,
|
91
|
+
env_params[:modulepath] || modulepath,
|
92
|
+
env_params[:manifest] || manifest,
|
93
|
+
env_params[:config_version] || config_version)
|
94
94
|
end
|
95
95
|
|
96
96
|
# Creates a new Puppet::Node::Environment instance, overriding :manifest,
|
@@ -118,7 +118,7 @@ class Puppet::Node::Environment
|
|
118
118
|
|
119
119
|
overrides.empty? ?
|
120
120
|
self :
|
121
|
-
|
121
|
+
override_with(overrides)
|
122
122
|
end
|
123
123
|
|
124
124
|
# @param [String] name Environment name to check for valid syntax.
|
@@ -220,7 +220,7 @@ class Puppet::Node::Environment
|
|
220
220
|
# Puppet[:default_manifest].
|
221
221
|
# @api private
|
222
222
|
def conflicting_manifest_settings?
|
223
|
-
return false
|
223
|
+
return false unless Puppet[:disable_per_environment_manifest]
|
224
224
|
|
225
225
|
original_manifest = configuration.raw_setting(:manifest)
|
226
226
|
!original_manifest.nil? && !original_manifest.empty? && original_manifest != Puppet[:default_manifest]
|
@@ -279,7 +279,7 @@ class Puppet::Node::Environment
|
|
279
279
|
# @param param [String, Symbol] The environment setting to look up
|
280
280
|
# @return [Object] The resolved setting value
|
281
281
|
def [](param)
|
282
|
-
Puppet.settings.value(param,
|
282
|
+
Puppet.settings.value(param, name)
|
283
283
|
end
|
284
284
|
|
285
285
|
# @api public
|
@@ -358,7 +358,7 @@ class Puppet::Node::Environment
|
|
358
358
|
next unless Puppet::Module.is_module_directory?(name, path)
|
359
359
|
|
360
360
|
warn_about_mistaken_path(path, name)
|
361
|
-
|
361
|
+
unless seen_modules[name]
|
362
362
|
module_references << { :name => name, :path => File.join(path, name) }
|
363
363
|
seen_modules[name] = true
|
364
364
|
end
|
@@ -366,12 +366,10 @@ class Puppet::Node::Environment
|
|
366
366
|
end
|
367
367
|
|
368
368
|
@modules = module_references.filter_map do |reference|
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
nil
|
374
|
-
end
|
369
|
+
Puppet::Module.new(reference[:name], reference[:path], self)
|
370
|
+
rescue Puppet::Module::Error => e
|
371
|
+
Puppet.log_exception(e)
|
372
|
+
nil
|
375
373
|
end
|
376
374
|
end
|
377
375
|
@modules
|
@@ -499,7 +497,7 @@ class Puppet::Node::Environment
|
|
499
497
|
#
|
500
498
|
def check_for_reparse
|
501
499
|
@lock.synchronize do
|
502
|
-
if
|
500
|
+
if Puppet[:code] != @parsed_code || @known_resource_types.parse_failed?
|
503
501
|
@parsed_code = nil
|
504
502
|
@known_resource_types = nil
|
505
503
|
end
|
@@ -520,7 +518,7 @@ class Puppet::Node::Environment
|
|
520
518
|
|
521
519
|
# @api public
|
522
520
|
def inspect
|
523
|
-
%Q
|
521
|
+
%Q(<#{self.class}:#{object_id} @name="#{name}" @manifest="#{manifest}" @modulepath="#{full_modulepath.join(':')}" >)
|
524
522
|
end
|
525
523
|
|
526
524
|
# @return [Symbol] The `name` value, cast to a string, then cast to a symbol.
|
@@ -539,10 +537,10 @@ class Puppet::Node::Environment
|
|
539
537
|
end
|
540
538
|
|
541
539
|
def ==(other)
|
542
|
-
|
543
|
-
|
544
|
-
|
545
|
-
|
540
|
+
true if other.is_a?(Puppet::Node::Environment) &&
|
541
|
+
name == other.name &&
|
542
|
+
full_modulepath == other.full_modulepath &&
|
543
|
+
manifest == other.manifest
|
546
544
|
end
|
547
545
|
|
548
546
|
alias eql? ==
|
@@ -589,7 +587,7 @@ class Puppet::Node::Environment
|
|
589
587
|
parser.string = @parsed_code
|
590
588
|
parser.parse
|
591
589
|
else
|
592
|
-
file =
|
590
|
+
file = manifest
|
593
591
|
# if the manifest file is a reference to a directory, parse and combine
|
594
592
|
# all .pp files in that directory
|
595
593
|
if file == NO_MANIFEST
|
@@ -610,7 +608,7 @@ class Puppet::Node::Environment
|
|
610
608
|
end
|
611
609
|
rescue Puppet::ParseErrorWithIssue => detail
|
612
610
|
@known_resource_types.parse_failed = true
|
613
|
-
detail.environment =
|
611
|
+
detail.environment = name
|
614
612
|
raise
|
615
613
|
rescue => detail
|
616
614
|
@known_resource_types.parse_failed = true
|
@@ -625,7 +623,7 @@ class Puppet::Node::Environment
|
|
625
623
|
#
|
626
624
|
# @return [Puppet::Parser::AST::Hostclass]
|
627
625
|
def empty_parse_result
|
628
|
-
|
626
|
+
Puppet::Parser::AST::Hostclass.new('')
|
629
627
|
end
|
630
628
|
|
631
629
|
# A None subclass to make it easier to trace the NONE environment when debugging.
|
data/lib/puppet/node/facts.rb
CHANGED
data/lib/puppet/node.rb
CHANGED
@@ -48,7 +48,7 @@ class Puppet::Node
|
|
48
48
|
'environment' => environment.name.to_s,
|
49
49
|
}
|
50
50
|
result['classes'] = classes unless classes.empty?
|
51
|
-
serialized_params =
|
51
|
+
serialized_params = serializable_parameters
|
52
52
|
result['parameters'] = serialized_params unless serialized_params.empty?
|
53
53
|
result
|
54
54
|
end
|
@@ -142,7 +142,7 @@ class Puppet::Node
|
|
142
142
|
raise error
|
143
143
|
end
|
144
144
|
|
145
|
-
|
145
|
+
unless @facts.nil?
|
146
146
|
@facts.sanitize
|
147
147
|
# facts should never modify the environment parameter
|
148
148
|
orig_param_env = @parameters[ENVIRONMENT]
|
@@ -174,7 +174,7 @@ class Puppet::Node
|
|
174
174
|
|
175
175
|
def add_server_facts(facts)
|
176
176
|
# Append the current environment to the list of server facts
|
177
|
-
@server_facts = facts.merge({ "environment" =>
|
177
|
+
@server_facts = facts.merge({ "environment" => environment.name.to_s })
|
178
178
|
|
179
179
|
# Merge the server facts into the parameters for the node
|
180
180
|
merge(facts)
|
@@ -228,7 +228,7 @@ class Puppet::Node
|
|
228
228
|
if trusted_param
|
229
229
|
# Blows up if it is a parameter as it will be set as $trusted by the compiler as if it was a variable
|
230
230
|
@parameters.delete('trusted')
|
231
|
-
unless trusted_param.is_a?(Hash) && %w
|
231
|
+
unless trusted_param.is_a?(Hash) && %w[authenticated certname extensions].all? { |key| trusted_param.has_key?(key) }
|
232
232
|
# trusted is some kind of garbage, do not resurrect
|
233
233
|
trusted_param = nil
|
234
234
|
end
|
@@ -245,7 +245,7 @@ class Puppet::Node
|
|
245
245
|
#
|
246
246
|
# Note that trusted_data should be a hash, but (2) and (4) are not
|
247
247
|
# hashes, so we to_h at the end
|
248
|
-
|
248
|
+
unless trusted_data
|
249
249
|
trusted = Puppet.lookup(:trusted_information) do
|
250
250
|
trusted_param || Puppet::Context::TrustedInformation.local(self)
|
251
251
|
end
|
@@ -67,7 +67,7 @@ class JsonCatalogEncoder
|
|
67
67
|
# @api private
|
68
68
|
# rubocop:disable Naming/MemoizedInstanceVariableName
|
69
69
|
def possibly_filtered_catalog
|
70
|
-
@filtered ||= (exclude_virtual ? catalog.filter
|
70
|
+
@filtered ||= (exclude_virtual ? catalog.filter(&:virtual?) : catalog)
|
71
71
|
end
|
72
72
|
private :possibly_filtered_catalog
|
73
73
|
# rubocop:enable Naming/MemoizedInstanceVariableName
|
data/lib/puppet/pal/pal_impl.rb
CHANGED
@@ -443,64 +443,62 @@ module Pal
|
|
443
443
|
|
444
444
|
# TRANSLATORS, the string "For puppet PAL" is not user facing
|
445
445
|
Puppet.override({ :current_environment => apply_environment }, "For puppet PAL") do
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
end
|
446
|
+
node.sanitize()
|
447
|
+
compiler = create_internal_compiler(internal_compiler_class, node)
|
448
|
+
|
449
|
+
case internal_compiler_class
|
450
|
+
when :script
|
451
|
+
pal_compiler = ScriptCompiler.new(compiler)
|
452
|
+
overrides[:pal_script_compiler] = overrides[:pal_compiler] = pal_compiler
|
453
|
+
when :catalog
|
454
|
+
pal_compiler = CatalogCompiler.new(compiler)
|
455
|
+
overrides[:pal_catalog_compiler] = overrides[:pal_compiler] = pal_compiler
|
456
|
+
end
|
458
457
|
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
458
|
+
# When scripting the trusted data are always local; default is to set them anyway
|
459
|
+
# When compiling for a catalog, the catalog compiler does this
|
460
|
+
if set_local_facts
|
461
|
+
compiler.topscope.set_trusted(node.trusted_data)
|
463
462
|
|
464
|
-
|
465
|
-
|
463
|
+
# Server facts are always about the local node's version etc.
|
464
|
+
compiler.topscope.set_server_facts(node.server_facts)
|
466
465
|
|
467
|
-
|
468
|
-
|
469
|
-
|
466
|
+
# Set $facts for the node running the script
|
467
|
+
facts_hash = node.facts.nil? ? {} : node.facts.values
|
468
|
+
compiler.topscope.set_facts(facts_hash)
|
470
469
|
|
471
|
-
|
472
|
-
|
473
|
-
|
470
|
+
# create the $settings:: variables
|
471
|
+
compiler.topscope.merge_settings(node.environment.name, false)
|
472
|
+
end
|
474
473
|
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
end
|
474
|
+
# Make compiler available to Puppet#lookup and injection in functions
|
475
|
+
# TODO: The compiler instances should be available under non PAL use as well!
|
476
|
+
# TRANSLATORS: Do not translate, symbolic name
|
477
|
+
Puppet.override(overrides, "PAL::with_#{internal_compiler_class}_compiler") do
|
478
|
+
compiler.compile do |_compiler_yield|
|
479
|
+
# In case the variables passed to the compiler are PCore types defined in modules, they
|
480
|
+
# need to be deserialized and added from within the this scope, so that loaders are
|
481
|
+
# available during deserizlization.
|
482
|
+
pal_variables = Puppet::Pops::Serialization::FromDataConverter.convert(pal_variables)
|
483
|
+
variables = Puppet::Pops::Serialization::FromDataConverter.convert(variables)
|
484
|
+
|
485
|
+
# Merge together target variables and plan variables. This will also shadow any
|
486
|
+
# collisions with facts and emit a warning.
|
487
|
+
topscope_vars = pal_variables.merge(merge_vars(target_variables, variables, node.facts.values))
|
488
|
+
|
489
|
+
add_variables(compiler.topscope, topscope_vars)
|
490
|
+
# wrap the internal compiler to prevent it from leaking in the PAL API
|
491
|
+
if block_given?
|
492
|
+
yield(pal_compiler)
|
495
493
|
end
|
496
494
|
end
|
497
|
-
rescue Puppet::Error
|
498
|
-
# already logged and handled by the compiler, including Puppet::ParseErrorWithIssue
|
499
|
-
raise
|
500
|
-
rescue => detail
|
501
|
-
Puppet.log_exception(detail)
|
502
|
-
raise
|
503
495
|
end
|
496
|
+
rescue Puppet::Error
|
497
|
+
# already logged and handled by the compiler, including Puppet::ParseErrorWithIssue
|
498
|
+
raise
|
499
|
+
rescue => detail
|
500
|
+
Puppet.log_exception(detail)
|
501
|
+
raise
|
504
502
|
end
|
505
503
|
end
|
506
504
|
private_class_method :main
|
@@ -57,9 +57,9 @@ class Puppet::Parameter::Value
|
|
57
57
|
#
|
58
58
|
def match?(value)
|
59
59
|
if regex?
|
60
|
-
|
60
|
+
true if name =~ value.to_s
|
61
61
|
else
|
62
|
-
|
62
|
+
(name == convert(value) ? true : @aliases.include?(convert(value)))
|
63
63
|
end
|
64
64
|
end
|
65
65
|
|