puppet 6.19.1-x86-mingw32 → 7.0.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/Gemfile +1 -1
- data/Gemfile.lock +19 -20
- data/README.md +1 -1
- data/conf/fileserver.conf +5 -10
- data/ext/build_defaults.yaml +1 -1
- data/ext/osx/file_mapping.yaml +0 -5
- data/ext/project_data.yaml +1 -14
- data/ext/redhat/puppet.spec.erb +0 -1
- data/ext/windows/service/daemon.rb +6 -5
- data/install.rb +21 -17
- data/lib/puppet.rb +11 -20
- data/lib/puppet/application.rb +172 -98
- data/lib/puppet/application/device.rb +100 -104
- data/lib/puppet/application/filebucket.rb +15 -11
- data/lib/puppet/application/ssl.rb +1 -1
- data/lib/puppet/configurer.rb +28 -33
- data/lib/puppet/configurer/plugin_handler.rb +21 -19
- data/lib/puppet/defaults.rb +95 -159
- data/lib/puppet/environments.rb +10 -25
- data/lib/puppet/face/config.rb +10 -0
- data/lib/puppet/face/epp.rb +12 -2
- data/lib/puppet/face/facts.rb +66 -6
- data/lib/puppet/face/help.rb +1 -1
- data/lib/puppet/face/plugin.rb +5 -8
- data/lib/puppet/ffi/windows.rb +12 -0
- data/lib/puppet/ffi/windows/api_types.rb +311 -0
- data/lib/puppet/ffi/windows/constants.rb +404 -0
- data/lib/puppet/ffi/windows/functions.rb +628 -0
- data/lib/puppet/ffi/windows/structs.rb +338 -0
- data/lib/puppet/file_serving/configuration.rb +0 -5
- data/lib/puppet/file_serving/configuration/parser.rb +3 -32
- data/lib/puppet/file_serving/http_metadata.rb +1 -1
- data/lib/puppet/file_serving/mount.rb +1 -2
- data/lib/puppet/forge/repository.rb +0 -1
- data/lib/puppet/functions/epp.rb +1 -0
- data/lib/puppet/functions/inline_epp.rb +1 -0
- data/lib/puppet/generate/models/type/type.rb +4 -1
- data/lib/puppet/http.rb +22 -13
- data/lib/puppet/http/client.rb +164 -114
- data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
- data/lib/puppet/http/errors.rb +16 -0
- data/lib/puppet/http/external_client.rb +5 -7
- data/lib/puppet/{network/http → http}/factory.rb +8 -11
- data/lib/puppet/{network/http → http}/pool.rb +61 -26
- data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
- data/lib/puppet/http/proxy.rb +137 -0
- data/lib/puppet/http/redirector.rb +4 -12
- data/lib/puppet/http/resolver.rb +5 -15
- data/lib/puppet/http/resolver/server_list.rb +6 -10
- data/lib/puppet/http/resolver/settings.rb +4 -7
- data/lib/puppet/http/resolver/srv.rb +7 -11
- data/lib/puppet/http/response.rb +36 -54
- data/lib/puppet/http/response_converter.rb +24 -0
- data/lib/puppet/http/response_net_http.rb +42 -0
- data/lib/puppet/http/retry_after_handler.rb +4 -13
- data/lib/puppet/http/service.rb +12 -26
- data/lib/puppet/http/service/ca.rb +11 -22
- data/lib/puppet/http/service/compiler.rb +22 -69
- data/lib/puppet/http/service/file_server.rb +18 -27
- data/lib/puppet/http/service/puppetserver.rb +26 -12
- data/lib/puppet/http/service/report.rb +8 -10
- data/lib/puppet/http/session.rb +11 -20
- data/lib/puppet/{network/http → http}/site.rb +1 -2
- data/lib/puppet/indirector/catalog/rest.rb +2 -4
- data/lib/puppet/indirector/fact_search.rb +60 -0
- data/lib/puppet/indirector/facts/facter.rb +24 -3
- data/lib/puppet/indirector/facts/json.rb +27 -0
- data/lib/puppet/indirector/facts/rest.rb +3 -22
- data/lib/puppet/indirector/facts/yaml.rb +3 -58
- data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
- data/lib/puppet/indirector/file_content/rest.rb +2 -6
- data/lib/puppet/indirector/file_metadata/rest.rb +3 -9
- data/lib/puppet/indirector/file_server.rb +1 -8
- data/lib/puppet/indirector/generic_http.rb +0 -11
- data/lib/puppet/indirector/json.rb +5 -1
- data/lib/puppet/indirector/node/json.rb +8 -0
- data/lib/puppet/indirector/node/rest.rb +2 -4
- data/lib/puppet/indirector/report/json.rb +34 -0
- data/lib/puppet/indirector/report/rest.rb +3 -8
- data/lib/puppet/indirector/request.rb +0 -101
- data/lib/puppet/indirector/rest.rb +12 -263
- data/lib/puppet/module_tool/applications.rb +0 -1
- data/lib/puppet/network/authconfig.rb +2 -96
- data/lib/puppet/network/authorization.rb +13 -35
- data/lib/puppet/network/formats.rb +2 -1
- data/lib/puppet/network/http.rb +3 -3
- data/lib/puppet/network/http/api/indirected_routes.rb +2 -20
- data/lib/puppet/network/http/api/master/v3.rb +11 -13
- data/lib/puppet/network/http/connection.rb +247 -316
- data/lib/puppet/network/http/handler.rb +0 -1
- data/lib/puppet/network/http_pool.rb +16 -34
- data/lib/puppet/node.rb +1 -30
- data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
- data/lib/puppet/pal/pal_impl.rb +73 -18
- data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
- data/lib/puppet/parser/compiler.rb +0 -198
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
- data/lib/puppet/parser/resource.rb +0 -69
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +22 -8
- data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -3
- data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
- data/lib/puppet/pops/issues.rb +0 -5
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
- data/lib/puppet/pops/model/ast.pp +0 -42
- data/lib/puppet/pops/model/ast.rb +0 -290
- data/lib/puppet/pops/model/factory.rb +0 -45
- data/lib/puppet/pops/model/model_label_provider.rb +0 -5
- data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
- data/lib/puppet/pops/model/pn_transformer.rb +0 -16
- data/lib/puppet/pops/parser/egrammar.ra +0 -56
- data/lib/puppet/pops/parser/eparser.rb +1520 -1712
- data/lib/puppet/pops/parser/lexer2.rb +4 -4
- data/lib/puppet/pops/parser/parser_support.rb +0 -5
- data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
- data/lib/puppet/pops/types/type_calculator.rb +0 -7
- data/lib/puppet/pops/types/type_parser.rb +0 -4
- data/lib/puppet/pops/types/types.rb +0 -1
- data/lib/puppet/pops/validation/checker4_0.rb +9 -37
- data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
- data/lib/puppet/provider.rb +0 -13
- data/lib/puppet/provider/nameservice.rb +0 -18
- data/lib/puppet/provider/package/dpkg.rb +0 -10
- data/lib/puppet/provider/package/gem.rb +23 -3
- data/lib/puppet/provider/package/pip.rb +0 -1
- data/lib/puppet/provider/package/pkg.rb +0 -4
- data/lib/puppet/provider/package/portage.rb +1 -1
- data/lib/puppet/provider/package/puppet_gem.rb +1 -4
- data/lib/puppet/provider/service/smf.rb +191 -73
- data/lib/puppet/provider/user/directoryservice.rb +0 -10
- data/lib/puppet/reference/configuration.rb +2 -0
- data/lib/puppet/reference/indirection.rb +1 -1
- data/lib/puppet/resource.rb +1 -89
- data/lib/puppet/resource/catalog.rb +1 -14
- data/lib/puppet/resource/type.rb +3 -119
- data/lib/puppet/resource/type_collection.rb +3 -48
- data/lib/puppet/runtime.rb +1 -2
- data/lib/puppet/settings.rb +45 -33
- data/lib/puppet/settings/base_setting.rb +26 -2
- data/lib/puppet/settings/integer_setting.rb +17 -0
- data/lib/puppet/settings/port_setting.rb +15 -0
- data/lib/puppet/settings/priority_setting.rb +5 -4
- data/lib/puppet/ssl.rb +10 -6
- data/lib/puppet/ssl/base.rb +3 -5
- data/lib/puppet/ssl/certificate.rb +0 -6
- data/lib/puppet/ssl/certificate_request.rb +1 -12
- data/lib/puppet/ssl/certificate_signer.rb +6 -0
- data/lib/puppet/ssl/oids.rb +3 -1
- data/lib/puppet/ssl/ssl_provider.rb +17 -0
- data/lib/puppet/ssl/state_machine.rb +3 -1
- data/lib/puppet/ssl/verifier.rb +2 -0
- data/lib/puppet/test/test_helper.rb +1 -3
- data/lib/puppet/transaction.rb +1 -7
- data/lib/puppet/transaction/report.rb +2 -4
- data/lib/puppet/type.rb +0 -76
- data/lib/puppet/type/file.rb +5 -7
- data/lib/puppet/type/file/checksum.rb +1 -1
- data/lib/puppet/type/file/source.rb +1 -1
- data/lib/puppet/type/filebucket.rb +3 -3
- data/lib/puppet/type/package.rb +5 -13
- data/lib/puppet/util/execution.rb +0 -11
- data/lib/puppet/util/http_proxy.rb +2 -215
- data/lib/puppet/util/monkey_patches.rb +0 -46
- data/lib/puppet/util/rdoc.rb +0 -7
- data/lib/puppet/util/retry_action.rb +1 -1
- data/lib/puppet/util/rubygems.rb +5 -1
- data/lib/puppet/util/run_mode.rb +9 -1
- data/lib/puppet/util/windows.rb +3 -8
- data/lib/puppet/util/windows/daemon.rb +360 -0
- data/lib/puppet/util/windows/error.rb +1 -0
- data/lib/puppet/util/windows/eventlog.rb +4 -9
- data/lib/puppet/util/windows/file.rb +8 -242
- data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
- data/lib/puppet/util/windows/process.rb +4 -226
- data/lib/puppet/util/windows/service.rb +9 -460
- data/lib/puppet/util/windows/string.rb +12 -13
- data/lib/puppet/util/yaml.rb +0 -22
- data/lib/puppet/vendor/require_vendored.rb +0 -1
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet/x509.rb +5 -1
- data/lib/puppet/x509/cert_provider.rb +29 -1
- data/locales/puppet.pot +531 -1232
- data/man/man5/puppet.conf.5 +37 -97
- 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 +55 -9
- data/man/man8/puppet-filebucket.8 +6 -6
- 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 -58
- data/man/man8/puppet-node.8 +4 -1
- 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 +1 -1
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
- data/spec/integration/application/agent_spec.rb +24 -11
- data/spec/integration/application/apply_spec.rb +1 -1
- data/spec/integration/application/filebucket_spec.rb +16 -16
- data/spec/integration/application/help_spec.rb +2 -0
- data/spec/integration/application/plugin_spec.rb +23 -1
- data/spec/integration/defaults_spec.rb +7 -3
- data/spec/integration/environments/setting_hooks_spec.rb +1 -1
- data/spec/integration/network/http_pool_spec.rb +3 -21
- data/spec/integration/parser/catalog_spec.rb +0 -38
- data/spec/integration/parser/node_spec.rb +0 -9
- data/spec/integration/parser/pcore_resource_spec.rb +0 -37
- data/spec/integration/type/file_spec.rb +5 -4
- data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
- data/spec/integration/util/windows/security_spec.rb +1 -1
- data/spec/lib/puppet_spec/puppetserver.rb +1 -1
- data/spec/lib/puppet_spec/settings.rb +7 -1
- data/spec/spec_helper.rb +2 -0
- data/spec/unit/agent_spec.rb +0 -2
- data/spec/unit/application/config_spec.rb +224 -4
- data/spec/unit/application/facts_spec.rb +35 -0
- data/spec/unit/application/filebucket_spec.rb +41 -39
- data/spec/unit/application/ssl_spec.rb +2 -2
- data/spec/unit/certificate_factory_spec.rb +1 -1
- data/spec/unit/configurer/downloader_spec.rb +6 -2
- data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
- data/spec/unit/configurer_spec.rb +12 -9
- data/spec/unit/context/trusted_information_spec.rb +2 -6
- data/spec/unit/defaults_spec.rb +77 -28
- data/spec/unit/environments_spec.rb +0 -3
- data/spec/unit/face/config_spec.rb +27 -32
- data/spec/unit/face/facts_spec.rb +4 -0
- data/spec/unit/face/plugin_spec.rb +73 -33
- data/spec/unit/file_bucket/file_spec.rb +1 -1
- data/spec/unit/file_serving/configuration/parser_spec.rb +14 -18
- data/spec/unit/file_serving/configuration_spec.rb +6 -12
- data/spec/unit/functions/camelcase_spec.rb +1 -1
- data/spec/unit/functions/capitalize_spec.rb +1 -1
- data/spec/unit/functions/downcase_spec.rb +1 -1
- data/spec/unit/functions/inline_epp_spec.rb +26 -1
- data/spec/unit/functions/upcase_spec.rb +1 -1
- data/spec/unit/http/client_spec.rb +7 -8
- data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
- data/spec/unit/http/external_client_spec.rb +4 -4
- data/spec/unit/{network/http → http}/factory_spec.rb +5 -11
- data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
- data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
- data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
- data/spec/unit/http/resolver_spec.rb +13 -13
- data/spec/unit/http/service/compiler_spec.rb +49 -62
- data/spec/unit/http/service/file_server_spec.rb +3 -3
- data/spec/unit/http/service/puppetserver_spec.rb +34 -4
- data/spec/unit/http/service_spec.rb +1 -2
- data/spec/unit/http/session_spec.rb +16 -14
- data/spec/unit/{network/http → http}/site_spec.rb +3 -3
- data/spec/unit/indirector/facts/facter_spec.rb +97 -0
- data/spec/unit/indirector/facts/json_spec.rb +255 -0
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
- data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
- data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
- data/spec/unit/indirector/file_server_spec.rb +1 -15
- data/spec/unit/indirector/node/json_spec.rb +33 -0
- data/spec/{integration/indirector/report/yaml.rb → unit/indirector/report/json_spec.rb} +13 -24
- data/spec/unit/indirector/report/rest_spec.rb +2 -17
- data/spec/unit/indirector/report/yaml_spec.rb +72 -8
- data/spec/unit/indirector/request_spec.rb +0 -264
- data/spec/unit/indirector/rest_spec.rb +98 -752
- data/spec/unit/network/authconfig_spec.rb +2 -132
- data/spec/unit/network/authorization_spec.rb +2 -55
- data/spec/unit/network/formats_spec.rb +4 -4
- data/spec/unit/network/http/api/indirected_routes_spec.rb +1 -97
- data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
- data/spec/unit/network/http/api_spec.rb +10 -0
- data/spec/unit/network/http/connection_spec.rb +19 -41
- data/spec/unit/network/http/handler_spec.rb +0 -6
- data/spec/unit/network/http_pool_spec.rb +0 -4
- data/spec/unit/node/environment_spec.rb +33 -21
- data/spec/unit/node_spec.rb +2 -54
- data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
- data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
- data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
- data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
- data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
- data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
- data/spec/unit/pops/types/type_calculator_spec.rb +6 -6
- data/spec/unit/pops/types/type_factory_spec.rb +1 -1
- data/spec/unit/pops/validator/validator_spec.rb +61 -46
- data/spec/unit/pops/visitor_spec.rb +1 -1
- data/spec/unit/provider/nameservice_spec.rb +0 -57
- data/spec/unit/provider/package/dpkg_spec.rb +0 -48
- data/spec/unit/provider/package/gem_spec.rb +32 -0
- data/spec/unit/provider/package/puppet_gem_spec.rb +3 -2
- data/spec/unit/provider/service/smf_spec.rb +401 -165
- data/spec/unit/provider/service/windows_spec.rb +0 -1
- data/spec/unit/provider_spec.rb +0 -12
- data/spec/unit/puppet_pal_catalog_spec.rb +45 -0
- data/spec/unit/resource/type_collection_spec.rb +2 -22
- data/spec/unit/resource_spec.rb +0 -56
- data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
- data/spec/unit/settings/integer_setting_spec.rb +42 -0
- data/spec/unit/settings/port_setting_spec.rb +31 -0
- data/spec/unit/settings/priority_setting_spec.rb +4 -4
- data/spec/unit/settings_spec.rb +423 -236
- data/spec/unit/ssl/base_spec.rb +36 -3
- data/spec/unit/ssl/certificate_request_spec.rb +15 -45
- data/spec/unit/ssl/certificate_spec.rb +2 -11
- data/spec/unit/ssl/ssl_provider_spec.rb +11 -8
- data/spec/unit/ssl/state_machine_spec.rb +0 -1
- data/spec/unit/ssl/verifier_spec.rb +0 -21
- data/spec/unit/transaction/report_spec.rb +0 -2
- data/spec/unit/transaction/resource_harness_spec.rb +2 -2
- data/spec/unit/transaction_spec.rb +45 -79
- data/spec/unit/type/file/checksum_spec.rb +6 -6
- data/spec/unit/type/file/content_spec.rb +1 -1
- data/spec/unit/type/file/ensure_spec.rb +1 -1
- data/spec/unit/type/file/mode_spec.rb +1 -1
- data/spec/unit/type/file/source_spec.rb +0 -1
- data/spec/unit/type/file_spec.rb +12 -6
- data/spec/unit/type/package_spec.rb +1 -1
- data/spec/unit/type_spec.rb +20 -0
- data/spec/unit/util/backups_spec.rb +0 -2
- data/spec/unit/util/execution_spec.rb +0 -29
- data/spec/unit/util/monkey_patches_spec.rb +0 -6
- data/spec/unit/util/rubygems_spec.rb +2 -2
- data/spec/unit/util/run_mode_spec.rb +21 -121
- data/spec/unit/util/windows/string_spec.rb +1 -3
- data/spec/unit/util/yaml_spec.rb +0 -54
- data/spec/unit/util_spec.rb +0 -18
- metadata +50 -232
- data/conf/auth.conf +0 -150
- data/lib/puppet/application/cert.rb +0 -76
- data/lib/puppet/application/key.rb +0 -4
- data/lib/puppet/application/man.rb +0 -4
- data/lib/puppet/application/status.rb +0 -4
- data/lib/puppet/face/key.rb +0 -16
- data/lib/puppet/face/man.rb +0 -145
- data/lib/puppet/face/module/build.rb +0 -14
- data/lib/puppet/face/module/generate.rb +0 -14
- data/lib/puppet/face/module/search.rb +0 -103
- data/lib/puppet/face/status.rb +0 -51
- data/lib/puppet/indirector/certificate/file.rb +0 -9
- data/lib/puppet/indirector/certificate/rest.rb +0 -18
- data/lib/puppet/indirector/certificate_request/file.rb +0 -9
- data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
- data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
- data/lib/puppet/indirector/file_content/http.rb +0 -22
- data/lib/puppet/indirector/key/file.rb +0 -46
- data/lib/puppet/indirector/key/memory.rb +0 -7
- data/lib/puppet/indirector/ssl_file.rb +0 -162
- data/lib/puppet/indirector/status.rb +0 -3
- data/lib/puppet/indirector/status/local.rb +0 -12
- data/lib/puppet/indirector/status/rest.rb +0 -27
- data/lib/puppet/module_tool/applications/searcher.rb +0 -29
- data/lib/puppet/network/auth_config_parser.rb +0 -90
- data/lib/puppet/network/authstore.rb +0 -283
- data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
- data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
- data/lib/puppet/network/http/base_pool.rb +0 -36
- data/lib/puppet/network/http/compression.rb +0 -127
- data/lib/puppet/network/http/connection_adapter.rb +0 -184
- data/lib/puppet/network/http/nocache_pool.rb +0 -28
- data/lib/puppet/network/rest_controller.rb +0 -2
- data/lib/puppet/network/rights.rb +0 -210
- data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
- data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
- data/lib/puppet/parser/environment_compiler.rb +0 -202
- data/lib/puppet/pops/types/enumeration.rb +0 -16
- data/lib/puppet/resource/capability_finder.rb +0 -154
- data/lib/puppet/rest/errors.rb +0 -15
- data/lib/puppet/rest/response.rb +0 -35
- data/lib/puppet/rest/route.rb +0 -85
- data/lib/puppet/rest/routes.rb +0 -135
- data/lib/puppet/ssl/host.rb +0 -505
- data/lib/puppet/ssl/key.rb +0 -61
- data/lib/puppet/ssl/validator.rb +0 -61
- data/lib/puppet/ssl/validator/default_validator.rb +0 -209
- data/lib/puppet/ssl/validator/no_validator.rb +0 -22
- data/lib/puppet/ssl/verifier_adapter.rb +0 -58
- data/lib/puppet/status.rb +0 -40
- data/lib/puppet/util/connection.rb +0 -88
- data/lib/puppet/util/ssl.rb +0 -83
- data/lib/puppet/util/windows/api_types.rb +0 -309
- data/lib/puppet/util/windows/monkey_patches/dir.rb +0 -40
- data/lib/puppet/vendor/load_pathspec.rb +0 -1
- data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
- data/lib/puppet/vendor/pathspec/LICENSE +0 -201
- data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
- data/lib/puppet/vendor/pathspec/README.md +0 -53
- data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
- data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
- data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
- data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
- data/man/man8/puppet-key.8 +0 -126
- data/man/man8/puppet-man.8 +0 -76
- data/man/man8/puppet-status.8 +0 -108
- data/spec/integration/application/config_spec.rb +0 -74
- data/spec/integration/network/authconfig_spec.rb +0 -256
- data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
- data/spec/unit/application/man_spec.rb +0 -52
- data/spec/unit/capability_spec.rb +0 -414
- data/spec/unit/face/catalog_spec.rb +0 -6
- data/spec/unit/face/key_spec.rb +0 -9
- data/spec/unit/face/module/search_spec.rb +0 -231
- data/spec/unit/face/module_spec.rb +0 -3
- data/spec/unit/face/status_spec.rb +0 -9
- data/spec/unit/indirector/certificate/file_spec.rb +0 -14
- data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
- data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
- data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
- data/spec/unit/indirector/key/file_spec.rb +0 -79
- data/spec/unit/indirector/ssl_file_spec.rb +0 -305
- data/spec/unit/indirector/status/local_spec.rb +0 -10
- data/spec/unit/indirector/status/rest_spec.rb +0 -50
- data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
- data/spec/unit/network/auth_config_parser_spec.rb +0 -115
- data/spec/unit/network/authstore_spec.rb +0 -422
- data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
- data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
- data/spec/unit/network/http/compression_spec.rb +0 -240
- data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
- data/spec/unit/network/http_spec.rb +0 -9
- data/spec/unit/network/rights_spec.rb +0 -439
- data/spec/unit/parser/environment_compiler_spec.rb +0 -730
- data/spec/unit/pops/types/enumeration_spec.rb +0 -51
- data/spec/unit/resource/capability_finder_spec.rb +0 -143
- data/spec/unit/rest/route_spec.rb +0 -132
- data/spec/unit/ssl/host_spec.rb +0 -650
- data/spec/unit/ssl/key_spec.rb +0 -173
- data/spec/unit/ssl/validator_spec.rb +0 -278
- data/spec/unit/status_spec.rb +0 -45
- data/spec/unit/util/ssl_spec.rb +0 -91
@@ -147,9 +147,6 @@ module Puppet::Test
|
|
147
147
|
Puppet::Application.clear!
|
148
148
|
Puppet::Util::Profiler.clear
|
149
149
|
|
150
|
-
Puppet::SSL::Host.reset
|
151
|
-
Puppet::Rest::Routes.clear
|
152
|
-
|
153
150
|
Puppet::Node::Facts.indirection.terminus_class = :memory
|
154
151
|
facts = Puppet::Node::Facts.new(Puppet[:node_name_value])
|
155
152
|
Puppet::Node::Facts.indirection.save(facts)
|
@@ -223,6 +220,7 @@ module Puppet::Test
|
|
223
220
|
{
|
224
221
|
:logdir => "/dev/null",
|
225
222
|
:confdir => "/dev/null",
|
223
|
+
:publicdir => "/dev/null",
|
226
224
|
:codedir => "/dev/null",
|
227
225
|
:vardir => "/dev/null",
|
228
226
|
:rundir => "/dev/null",
|
data/lib/puppet/transaction.rb
CHANGED
@@ -376,16 +376,10 @@ class Puppet::Transaction
|
|
376
376
|
Puppet.debug { "Prefetching #{provider_class.name} resources for #{type_name}" }
|
377
377
|
begin
|
378
378
|
provider_class.prefetch(resources)
|
379
|
-
rescue LoadError,
|
379
|
+
rescue LoadError, StandardError => detail
|
380
380
|
#TRANSLATORS `prefetch` is a function name and should not be translated
|
381
381
|
message = _("Could not prefetch %{type_name} provider '%{name}': %{detail}") % { type_name: type_name, name: provider_class.name, detail: detail }
|
382
382
|
Puppet.log_exception(detail, message)
|
383
|
-
rescue StandardError => detail
|
384
|
-
message = _("Could not prefetch %{type_name} provider '%{name}': %{detail}") % { type_name: type_name, name: provider_class.name, detail: detail }
|
385
|
-
Puppet.log_exception(detail, message)
|
386
|
-
|
387
|
-
raise unless Puppet.settings[:future_features]
|
388
|
-
|
389
383
|
@prefetch_failed_providers[type_name][provider_class.name] = true
|
390
384
|
end
|
391
385
|
@prefetched_providers[type_name][provider_class.name] = true
|
@@ -66,8 +66,6 @@ class Puppet::Transaction::Report
|
|
66
66
|
# Contains the name and port of the server that was successfully contacted
|
67
67
|
# @return [String] a string of the format 'servername:port'
|
68
68
|
attr_accessor :server_used
|
69
|
-
alias :master_used :server_used
|
70
|
-
alias :master_used= :server_used=
|
71
69
|
|
72
70
|
# The host name for which the report is generated
|
73
71
|
# @return [String] the host name
|
@@ -226,7 +224,7 @@ class Puppet::Transaction::Report
|
|
226
224
|
@external_times ||= {}
|
227
225
|
@host = Puppet[:node_name_value]
|
228
226
|
@time = start_time
|
229
|
-
@report_format =
|
227
|
+
@report_format = 12
|
230
228
|
@puppet_version = Puppet.version
|
231
229
|
@configuration_version = configuration_version
|
232
230
|
@transaction_uuid = transaction_uuid
|
@@ -326,7 +324,7 @@ class Puppet::Transaction::Report
|
|
326
324
|
}
|
327
325
|
|
328
326
|
# The following is include only when set
|
329
|
-
hash['
|
327
|
+
hash['server_used'] = @server_used unless @server_used.nil?
|
330
328
|
hash['catalog_uuid'] = @catalog_uuid unless @catalog_uuid.nil?
|
331
329
|
hash['code_id'] = @code_id unless @code_id.nil?
|
332
330
|
hash['job_id'] = @job_id unless @job_id.nil?
|
data/lib/puppet/type.rb
CHANGED
@@ -114,29 +114,6 @@ class Type
|
|
114
114
|
attr_reader :properties
|
115
115
|
end
|
116
116
|
|
117
|
-
# Allow declaring that a type is actually a capability
|
118
|
-
class << self
|
119
|
-
# @deprecated application orchestration will be removed in puppet 7
|
120
|
-
attr_accessor :is_capability
|
121
|
-
|
122
|
-
# @deprecated application orchestration will be removed in puppet 7
|
123
|
-
def is_capability?
|
124
|
-
c = is_capability
|
125
|
-
c.nil? ? false : c
|
126
|
-
end
|
127
|
-
end
|
128
|
-
|
129
|
-
# Returns whether this type represents an application instance; since
|
130
|
-
# only defined types, i.e., instances of Puppet::Resource::Type can
|
131
|
-
# represent application instances, this implementation always returns
|
132
|
-
# +false+. Having this method though makes code checking whether a
|
133
|
-
# resource is an application instance simpler
|
134
|
-
#
|
135
|
-
# @deprecated application orchestration will be removed in puppet 7
|
136
|
-
def self.application?
|
137
|
-
false
|
138
|
-
end
|
139
|
-
|
140
117
|
# Returns all the attribute names of the type in the appropriate order.
|
141
118
|
# The {key_attributes} come first, then the {provider}, then the {properties}, and finally
|
142
119
|
# the {parameters} and {metaparams},
|
@@ -1720,59 +1697,6 @@ class Type
|
|
1720
1697
|
}
|
1721
1698
|
end
|
1722
1699
|
|
1723
|
-
# @deprecated application orchestration will be removed in puppet 7
|
1724
|
-
newmetaparam(:export, :parent => RelationshipMetaparam, :attributes => {:direction => :out, :events => :NONE}) do
|
1725
|
-
desc <<EOS
|
1726
|
-
Export a capability resource.
|
1727
|
-
|
1728
|
-
The value of this parameter must be a reference to a capability resource,
|
1729
|
-
or an array of such references. Each capability resource referenced here
|
1730
|
-
will be instantiated in the node catalog and exported to consumers of this
|
1731
|
-
resource. The title of the capability resource will be the title given in
|
1732
|
-
the reference, and all other attributes of the resource will be filled
|
1733
|
-
according to the corresponding produces statement.
|
1734
|
-
|
1735
|
-
It is an error if this metaparameter references resources whose type is not
|
1736
|
-
a capability type, or of there is no produces clause for the type of the
|
1737
|
-
current resource and the capability resource mentioned in this parameter.
|
1738
|
-
|
1739
|
-
For example:
|
1740
|
-
|
1741
|
-
define web(..) { .. }
|
1742
|
-
Web produces Http { .. }
|
1743
|
-
web { server:
|
1744
|
-
export => Http[main_server]
|
1745
|
-
}
|
1746
|
-
EOS
|
1747
|
-
end
|
1748
|
-
|
1749
|
-
# @deprecated application orchestration will be removed in puppet 7
|
1750
|
-
newmetaparam(:consume, :parent => RelationshipMetaparam, :attributes => {:direction => :in, :events => :NONE}) do
|
1751
|
-
desc <<EOS
|
1752
|
-
Consume a capability resource.
|
1753
|
-
|
1754
|
-
The value of this parameter must be a reference to a capability resource,
|
1755
|
-
or an array of such references. Each capability resource referenced here
|
1756
|
-
must have been exported by another resource in the same environment.
|
1757
|
-
|
1758
|
-
The referenced capability resources will be looked up, added to the
|
1759
|
-
current node catalog, and processed following the underlying consumes
|
1760
|
-
clause.
|
1761
|
-
|
1762
|
-
It is an error if this metaparameter references resources whose type is not
|
1763
|
-
a capability type, or of there is no consumes clause for the type of the
|
1764
|
-
current resource and the capability resource mentioned in this parameter.
|
1765
|
-
|
1766
|
-
For example:
|
1767
|
-
|
1768
|
-
define web(..) { .. }
|
1769
|
-
Web consumes Sql { .. }
|
1770
|
-
web { server:
|
1771
|
-
consume => Sql[my_db]
|
1772
|
-
}
|
1773
|
-
EOS
|
1774
|
-
end
|
1775
|
-
|
1776
1700
|
###############################
|
1777
1701
|
# All of the provider plumbing for the resource types.
|
1778
1702
|
require 'puppet/provider'
|
data/lib/puppet/type/file.rb
CHANGED
@@ -83,13 +83,11 @@ Puppet::Type.newtype(:file) do
|
|
83
83
|
use copy the file in the same directory with that value as the extension
|
84
84
|
of the backup. (A value of `true` is a synonym for `.puppet-bak`.)
|
85
85
|
* If set to any other string, Puppet will try to back up to a filebucket
|
86
|
-
with that title.
|
87
|
-
|
88
|
-
|
86
|
+
with that title. Puppet automatically creates a **local** filebucket
|
87
|
+
named `puppet` if one doesn't already exist. See the `filebucket` resource
|
88
|
+
type for more details.
|
89
89
|
|
90
|
-
Default value: `
|
91
|
-
(Puppet automatically creates a **local** filebucket named `puppet` if one
|
92
|
-
doesn't already exist.)
|
90
|
+
Default value: `false`
|
93
91
|
|
94
92
|
Backing up to a local filebucket isn't particularly useful. If you want
|
95
93
|
to make organized use of backups, you will generally want to use the
|
@@ -125,7 +123,7 @@ Puppet::Type.newtype(:file) do
|
|
125
123
|
- Restrict the directory to a maximum size after which the oldest items are removed.
|
126
124
|
EOT
|
127
125
|
|
128
|
-
defaultto
|
126
|
+
defaultto false
|
129
127
|
|
130
128
|
munge do |value|
|
131
129
|
# I don't really know how this is happening.
|
@@ -7,7 +7,7 @@ Puppet::Type.type(:file).newparam(:checksum) do
|
|
7
7
|
|
8
8
|
desc "The checksum type to use when determining whether to replace a file's contents.
|
9
9
|
|
10
|
-
The default checksum type is
|
10
|
+
The default checksum type is #{Puppet.default_digest_algorithm}."
|
11
11
|
|
12
12
|
newvalues(*Puppet::Util::Checksums.known_checksum_types)
|
13
13
|
|
@@ -340,7 +340,7 @@ module Puppet
|
|
340
340
|
|
341
341
|
def handle_response_error(response)
|
342
342
|
message = "Error #{response.code} on SERVER: #{response.body.empty? ? response.reason : response.body}"
|
343
|
-
raise Net::HTTPError.new(message, response
|
343
|
+
raise Net::HTTPError.new(message, Puppet::HTTP::ResponseConverter.to_ruby_response(response))
|
344
344
|
end
|
345
345
|
end
|
346
346
|
|
@@ -5,7 +5,7 @@ module Puppet
|
|
5
5
|
@doc = <<-EOT
|
6
6
|
A repository for storing and retrieving file content by MD5 checksum. Can
|
7
7
|
be local to each agent node, or centralized on a puppet master server. All
|
8
|
-
puppet
|
8
|
+
puppet servers provide a filebucket service that agent nodes can access
|
9
9
|
via HTTP, but you must declare a filebucket resource before any agents
|
10
10
|
will do so.
|
11
11
|
|
@@ -30,9 +30,9 @@ module Puppet
|
|
30
30
|
|
31
31
|
File { backup => main, }
|
32
32
|
|
33
|
-
Puppet
|
33
|
+
Puppet Servers automatically provide the filebucket service, so
|
34
34
|
this will work in a default configuration. If you have a heavily
|
35
|
-
restricted `auth.conf` file, you may need to allow access to the
|
35
|
+
restricted Puppet Server `auth.conf` file, you may need to allow access to the
|
36
36
|
`file_bucket_file` endpoint.
|
37
37
|
EOT
|
38
38
|
|
data/lib/puppet/type/package.rb
CHANGED
@@ -106,10 +106,6 @@ module Puppet
|
|
106
106
|
provider.purge
|
107
107
|
end
|
108
108
|
|
109
|
-
newvalue(:held, :event => :package_held, :required_features => :holdable) do
|
110
|
-
provider.deprecated_hold
|
111
|
-
end
|
112
|
-
|
113
109
|
newvalue(:disabled, :required_features => :disableable) do
|
114
110
|
provider.disable
|
115
111
|
end
|
@@ -161,7 +157,7 @@ module Puppet
|
|
161
157
|
@should.each { |should|
|
162
158
|
case should
|
163
159
|
when :present
|
164
|
-
return true unless [:absent, :purged, :
|
160
|
+
return true unless [:absent, :purged, :disabled].include?(is)
|
165
161
|
when :latest
|
166
162
|
# Short-circuit packages that are not present
|
167
163
|
return false if is == :absent || is == :purged
|
@@ -657,8 +653,7 @@ module Puppet
|
|
657
653
|
if provider.reinstallable? &&
|
658
654
|
@parameters[:reinstall_on_refresh].value == :true &&
|
659
655
|
@parameters[:ensure].value != :purged &&
|
660
|
-
@parameters[:ensure].value != :absent
|
661
|
-
@parameters[:ensure].value != :held
|
656
|
+
@parameters[:ensure].value != :absent
|
662
657
|
|
663
658
|
provider.reinstall
|
664
659
|
end
|
@@ -673,7 +668,7 @@ module Puppet
|
|
673
668
|
Default is "none". Mark can be specified with or without `ensure`,
|
674
669
|
if `ensure` is missing will default to "present".
|
675
670
|
|
676
|
-
Mark cannot be specified together with "purged",
|
671
|
+
Mark cannot be specified together with "purged", or "absent"
|
677
672
|
values for `ensure`.
|
678
673
|
EOT
|
679
674
|
newvalues(:hold, :none)
|
@@ -710,11 +705,8 @@ module Puppet
|
|
710
705
|
end
|
711
706
|
|
712
707
|
validate do
|
713
|
-
if :
|
714
|
-
|
715
|
-
end
|
716
|
-
if @parameters[:mark] && [:absent, :purged, :held].include?(@parameters[:ensure].should)
|
717
|
-
raise ArgumentError, _('You cannot use "mark" property while "ensure" is one of ["absent", "purged", "held"]')
|
708
|
+
if @parameters[:mark] && [:absent, :purged].include?(@parameters[:ensure].should)
|
709
|
+
raise ArgumentError, _('You cannot use "mark" property while "ensure" is one of ["absent", "purged"]')
|
718
710
|
end
|
719
711
|
end
|
720
712
|
end
|
@@ -94,17 +94,6 @@ module Puppet::Util::Execution
|
|
94
94
|
end
|
95
95
|
private_class_method :exitstatus
|
96
96
|
|
97
|
-
# Wraps execution of {execute} with mapping of exception to given exception (and output as argument).
|
98
|
-
# @raise [exception] under same conditions as {execute}, but raises the given `exception` with the output as argument
|
99
|
-
# @return (see execute)
|
100
|
-
# @api public
|
101
|
-
# @deprecated
|
102
|
-
def self.execfail(command, exception)
|
103
|
-
execute(command)
|
104
|
-
rescue Puppet::ExecutionFailure => detail
|
105
|
-
raise exception, detail.message, detail.backtrace
|
106
|
-
end
|
107
|
-
|
108
97
|
# Default empty options for {execute}
|
109
98
|
NoOptionsSpecified = {}
|
110
99
|
|
@@ -1,217 +1,4 @@
|
|
1
|
-
require 'uri'
|
2
|
-
require 'puppet/ssl/openssl_loader'
|
3
1
|
require 'puppet/http'
|
4
2
|
|
5
|
-
|
6
|
-
|
7
|
-
if http_proxy_host && !no_proxy?(uri)
|
8
|
-
Net::HTTP.new(uri.host, uri.port, self.http_proxy_host, self.http_proxy_port, self.http_proxy_user, self.http_proxy_password)
|
9
|
-
else
|
10
|
-
http = Net::HTTP.new(uri.host, uri.port, nil, nil, nil, nil)
|
11
|
-
# Net::HTTP defaults the proxy port even though we said not to
|
12
|
-
# use one. Set it to nil so caller is not surprised
|
13
|
-
http.proxy_port = nil
|
14
|
-
http
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
def self.http_proxy_env
|
19
|
-
# Returns a URI object if proxy is set, or nil
|
20
|
-
proxy_env = ENV["http_proxy"] || ENV["HTTP_PROXY"]
|
21
|
-
begin
|
22
|
-
return URI.parse(proxy_env) if proxy_env
|
23
|
-
rescue URI::InvalidURIError
|
24
|
-
return nil
|
25
|
-
end
|
26
|
-
return nil
|
27
|
-
end
|
28
|
-
|
29
|
-
# The documentation around the format of the no_proxy variable seems
|
30
|
-
# inconsistent. Some suggests the use of the * as a way of matching any
|
31
|
-
# hosts under a domain, e.g.:
|
32
|
-
# *.example.com
|
33
|
-
# Other documentation suggests that just a leading '.' indicates a domain
|
34
|
-
# level exclusion, e.g.:
|
35
|
-
# .example.com
|
36
|
-
# We'll accommodate both here.
|
37
|
-
def self.no_proxy?(dest)
|
38
|
-
no_proxy = self.no_proxy
|
39
|
-
unless no_proxy
|
40
|
-
return false
|
41
|
-
end
|
42
|
-
|
43
|
-
unless dest.is_a? URI
|
44
|
-
begin
|
45
|
-
dest = URI.parse(dest)
|
46
|
-
rescue URI::InvalidURIError
|
47
|
-
return false
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
no_proxy.split(/\s*,\s*/).each do |d|
|
52
|
-
host, port = d.split(':')
|
53
|
-
host = Regexp.escape(host).gsub('\*', '.*')
|
54
|
-
|
55
|
-
#If this no_proxy entry specifies a port, we want to match it against
|
56
|
-
#the destination port. Otherwise just match hosts.
|
57
|
-
if port
|
58
|
-
no_proxy_regex = %r(#{host}:#{port}$)
|
59
|
-
dest_string = "#{dest.host}:#{dest.port}"
|
60
|
-
else
|
61
|
-
no_proxy_regex = %r(#{host}$)
|
62
|
-
dest_string = "#{dest.host}"
|
63
|
-
end
|
64
|
-
|
65
|
-
if no_proxy_regex.match(dest_string)
|
66
|
-
return true
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
return false
|
71
|
-
end
|
72
|
-
|
73
|
-
def self.http_proxy_host
|
74
|
-
env = self.http_proxy_env
|
75
|
-
|
76
|
-
if env and env.host
|
77
|
-
return env.host
|
78
|
-
end
|
79
|
-
|
80
|
-
if Puppet.settings[:http_proxy_host] == 'none'
|
81
|
-
return nil
|
82
|
-
end
|
83
|
-
|
84
|
-
return Puppet.settings[:http_proxy_host]
|
85
|
-
end
|
86
|
-
|
87
|
-
def self.http_proxy_port
|
88
|
-
env = self.http_proxy_env
|
89
|
-
|
90
|
-
if env and env.port
|
91
|
-
return env.port
|
92
|
-
end
|
93
|
-
|
94
|
-
return Puppet.settings[:http_proxy_port]
|
95
|
-
end
|
96
|
-
|
97
|
-
def self.http_proxy_user
|
98
|
-
env = self.http_proxy_env
|
99
|
-
|
100
|
-
if env and env.user
|
101
|
-
return env.user
|
102
|
-
end
|
103
|
-
|
104
|
-
if Puppet.settings[:http_proxy_user] == 'none'
|
105
|
-
return nil
|
106
|
-
end
|
107
|
-
|
108
|
-
return Puppet.settings[:http_proxy_user]
|
109
|
-
end
|
110
|
-
|
111
|
-
def self.http_proxy_password
|
112
|
-
env = self.http_proxy_env
|
113
|
-
|
114
|
-
if env and env.password
|
115
|
-
return env.password
|
116
|
-
end
|
117
|
-
|
118
|
-
if Puppet.settings[:http_proxy_user] == 'none' or Puppet.settings[:http_proxy_password] == 'none'
|
119
|
-
return nil
|
120
|
-
end
|
121
|
-
|
122
|
-
return Puppet.settings[:http_proxy_password]
|
123
|
-
end
|
124
|
-
|
125
|
-
def self.no_proxy
|
126
|
-
no_proxy_env = ENV["no_proxy"] || ENV["NO_PROXY"]
|
127
|
-
|
128
|
-
if no_proxy_env
|
129
|
-
return no_proxy_env
|
130
|
-
end
|
131
|
-
|
132
|
-
if Puppet.settings[:no_proxy] == 'none'
|
133
|
-
return nil
|
134
|
-
end
|
135
|
-
|
136
|
-
return Puppet.settings[:no_proxy]
|
137
|
-
end
|
138
|
-
|
139
|
-
# Return a Net::HTTP::Proxy object.
|
140
|
-
#
|
141
|
-
# This method optionally configures SSL correctly if the URI scheme is
|
142
|
-
# 'https', including setting up the root certificate store so remote server
|
143
|
-
# SSL certificates can be validated.
|
144
|
-
#
|
145
|
-
# @param [URI] uri The URI that is to be accessed.
|
146
|
-
# @return [Net::HTTP::Proxy] object constructed tailored for the passed URI
|
147
|
-
def self.get_http_object(uri)
|
148
|
-
proxy = proxy(uri)
|
149
|
-
|
150
|
-
if uri.scheme == 'https'
|
151
|
-
cert_store = OpenSSL::X509::Store.new
|
152
|
-
cert_store.set_default_paths
|
153
|
-
|
154
|
-
proxy.use_ssl = true
|
155
|
-
proxy.verify_mode = OpenSSL::SSL::VERIFY_PEER
|
156
|
-
proxy.cert_store = cert_store
|
157
|
-
end
|
158
|
-
|
159
|
-
if Puppet[:http_debug]
|
160
|
-
proxy.set_debug_output($stderr)
|
161
|
-
end
|
162
|
-
|
163
|
-
proxy.open_timeout = Puppet[:http_connect_timeout]
|
164
|
-
proxy.read_timeout = Puppet[:http_read_timeout]
|
165
|
-
|
166
|
-
proxy
|
167
|
-
end
|
168
|
-
|
169
|
-
# Retrieve a document through HTTP(s), following redirects if necessary. The
|
170
|
-
# returned response body may be compressed, and it is the caller's
|
171
|
-
# responsibility to decompress it based on the 'content-encoding' header.
|
172
|
-
#
|
173
|
-
# Based on the the client implementation in the HTTP pool.
|
174
|
-
#
|
175
|
-
# @see Puppet::Network::HTTP::Connection#request_with_redirects
|
176
|
-
#
|
177
|
-
# @param [URI] uri The address of the resource to retrieve.
|
178
|
-
# @param [symbol] method The name of the Net::HTTP method to use, typically :get, :head, :post etc.
|
179
|
-
# @param [FixNum] redirect_limit The number of redirections that can be followed.
|
180
|
-
# @return [Net::HTTPResponse] a response object
|
181
|
-
def self.request_with_redirects(uri, method, redirect_limit = 10, &block)
|
182
|
-
current_uri = uri
|
183
|
-
response = nil
|
184
|
-
|
185
|
-
0.upto(redirect_limit) do |redirection|
|
186
|
-
proxy = get_http_object(current_uri)
|
187
|
-
|
188
|
-
headers = { 'Accept' => '*/*', 'User-Agent' => Puppet[:http_user_agent] }
|
189
|
-
if Puppet.features.zlib?
|
190
|
-
headers["Accept-Encoding"] = Puppet::HTTP::ACCEPT_ENCODING
|
191
|
-
end
|
192
|
-
|
193
|
-
response = proxy.send(:head, current_uri, headers)
|
194
|
-
Puppet.debug("HTTP HEAD request to #{current_uri} returned #{response.code} #{response.message}")
|
195
|
-
|
196
|
-
if [301, 302, 307].include?(response.code.to_i)
|
197
|
-
# handle the redirection
|
198
|
-
current_uri = URI.parse(response['location'])
|
199
|
-
next
|
200
|
-
end
|
201
|
-
|
202
|
-
if method != :head
|
203
|
-
if block_given?
|
204
|
-
response = proxy.send("request_#{method}".to_sym, current_uri, headers, &block)
|
205
|
-
else
|
206
|
-
response = proxy.send(method, current_uri, headers)
|
207
|
-
end
|
208
|
-
|
209
|
-
Puppet.debug("HTTP #{method.to_s.upcase} request to #{current_uri} returned #{response.code} #{response.message}")
|
210
|
-
end
|
211
|
-
|
212
|
-
return response
|
213
|
-
end
|
214
|
-
|
215
|
-
raise RedirectionLimitExceededException, _("Too many HTTP redirections for %{uri}") % { uri: uri }
|
216
|
-
end
|
217
|
-
end
|
3
|
+
# for backwards compatibility
|
4
|
+
Puppet::Util::HttpProxy = Puppet::HTTP::Proxy
|