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