puppet 8.5.1-universal-darwin → 8.7.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 +6 -2
- data/Gemfile.lock +55 -48
- data/Rakefile +45 -22
- data/examples/hiera/README.md +68 -57
- data/examples/hiera/data/common.yaml +12 -0
- data/examples/hiera/data/dc1.yaml +6 -0
- data/examples/hiera/hiera.yaml +15 -0
- data/examples/hiera/modules/ntp/data/common.yaml +4 -0
- data/examples/hiera/modules/ntp/hiera.yaml +9 -0
- data/examples/hiera/modules/ntp/manifests/config.pp +16 -4
- data/examples/hiera/modules/ntp/templates/ntp.conf.epp +3 -0
- data/examples/hiera/modules/users/manifests/common.pp +7 -2
- data/examples/hiera/modules/users/manifests/dc1.pp +7 -2
- data/examples/hiera/site.pp +1 -1
- data/ext/project_data.yaml +0 -45
- 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 +4 -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 +5 -5
- 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/module_data_provider.rb +9 -9
- 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/aix_object.rb +1 -1
- 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 +32 -11
- 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/xbps.rb +127 -0
- 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/scheduler/splay_job.rb +9 -0
- 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 +51 -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 +60 -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 +18 -19
- 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/com.rb +2 -2
- 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/locales/puppet.pot +604 -600
- 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 +23 -27
- data/examples/hiera/etc/hiera.yaml +0 -15
- data/examples/hiera/etc/hieradb/common.yaml +0 -3
- data/examples/hiera/etc/hieradb/dc1.yaml +0 -6
- data/examples/hiera/etc/hieradb/development.yaml +0 -2
- data/examples/hiera/etc/puppet.conf +0 -3
- data/examples/hiera/modules/data/manifests/common.pp +0 -4
- data/examples/hiera/modules/ntp/manifests/data.pp +0 -4
- data/examples/hiera/modules/ntp/templates/ntp.conf.erb +0 -3
- data/examples/hiera/modules/users/manifests/development.pp +0 -4
- data/tasks/benchmark.rake +0 -180
- data/tasks/cfpropertylist.rake +0 -15
- data/tasks/ci.rake +0 -24
- data/tasks/generate_ast_model.rake +0 -90
- data/tasks/generate_cert_fixtures.rake +0 -199
- data/tasks/manpages.rake +0 -67
- data/tasks/memwalk.rake +0 -195
- data/tasks/parallel.rake +0 -410
- data/tasks/parser.rake +0 -22
- data/tasks/yard.rake +0 -59
@@ -236,33 +236,41 @@ class Puppet::Graph::RbTreeMap
|
|
236
236
|
|
237
237
|
def rotate_left
|
238
238
|
r = @right
|
239
|
-
r_key
|
239
|
+
r_key = r.key
|
240
|
+
r_value = r.value
|
240
241
|
b = r.left
|
241
242
|
r.left = @left
|
242
243
|
@left = r
|
243
244
|
@right = r.right
|
244
245
|
r.right = b
|
245
|
-
r.color
|
246
|
-
|
246
|
+
r.color = :red
|
247
|
+
r.key = @key
|
248
|
+
r.value = @value
|
249
|
+
@key = r_key
|
250
|
+
@value = r_value
|
247
251
|
self
|
248
252
|
end
|
249
253
|
|
250
254
|
def rotate_right
|
251
255
|
l = @left
|
252
|
-
l_key
|
256
|
+
l_key = l.key
|
257
|
+
l_value = l.value
|
253
258
|
b = l.right
|
254
259
|
l.right = @right
|
255
260
|
@right = l
|
256
261
|
@left = l.left
|
257
262
|
l.left = b
|
258
|
-
l.color
|
259
|
-
|
263
|
+
l.color = :red
|
264
|
+
l.key = @key
|
265
|
+
l.value = @value
|
266
|
+
@key = l_key
|
267
|
+
@value = l_value
|
260
268
|
self
|
261
269
|
end
|
262
270
|
|
263
271
|
def move_red_left
|
264
272
|
colorflip
|
265
|
-
if
|
273
|
+
if @right.left && @right.left.red?
|
266
274
|
@right.rotate_right
|
267
275
|
rotate_left
|
268
276
|
colorflip
|
@@ -272,7 +280,7 @@ class Puppet::Graph::RbTreeMap
|
|
272
280
|
|
273
281
|
def move_red_right
|
274
282
|
colorflip
|
275
|
-
if
|
283
|
+
if @left.left && @left.left.red?
|
276
284
|
rotate_right
|
277
285
|
colorflip
|
278
286
|
end
|
@@ -300,15 +308,15 @@ class Puppet::Graph::RbTreeMap
|
|
300
308
|
|
301
309
|
def delete_recursive(node, key)
|
302
310
|
if (key <=> node.key) == -1
|
303
|
-
node.move_red_left if
|
311
|
+
node.move_red_left if !isred(node.left) && !isred(node.left.left)
|
304
312
|
node.left, result = delete_recursive(node.left, key)
|
305
313
|
else
|
306
314
|
node.rotate_right if isred(node.left)
|
307
|
-
if ((
|
315
|
+
if ((key <=> node.key) == 0) && node.right.nil?
|
308
316
|
return nil, node.value
|
309
317
|
end
|
310
318
|
|
311
|
-
if
|
319
|
+
if !isred(node.right) && !isred(node.right.left)
|
312
320
|
node.move_red_right
|
313
321
|
end
|
314
322
|
if (key <=> node.key) == 0
|
@@ -321,7 +329,7 @@ class Puppet::Graph::RbTreeMap
|
|
321
329
|
node.right, result = delete_recursive(node.right, key)
|
322
330
|
end
|
323
331
|
end
|
324
|
-
|
332
|
+
[node.fixup, result]
|
325
333
|
end
|
326
334
|
|
327
335
|
def delete_min_recursive(node)
|
@@ -329,35 +337,35 @@ class Puppet::Graph::RbTreeMap
|
|
329
337
|
return nil, node.value
|
330
338
|
end
|
331
339
|
|
332
|
-
if
|
340
|
+
if !isred(node.left) && !isred(node.left.left)
|
333
341
|
node.move_red_left
|
334
342
|
end
|
335
343
|
node.left, result = delete_min_recursive(node.left)
|
336
344
|
|
337
|
-
|
345
|
+
[node.fixup, result]
|
338
346
|
end
|
339
347
|
|
340
348
|
def delete_max_recursive(node)
|
341
|
-
if
|
349
|
+
if isred(node.left)
|
342
350
|
node = node.rotate_right
|
343
351
|
end
|
344
352
|
return nil, node.value if node.right.nil?
|
345
353
|
|
346
|
-
if
|
354
|
+
if !isred(node.right) && !isred(node.right.left)
|
347
355
|
node.move_red_right
|
348
356
|
end
|
349
357
|
node.right, result = delete_max_recursive(node.right)
|
350
358
|
|
351
|
-
|
359
|
+
[node.fixup, result]
|
352
360
|
end
|
353
361
|
|
354
362
|
def get_recursive(node, key)
|
355
363
|
return nil if node.nil?
|
356
364
|
|
357
365
|
case key <=> node.key
|
358
|
-
when 0 then
|
359
|
-
when -1 then
|
360
|
-
when 1 then
|
366
|
+
when 0 then node
|
367
|
+
when -1 then get_recursive(node.left, key)
|
368
|
+
when 1 then get_recursive(node.right, key)
|
361
369
|
end
|
362
370
|
end
|
363
371
|
|
@@ -385,9 +393,9 @@ class Puppet::Graph::RbTreeMap
|
|
385
393
|
when 1 then node.right = insert(node.right, key, value)
|
386
394
|
end
|
387
395
|
|
388
|
-
node.rotate_left if
|
389
|
-
node.rotate_right if
|
390
|
-
node.colorflip if
|
396
|
+
node.rotate_left if node.right && node.right.red?
|
397
|
+
node.rotate_right if node.left && node.left.red? && node.left.left && node.left.left.red?
|
398
|
+
node.colorflip if node.left && node.left.red? && node.right && node.right.red?
|
391
399
|
node
|
392
400
|
end
|
393
401
|
|
@@ -128,22 +128,22 @@ class Puppet::Graph::RelationshipGraph < Puppet::Graph::SimpleGraph
|
|
128
128
|
deferred_resources << resource
|
129
129
|
end
|
130
130
|
|
131
|
-
|
132
|
-
if made_progress
|
133
|
-
enqueue(*deferred_resources)
|
134
|
-
else
|
135
|
-
deferred_resources.each do |res|
|
136
|
-
overly_deferred_resource_handler.call(res)
|
137
|
-
finish(res)
|
138
|
-
end
|
139
|
-
end
|
131
|
+
next unless @ready.empty? and deferred_resources.any?
|
140
132
|
|
141
|
-
|
142
|
-
deferred_resources
|
133
|
+
if made_progress
|
134
|
+
enqueue(*deferred_resources)
|
135
|
+
else
|
136
|
+
deferred_resources.each do |res|
|
137
|
+
overly_deferred_resource_handler.call(res)
|
138
|
+
finish(res)
|
139
|
+
end
|
143
140
|
end
|
141
|
+
|
142
|
+
made_progress = false
|
143
|
+
deferred_resources = []
|
144
144
|
end
|
145
145
|
|
146
|
-
|
146
|
+
unless continue_while.call()
|
147
147
|
while (resource = next_resource)
|
148
148
|
canceled_resource_handler.call(resource)
|
149
149
|
finish(resource)
|
@@ -106,7 +106,7 @@ class Puppet::Graph::SimpleGraph
|
|
106
106
|
# decent Ruby stack.
|
107
107
|
recur = [{ :node => root }]
|
108
108
|
|
109
|
-
|
109
|
+
until recur.empty?
|
110
110
|
frame = recur.last
|
111
111
|
vertex = frame[:node]
|
112
112
|
|
@@ -171,7 +171,7 @@ class Puppet::Graph::SimpleGraph
|
|
171
171
|
|
172
172
|
# we usually have a disconnected graph, must walk all possible roots
|
173
173
|
vertices.each do |vertex|
|
174
|
-
|
174
|
+
unless state[:index][vertex] then
|
175
175
|
tarjan vertex, state
|
176
176
|
end
|
177
177
|
end
|
@@ -186,9 +186,7 @@ class Puppet::Graph::SimpleGraph
|
|
186
186
|
# time-scale.
|
187
187
|
state[:scc].select do |component|
|
188
188
|
multi_vertex_component?(component) || single_vertex_referring_to_self?(component)
|
189
|
-
end.map
|
190
|
-
component.sort
|
191
|
-
end.sort
|
189
|
+
end.map(&:sort).sort
|
192
190
|
end
|
193
191
|
|
194
192
|
# Perform a BFS on the sub graph representing the cycle, with a view to
|
@@ -212,7 +210,7 @@ class Puppet::Graph::SimpleGraph
|
|
212
210
|
|
213
211
|
# frame struct is vertex, [path]
|
214
212
|
stack = [[cycle.first, []]]
|
215
|
-
while frame = stack.shift
|
213
|
+
while frame = stack.shift # rubocop:disable Lint/AssignmentInCondition
|
216
214
|
if frame[1].member?(frame[0]) then
|
217
215
|
found << frame[1] + [frame[0]]
|
218
216
|
break if found.length >= max_paths
|
@@ -223,7 +221,7 @@ class Puppet::Graph::SimpleGraph
|
|
223
221
|
end
|
224
222
|
end
|
225
223
|
|
226
|
-
|
224
|
+
found.sort
|
227
225
|
end
|
228
226
|
|
229
227
|
# @return [Array] array of dependency cycles (arrays)
|
@@ -268,7 +266,7 @@ class Puppet::Graph::SimpleGraph
|
|
268
266
|
filename = File.join(Puppet[:graphdir], "cycles.dot")
|
269
267
|
# DOT files are assumed to be UTF-8 by default - http://www.graphviz.org/doc/info/lang.html
|
270
268
|
File.open(filename, "w:UTF-8") { |f| f.puts graph }
|
271
|
-
|
269
|
+
filename
|
272
270
|
end
|
273
271
|
|
274
272
|
# Add a new vertex to the graph.
|
@@ -330,7 +328,7 @@ class Puppet::Graph::SimpleGraph
|
|
330
328
|
end
|
331
329
|
|
332
330
|
def edges
|
333
|
-
@in_to.values.collect
|
331
|
+
@in_to.values.collect(&:values).flatten
|
334
332
|
end
|
335
333
|
|
336
334
|
def each_edge
|
@@ -449,7 +447,7 @@ class Puppet::Graph::SimpleGraph
|
|
449
447
|
# which match +dot+ properties will be used as well.
|
450
448
|
def to_dot_graph(params = {})
|
451
449
|
params['name'] ||= self.class.name.tr(':', '_')
|
452
|
-
fontsize = params['fontsize']
|
450
|
+
fontsize = params['fontsize'] || '8'
|
453
451
|
graph = (directed? ? DOT::DOTDigraph : DOT::DOTSubgraph).new(params)
|
454
452
|
edge_klass = directed? ? DOT::DOTDirectedEdge : DOT::DOTEdge
|
455
453
|
vertices.each do |v|
|
data/lib/puppet/http/client.rb
CHANGED
data/lib/puppet/http/dns.rb
CHANGED
@@ -41,7 +41,7 @@ module Puppet::HTTP
|
|
41
41
|
# @param [Symbol] service_name the key of the service we are querying
|
42
42
|
# @yields [String, Integer] server and port of selected record
|
43
43
|
def each_srv_record(domain, service_name = :puppet, &block)
|
44
|
-
if
|
44
|
+
if domain.nil? or domain.empty?
|
45
45
|
Puppet.debug "Domain not known; skipping SRV lookup"
|
46
46
|
return
|
47
47
|
end
|
@@ -118,7 +118,7 @@ module Puppet::HTTP
|
|
118
118
|
# @param [String] service_name the service whose TTL we want
|
119
119
|
# @return [Integer] the TTL for this service, in seconds
|
120
120
|
def ttl(service_name)
|
121
|
-
|
121
|
+
@record_cache[service_name].ttl
|
122
122
|
end
|
123
123
|
|
124
124
|
# Checks if the cached entry for the given service has expired.
|
@@ -128,9 +128,9 @@ module Puppet::HTTP
|
|
128
128
|
def expired?(service_name)
|
129
129
|
entry = @record_cache[service_name]
|
130
130
|
if entry
|
131
|
-
|
131
|
+
Time.now > (entry.resolution_time + entry.ttl)
|
132
132
|
else
|
133
|
-
|
133
|
+
true
|
134
134
|
end
|
135
135
|
end
|
136
136
|
|
@@ -39,7 +39,7 @@ class Puppet::HTTP::ExternalClient < Puppet::HTTP::Client
|
|
39
39
|
# (see Puppet::HTTP::Client#post)
|
40
40
|
# @api private
|
41
41
|
def post(url, body, headers: {}, params: {}, options: {}, &block)
|
42
|
-
raise ArgumentError
|
42
|
+
raise ArgumentError, "'post' requires a string 'body' argument" unless body.is_a?(String)
|
43
43
|
|
44
44
|
url = encode_query(url, params)
|
45
45
|
|
data/lib/puppet/http/factory.rb
CHANGED
data/lib/puppet/http/proxy.rb
CHANGED
@@ -6,7 +6,7 @@ require_relative '../../puppet/ssl/openssl_loader'
|
|
6
6
|
module Puppet::HTTP::Proxy
|
7
7
|
def self.proxy(uri)
|
8
8
|
if http_proxy_host && !no_proxy?(uri)
|
9
|
-
Net::HTTP.new(uri.host, uri.port,
|
9
|
+
Net::HTTP.new(uri.host, uri.port, http_proxy_host, http_proxy_port, http_proxy_user, http_proxy_password)
|
10
10
|
else
|
11
11
|
http = Net::HTTP.new(uri.host, uri.port, nil, nil, nil, nil)
|
12
12
|
# Net::HTTP defaults the proxy port even though we said not to
|
@@ -24,7 +24,7 @@ module Puppet::HTTP::Proxy
|
|
24
24
|
rescue URI::InvalidURIError
|
25
25
|
return nil
|
26
26
|
end
|
27
|
-
|
27
|
+
nil
|
28
28
|
end
|
29
29
|
|
30
30
|
# The documentation around the format of the no_proxy variable seems
|
@@ -56,11 +56,11 @@ module Puppet::HTTP::Proxy
|
|
56
56
|
# If this no_proxy entry specifies a port, we want to match it against
|
57
57
|
# the destination port. Otherwise just match hosts.
|
58
58
|
if port
|
59
|
-
no_proxy_regex =
|
59
|
+
no_proxy_regex = /#{host}:#{port}$/
|
60
60
|
dest_string = "#{dest.host}:#{dest.port}"
|
61
61
|
else
|
62
|
-
no_proxy_regex =
|
63
|
-
dest_string =
|
62
|
+
no_proxy_regex = /#{host}$/
|
63
|
+
dest_string = dest.host.to_s
|
64
64
|
end
|
65
65
|
|
66
66
|
if no_proxy_regex.match(dest_string)
|
@@ -68,11 +68,11 @@ module Puppet::HTTP::Proxy
|
|
68
68
|
end
|
69
69
|
end
|
70
70
|
|
71
|
-
|
71
|
+
false
|
72
72
|
end
|
73
73
|
|
74
74
|
def self.http_proxy_host
|
75
|
-
env =
|
75
|
+
env = http_proxy_env
|
76
76
|
|
77
77
|
if env and env.host
|
78
78
|
return env.host
|
@@ -82,21 +82,21 @@ module Puppet::HTTP::Proxy
|
|
82
82
|
return nil
|
83
83
|
end
|
84
84
|
|
85
|
-
|
85
|
+
Puppet.settings[:http_proxy_host]
|
86
86
|
end
|
87
87
|
|
88
88
|
def self.http_proxy_port
|
89
|
-
env =
|
89
|
+
env = http_proxy_env
|
90
90
|
|
91
91
|
if env and env.port
|
92
92
|
return env.port
|
93
93
|
end
|
94
94
|
|
95
|
-
|
95
|
+
Puppet.settings[:http_proxy_port]
|
96
96
|
end
|
97
97
|
|
98
98
|
def self.http_proxy_user
|
99
|
-
env =
|
99
|
+
env = http_proxy_env
|
100
100
|
|
101
101
|
if env and env.user
|
102
102
|
return env.user
|
@@ -106,11 +106,11 @@ module Puppet::HTTP::Proxy
|
|
106
106
|
return nil
|
107
107
|
end
|
108
108
|
|
109
|
-
|
109
|
+
Puppet.settings[:http_proxy_user]
|
110
110
|
end
|
111
111
|
|
112
112
|
def self.http_proxy_password
|
113
|
-
env =
|
113
|
+
env = http_proxy_env
|
114
114
|
|
115
115
|
if env and env.password
|
116
116
|
return env.password
|
@@ -120,7 +120,7 @@ module Puppet::HTTP::Proxy
|
|
120
120
|
return nil
|
121
121
|
end
|
122
122
|
|
123
|
-
|
123
|
+
Puppet.settings[:http_proxy_password]
|
124
124
|
end
|
125
125
|
|
126
126
|
def self.no_proxy
|
@@ -134,6 +134,6 @@ module Puppet::HTTP::Proxy
|
|
134
134
|
return nil
|
135
135
|
end
|
136
136
|
|
137
|
-
|
137
|
+
Puppet.settings[:no_proxy]
|
138
138
|
end
|
139
139
|
end
|
@@ -43,7 +43,7 @@ class Puppet::HTTP::Redirector
|
|
43
43
|
#
|
44
44
|
# @api private
|
45
45
|
def redirect_to(request, response, redirects)
|
46
|
-
raise Puppet::HTTP::TooManyRedirects
|
46
|
+
raise Puppet::HTTP::TooManyRedirects, request.uri if redirects >= @redirect_limit
|
47
47
|
|
48
48
|
location = parse_location(response)
|
49
49
|
url = request.uri.merge(location)
|
@@ -56,6 +56,10 @@ class Puppet::HTTP::Redirector
|
|
56
56
|
next if header.casecmp('Authorization').zero? && request.uri.host.casecmp(location.host) != 0
|
57
57
|
next if header.casecmp('Cookie').zero? && request.uri.host.casecmp(location.host) != 0
|
58
58
|
end
|
59
|
+
# Allow Net::HTTP to set its own Accept-Encoding header to avoid errors with HTTP compression.
|
60
|
+
# See https://github.com/puppetlabs/puppet/issues/9143
|
61
|
+
next if header.casecmp('Accept-Encoding').zero?
|
62
|
+
|
59
63
|
new_request[header] = value
|
60
64
|
end
|
61
65
|
|
@@ -74,7 +78,7 @@ class Puppet::HTTP::Redirector
|
|
74
78
|
|
75
79
|
def parse_location(response)
|
76
80
|
location = response['location']
|
77
|
-
raise Puppet::HTTP::ProtocolError
|
81
|
+
raise Puppet::HTTP::ProtocolError, _("Location response header is missing") unless location
|
78
82
|
|
79
83
|
URI.parse(location)
|
80
84
|
rescue URI::InvalidURIError => e
|
data/lib/puppet/http/resolver.rb
CHANGED
@@ -42,9 +42,9 @@ class Puppet::HTTP::Resolver
|
|
42
42
|
# @api public
|
43
43
|
def check_connection?(session, service, ssl_context: nil)
|
44
44
|
service.connect(ssl_context: ssl_context)
|
45
|
-
|
45
|
+
true
|
46
46
|
rescue Puppet::HTTP::ConnectionError => e
|
47
47
|
Puppet.log_exception(e, "Connection to #{service.url} failed, trying next route: #{e.message}")
|
48
|
-
|
48
|
+
false
|
49
49
|
end
|
50
50
|
end
|
@@ -48,7 +48,7 @@ class Puppet::HTTP::RetryAfterHandler
|
|
48
48
|
#
|
49
49
|
# @api private
|
50
50
|
def retry_after_interval(request, response, retries)
|
51
|
-
raise Puppet::HTTP::TooManyRetryAfters
|
51
|
+
raise Puppet::HTTP::TooManyRetryAfters, request.uri if retries >= @retry_limit
|
52
52
|
|
53
53
|
retry_after = response['Retry-After']
|
54
54
|
return nil unless retry_after
|
@@ -72,7 +72,7 @@ class Puppet::HTTP::RetryAfterHandler
|
|
72
72
|
seconds = (tm.to_time - DateTime.now.to_time).to_i
|
73
73
|
[seconds, 0].max
|
74
74
|
rescue ArgumentError
|
75
|
-
raise Puppet::HTTP::ProtocolError
|
75
|
+
raise Puppet::HTTP::ProtocolError, _("Failed to parse Retry-After header '%{retry_after}' as an integer or RFC 2822 date") % { retry_after: retry_after }
|
76
76
|
end
|
77
77
|
end
|
78
78
|
end
|
@@ -124,7 +124,7 @@ class Puppet::HTTP::Service::Ca < Puppet::HTTP::Service
|
|
124
124
|
options: { ssl_context: ssl_context }
|
125
125
|
)
|
126
126
|
|
127
|
-
raise ArgumentError
|
127
|
+
raise ArgumentError, _('SSL context must contain a client certificate.') unless ssl_context.client_cert
|
128
128
|
|
129
129
|
process_response(response)
|
130
130
|
|
@@ -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
|