puppet 8.5.1-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 +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
@@ -118,7 +118,7 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
|
|
118
118
|
body,
|
119
119
|
headers: headers,
|
120
120
|
# for legacy reasons we always send environment as a query parameter too
|
121
|
-
params: { environment: environment }
|
121
|
+
params: { environment: environment }
|
122
122
|
)
|
123
123
|
|
124
124
|
if (compiler = response['X-Puppet-Compiler-Name'])
|
@@ -163,9 +163,9 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
|
|
163
163
|
#
|
164
164
|
def post_catalog4(certname, persistence:, environment:, facts: nil, trusted_facts: nil, transaction_uuid: nil, job_id: nil, options: nil)
|
165
165
|
unless persistence.is_a?(Hash) && (missing = [:facts, :catalog] - persistence.keys.map(&:to_sym)).empty?
|
166
|
-
raise ArgumentError
|
166
|
+
raise ArgumentError, "The 'persistence' hash is missing the keys: #{missing.join(', ')}"
|
167
167
|
end
|
168
|
-
raise ArgumentError
|
168
|
+
raise ArgumentError, "Facts must be a Hash not a #{facts.class}" unless facts.nil? || facts.is_a?(Hash)
|
169
169
|
|
170
170
|
body = {
|
171
171
|
certname: certname,
|
@@ -248,7 +248,7 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
|
|
248
248
|
with_base_url("/facts/#{name}"),
|
249
249
|
serialize(formatter, facts),
|
250
250
|
headers: headers,
|
251
|
-
params: { environment: environment }
|
251
|
+
params: { environment: environment }
|
252
252
|
)
|
253
253
|
|
254
254
|
process_response(response)
|
@@ -11,7 +11,7 @@ class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
|
|
11
11
|
API = '/puppet/v3'
|
12
12
|
|
13
13
|
# @return [RegEx] RegEx used to determine if a path contains a leading slash
|
14
|
-
PATH_REGEX =
|
14
|
+
PATH_REGEX = %r{^/}
|
15
15
|
|
16
16
|
# Use `Puppet::HTTP::Session.route_to(:fileserver)` to create or get an instance of this class.
|
17
17
|
#
|
@@ -47,7 +47,7 @@ class Puppet::HTTP::Service::Report < Puppet::HTTP::Service
|
|
47
47
|
with_base_url("/report/#{name}"),
|
48
48
|
serialize(formatter, report),
|
49
49
|
headers: headers,
|
50
|
-
params: { environment: environment }
|
50
|
+
params: { environment: environment }
|
51
51
|
)
|
52
52
|
|
53
53
|
# override parent's process_response handling
|
@@ -56,7 +56,7 @@ class Puppet::HTTP::Service::Report < Puppet::HTTP::Service
|
|
56
56
|
if response.success?
|
57
57
|
response
|
58
58
|
else
|
59
|
-
raise Puppet::HTTP::ResponseError
|
59
|
+
raise Puppet::HTTP::ResponseError, response
|
60
60
|
end
|
61
61
|
end
|
62
62
|
end
|
data/lib/puppet/http/service.rb
CHANGED
@@ -129,30 +129,26 @@ class Puppet::HTTP::Service
|
|
129
129
|
|
130
130
|
def formatter_for_response(response)
|
131
131
|
header = response['Content-Type']
|
132
|
-
raise Puppet::HTTP::ProtocolError
|
132
|
+
raise Puppet::HTTP::ProtocolError, _("No content type in http response; cannot parse") unless header
|
133
133
|
|
134
134
|
header.gsub!(/\s*;.*$/, '') # strip any charset
|
135
135
|
|
136
136
|
formatter = Puppet::Network::FormatHandler.mime(header)
|
137
|
-
raise Puppet::HTTP::ProtocolError
|
137
|
+
raise Puppet::HTTP::ProtocolError, "Content-Type is unsupported" if EXCLUDED_FORMATS.include?(formatter.name)
|
138
138
|
|
139
139
|
formatter
|
140
140
|
end
|
141
141
|
|
142
142
|
def serialize(formatter, object)
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
raise Puppet::HTTP::SerializationError.new("Failed to serialize #{object.class} to #{formatter.name}: #{err.message}", err)
|
147
|
-
end
|
143
|
+
formatter.render(object)
|
144
|
+
rescue => err
|
145
|
+
raise Puppet::HTTP::SerializationError.new("Failed to serialize #{object.class} to #{formatter.name}: #{err.message}", err)
|
148
146
|
end
|
149
147
|
|
150
148
|
def serialize_multiple(formatter, object)
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
raise Puppet::HTTP::SerializationError.new("Failed to serialize multiple #{object.class} to #{formatter.name}: #{err.message}", err)
|
155
|
-
end
|
149
|
+
formatter.render_multiple(object)
|
150
|
+
rescue => err
|
151
|
+
raise Puppet::HTTP::SerializationError.new("Failed to serialize multiple #{object.class} to #{formatter.name}: #{err.message}", err)
|
156
152
|
end
|
157
153
|
|
158
154
|
def deserialize(response, model)
|
@@ -176,6 +172,6 @@ class Puppet::HTTP::Service
|
|
176
172
|
def process_response(response)
|
177
173
|
@session.process_response(response)
|
178
174
|
|
179
|
-
raise Puppet::HTTP::ResponseError
|
175
|
+
raise Puppet::HTTP::ResponseError, response unless response.success?
|
180
176
|
end
|
181
177
|
end
|
data/lib/puppet/http/session.rb
CHANGED
@@ -52,7 +52,7 @@ class Puppet::HTTP::Session
|
|
52
52
|
raise ArgumentError, "Unknown service #{name}" unless Puppet::HTTP::Service.valid_name?(name)
|
53
53
|
|
54
54
|
# short circuit if explicit URL host & port given
|
55
|
-
if url && url.host
|
55
|
+
if url && !url.host.nil? && !url.host.empty?
|
56
56
|
service = Puppet::HTTP::Service.create_service(@client, self, name, url.host, url.port)
|
57
57
|
service.connect(ssl_context: ssl_context)
|
58
58
|
return service
|
data/lib/puppet/http/site.rb
CHANGED
@@ -51,7 +51,7 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
|
|
51
51
|
def find(request)
|
52
52
|
facts = extract_facts_from_request(request)
|
53
53
|
|
54
|
-
save_facts_from_request(facts, request)
|
54
|
+
save_facts_from_request(facts, request) unless facts.nil?
|
55
55
|
|
56
56
|
node = node_from_request(facts, request)
|
57
57
|
node.trusted_data = Puppet.lookup(:trusted_information) { Puppet::Context::TrustedInformation.local(node) }.to_h
|
@@ -89,7 +89,7 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
|
|
89
89
|
|
90
90
|
# filter-out a catalog to remove exported resources
|
91
91
|
def filter(catalog)
|
92
|
-
return catalog.filter
|
92
|
+
return catalog.filter(&:virtual?) if catalog.respond_to?(:filter)
|
93
93
|
|
94
94
|
catalog
|
95
95
|
end
|
@@ -120,9 +120,9 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
|
|
120
120
|
when 'pson'
|
121
121
|
# We unescape here because the corresponding code in Puppet::Configurer::FactHandler encodes with Puppet::Util.uri_query_encode
|
122
122
|
# PSON is deprecated, but continue to accept from older agents
|
123
|
-
|
123
|
+
Puppet::Node::Facts.convert_from('pson', CGI.unescape(facts))
|
124
124
|
when 'application/json'
|
125
|
-
|
125
|
+
Puppet::Node::Facts.convert_from('json', CGI.unescape(facts))
|
126
126
|
else
|
127
127
|
raise ArgumentError, _("Unsupported facts format")
|
128
128
|
end
|
@@ -139,9 +139,9 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
|
|
139
139
|
# If no match is found, return nil.
|
140
140
|
def common_checksum_type(agent_checksum_type)
|
141
141
|
if agent_checksum_type
|
142
|
-
agent_checksum_types = agent_checksum_type.split('.').map
|
142
|
+
agent_checksum_types = agent_checksum_type.split('.').map(&:to_sym)
|
143
143
|
checksum_type = agent_checksum_types.drop_while do |type|
|
144
|
-
|
144
|
+
!known_checksum_types.include? type
|
145
145
|
end.first
|
146
146
|
end
|
147
147
|
checksum_type
|
@@ -156,24 +156,23 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
|
|
156
156
|
source_as_uri = URI.parse(Puppet::Util.uri_encode(source))
|
157
157
|
server = source_as_uri.host
|
158
158
|
port = ":#{source_as_uri.port}" if source_as_uri.port
|
159
|
-
|
159
|
+
"puppet://#{server}#{port}/#{path}"
|
160
160
|
end
|
161
161
|
|
162
162
|
# Helper method to decide if a file resource's metadata can be inlined.
|
163
163
|
# Also used to profile/log reasons for not inlining.
|
164
164
|
def inlineable?(resource, sources)
|
165
|
-
|
166
|
-
when resource[:ensure] == 'absent'
|
165
|
+
if resource[:ensure] == 'absent'
|
167
166
|
# TRANSLATORS Inlining refers to adding additional metadata (in this case we are not inlining)
|
168
|
-
|
169
|
-
|
167
|
+
Puppet::Util::Profiler.profile(_("Not inlining absent resource"), [:compiler, :static_compile_inlining, :skipped_file_metadata, :absent]) { false }
|
168
|
+
elsif sources.empty?
|
170
169
|
# TRANSLATORS Inlining refers to adding additional metadata (in this case we are not inlining)
|
171
|
-
|
172
|
-
|
170
|
+
Puppet::Util::Profiler.profile(_("Not inlining resource without sources"), [:compiler, :static_compile_inlining, :skipped_file_metadata, :no_sources]) { false }
|
171
|
+
elsif !(sources.all? { |source| source =~ /^puppet:/ })
|
173
172
|
# TRANSLATORS Inlining refers to adding additional metadata (in this case we are not inlining)
|
174
|
-
|
173
|
+
Puppet::Util::Profiler.profile(_("Not inlining unsupported source scheme"), [:compiler, :static_compile_inlining, :skipped_file_metadata, :unsupported_scheme]) { false }
|
175
174
|
else
|
176
|
-
|
175
|
+
true
|
177
176
|
end
|
178
177
|
end
|
179
178
|
|
@@ -185,8 +184,8 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
|
|
185
184
|
|
186
185
|
location = Puppet::Module::FILETYPES['files']
|
187
186
|
|
188
|
-
!!(source_as_uri.path =~
|
189
|
-
metadata.full_path =~
|
187
|
+
!!(source_as_uri.path =~ %r{^/modules/} &&
|
188
|
+
metadata.full_path =~ %r{#{environment_path}/[^/]+/[^/]+/#{location}/.+})
|
190
189
|
end
|
191
190
|
|
192
191
|
# Helper method to log file resources that could not be inlined because they
|
@@ -237,32 +236,32 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
|
|
237
236
|
source = Puppet::Type.type(:file).attrclass(:source).normalize(source)
|
238
237
|
|
239
238
|
list_of_data = Puppet::FileServing::Metadata.indirection.search(source, options)
|
240
|
-
|
241
|
-
basedir_meta = list_of_data.find { |meta| meta.relative_path == '.' }
|
242
|
-
devfail "FileServing::Metadata search should always return the root search path" if basedir_meta.nil?
|
243
|
-
|
244
|
-
if !inlineable_metadata?(basedir_meta, source, environment_path)
|
245
|
-
# If any source is not in the environment path, skip inlining this resource.
|
246
|
-
log_file_outside_environment
|
247
|
-
sources_in_environment = false
|
248
|
-
break
|
249
|
-
end
|
239
|
+
next unless list_of_data
|
250
240
|
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
241
|
+
basedir_meta = list_of_data.find { |meta| meta.relative_path == '.' }
|
242
|
+
devfail "FileServing::Metadata search should always return the root search path" if basedir_meta.nil?
|
243
|
+
|
244
|
+
unless inlineable_metadata?(basedir_meta, source, environment_path)
|
245
|
+
# If any source is not in the environment path, skip inlining this resource.
|
246
|
+
log_file_outside_environment
|
247
|
+
sources_in_environment = false
|
248
|
+
break
|
249
|
+
end
|
259
250
|
|
260
|
-
|
261
|
-
|
262
|
-
if
|
263
|
-
|
251
|
+
base_content_uri = get_content_uri(basedir_meta, source, environment_path)
|
252
|
+
list_of_data.each do |metadata|
|
253
|
+
if metadata.relative_path == '.'
|
254
|
+
metadata.content_uri = base_content_uri
|
255
|
+
else
|
256
|
+
metadata.content_uri = "#{base_content_uri}/#{metadata.relative_path}"
|
264
257
|
end
|
265
258
|
end
|
259
|
+
|
260
|
+
source_to_metadatas[source] = list_of_data
|
261
|
+
# Optimize for returning less data if sourceselect is first
|
262
|
+
if resource[:sourceselect] == 'first' || resource[:sourceselect].nil?
|
263
|
+
break
|
264
|
+
end
|
266
265
|
end
|
267
266
|
|
268
267
|
if sources_in_environment && !source_to_metadatas.empty?
|
@@ -282,11 +281,11 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
|
|
282
281
|
source = Puppet::Type.type(:file).attrclass(:source).normalize(source)
|
283
282
|
|
284
283
|
data = Puppet::FileServing::Metadata.indirection.find(source, options)
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
284
|
+
next unless data
|
285
|
+
|
286
|
+
metadata = data
|
287
|
+
metadata.source = source
|
288
|
+
break
|
290
289
|
end
|
291
290
|
|
292
291
|
raise _("Could not get metadata for %{resource}") % { resource: resource[:source] } unless metadata
|
@@ -443,7 +442,7 @@ class Puppet::Resource::Catalog::Compiler < Puppet::Indirector::Code
|
|
443
442
|
"serverip" => "networking.ip",
|
444
443
|
"serverip6" => "networking.ip6" }.each do |var, fact|
|
445
444
|
value = Puppet.runtime[:facter].value(fact)
|
446
|
-
|
445
|
+
unless value.nil?
|
447
446
|
@server_facts[var] = value
|
448
447
|
end
|
449
448
|
end
|
@@ -16,12 +16,14 @@ class Puppet::Resource::Catalog::Rest < Puppet::Indirector::REST
|
|
16
16
|
session = Puppet.lookup(:http_session)
|
17
17
|
api = session.route_to(:puppet)
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
19
|
+
unless Puppet.settings[:skip_logging_catalog_request_destination]
|
20
|
+
ip_address = begin
|
21
|
+
" (#{Resolv.getaddress(api.url.host)})"
|
22
|
+
rescue Resolv::ResolvError
|
23
|
+
nil
|
24
|
+
end
|
25
|
+
Puppet.notice("Requesting catalog from #{api.url.host}:#{api.url.port}#{ip_address}")
|
23
26
|
end
|
24
|
-
Puppet.notice("Requesting catalog from #{api.url.host}:#{api.url.port}#{ip_address}")
|
25
27
|
|
26
28
|
_, catalog = api.post_catalog(
|
27
29
|
request.key,
|
@@ -4,5 +4,5 @@ require_relative '../../../puppet/indirector/store_configs'
|
|
4
4
|
require_relative '../../../puppet/resource/catalog'
|
5
5
|
|
6
6
|
class Puppet::Resource::Catalog::StoreConfigs < Puppet::Indirector::StoreConfigs
|
7
|
-
desc
|
7
|
+
desc 'Part of the "storeconfigs" feature. Should not be directly set by end users.'
|
8
8
|
end
|
@@ -25,9 +25,9 @@ class Puppet::Indirector::Exec < Puppet::Indirector::Terminus
|
|
25
25
|
|
26
26
|
if output =~ /\A\s*\Z/ # all whitespace
|
27
27
|
Puppet.debug { "Empty response for #{name} from #{self.name} terminus" }
|
28
|
-
|
28
|
+
nil
|
29
29
|
else
|
30
|
-
|
30
|
+
output
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
@@ -32,11 +32,11 @@ class Puppet::Indirector::Face < Puppet::Face
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def self.indirections
|
35
|
-
Puppet::Indirector::Indirection.instances.collect
|
35
|
+
Puppet::Indirector::Indirection.instances.collect(&:to_s).sort
|
36
36
|
end
|
37
37
|
|
38
38
|
def self.terminus_classes(indirection)
|
39
|
-
Puppet::Indirector::Terminus.terminus_classes(indirection.to_sym).collect
|
39
|
+
Puppet::Indirector::Terminus.terminus_classes(indirection.to_sym).collect(&:to_s).sort
|
40
40
|
end
|
41
41
|
|
42
42
|
def call_indirection_method(method, key, options)
|
@@ -53,7 +53,7 @@ class Puppet::Indirector::Face < Puppet::Face
|
|
53
53
|
raise RuntimeError, message, detail.backtrace
|
54
54
|
end
|
55
55
|
|
56
|
-
|
56
|
+
result
|
57
57
|
end
|
58
58
|
|
59
59
|
action :destroy do
|
@@ -134,11 +134,9 @@ class Puppet::Indirector::Face < Puppet::Face
|
|
134
134
|
end
|
135
135
|
|
136
136
|
def set_terminus(from)
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
raise detail, msg, detail.backtrace
|
142
|
-
end
|
137
|
+
indirection.terminus_class = from
|
138
|
+
rescue => detail
|
139
|
+
msg = _("Could not set '%{indirection}' terminus to '%{from}' (%{detail}); valid terminus types are %{types}") % { indirection: indirection.name, from: from, detail: detail, types: self.class.terminus_classes(indirection.name).join(", ") }
|
140
|
+
raise detail, msg, detail.backtrace
|
143
141
|
end
|
144
142
|
end
|
@@ -57,7 +57,7 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
|
|
57
57
|
def self.setup_search_paths(request)
|
58
58
|
# Add any per-module fact directories to facter's search path
|
59
59
|
dirs = request.environment.modulepath.collect do |dir|
|
60
|
-
[
|
60
|
+
%w[lib plugins].map do |subdirectory|
|
61
61
|
Dir.glob("#{dir}/*/#{subdirectory}/facter")
|
62
62
|
end
|
63
63
|
end.flatten + Puppet[:factpath].split(File::PATH_SEPARATOR)
|
@@ -85,11 +85,11 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
|
|
85
85
|
# Add any per-module external fact directories to facter's external search path
|
86
86
|
dirs = []
|
87
87
|
request.environment.modules.each do |m|
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
88
|
+
next unless m.has_external_facts?
|
89
|
+
|
90
|
+
dir = m.plugin_fact_directory
|
91
|
+
Puppet.debug { "Loading external facts from #{dir}" }
|
92
|
+
dirs << dir
|
93
93
|
end
|
94
94
|
|
95
95
|
# Add system external fact directory if it exists
|
@@ -4,7 +4,7 @@ require_relative '../../../puppet/node/facts'
|
|
4
4
|
require_relative '../../../puppet/indirector/store_configs'
|
5
5
|
|
6
6
|
class Puppet::Node::Facts::StoreConfigs < Puppet::Indirector::StoreConfigs
|
7
|
-
desc
|
7
|
+
desc 'Part of the "storeconfigs" feature. Should not be directly set by end users.'
|
8
8
|
|
9
9
|
def allow_remote_requests?
|
10
10
|
false
|
@@ -31,7 +31,7 @@ module Puppet::FileBucketFile
|
|
31
31
|
raise _("could not find diff_with %{diff}") % { diff: request.options[:diff_with] } unless Puppet::FileSystem.exist?(other_contents_file)
|
32
32
|
raise _("Unable to diff on this platform") unless Puppet[:diff] != ""
|
33
33
|
|
34
|
-
|
34
|
+
diff(Puppet::FileSystem.path_string(contents_file), Puppet::FileSystem.path_string(other_contents_file))
|
35
35
|
else
|
36
36
|
# TRANSLATORS "FileBucket" should not be translated
|
37
37
|
Puppet.info _("FileBucket read %{checksum}") % { checksum: checksum }
|
@@ -64,14 +64,14 @@ module Puppet::FileBucketFile
|
|
64
64
|
msg = ''.dup
|
65
65
|
# Get all files with mtime between 'from' and 'to'
|
66
66
|
Pathname.new(request.options[:bucket_path]).find { |item|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
67
|
+
next unless item.file? and item.basename.to_s == "paths"
|
68
|
+
|
69
|
+
filenames = item.read.strip.split("\n")
|
70
|
+
filestat = Time.parse(item.stat.mtime.to_s)
|
71
|
+
next unless from <= filestat and filestat <= to
|
72
|
+
|
73
|
+
filenames.each do |filename|
|
74
|
+
bucket[filename] += [[item.stat.mtime, item.parent.basename]]
|
75
75
|
end
|
76
76
|
}
|
77
77
|
# Sort the results
|
@@ -88,7 +88,7 @@ module Puppet::FileBucketFile
|
|
88
88
|
msg += "#{chksum} #{date} #{filename}\n"
|
89
89
|
}
|
90
90
|
}
|
91
|
-
|
91
|
+
model.new(msg)
|
92
92
|
end
|
93
93
|
|
94
94
|
def head(request)
|
@@ -125,7 +125,7 @@ module Puppet::FileBucketFile
|
|
125
125
|
# given its possible that request.options[:bucket_path] or Puppet[:bucketdir]
|
126
126
|
# contained characters in an encoding that are not represented the
|
127
127
|
# same way when the bytes are decoded as UTF-8, continue using system encoding
|
128
|
-
Puppet::FileSystem.open(paths_file,
|
128
|
+
Puppet::FileSystem.open(paths_file, 0o640, 'a+:external') do |f|
|
129
129
|
path_match(f, files_original_path)
|
130
130
|
end
|
131
131
|
end
|
@@ -137,7 +137,7 @@ module Puppet::FileBucketFile
|
|
137
137
|
file_handle.each_line do |line|
|
138
138
|
return true if line.chomp == files_original_path
|
139
139
|
end
|
140
|
-
|
140
|
+
false
|
141
141
|
end
|
142
142
|
|
143
143
|
# @param bucket_file [Puppet::FileBucket::File] IO object representing
|
@@ -152,7 +152,7 @@ module Puppet::FileBucketFile
|
|
152
152
|
# existing and new backup
|
153
153
|
# @api private
|
154
154
|
def save_to_disk(bucket_file, files_original_path, contents_file, paths_file)
|
155
|
-
Puppet::Util.withumask(
|
155
|
+
Puppet::Util.withumask(0o007) do
|
156
156
|
unless Puppet::FileSystem.dir_exist?(paths_file)
|
157
157
|
Puppet::FileSystem.dir_mkpath(paths_file)
|
158
158
|
end
|
@@ -161,14 +161,14 @@ module Puppet::FileBucketFile
|
|
161
161
|
# given its possible that request.options[:bucket_path] or Puppet[:bucketdir]
|
162
162
|
# contained characters in an encoding that are not represented the
|
163
163
|
# same way when the bytes are decoded as UTF-8, continue using system encoding
|
164
|
-
Puppet::FileSystem.exclusive_open(paths_file,
|
164
|
+
Puppet::FileSystem.exclusive_open(paths_file, 0o640, 'a+:external') do |f|
|
165
165
|
if Puppet::FileSystem.exist?(contents_file)
|
166
166
|
if verify_identical_file(contents_file, bucket_file)
|
167
167
|
# TRANSLATORS "FileBucket" should not be translated
|
168
168
|
Puppet.info _("FileBucket got a duplicate file %{file_checksum}") % { file_checksum: bucket_file.checksum }
|
169
169
|
# Don't touch the contents file on Windows, since we can't update the
|
170
170
|
# mtime of read-only files there.
|
171
|
-
|
171
|
+
unless Puppet::Util::Platform.windows?
|
172
172
|
Puppet::FileSystem.touch(contents_file)
|
173
173
|
end
|
174
174
|
elsif contents_file_matches_checksum?(contents_file, bucket_file.checksum_data, bucket_file.checksum_type)
|
@@ -202,7 +202,7 @@ module Puppet::FileBucketFile
|
|
202
202
|
end
|
203
203
|
|
204
204
|
def request_to_checksum_and_path(request)
|
205
|
-
checksum_type, checksum, path = request.key.split(
|
205
|
+
checksum_type, checksum, path = request.key.split(%r{/}, 3)
|
206
206
|
if path == '' # Treat "md5/<checksum>/" like "md5/<checksum>"
|
207
207
|
path = nil
|
208
208
|
end
|
@@ -257,7 +257,7 @@ module Puppet::FileBucketFile
|
|
257
257
|
# @return [void]
|
258
258
|
# @api private
|
259
259
|
def copy_bucket_file_to_contents_file(contents_file, bucket_file)
|
260
|
-
Puppet::FileSystem.replace_file(contents_file,
|
260
|
+
Puppet::FileSystem.replace_file(contents_file, 0o440) do |of|
|
261
261
|
# PUP-1044 writes all of the contents
|
262
262
|
bucket_file.stream() do |src|
|
263
263
|
FileUtils.copy_stream(src, of)
|
@@ -13,7 +13,7 @@ module Puppet::FileBucketFile
|
|
13
13
|
api.head_filebucket_file(
|
14
14
|
request.key,
|
15
15
|
environment: request.environment.to_s,
|
16
|
-
bucket_path: request.options[:bucket_path]
|
16
|
+
bucket_path: request.options[:bucket_path]
|
17
17
|
)
|
18
18
|
rescue Puppet::HTTP::ResponseError => e
|
19
19
|
return nil if e.response.code == 404
|
@@ -31,7 +31,7 @@ module Puppet::FileBucketFile
|
|
31
31
|
diff_with: request.options[:diff_with],
|
32
32
|
list_all: request.options[:list_all],
|
33
33
|
fromdate: request.options[:fromdate],
|
34
|
-
todate: request.options[:todate]
|
34
|
+
todate: request.options[:todate]
|
35
35
|
)
|
36
36
|
filebucket_file
|
37
37
|
rescue Puppet::HTTP::ResponseError => e
|
@@ -44,7 +44,7 @@ module Puppet::FileBucketFile
|
|
44
44
|
api.put_filebucket_file(
|
45
45
|
request.key,
|
46
46
|
body: request.instance.render,
|
47
|
-
environment: request.environment.to_s
|
47
|
+
environment: request.environment.to_s
|
48
48
|
)
|
49
49
|
rescue Puppet::HTTP::ResponseError => e
|
50
50
|
raise convert_to_http_error(e.response)
|
@@ -17,7 +17,7 @@ class Puppet::Indirector::FileContent::Rest < Puppet::Indirector::REST
|
|
17
17
|
|
18
18
|
api.get_file_content(
|
19
19
|
path: Puppet::Util.uri_unescape(url.path),
|
20
|
-
environment: request.environment.to_s
|
20
|
+
environment: request.environment.to_s
|
21
21
|
) do |data|
|
22
22
|
content << data
|
23
23
|
end
|
@@ -46,7 +46,7 @@ class Puppet::Indirector::FileMetadata::Rest < Puppet::Indirector::REST
|
|
46
46
|
ignore: request.options[:ignore],
|
47
47
|
links: request.options[:links],
|
48
48
|
checksum_type: request.options[:checksum_type],
|
49
|
-
source_permissions: request.options[:source_permissions]
|
49
|
+
source_permissions: request.options[:source_permissions]
|
50
50
|
)
|
51
51
|
file_metadatas
|
52
52
|
rescue Puppet::HTTP::ResponseError => e
|
@@ -9,7 +9,7 @@ require 'hiera/scope'
|
|
9
9
|
# Use `Puppet::DataBinding.indirection.terminus(:hiera)` instead.
|
10
10
|
class Puppet::Indirector::Hiera < Puppet::Indirector::Terminus
|
11
11
|
def initialize(*args)
|
12
|
-
|
12
|
+
unless Puppet.features.hiera?
|
13
13
|
# TRANSLATORS "Hiera" is the name of a code library and should not be translated
|
14
14
|
raise _("Hiera terminus not supported without hiera library")
|
15
15
|
end
|