puppet 6.15.0-universal-darwin → 6.19.1-universal-darwin
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CODEOWNERS +2 -7
- data/Gemfile +4 -2
- data/Gemfile.lock +29 -27
- data/README.md +3 -4
- data/Rakefile +4 -12
- data/lib/puppet.rb +32 -8
- data/lib/puppet/agent.rb +18 -4
- data/lib/puppet/agent/locker.rb +0 -7
- data/lib/puppet/application/agent.rb +23 -8
- data/lib/puppet/application/apply.rb +18 -20
- data/lib/puppet/application/device.rb +1 -1
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/lookup.rb +16 -4
- data/lib/puppet/application/plugin.rb +1 -0
- data/lib/puppet/application/ssl.rb +1 -1
- data/lib/puppet/configurer.rb +61 -21
- data/lib/puppet/configurer/downloader.rb +31 -10
- data/lib/puppet/confine.rb +2 -2
- data/lib/puppet/confine/any.rb +1 -1
- data/lib/puppet/context/trusted_information.rb +14 -8
- data/lib/puppet/daemon.rb +13 -27
- data/lib/puppet/defaults.rb +119 -39
- data/lib/puppet/environments.rb +51 -10
- data/lib/puppet/face/catalog.rb +1 -1
- data/lib/puppet/face/config.rb +46 -16
- data/lib/puppet/face/facts.rb +1 -1
- data/lib/puppet/face/help.rb +29 -3
- data/lib/puppet/face/module/search.rb +5 -0
- data/lib/puppet/face/node.rb +3 -3
- data/lib/puppet/face/node/clean.rb +2 -2
- data/lib/puppet/face/plugin.rb +1 -1
- data/lib/puppet/face/status.rb +1 -1
- data/lib/puppet/feature/base.rb +1 -1
- data/lib/puppet/file_bucket/dipper.rb +1 -1
- data/lib/puppet/file_serving/http_metadata.rb +14 -2
- data/lib/puppet/file_serving/metadata.rb +4 -1
- data/lib/puppet/file_serving/mount/locales.rb +1 -2
- data/lib/puppet/file_serving/mount/pluginfacts.rb +1 -2
- data/lib/puppet/file_serving/mount/plugins.rb +1 -2
- data/lib/puppet/file_serving/terminus_selector.rb +7 -8
- data/lib/puppet/file_system/file_impl.rb +4 -4
- data/lib/puppet/file_system/uniquefile.rb +12 -16
- data/lib/puppet/forge.rb +1 -1
- data/lib/puppet/forge/cache.rb +1 -1
- data/lib/puppet/forge/repository.rb +4 -7
- data/lib/puppet/functions/filter.rb +1 -0
- data/lib/puppet/functions/lstrip.rb +4 -4
- data/lib/puppet/functions/new.rb +8 -3
- data/lib/puppet/functions/reverse_each.rb +1 -1
- data/lib/puppet/functions/rstrip.rb +4 -4
- data/lib/puppet/functions/step.rb +1 -1
- data/lib/puppet/functions/strip.rb +4 -4
- data/lib/puppet/gettext/config.rb +5 -5
- data/lib/puppet/gettext/module_translations.rb +4 -4
- data/lib/puppet/http.rb +1 -0
- data/lib/puppet/http/client.rb +28 -12
- data/lib/puppet/http/external_client.rb +0 -6
- data/lib/puppet/http/redirector.rb +9 -7
- data/lib/puppet/http/resolver.rb +5 -8
- data/lib/puppet/http/resolver/server_list.rb +18 -36
- data/lib/puppet/http/resolver/settings.rb +4 -4
- data/lib/puppet/http/resolver/srv.rb +5 -5
- data/lib/puppet/http/response.rb +19 -0
- data/lib/puppet/http/service.rb +3 -1
- data/lib/puppet/http/service/compiler.rb +1 -1
- data/lib/puppet/http/service/file_server.rb +1 -1
- data/lib/puppet/http/service/puppetserver.rb +39 -0
- data/lib/puppet/http/session.rb +5 -4
- data/lib/puppet/indirector.rb +1 -1
- data/lib/puppet/indirector/catalog/compiler.rb +1 -1
- data/lib/puppet/indirector/exec.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +3 -3
- data/lib/puppet/indirector/facts/yaml.rb +1 -1
- data/lib/puppet/indirector/file_content/http.rb +5 -0
- data/lib/puppet/indirector/file_content/rest.rb +1 -1
- data/lib/puppet/indirector/file_metadata/http.rb +28 -8
- data/lib/puppet/indirector/file_metadata/rest.rb +2 -2
- data/lib/puppet/indirector/hiera.rb +4 -0
- data/lib/puppet/indirector/indirection.rb +1 -1
- data/lib/puppet/indirector/json.rb +1 -1
- data/lib/puppet/indirector/msgpack.rb +1 -1
- data/lib/puppet/indirector/report/processor.rb +2 -2
- data/lib/puppet/indirector/request.rb +5 -5
- data/lib/puppet/indirector/rest.rb +7 -1
- data/lib/puppet/indirector/yaml.rb +1 -1
- data/lib/puppet/module.rb +1 -2
- data/lib/puppet/network/format_support.rb +2 -2
- data/lib/puppet/network/http/api/indirected_routes.rb +1 -1
- data/lib/puppet/network/http/api/master/v3/environment.rb +3 -0
- data/lib/puppet/network/http/api/master/v3/environments.rb +0 -1
- data/lib/puppet/network/http/compression.rb +7 -0
- data/lib/puppet/network/http/connection.rb +2 -0
- data/lib/puppet/network/http/connection_adapter.rb +184 -0
- data/lib/puppet/network/http/nocache_pool.rb +1 -0
- data/lib/puppet/network/http/route.rb +2 -2
- data/lib/puppet/network/http_pool.rb +2 -2
- data/lib/puppet/node/environment.rb +12 -5
- data/lib/puppet/node/facts.rb +17 -0
- data/lib/puppet/pal/catalog_compiler.rb +5 -0
- data/lib/puppet/pal/pal_impl.rb +31 -4
- data/lib/puppet/parameter.rb +1 -1
- data/lib/puppet/parser/ast/leaf.rb +5 -5
- data/lib/puppet/parser/ast/pops_bridge.rb +0 -4
- data/lib/puppet/parser/compiler.rb +29 -26
- data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +2 -0
- data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +2 -0
- data/lib/puppet/parser/environment_compiler.rb +4 -1
- data/lib/puppet/parser/functions.rb +21 -17
- data/lib/puppet/parser/functions/create_resources.rb +11 -7
- data/lib/puppet/parser/functions/filter.rb +1 -0
- data/lib/puppet/parser/resource.rb +3 -2
- data/lib/puppet/parser/resource/param.rb +6 -0
- data/lib/puppet/parser/type_loader.rb +2 -2
- data/lib/puppet/pops/adaptable.rb +7 -13
- data/lib/puppet/pops/adapters.rb +8 -4
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -3
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +5 -5
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +2 -2
- data/lib/puppet/pops/issues.rb +5 -0
- data/lib/puppet/pops/loader/runtime3_type_loader.rb +4 -2
- data/lib/puppet/pops/loaders.rb +18 -11
- data/lib/puppet/pops/lookup/context.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +14 -1
- data/lib/puppet/pops/resource/resource_type_impl.rb +2 -0
- data/lib/puppet/pops/types/iterable.rb +34 -8
- data/lib/puppet/pops/types/p_meta_type.rb +1 -1
- data/lib/puppet/pops/types/p_type_set_type.rb +4 -0
- data/lib/puppet/pops/validation/checker4_0.rb +29 -15
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -0
- data/lib/puppet/provider/file/windows.rb +1 -1
- data/lib/puppet/provider/package/aix.rb +17 -2
- data/lib/puppet/provider/package/apt.rb +38 -1
- data/lib/puppet/provider/package/aptitude.rb +1 -1
- data/lib/puppet/provider/package/dnfmodule.rb +24 -4
- data/lib/puppet/provider/package/dpkg.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +4 -2
- data/lib/puppet/provider/package/pip.rb +60 -37
- data/lib/puppet/provider/package/pip2.rb +17 -0
- data/lib/puppet/provider/package/portage.rb +2 -2
- data/lib/puppet/provider/package/puppet_gem.rb +5 -0
- data/lib/puppet/provider/package/puppetserver_gem.rb +180 -0
- data/lib/puppet/provider/package/yum.rb +9 -1
- data/lib/puppet/provider/package/zypper.rb +62 -1
- data/lib/puppet/provider/service/systemd.rb +21 -4
- data/lib/puppet/provider/service/windows.rb +23 -7
- data/lib/puppet/provider/user/aix.rb +1 -1
- data/lib/puppet/provider/user/user_role_add.rb +1 -1
- data/lib/puppet/provider/user/useradd.rb +16 -5
- data/lib/puppet/provider/user/windows_adsi.rb +18 -1
- data/lib/puppet/reports/http.rb +7 -3
- data/lib/puppet/resource.rb +2 -1
- data/lib/puppet/resource/type.rb +10 -1
- data/lib/puppet/rest/route.rb +2 -2
- data/lib/puppet/runtime.rb +25 -2
- data/lib/puppet/settings.rb +43 -6
- data/lib/puppet/ssl/ssl_context.rb +2 -2
- data/lib/puppet/ssl/ssl_provider.rb +20 -1
- data/lib/puppet/ssl/state_machine.rb +33 -8
- data/lib/puppet/ssl/validator/default_validator.rb +1 -1
- data/lib/puppet/ssl/verifier_adapter.rb +9 -1
- data/lib/puppet/test/test_helper.rb +19 -14
- data/lib/puppet/transaction.rb +2 -2
- data/lib/puppet/transaction/persistence.rb +1 -1
- data/lib/puppet/transaction/report.rb +12 -8
- data/lib/puppet/trusted_external.rb +29 -1
- data/lib/puppet/type.rb +15 -7
- data/lib/puppet/type/file.rb +40 -15
- data/lib/puppet/type/file/checksum.rb +4 -4
- data/lib/puppet/type/file/source.rb +33 -13
- data/lib/puppet/type/filebucket.rb +1 -1
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/package.rb +16 -1
- data/lib/puppet/type/service.rb +59 -8
- data/lib/puppet/type/user.rb +19 -10
- data/lib/puppet/util.rb +41 -3
- data/lib/puppet/util/autoload.rb +10 -25
- data/lib/puppet/util/character_encoding.rb +9 -5
- data/lib/puppet/util/checksums.rb +19 -4
- data/lib/puppet/util/connection.rb +8 -8
- data/lib/puppet/util/execution.rb +2 -2
- data/lib/puppet/util/fileparsing.rb +2 -2
- data/lib/puppet/util/log/destinations.rb +1 -10
- data/lib/puppet/util/package/version/range.rb +4 -1
- data/lib/puppet/util/package/version/range/eq.rb +14 -0
- data/lib/puppet/util/provider_features.rb +1 -1
- data/lib/puppet/util/reference.rb +1 -1
- data/lib/puppet/util/run_mode.rb +5 -1
- data/lib/puppet/util/windows.rb +1 -0
- data/lib/puppet/util/windows/api_types.rb +60 -33
- data/lib/puppet/util/windows/eventlog.rb +1 -6
- data/lib/puppet/util/windows/monkey_patches/dir.rb +40 -0
- data/lib/puppet/util/windows/principal.rb +8 -6
- data/lib/puppet/util/windows/registry.rb +11 -11
- data/lib/puppet/util/windows/security.rb +4 -4
- data/lib/puppet/util/windows/service.rb +43 -26
- data/lib/puppet/util/windows/user.rb +242 -8
- data/lib/puppet/version.rb +1 -1
- data/locales/puppet.pot +541 -427
- data/man/man5/puppet.conf.5 +84 -19
- data/man/man8/puppet-agent.8 +7 -4
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +6 -6
- 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 +6 -3
- data/man/man8/puppet-key.8 +1 -1
- data/man/man8/puppet-lookup.8 +2 -2
- data/man/man8/puppet-man.8 +1 -1
- data/man/man8/puppet-module.8 +4 -1
- data/man/man8/puppet-node.8 +4 -4
- 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 +1 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet-status.8 +2 -2
- data/man/man8/puppet.8 +2 -2
- data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/provider/applytest/applytest.rb +2 -0
- data/spec/fixtures/integration/application/apply/environments/spec/modules/amod/lib/puppet/type/applytest.rb +25 -0
- data/spec/fixtures/unit/forge/bacula-releases.json +128 -0
- data/spec/fixtures/unit/forge/bacula.tar.gz +0 -0
- data/spec/fixtures/unit/provider/package/dnfmodule/{dnf-module-list-enabled.txt → dnf-module-list.txt} +6 -0
- data/spec/fixtures/unit/provider/package/puppetserver_gem/gem-list-local-packages +30 -0
- data/spec/fixtures/unit/provider/package/zypper/zypper-search-uninstalled.out +13 -0
- data/spec/integration/application/agent_spec.rb +202 -52
- data/spec/integration/application/apply_spec.rb +149 -149
- data/spec/integration/application/config_spec.rb +74 -0
- data/spec/integration/application/doc_spec.rb +16 -6
- data/spec/integration/application/filebucket_spec.rb +70 -21
- data/spec/integration/application/help_spec.rb +42 -0
- data/spec/integration/application/lookup_spec.rb +13 -0
- data/spec/integration/application/module_spec.rb +68 -0
- data/spec/integration/application/plugin_spec.rb +75 -2
- data/spec/integration/configurer_spec.rb +14 -0
- data/spec/integration/data_binding_spec.rb +82 -0
- data/spec/integration/defaults_spec.rb +27 -3
- data/spec/integration/directory_environments_spec.rb +17 -17
- data/spec/integration/http/client_spec.rb +6 -1
- data/spec/integration/indirector/facts/facter_spec.rb +8 -6
- data/spec/integration/network/http_pool_spec.rb +73 -0
- data/spec/integration/node/environment_spec.rb +1 -1
- data/spec/integration/parser/compiler_spec.rb +11 -0
- data/spec/integration/type/file_spec.rb +1 -1
- data/spec/integration/util/execution_spec.rb +22 -0
- data/spec/integration/util/windows/adsi_spec.rb +7 -2
- data/spec/integration/util/windows/monkey_patches/dir_spec.rb +11 -0
- data/spec/integration/util/windows/process_spec.rb +26 -32
- data/spec/integration/util/windows/registry_spec.rb +7 -7
- data/spec/integration/util/windows/user_spec.rb +47 -5
- data/spec/integration/util_spec.rb +7 -33
- data/spec/lib/puppet_spec/https.rb +6 -0
- data/spec/lib/puppet_spec/matchers.rb +0 -80
- data/spec/lib/puppet_spec/puppetserver.rb +8 -0
- data/spec/shared_contexts/types_setup.rb +2 -0
- data/spec/unit/agent_spec.rb +47 -1
- data/spec/unit/application/agent_spec.rb +7 -8
- data/spec/unit/application/doc_spec.rb +2 -2
- data/spec/unit/application/face_base_spec.rb +6 -4
- data/spec/unit/application/facts_spec.rb +41 -10
- data/spec/unit/application/man_spec.rb +52 -0
- data/spec/unit/application/resource_spec.rb +3 -1
- data/spec/unit/application/ssl_spec.rb +15 -2
- data/spec/unit/application_spec.rb +9 -4
- data/spec/unit/configurer/downloader_spec.rb +10 -0
- data/spec/unit/configurer/fact_handler_spec.rb +4 -4
- data/spec/unit/configurer_spec.rb +86 -37
- data/spec/unit/confine_spec.rb +2 -1
- data/spec/unit/context/trusted_information_spec.rb +25 -2
- data/spec/unit/daemon_spec.rb +5 -64
- data/spec/unit/environments_spec.rb +99 -32
- data/spec/unit/face/config_spec.rb +59 -1
- data/spec/unit/face/module/search_spec.rb +17 -0
- data/spec/unit/face/node_spec.rb +2 -2
- data/spec/unit/file_serving/http_metadata_spec.rb +37 -14
- data/spec/unit/file_serving/mount/locales_spec.rb +2 -2
- data/spec/unit/file_serving/mount/pluginfacts_spec.rb +2 -2
- data/spec/unit/file_serving/mount/plugins_spec.rb +2 -2
- data/spec/unit/file_serving/terminus_selector_spec.rb +45 -26
- data/spec/unit/file_system/uniquefile_spec.rb +29 -0
- data/spec/unit/file_system_spec.rb +1 -2
- data/spec/unit/http/client_spec.rb +74 -19
- data/spec/unit/http/external_client_spec.rb +9 -9
- data/spec/unit/http/resolver_spec.rb +24 -5
- data/spec/unit/http/response_spec.rb +6 -0
- data/spec/unit/http/service/ca_spec.rb +2 -3
- data/spec/unit/http/service/compiler_spec.rb +2 -3
- data/spec/unit/http/service/file_server_spec.rb +2 -3
- data/spec/unit/http/service/puppetserver_spec.rb +82 -0
- data/spec/unit/http/service/report_spec.rb +2 -3
- data/spec/unit/http/service_spec.rb +0 -1
- data/spec/unit/http/session_spec.rb +8 -21
- data/spec/unit/indirector/catalog/compiler_spec.rb +1 -0
- data/spec/unit/indirector/catalog/json_spec.rb +1 -1
- data/spec/unit/indirector/catalog/rest_spec.rb +1 -1
- data/spec/unit/indirector/facts/rest_spec.rb +1 -1
- data/spec/unit/indirector/file_metadata/http_spec.rb +194 -0
- data/spec/unit/indirector/file_metadata/rest_spec.rb +15 -14
- data/spec/unit/indirector/json_spec.rb +8 -8
- data/spec/unit/indirector/msgpack_spec.rb +8 -8
- data/spec/unit/indirector/node/rest_spec.rb +1 -1
- data/spec/unit/indirector/request_spec.rb +5 -5
- data/spec/unit/indirector/rest_spec.rb +14 -1
- data/spec/unit/indirector/status/rest_spec.rb +1 -1
- data/spec/unit/indirector/yaml_spec.rb +7 -7
- data/spec/unit/interface_spec.rb +3 -3
- data/spec/unit/module_tool/tar/mini_spec.rb +20 -0
- data/spec/unit/network/format_support_spec.rb +3 -2
- data/spec/unit/network/http/api/indirected_routes_spec.rb +2 -1
- data/spec/unit/network/http/api/master/v3/environments_spec.rb +12 -23
- data/spec/unit/network/http/connection_spec.rb +552 -190
- data/spec/unit/network/http/nocache_pool_spec.rb +22 -0
- data/spec/unit/network/http_pool_spec.rb +63 -57
- data/spec/unit/network/http_spec.rb +1 -1
- data/spec/unit/node/environment_spec.rb +18 -1
- data/spec/unit/parser/ast/block_expression_spec.rb +1 -1
- data/spec/unit/parser/environment_compiler_spec.rb +7 -0
- data/spec/unit/parser/scope_spec.rb +1 -1
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +15 -1
- data/spec/unit/pops/loaders/loaders_spec.rb +71 -1
- data/spec/unit/pops/lookup/lookup_spec.rb +25 -0
- data/spec/unit/pops/types/type_calculator_spec.rb +1 -11
- data/spec/unit/provider/exec_spec.rb +4 -3
- data/spec/unit/provider/package/aix_spec.rb +29 -0
- data/spec/unit/provider/package/apt_spec.rb +77 -0
- data/spec/unit/provider/package/aptitude_spec.rb +1 -0
- data/spec/unit/provider/package/dnfmodule_spec.rb +25 -5
- data/spec/unit/provider/package/dpkg_spec.rb +22 -7
- data/spec/unit/provider/package/openbsd_spec.rb +2 -0
- data/spec/unit/provider/package/pip2_spec.rb +36 -0
- data/spec/unit/provider/package/pip_spec.rb +42 -16
- data/spec/unit/provider/package/portage_spec.rb +5 -0
- data/spec/unit/provider/package/puppet_gem_spec.rb +4 -1
- data/spec/unit/provider/package/puppetserver_gem_spec.rb +137 -0
- data/spec/unit/provider/package/yum_spec.rb +47 -8
- data/spec/unit/provider/package/zypper_spec.rb +98 -0
- data/spec/unit/provider/service/base_spec.rb +2 -4
- data/spec/unit/provider/service/bsd_spec.rb +5 -1
- data/spec/unit/provider/service/daemontools_spec.rb +1 -1
- data/spec/unit/provider/service/debian_spec.rb +3 -5
- data/spec/unit/provider/service/freebsd_spec.rb +1 -1
- data/spec/unit/provider/service/gentoo_spec.rb +4 -5
- data/spec/unit/provider/service/init_spec.rb +46 -5
- data/spec/unit/provider/service/launchd_spec.rb +5 -6
- data/spec/unit/provider/service/openbsd_spec.rb +9 -0
- data/spec/unit/provider/service/openrc_spec.rb +4 -5
- data/spec/unit/provider/service/openwrt_spec.rb +2 -1
- data/spec/unit/provider/service/redhat_spec.rb +10 -1
- data/spec/unit/provider/service/runit_spec.rb +2 -1
- data/spec/unit/provider/service/smf_spec.rb +1 -1
- data/spec/unit/provider/service/src_spec.rb +3 -5
- data/spec/unit/provider/service/systemd_spec.rb +87 -19
- data/spec/unit/provider/service/upstart_spec.rb +4 -5
- data/spec/unit/provider/service/windows_spec.rb +50 -14
- data/spec/unit/provider/user/openbsd_spec.rb +1 -0
- data/spec/unit/provider/user/useradd_spec.rb +30 -16
- data/spec/unit/provider/user/windows_adsi_spec.rb +82 -0
- data/spec/unit/puppet_pal_2pec.rb +40 -0
- data/spec/unit/puppet_pal_catalog_spec.rb +43 -0
- data/spec/unit/puppet_spec.rb +33 -0
- data/spec/unit/reports/http_spec.rb +1 -1
- data/spec/unit/reports/store_spec.rb +17 -13
- data/spec/unit/resource_spec.rb +3 -3
- data/spec/unit/rest/route_spec.rb +4 -4
- data/spec/unit/settings_spec.rb +182 -22
- data/spec/unit/ssl/ssl_provider_spec.rb +69 -43
- data/spec/unit/ssl/state_machine_spec.rb +52 -8
- data/spec/unit/test/test_helper_spec.rb +17 -0
- data/spec/unit/transaction/persistence_spec.rb +15 -0
- data/spec/unit/transaction/report_spec.rb +3 -1
- data/spec/unit/type/file/source_spec.rb +4 -4
- data/spec/unit/type/file_spec.rb +122 -96
- data/spec/unit/type/filebucket_spec.rb +1 -1
- data/spec/unit/type/service_spec.rb +218 -8
- data/spec/unit/type/user_spec.rb +32 -3
- data/spec/unit/type_spec.rb +50 -0
- data/spec/unit/util/autoload_spec.rb +2 -1
- data/spec/unit/util/character_encoding_spec.rb +4 -4
- data/spec/unit/util/checksums_spec.rb +16 -0
- data/spec/unit/util/command_line_spec.rb +11 -6
- data/spec/unit/util/log/destinations_spec.rb +1 -29
- data/spec/unit/util/package/version/range_spec.rb +22 -1
- data/spec/unit/util/run_mode_spec.rb +6 -6
- data/spec/unit/util/windows/api_types_spec.rb +104 -40
- data/spec/unit/util/windows/service_spec.rb +4 -4
- data/spec/unit/util_spec.rb +3 -3
- data/spec/unit/x509/cert_provider_spec.rb +1 -1
- data/tasks/manpages.rake +5 -35
- metadata +43 -49
- data/spec/integration/faces/config_spec.rb +0 -91
- data/spec/integration/faces/documentation_spec.rb +0 -57
- data/spec/integration/file_bucket/file_spec.rb +0 -50
- data/spec/integration/file_serving/content_spec.rb +0 -7
- data/spec/integration/file_serving/fileset_spec.rb +0 -12
- data/spec/integration/file_serving/metadata_spec.rb +0 -8
- data/spec/integration/file_serving/terminus_helper_spec.rb +0 -20
- data/spec/integration/file_system/uniquefile_spec.rb +0 -26
- data/spec/integration/module_tool/forge_spec.rb +0 -51
- data/spec/integration/module_tool/tar/mini_spec.rb +0 -28
- data/spec/integration/provider/service/init_spec.rb +0 -48
- data/spec/integration/provider/service/systemd_spec.rb +0 -25
- data/spec/integration/provider/service/windows_spec.rb +0 -50
- data/spec/integration/reference/providers_spec.rb +0 -21
- data/spec/integration/reports_spec.rb +0 -13
- data/spec/integration/ssl/certificate_request_spec.rb +0 -44
- data/spec/integration/ssl/host_spec.rb +0 -72
- data/spec/integration/ssl/key_spec.rb +0 -99
- data/spec/integration/test/test_helper_spec.rb +0 -31
- data/spec/shared_behaviours/file_serving_model.rb +0 -51
- data/spec/unit/face/man_spec.rb +0 -25
- data/spec/unit/man_spec.rb +0 -31
@@ -84,7 +84,7 @@ Puppet::Functions.create_function(:reverse_each) do
|
|
84
84
|
|
85
85
|
def reverse_each(iterable)
|
86
86
|
# produces an Iterable
|
87
|
-
Puppet::Pops::Types::Iterable.asserted_iterable(self, iterable).reverse_each
|
87
|
+
Puppet::Pops::Types::Iterable.asserted_iterable(self, iterable, true).reverse_each
|
88
88
|
end
|
89
89
|
|
90
90
|
def reverse_each_block(iterable, &block)
|
@@ -12,15 +12,15 @@
|
|
12
12
|
#
|
13
13
|
# @example Removing trailing space from a String
|
14
14
|
# ```puppet
|
15
|
-
# "hello\n\t".
|
16
|
-
#
|
15
|
+
# " hello\n\t".rstrip()
|
16
|
+
# rstrip(" hello\n\t")
|
17
17
|
# ```
|
18
18
|
# Would both result in `"hello"`
|
19
19
|
#
|
20
20
|
# @example Removing trailing space from strings in an Array
|
21
21
|
# ```puppet
|
22
|
-
# ["hello\n\t", "hi\n\t"].
|
23
|
-
#
|
22
|
+
# [" hello\n\t", " hi\n\t"].rstrip()
|
23
|
+
# rstrip([" hello\n\t", " hi\n\t"])
|
24
24
|
# ```
|
25
25
|
# Would both result in `['hello', 'hi']`
|
26
26
|
#
|
@@ -88,7 +88,7 @@ Puppet::Functions.create_function(:step) do
|
|
88
88
|
|
89
89
|
def step(iterable, step)
|
90
90
|
# produces an Iterable
|
91
|
-
Puppet::Pops::Types::Iterable.asserted_iterable(self, iterable).step(step)
|
91
|
+
Puppet::Pops::Types::Iterable.asserted_iterable(self, iterable, true).step(step)
|
92
92
|
end
|
93
93
|
|
94
94
|
def step_block(iterable, step, &block)
|
@@ -12,15 +12,15 @@
|
|
12
12
|
#
|
13
13
|
# @example Removing leading and trailing space from a String
|
14
14
|
# ```puppet
|
15
|
-
# " hello\n\t".
|
16
|
-
#
|
15
|
+
# " hello\n\t".strip()
|
16
|
+
# strip(" hello\n\t")
|
17
17
|
# ```
|
18
18
|
# Would both result in `"hello"`
|
19
19
|
#
|
20
20
|
# @example Removing trailing space from strings in an Array
|
21
21
|
# ```puppet
|
22
|
-
# [" hello\n\t", " hi\n\t"].
|
23
|
-
#
|
22
|
+
# [" hello\n\t", " hi\n\t"].strip()
|
23
|
+
# strip([" hello\n\t", " hi\n\t"])
|
24
24
|
# ```
|
25
25
|
# Would both result in `['hello', 'hi']`
|
26
26
|
#
|
@@ -65,7 +65,7 @@ module Puppet::GettextConfig
|
|
65
65
|
return if @gettext_disabled || !gettext_loaded?
|
66
66
|
domain_name = domain_name.to_sym
|
67
67
|
|
68
|
-
Puppet.debug "Reset text domain to #{domain_name.inspect}"
|
68
|
+
Puppet.debug { "Reset text domain to #{domain_name.inspect}" }
|
69
69
|
FastGettext.add_text_domain(domain_name,
|
70
70
|
type: :chain,
|
71
71
|
chain: [],
|
@@ -115,10 +115,10 @@ module Puppet::GettextConfig
|
|
115
115
|
domain_name = domain_name.to_sym
|
116
116
|
|
117
117
|
if FastGettext.translation_repositories.include?(domain_name)
|
118
|
-
Puppet.debug "Use text domain #{domain_name.inspect}"
|
118
|
+
Puppet.debug { "Use text domain #{domain_name.inspect}" }
|
119
119
|
FastGettext.text_domain = domain_name
|
120
120
|
else
|
121
|
-
Puppet.debug "Requested unknown text domain #{domain_name.inspect}"
|
121
|
+
Puppet.debug { "Requested unknown text domain #{domain_name.inspect}" }
|
122
122
|
end
|
123
123
|
end
|
124
124
|
|
@@ -139,10 +139,10 @@ module Puppet::GettextConfig
|
|
139
139
|
|
140
140
|
deleted = FastGettext.translation_repositories.delete(domain_name)
|
141
141
|
if FastGettext.text_domain == domain_name
|
142
|
-
Puppet.debug "Deleted current text domain #{domain_name.inspect}: #{!deleted.nil?}"
|
142
|
+
Puppet.debug { "Deleted current text domain #{domain_name.inspect}: #{!deleted.nil?}" }
|
143
143
|
FastGettext.text_domain = nil
|
144
144
|
else
|
145
|
-
Puppet.debug "Deleted text domain #{domain_name.inspect}: #{!deleted.nil?}"
|
145
|
+
Puppet.debug { "Deleted text domain #{domain_name.inspect}: #{!deleted.nil?}" }
|
146
146
|
end
|
147
147
|
end
|
148
148
|
|
@@ -13,9 +13,9 @@ module Puppet::ModuleTranslations
|
|
13
13
|
|
14
14
|
module_name = mod.forge_name.tr('/', '-')
|
15
15
|
if Puppet::GettextConfig.load_translations(module_name, mod.locale_directory, :po)
|
16
|
-
Puppet.debug "Loaded translations for #{module_name}."
|
16
|
+
Puppet.debug { "Loaded translations for #{module_name}." }
|
17
17
|
elsif Puppet::GettextConfig.gettext_loaded?
|
18
|
-
Puppet.debug "Could not find translation files for #{module_name} at #{mod.locale_directory}. Skipping translation initialization."
|
18
|
+
Puppet.debug { "Could not find translation files for #{module_name} at #{mod.locale_directory}. Skipping translation initialization." }
|
19
19
|
else
|
20
20
|
Puppet.warn_once("gettext_unavailable", "gettext_unavailable", "No gettext library found, skipping translation initialization.")
|
21
21
|
end
|
@@ -31,9 +31,9 @@ module Puppet::ModuleTranslations
|
|
31
31
|
Dir.glob("#{vardir}/locales/#{locale}/*.po") do |f|
|
32
32
|
module_name = File.basename(f, ".po")
|
33
33
|
if Puppet::GettextConfig.load_translations(module_name, File.join(vardir, "locales"), :po)
|
34
|
-
Puppet.debug "Loaded translations for #{module_name}."
|
34
|
+
Puppet.debug { "Loaded translations for #{module_name}." }
|
35
35
|
elsif Puppet::GettextConfig.gettext_loaded?
|
36
|
-
Puppet.debug "Could not load translations for #{module_name}."
|
36
|
+
Puppet.debug { "Could not load translations for #{module_name}." }
|
37
37
|
else
|
38
38
|
Puppet.warn_once("gettext_unavailable", "gettext_unavailable", "No gettext library found, skipping translation initialization.")
|
39
39
|
end
|
data/lib/puppet/http.rb
CHANGED
@@ -22,6 +22,7 @@ module Puppet
|
|
22
22
|
require 'puppet/http/service/ca'
|
23
23
|
require 'puppet/http/service/compiler'
|
24
24
|
require 'puppet/http/service/file_server'
|
25
|
+
require 'puppet/http/service/puppetserver'
|
25
26
|
require 'puppet/http/service/report'
|
26
27
|
require 'puppet/http/session'
|
27
28
|
require 'puppet/http/resolver'
|
data/lib/puppet/http/client.rb
CHANGED
@@ -23,8 +23,8 @@ class Puppet::HTTP::Client
|
|
23
23
|
# connections
|
24
24
|
# @param [Puppet::SSL::SSLContext] system_ssl_context the system ssl context
|
25
25
|
# used if :include_system_store is set to true
|
26
|
-
# @param [Integer] redirect_limit number of HTTP redirections to allow
|
27
|
-
# given request
|
26
|
+
# @param [Integer] redirect_limit default number of HTTP redirections to allow
|
27
|
+
# in a given request. Can also be specified per-request.
|
28
28
|
# @param [Integer] retry_limit number of HTTP reties allowed in a given
|
29
29
|
# request
|
30
30
|
#
|
@@ -36,7 +36,7 @@ class Puppet::HTTP::Client
|
|
36
36
|
}.freeze
|
37
37
|
@default_ssl_context = ssl_context
|
38
38
|
@default_system_ssl_context = system_ssl_context
|
39
|
-
@
|
39
|
+
@default_redirect_limit = redirect_limit
|
40
40
|
@retry_after_handler = Puppet::HTTP::RetryAfterHandler.new(retry_limit, Puppet[:runinterval])
|
41
41
|
end
|
42
42
|
|
@@ -114,6 +114,8 @@ class Puppet::HTTP::Client
|
|
114
114
|
# be used for connections
|
115
115
|
# @option options [Boolean] :include_system_store (false) if we should include
|
116
116
|
# the system store for connection
|
117
|
+
# @param options [Integer] :redirect_limit number of HTTP redirections to allow
|
118
|
+
# for this request.
|
117
119
|
#
|
118
120
|
# @yield [Puppet::HTTP::Response] if a block is given yields the response
|
119
121
|
#
|
@@ -146,6 +148,8 @@ class Puppet::HTTP::Client
|
|
146
148
|
# be used for connections
|
147
149
|
# @option options [Boolean] :include_system_store (false) if we should include
|
148
150
|
# the system store for connection
|
151
|
+
# @param options [Integer] :redirect_limit number of HTTP redirections to allow
|
152
|
+
# for this request.
|
149
153
|
#
|
150
154
|
# @return [String] the body of the request response
|
151
155
|
#
|
@@ -174,6 +178,8 @@ class Puppet::HTTP::Client
|
|
174
178
|
# be used for connections
|
175
179
|
# @option options [Boolean] :include_system_store (false) if we should include
|
176
180
|
# the system store for connection
|
181
|
+
# @param options [Integer] :redirect_limit number of HTTP redirections to allow
|
182
|
+
# for this request.
|
177
183
|
#
|
178
184
|
# @return [String] the body of the request response
|
179
185
|
#
|
@@ -207,6 +213,8 @@ class Puppet::HTTP::Client
|
|
207
213
|
# be used for connections
|
208
214
|
# @option options [Boolean] :include_system_store (false) if we should include
|
209
215
|
# the system store for connection
|
216
|
+
# @param options [Integer] :redirect_limit number of HTTP redirections to allow
|
217
|
+
# for this request.
|
210
218
|
#
|
211
219
|
# @return [String] the body of the request response
|
212
220
|
#
|
@@ -242,6 +250,8 @@ class Puppet::HTTP::Client
|
|
242
250
|
# be used for connections
|
243
251
|
# @option options [Boolean] :include_system_store (false) if we should include
|
244
252
|
# the system store for connection
|
253
|
+
# @param options [Integer] :redirect_limit number of HTTP redirections to allow
|
254
|
+
# for this request.
|
245
255
|
#
|
246
256
|
# @return [String] the body of the request response
|
247
257
|
#
|
@@ -277,8 +287,14 @@ class Puppet::HTTP::Client
|
|
277
287
|
private
|
278
288
|
|
279
289
|
def execute_streaming(request, options: {}, &block)
|
280
|
-
|
281
|
-
|
290
|
+
redirector = Puppet::HTTP::Redirector.new(options.fetch(:redirect_limit, @default_redirect_limit))
|
291
|
+
|
292
|
+
basic_auth = options.fetch(:basic_auth, nil)
|
293
|
+
unless basic_auth
|
294
|
+
if request.uri.user && request.uri.password
|
295
|
+
basic_auth = { user: request.uri.user, password: request.uri.password }
|
296
|
+
end
|
297
|
+
end
|
282
298
|
|
283
299
|
redirects = 0
|
284
300
|
retries = 0
|
@@ -287,7 +303,7 @@ class Puppet::HTTP::Client
|
|
287
303
|
|
288
304
|
while !done do
|
289
305
|
connect(request.uri, options: options) do |http|
|
290
|
-
apply_auth(request,
|
306
|
+
apply_auth(request, basic_auth)
|
291
307
|
|
292
308
|
# don't call return within the `request` block
|
293
309
|
http.request(request) do |nethttp|
|
@@ -295,8 +311,8 @@ class Puppet::HTTP::Client
|
|
295
311
|
begin
|
296
312
|
Puppet.debug("HTTP #{request.method.upcase} #{request.uri} returned #{response.code} #{response.reason}")
|
297
313
|
|
298
|
-
if
|
299
|
-
request =
|
314
|
+
if redirector.redirect?(request, response)
|
315
|
+
request = redirector.redirect_to(request, response, redirects)
|
300
316
|
redirects += 1
|
301
317
|
next
|
302
318
|
elsif @retry_after_handler.retry_after?(request, response)
|
@@ -395,9 +411,9 @@ class Puppet::HTTP::Client
|
|
395
411
|
@default_system_ssl_context = ssl.create_system_context(cacerts: cacerts)
|
396
412
|
end
|
397
413
|
|
398
|
-
def apply_auth(request,
|
399
|
-
if
|
400
|
-
request.basic_auth(user, password)
|
414
|
+
def apply_auth(request, basic_auth)
|
415
|
+
if basic_auth
|
416
|
+
request.basic_auth(basic_auth[:user], basic_auth[:password])
|
401
417
|
end
|
402
418
|
end
|
403
419
|
|
@@ -422,7 +438,7 @@ class Puppet::HTTP::Client
|
|
422
438
|
services.delete(:report)
|
423
439
|
end
|
424
440
|
|
425
|
-
resolvers << Puppet::HTTP::Resolver::ServerList.new(self, server_list_setting: server_list_setting, default_port: Puppet[:
|
441
|
+
resolvers << Puppet::HTTP::Resolver::ServerList.new(self, server_list_setting: server_list_setting, default_port: Puppet[:serverport], services: services)
|
426
442
|
end
|
427
443
|
|
428
444
|
resolvers << Puppet::HTTP::Resolver::Settings.new(self)
|
@@ -21,9 +21,6 @@ class Puppet::HTTP::ExternalClient < Puppet::HTTP::Client
|
|
21
21
|
url = encode_query(url, params)
|
22
22
|
|
23
23
|
options[:use_ssl] = url.scheme == 'https'
|
24
|
-
if options[:user] && options[:password]
|
25
|
-
options[:basic_auth] = { user: options[:user], password: options[:password] }
|
26
|
-
end
|
27
24
|
|
28
25
|
client = @http_client_class.new(url.host, url.port, options)
|
29
26
|
response = Puppet::HTTP::Response.new(client.get(url.request_uri, headers, options), url)
|
@@ -46,9 +43,6 @@ class Puppet::HTTP::ExternalClient < Puppet::HTTP::Client
|
|
46
43
|
url = encode_query(url, params)
|
47
44
|
|
48
45
|
options[:use_ssl] = url.scheme == 'https'
|
49
|
-
if options[:user] && options[:password]
|
50
|
-
options[:basic_auth] = { user: options[:user], password: options[:password] }
|
51
|
-
end
|
52
46
|
|
53
47
|
client = @http_client_class.new(url.host, url.port, options)
|
54
48
|
response = Puppet::HTTP::Response.new(client.post(url.request_uri, body, headers, options), url)
|
@@ -52,13 +52,7 @@ class Puppet::HTTP::Redirector
|
|
52
52
|
raise Puppet::HTTP::TooManyRedirects.new(request.uri) if redirects >= @redirect_limit
|
53
53
|
|
54
54
|
location = parse_location(response)
|
55
|
-
|
56
|
-
url = request.uri.dup
|
57
|
-
url.path = location.path
|
58
|
-
else
|
59
|
-
url = location.dup
|
60
|
-
end
|
61
|
-
url.query = request.uri.query
|
55
|
+
url = request.uri.merge(location)
|
62
56
|
|
63
57
|
new_request = request.class.new(url)
|
64
58
|
new_request.body = request.body
|
@@ -66,6 +60,14 @@ class Puppet::HTTP::Redirector
|
|
66
60
|
new_request[header] = value
|
67
61
|
end
|
68
62
|
|
63
|
+
# mimic private Net::HTTP#addr_port
|
64
|
+
new_request['Host'] = if (location.scheme == 'https' && location.port == 443) ||
|
65
|
+
(location.scheme == 'http' && location.port == 80)
|
66
|
+
location.host
|
67
|
+
else
|
68
|
+
"#{location.host}:#{location.port}"
|
69
|
+
end
|
70
|
+
|
69
71
|
new_request
|
70
72
|
end
|
71
73
|
|
data/lib/puppet/http/resolver.rb
CHANGED
@@ -28,12 +28,12 @@ class Puppet::HTTP::Resolver
|
|
28
28
|
# @param [Symbol] name the service to resolve
|
29
29
|
# @param [Puppet::SSL::SSLContext] ssl_context (nil) optional ssl context to
|
30
30
|
# use when creating a connection
|
31
|
-
# @param [Proc]
|
32
|
-
#
|
31
|
+
# @param [Proc] canceled_handler (nil) optional callback allowing a resolver
|
32
|
+
# to cancel resolution.
|
33
33
|
#
|
34
34
|
# @raise [NotImplementedError] this base class is not implemented
|
35
35
|
#
|
36
|
-
def resolve(session, name, ssl_context: nil,
|
36
|
+
def resolve(session, name, ssl_context: nil, canceled_handler: nil)
|
37
37
|
raise NotImplementedError
|
38
38
|
end
|
39
39
|
|
@@ -45,17 +45,14 @@ class Puppet::HTTP::Resolver
|
|
45
45
|
# @param [Puppet::HTTP::Session] session
|
46
46
|
# @param [Puppet::HTTP::Service] service
|
47
47
|
# @param [Puppet::SSL::SSLContext] ssl_context
|
48
|
-
# @param [Proc] error_handler (nil) optional callback for each error
|
49
|
-
# encountered while resolving a route.
|
50
48
|
#
|
51
49
|
# @return [Boolean] Returns true if a connection is successful, false otherwise
|
52
50
|
#
|
53
|
-
def check_connection?(session, service, ssl_context: nil
|
51
|
+
def check_connection?(session, service, ssl_context: nil)
|
54
52
|
service.connect(ssl_context: ssl_context)
|
55
53
|
return true
|
56
54
|
rescue Puppet::HTTP::ConnectionError => e
|
57
|
-
|
58
|
-
Puppet.debug("Connection to #{service.url} failed, trying next route: #{e.message}")
|
55
|
+
Puppet.log_exception(e, "Connection to #{service.url} failed, trying next route: #{e.message}")
|
59
56
|
return false
|
60
57
|
end
|
61
58
|
end
|
@@ -22,7 +22,6 @@ class Puppet::HTTP::Resolver::ServerList < Puppet::HTTP::Resolver
|
|
22
22
|
@server_list_setting = server_list_setting
|
23
23
|
@default_port = default_port
|
24
24
|
@services = services
|
25
|
-
@resolved_url = nil
|
26
25
|
end
|
27
26
|
|
28
27
|
#
|
@@ -33,8 +32,8 @@ class Puppet::HTTP::Resolver::ServerList < Puppet::HTTP::Resolver
|
|
33
32
|
# @param [Puppet::HTTP::Session] session <description>
|
34
33
|
# @param [Symbol] name the name of the service being resolved
|
35
34
|
# @param [Puppet::SSL::SSLContext] ssl_context
|
36
|
-
# @param [Proc]
|
37
|
-
#
|
35
|
+
# @param [Proc] canceled_handler (nil) optional callback allowing a resolver
|
36
|
+
# to cancel resolution.
|
38
37
|
#
|
39
38
|
# @return [nil] return nil if the service to be resolved does not support
|
40
39
|
# server_list
|
@@ -44,7 +43,7 @@ class Puppet::HTTP::Resolver::ServerList < Puppet::HTTP::Resolver
|
|
44
43
|
# @raise [Puppet::Error] raise if none of the servers defined in server_list
|
45
44
|
# are available
|
46
45
|
#
|
47
|
-
def resolve(session, name, ssl_context: nil,
|
46
|
+
def resolve(session, name, ssl_context: nil, canceled_handler: nil)
|
48
47
|
# If we're configured to use an explicit service host, e.g. report_server
|
49
48
|
# then don't use server_list to resolve the `:report` service.
|
50
49
|
return nil unless @services.include?(name)
|
@@ -58,41 +57,24 @@ class Puppet::HTTP::Resolver::ServerList < Puppet::HTTP::Resolver
|
|
58
57
|
@server_list_setting.value.each do |server|
|
59
58
|
host = server[0]
|
60
59
|
port = server[1] || @default_port
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
60
|
+
|
61
|
+
service = Puppet::HTTP::Service.create_service(@client, session, :puppetserver, host, port)
|
62
|
+
begin
|
63
|
+
service.get_simple_status(ssl_context: ssl_context)
|
64
|
+
@resolved_url = service.url
|
65
|
+
return Puppet::HTTP::Service.create_service(@client, session, name, @resolved_url.host, @resolved_url.port)
|
66
|
+
rescue Puppet::HTTP::ResponseError => detail
|
67
|
+
Puppet.log_exception(detail, _("Puppet server %{host}:%{port} is unavailable: %{code} %{reason}") %
|
68
|
+
{ host: service.url.host, port: service.url.port, code: detail.response.code, reason: detail.response.reason })
|
69
|
+
rescue Puppet::HTTP::HTTPError => detail
|
70
|
+
Puppet.log_exception(detail, _("Unable to connect to server from server_list setting: %{detail}") % {detail: detail})
|
65
71
|
end
|
66
72
|
end
|
67
73
|
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
#
|
72
|
-
# @api private
|
73
|
-
#
|
74
|
-
# Check if a server and port is available
|
75
|
-
#
|
76
|
-
# @param [URI] uri A URI created from the server and port to test
|
77
|
-
# @param [Puppet::HTTP::Session] session
|
78
|
-
# @param [Puppet::SSL::SSLContext] ssl_context
|
79
|
-
# @param [Proc] error_handler (nil) optional callback for each error
|
80
|
-
# encountered while resolving a route.
|
81
|
-
#
|
82
|
-
# @return [Boolean] true if a successful response is returned by the server,
|
83
|
-
# false otherwise
|
84
|
-
#
|
85
|
-
def get_success?(uri, session, ssl_context: nil, error_handler: nil)
|
86
|
-
response = @client.get(uri, options: {ssl_context: ssl_context})
|
87
|
-
return true if response.success?
|
74
|
+
# don't fallback to other resolvers
|
75
|
+
canceled_handler.call(true) if canceled_handler
|
88
76
|
|
89
|
-
|
90
|
-
|
91
|
-
return false
|
92
|
-
rescue => detail
|
93
|
-
error_handler.call(detail) if error_handler
|
94
|
-
#TRANSLATORS 'server_list' is the name of a setting and should not be translated
|
95
|
-
Puppet.debug _("Unable to connect to server from server_list setting: %{detail}") % {detail: detail}
|
96
|
-
return false
|
77
|
+
# not found
|
78
|
+
nil
|
97
79
|
end
|
98
80
|
end
|
@@ -13,14 +13,14 @@ class Puppet::HTTP::Resolver::Settings < Puppet::HTTP::Resolver
|
|
13
13
|
# @param [Puppet::HTTP::Session] session
|
14
14
|
# @param [Symbol] name the name of the service to be resolved
|
15
15
|
# @param [Puppet::SSL::SSLContext] ssl_context
|
16
|
-
# @param [Proc]
|
17
|
-
#
|
16
|
+
# @param [Proc] canceled_handler (nil) optional callback allowing a resolver
|
17
|
+
# to cancel resolution.
|
18
18
|
#
|
19
19
|
# @return [Puppet::HTTP::Service] if the service successfully connects,
|
20
20
|
# return it. Otherwise, return nil.
|
21
21
|
#
|
22
|
-
def resolve(session, name, ssl_context: nil,
|
22
|
+
def resolve(session, name, ssl_context: nil, canceled_handler: nil)
|
23
23
|
service = Puppet::HTTP::Service.create_service(@client, session, name)
|
24
|
-
check_connection?(session, service, ssl_context: ssl_context
|
24
|
+
check_connection?(session, service, ssl_context: ssl_context) ? service : nil
|
25
25
|
end
|
26
26
|
end
|
@@ -25,21 +25,21 @@ class Puppet::HTTP::Resolver::SRV < Puppet::HTTP::Resolver
|
|
25
25
|
# @param [Puppet::HTTP::Session] session
|
26
26
|
# @param [Symbol] name the service being resolved
|
27
27
|
# @param [Puppet::SSL::SSLContext] ssl_context
|
28
|
-
# @param [Proc]
|
29
|
-
#
|
28
|
+
# @param [Proc] canceled_handler (nil) optional callback allowing a resolver
|
29
|
+
# to cancel resolution.
|
30
30
|
#
|
31
31
|
# @return [Puppet::HTTP::Service] if an available service is found, return
|
32
32
|
# it. Return nil otherwise.
|
33
33
|
#
|
34
|
-
def resolve(session, name, ssl_context: nil,
|
34
|
+
def resolve(session, name, ssl_context: nil, canceled_handler: nil)
|
35
35
|
# Here we pass our HTTP service name as the DNS SRV service name
|
36
36
|
# This is fine for :ca, but note that :puppet and :file are handled
|
37
37
|
# specially in `each_srv_record`.
|
38
38
|
@delegate.each_srv_record(@srv_domain, name) do |server, port|
|
39
39
|
service = Puppet::HTTP::Service.create_service(@client, session, name, server, port)
|
40
|
-
return service if check_connection?(session, service, ssl_context: ssl_context
|
40
|
+
return service if check_connection?(session, service, ssl_context: ssl_context)
|
41
41
|
end
|
42
42
|
|
43
|
-
|
43
|
+
nil
|
44
44
|
end
|
45
45
|
end
|