puppet 6.16.0-x86-mingw32 → 6.20.0-x86-mingw32
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 -16
- data/Gemfile +6 -2
- data/Gemfile.lock +40 -36
- data/README.md +3 -4
- data/Rakefile +4 -12
- data/lib/puppet/agent.rb +2 -2
- data/lib/puppet/agent/locker.rb +0 -7
- data/lib/puppet/application.rb +10 -6
- data/lib/puppet/application/agent.rb +23 -6
- data/lib/puppet/application/apply.rb +20 -21
- data/lib/puppet/application/device.rb +1 -0
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/filebucket.rb +2 -2
- data/lib/puppet/application/lookup.rb +16 -4
- data/lib/puppet/application/script.rb +1 -0
- data/lib/puppet/application_support.rb +7 -0
- data/lib/puppet/configurer.rb +70 -20
- 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/defaults.rb +113 -46
- data/lib/puppet/environments.rb +84 -59
- data/lib/puppet/face/catalog.rb +1 -1
- data/lib/puppet/face/config.rb +56 -16
- data/lib/puppet/face/epp.rb +12 -2
- data/lib/puppet/face/facts.rb +60 -0
- data/lib/puppet/face/node.rb +3 -3
- data/lib/puppet/face/node/clean.rb +2 -2
- data/lib/puppet/face/status.rb +1 -1
- data/lib/puppet/feature/base.rb +1 -1
- data/lib/puppet/ffi/posix.rb +10 -0
- data/lib/puppet/ffi/posix/constants.rb +14 -0
- data/lib/puppet/ffi/posix/functions.rb +24 -0
- data/lib/puppet/file_bucket/dipper.rb +1 -1
- data/lib/puppet/file_serving/http_metadata.rb +13 -1
- 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 +8 -16
- data/lib/puppet/forge.rb +1 -1
- data/lib/puppet/forge/cache.rb +1 -1
- data/lib/puppet/forge/repository.rb +3 -7
- data/lib/puppet/functions/epp.rb +1 -0
- data/lib/puppet/functions/inline_epp.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 +6 -1
- 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/fact_search.rb +60 -0
- data/lib/puppet/indirector/facts/facter.rb +3 -3
- data/lib/puppet/indirector/facts/json.rb +27 -0
- data/lib/puppet/indirector/facts/yaml.rb +4 -59
- data/lib/puppet/indirector/file_content/rest.rb +1 -1
- data/lib/puppet/indirector/file_metadata/http.rb +25 -5
- 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 +5 -1
- data/lib/puppet/indirector/msgpack.rb +1 -1
- data/lib/puppet/indirector/node/json.rb +8 -0
- data/lib/puppet/indirector/report/json.rb +34 -0
- data/lib/puppet/indirector/report/processor.rb +2 -2
- data/lib/puppet/indirector/request.rb +5 -5
- data/lib/puppet/indirector/yaml.rb +1 -1
- data/lib/puppet/module.rb +1 -2
- data/lib/puppet/module_tool/applications/installer.rb +48 -2
- data/lib/puppet/module_tool/errors/shared.rb +17 -2
- data/lib/puppet/network/format_support.rb +2 -2
- data/lib/puppet/network/formats.rb +2 -1
- 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/connection_adapter.rb +6 -4
- data/lib/puppet/network/http/route.rb +2 -2
- data/lib/puppet/node/environment.rb +12 -5
- data/lib/puppet/node/facts.rb +17 -0
- data/lib/puppet/pal/pal_impl.rb +90 -13
- data/lib/puppet/parameter.rb +1 -1
- data/lib/puppet/parser/ast/leaf.rb +7 -6
- data/lib/puppet/parser/ast/pops_bridge.rb +0 -4
- data/lib/puppet/parser/compiler.rb +1 -1
- 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/resource.rb +3 -2
- data/lib/puppet/parser/resource/param.rb +6 -0
- data/lib/puppet/parser/templatewrapper.rb +1 -1
- 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/deferred_resolver.rb +5 -3
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +27 -8
- 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/model/ast_transformer.rb +1 -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/apt.rb +38 -0
- data/lib/puppet/provider/package/aptitude.rb +1 -1
- data/lib/puppet/provider/package/dpkg.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +4 -2
- data/lib/puppet/provider/package/pip2.rb +17 -0
- 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 +2 -1
- data/lib/puppet/provider/package/zypper.rb +3 -0
- data/lib/puppet/provider/service/windows.rb +23 -7
- data/lib/puppet/provider/user/aix.rb +3 -3
- data/lib/puppet/provider/user/user_role_add.rb +1 -1
- data/lib/puppet/provider/user/useradd.rb +11 -4
- data/lib/puppet/provider/user/windows_adsi.rb +18 -1
- data/lib/puppet/reference/configuration.rb +6 -5
- data/lib/puppet/reports/http.rb +2 -0
- 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/settings.rb +63 -21
- data/lib/puppet/settings/alias_setting.rb +37 -0
- data/lib/puppet/settings/base_setting.rb +26 -2
- data/lib/puppet/ssl/ssl_context.rb +2 -2
- data/lib/puppet/ssl/ssl_provider.rb +20 -1
- data/lib/puppet/ssl/validator/default_validator.rb +1 -1
- data/lib/puppet/test/test_helper.rb +18 -13
- 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 +32 -12
- data/lib/puppet/type/filebucket.rb +1 -1
- data/lib/puppet/type/notify.rb +2 -2
- data/lib/puppet/type/service.rb +53 -0
- data/lib/puppet/type/user.rb +18 -3
- data/lib/puppet/util.rb +41 -3
- data/lib/puppet/util/autoload.rb +10 -15
- 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/fact_dif.rb +62 -0
- data/lib/puppet/util/fileparsing.rb +2 -2
- data/lib/puppet/util/posix.rb +54 -5
- data/lib/puppet/util/provider_features.rb +1 -1
- data/lib/puppet/util/reference.rb +1 -1
- data/lib/puppet/util/rubygems.rb +5 -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 +501 -443
- data/man/man5/puppet.conf.5 +70 -24
- data/man/man8/puppet-agent.8 +8 -5
- data/man/man8/puppet-apply.8 +2 -2
- 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 +2 -2
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +32 -1
- data/man/man8/puppet-filebucket.8 +3 -3
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- 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 +1 -1
- data/man/man8/puppet-node.8 +7 -4
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +4 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +2 -2
- 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/agent/cached_deferred_catalog.json +91 -0
- 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/puppetserver_gem/gem-list-local-packages +30 -0
- data/spec/fixtures/unit/provider/user/aix/aix_passwd_file.out +4 -0
- data/spec/integration/application/agent_spec.rb +263 -54
- data/spec/integration/application/apply_spec.rb +168 -149
- 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 +53 -3
- data/spec/integration/configurer_spec.rb +14 -0
- data/spec/integration/data_binding_spec.rb +82 -0
- data/spec/integration/defaults_spec.rb +20 -3
- data/spec/integration/directory_environments_spec.rb +17 -17
- data/spec/integration/environments/setting_hooks_spec.rb +1 -1
- data/spec/integration/indirector/facts/facter_spec.rb +8 -6
- data/spec/integration/network/http_pool_spec.rb +26 -9
- data/spec/integration/node/environment_spec.rb +1 -1
- data/spec/integration/parser/compiler_spec.rb +11 -0
- data/spec/integration/resource/type_collection_spec.rb +2 -6
- data/spec/integration/transaction_spec.rb +4 -9
- 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 +5 -3
- 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 -17
- data/spec/integration/util/windows/user_spec.rb +47 -5
- data/spec/integration/util_spec.rb +7 -33
- data/spec/lib/puppet_spec/matchers.rb +0 -80
- data/spec/lib/puppet_spec/puppetserver.rb +8 -0
- data/spec/lib/puppet_spec/settings.rb +6 -1
- data/spec/shared_contexts/types_setup.rb +2 -0
- data/spec/spec_helper.rb +1 -4
- data/spec/unit/agent_spec.rb +8 -6
- data/spec/unit/application/agent_spec.rb +3 -5
- data/spec/unit/application/config_spec.rb +224 -4
- 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/filebucket_spec.rb +0 -2
- 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 +60 -13
- 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/feature_spec.rb +1 -1
- data/spec/unit/confine_spec.rb +10 -3
- data/spec/unit/context/trusted_information_spec.rb +10 -4
- data/spec/unit/defaults_spec.rb +20 -1
- data/spec/unit/environments_spec.rb +176 -32
- data/spec/unit/face/config_spec.rb +65 -12
- data/spec/unit/face/node_spec.rb +2 -13
- data/spec/unit/file_serving/configuration/parser_spec.rb +0 -1
- data/spec/unit/file_serving/http_metadata_spec.rb +37 -14
- data/spec/unit/file_serving/metadata_spec.rb +3 -3
- 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_helper_spec.rb +11 -4
- data/spec/unit/file_serving/terminus_selector_spec.rb +45 -26
- data/spec/unit/file_system/uniquefile_spec.rb +18 -0
- data/spec/unit/file_system_spec.rb +1 -2
- data/spec/unit/forge/module_release_spec.rb +2 -7
- data/spec/unit/functions/inline_epp_spec.rb +26 -1
- data/spec/unit/http/client_spec.rb +64 -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 +51 -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 +1 -2
- data/spec/unit/http/session_spec.rb +8 -21
- data/spec/unit/indirector/catalog/json_spec.rb +1 -1
- data/spec/unit/indirector/catalog/rest_spec.rb +1 -1
- data/spec/unit/indirector/face_spec.rb +0 -1
- data/spec/unit/indirector/facts/facter_spec.rb +0 -1
- data/spec/unit/indirector/facts/json_spec.rb +255 -0
- data/spec/unit/indirector/facts/rest_spec.rb +1 -1
- data/spec/unit/indirector/file_bucket_file/selector_spec.rb +26 -8
- data/spec/unit/indirector/file_metadata/http_spec.rb +27 -0
- data/spec/unit/indirector/indirection_spec.rb +8 -12
- data/spec/unit/indirector/json_spec.rb +8 -8
- data/spec/unit/indirector/key/file_spec.rb +0 -1
- data/spec/unit/indirector/msgpack_spec.rb +8 -8
- data/spec/unit/indirector/node/json_spec.rb +33 -0
- data/spec/unit/indirector/node/rest_spec.rb +1 -1
- data/spec/{integration/indirector/report/yaml.rb → unit/indirector/report/json_spec.rb} +13 -24
- data/spec/unit/indirector/report/yaml_spec.rb +72 -8
- data/spec/unit/indirector/request_spec.rb +5 -5
- data/spec/unit/indirector/rest_spec.rb +1 -1
- data/spec/unit/indirector/status/rest_spec.rb +1 -1
- data/spec/unit/indirector/yaml_spec.rb +7 -7
- data/spec/unit/indirector_spec.rb +2 -2
- data/spec/unit/interface_spec.rb +3 -3
- data/spec/unit/module_tool/applications/installer_spec.rb +66 -0
- data/spec/unit/module_tool/tar/mini_spec.rb +20 -0
- data/spec/unit/network/authconfig_spec.rb +0 -3
- data/spec/unit/network/format_support_spec.rb +3 -2
- data/spec/unit/network/http/api/indirected_routes_spec.rb +2 -10
- data/spec/unit/network/http/api/master/v3/environments_spec.rb +12 -23
- data/spec/unit/network/http/connection_spec.rb +42 -32
- data/spec/unit/network/http/handler_spec.rb +0 -5
- data/spec/unit/node/environment_spec.rb +18 -1
- data/spec/unit/parser/ast/block_expression_spec.rb +1 -1
- data/spec/unit/parser/compiler_spec.rb +3 -19
- data/spec/unit/parser/environment_compiler_spec.rb +7 -0
- data/spec/unit/parser/resource_spec.rb +14 -8
- data/spec/unit/parser/scope_spec.rb +1 -1
- data/spec/unit/parser/templatewrapper_spec.rb +4 -3
- data/spec/unit/pops/evaluator/deferred_resolver_spec.rb +20 -0
- 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/property_spec.rb +1 -0
- data/spec/unit/provider/exec_spec.rb +4 -3
- data/spec/unit/provider/nameservice_spec.rb +66 -65
- data/spec/unit/provider/package/apt_spec.rb +76 -3
- data/spec/unit/provider/package/aptitude_spec.rb +1 -0
- data/spec/unit/provider/package/base_spec.rb +6 -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/pacman_spec.rb +18 -12
- data/spec/unit/provider/package/pip2_spec.rb +36 -0
- data/spec/unit/provider/package/pip_spec.rb +6 -11
- data/spec/unit/provider/package/pkgdmg_spec.rb +0 -4
- 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 +31 -0
- data/spec/unit/provider/package/zypper_spec.rb +14 -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 +45 -5
- data/spec/unit/provider/service/launchd_spec.rb +5 -6
- data/spec/unit/provider/service/openrc_spec.rb +4 -5
- data/spec/unit/provider/service/openwrt_spec.rb +1 -1
- data/spec/unit/provider/service/redhat_spec.rb +1 -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 +3 -6
- 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/aix_spec.rb +5 -0
- data/spec/unit/provider/user/hpux_spec.rb +1 -1
- data/spec/unit/provider/user/openbsd_spec.rb +1 -0
- data/spec/unit/provider/user/pw_spec.rb +2 -0
- data/spec/unit/provider/user/useradd_spec.rb +23 -16
- data/spec/unit/provider/user/windows_adsi_spec.rb +82 -0
- data/spec/unit/provider_spec.rb +8 -10
- data/spec/unit/puppet_pal_2pec.rb +40 -0
- data/spec/unit/puppet_pal_catalog_spec.rb +45 -0
- data/spec/unit/reports/store_spec.rb +17 -13
- data/spec/unit/resource/capability_finder_spec.rb +6 -1
- data/spec/unit/resource/type_spec.rb +1 -1
- data/spec/unit/resource_spec.rb +14 -13
- data/spec/unit/rest/route_spec.rb +4 -4
- data/spec/unit/settings_spec.rb +576 -239
- data/spec/unit/ssl/base_spec.rb +0 -1
- data/spec/unit/ssl/host_spec.rb +0 -5
- data/spec/unit/ssl/ssl_provider_spec.rb +82 -50
- data/spec/unit/test/test_helper_spec.rb +17 -0
- data/spec/unit/transaction/additional_resource_generator_spec.rb +3 -7
- data/spec/unit/transaction/event_manager_spec.rb +14 -11
- data/spec/unit/transaction/persistence_spec.rb +15 -0
- data/spec/unit/transaction/report_spec.rb +3 -1
- data/spec/unit/transaction_spec.rb +13 -4
- data/spec/unit/type/file/content_spec.rb +0 -1
- data/spec/unit/type/file/selinux_spec.rb +0 -2
- data/spec/unit/type/file/source_spec.rb +4 -4
- data/spec/unit/type/file_spec.rb +122 -102
- data/spec/unit/type/filebucket_spec.rb +1 -1
- data/spec/unit/type/group_spec.rb +13 -6
- data/spec/unit/type/resources_spec.rb +7 -7
- data/spec/unit/type/service_spec.rb +210 -1
- data/spec/unit/type/tidy_spec.rb +0 -1
- data/spec/unit/type/user_spec.rb +31 -2
- data/spec/unit/type_spec.rb +52 -2
- data/spec/unit/util/at_fork_spec.rb +2 -2
- data/spec/unit/util/autoload_spec.rb +5 -1
- data/spec/unit/util/backups_spec.rb +1 -2
- 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/execution_spec.rb +15 -11
- data/spec/unit/util/inifile_spec.rb +6 -14
- data/spec/unit/util/log_spec.rb +8 -7
- data/spec/unit/util/logging_spec.rb +3 -3
- data/spec/unit/util/posix_spec.rb +363 -15
- data/spec/unit/util/rubygems_spec.rb +2 -2
- data/spec/unit/util/run_mode_spec.rb +6 -6
- data/spec/unit/util/selinux_spec.rb +76 -52
- data/spec/unit/util/storage_spec.rb +3 -1
- data/spec/unit/util/suidmanager_spec.rb +44 -41
- 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 +16 -9
- data/spec/unit/x509/cert_provider_spec.rb +1 -1
- metadata +52 -53
- 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/catalog_spec.rb +0 -6
- data/spec/unit/face/man_spec.rb +0 -25
- data/spec/unit/face/module_spec.rb +0 -3
- data/spec/unit/man_spec.rb +0 -31
@@ -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
@@ -290,6 +290,11 @@ class Puppet::HTTP::Client
|
|
290
290
|
redirector = Puppet::HTTP::Redirector.new(options.fetch(:redirect_limit, @default_redirect_limit))
|
291
291
|
|
292
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
|
293
298
|
|
294
299
|
redirects = 0
|
295
300
|
retries = 0
|
@@ -433,7 +438,7 @@ class Puppet::HTTP::Client
|
|
433
438
|
services.delete(:report)
|
434
439
|
end
|
435
440
|
|
436
|
-
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)
|
437
442
|
end
|
438
443
|
|
439
444
|
resolvers << Puppet::HTTP::Resolver::Settings.new(self)
|
@@ -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
|
data/lib/puppet/http/response.rb
CHANGED
@@ -89,11 +89,30 @@ class Puppet::HTTP::Response
|
|
89
89
|
end
|
90
90
|
|
91
91
|
# @api private
|
92
|
+
#
|
93
|
+
# Get a header case-insensitively.
|
94
|
+
# @param [String] name The header name
|
95
|
+
# @return [String] The header value
|
96
|
+
#
|
92
97
|
def [](name)
|
93
98
|
@nethttp[name]
|
94
99
|
end
|
95
100
|
|
96
101
|
# @api private
|
102
|
+
#
|
103
|
+
# Yield each header name and value. Returns an enumerator if no block is given.
|
104
|
+
#
|
105
|
+
# @yieldparam [String] header name
|
106
|
+
# @yieldparam [String] header value
|
107
|
+
#
|
108
|
+
def each_header(&block)
|
109
|
+
@nethttp.each_header(&block)
|
110
|
+
end
|
111
|
+
|
112
|
+
# @api private
|
113
|
+
#
|
114
|
+
# Drain the response body.
|
115
|
+
#
|
97
116
|
def drain
|
98
117
|
body
|
99
118
|
true
|
data/lib/puppet/http/service.rb
CHANGED
@@ -10,7 +10,7 @@ class Puppet::HTTP::Service
|
|
10
10
|
|
11
11
|
# @api private
|
12
12
|
# @return [Array<Symbol>] available services
|
13
|
-
SERVICE_NAMES = [:ca, :fileserver, :puppet, :report].freeze
|
13
|
+
SERVICE_NAMES = [:ca, :fileserver, :puppet, :puppetserver, :report].freeze
|
14
14
|
|
15
15
|
# @api private
|
16
16
|
# @return [Array<Symbol>] format types that are unsupported
|
@@ -43,6 +43,8 @@ class Puppet::HTTP::Service
|
|
43
43
|
Puppet::HTTP::Service::FileServer.new(client, session, server, port)
|
44
44
|
when :puppet
|
45
45
|
::Puppet::HTTP::Service::Compiler.new(client, session, server, port)
|
46
|
+
when :puppetserver
|
47
|
+
::Puppet::HTTP::Service::Puppetserver.new(client, session, server, port)
|
46
48
|
when :report
|
47
49
|
Puppet::HTTP::Service::Report.new(client, session, server, port)
|
48
50
|
else
|
@@ -22,7 +22,7 @@ class Puppet::HTTP::Service::Compiler < Puppet::HTTP::Service
|
|
22
22
|
# create the service.
|
23
23
|
#
|
24
24
|
def initialize(client, session, server, port)
|
25
|
-
url = build_url(API, server || Puppet[:server], port || Puppet[:
|
25
|
+
url = build_url(API, server || Puppet[:server], port || Puppet[:serverport])
|
26
26
|
super(client, session, url)
|
27
27
|
end
|
28
28
|
|
@@ -27,7 +27,7 @@ class Puppet::HTTP::Service::FileServer < Puppet::HTTP::Service
|
|
27
27
|
# create the service.
|
28
28
|
#
|
29
29
|
def initialize(client, session, server, port)
|
30
|
-
url = build_url(API, server || Puppet[:server], port || Puppet[:
|
30
|
+
url = build_url(API, server || Puppet[:server], port || Puppet[:serverport])
|
31
31
|
super(client, session, url)
|
32
32
|
end
|
33
33
|
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# The puppetserver service.
|
2
|
+
#
|
3
|
+
# @api private
|
4
|
+
#
|
5
|
+
class Puppet::HTTP::Service::Puppetserver < Puppet::HTTP::Service
|
6
|
+
# @param [Puppet::HTTP::Client] client
|
7
|
+
# @param [Puppet::HTTP::Session] session
|
8
|
+
# @param [String] server If an explicit server is given,
|
9
|
+
# create a service using that server. If server is nil, the default value
|
10
|
+
# is used to create the service.
|
11
|
+
# @param [Integer] port If an explicit port is given, create
|
12
|
+
# a service using that port. If port is nil, the default value is used to
|
13
|
+
# create the service.
|
14
|
+
# @api private
|
15
|
+
#
|
16
|
+
def initialize(client, session, server, port)
|
17
|
+
url = build_url('', server || Puppet[:server], port || Puppet[:serverport])
|
18
|
+
super(client, session, url)
|
19
|
+
end
|
20
|
+
|
21
|
+
# Request the puppetserver's simple status
|
22
|
+
#
|
23
|
+
# @param [Puppet::SSL::SSLContext] ssl_context to use when establishing
|
24
|
+
# the connection.
|
25
|
+
# @return Puppet::HTTP::Response The HTTP response
|
26
|
+
# @api private
|
27
|
+
#
|
28
|
+
def get_simple_status(ssl_context: nil)
|
29
|
+
response = @client.get(
|
30
|
+
with_base_url("/status/v1/simple/master"),
|
31
|
+
headers: add_puppet_headers({}),
|
32
|
+
options: {ssl_context: ssl_context}
|
33
|
+
)
|
34
|
+
|
35
|
+
process_response(response)
|
36
|
+
|
37
|
+
[response, response.body.to_s]
|
38
|
+
end
|
39
|
+
end
|
data/lib/puppet/http/session.rb
CHANGED
@@ -64,20 +64,21 @@ class Puppet::HTTP::Session
|
|
64
64
|
cached = @resolved_services[name]
|
65
65
|
return cached if cached
|
66
66
|
|
67
|
-
|
68
|
-
|
67
|
+
canceled = false
|
68
|
+
canceled_handler = lambda { |cancel| canceled = cancel }
|
69
69
|
|
70
70
|
@resolvers.each do |resolver|
|
71
71
|
Puppet.debug("Resolving service '#{name}' using #{resolver.class}")
|
72
|
-
service = resolver.resolve(self, name, ssl_context: ssl_context,
|
72
|
+
service = resolver.resolve(self, name, ssl_context: ssl_context, canceled_handler: canceled_handler)
|
73
73
|
if service
|
74
74
|
@resolved_services[name] = service
|
75
75
|
Puppet.debug("Resolved service '#{name}' to #{service.url}")
|
76
76
|
return service
|
77
|
+
elsif canceled
|
78
|
+
break
|
77
79
|
end
|
78
80
|
end
|
79
81
|
|
80
|
-
resolution_exceptions.each { |e| Puppet.log_exception(e) }
|
81
82
|
raise Puppet::HTTP::RouteError, "No more routes to #{name}"
|
82
83
|
end
|
83
84
|
|
data/lib/puppet/indirector.rb
CHANGED
@@ -46,7 +46,7 @@ module Puppet::Indirector
|
|
46
46
|
|
47
47
|
# instantiate the actual Terminus for that type and this name (:ldap, w/ args :node)
|
48
48
|
# & hook the instantiated Terminus into this class (Node: @indirection = terminus)
|
49
|
-
@indirection = Puppet::Indirector::Indirection.new(self, indirection, options)
|
49
|
+
@indirection = Puppet::Indirector::Indirection.new(self, indirection, **options)
|
50
50
|
end
|
51
51
|
|
52
52
|
module ClassMethods
|