puppet 6.21.1-x64-mingw32 → 7.4.1-x64-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 -4
- data/Gemfile.lock +5 -5
- data/README.md +1 -1
- data/conf/fileserver.conf +5 -10
- data/ext/build_defaults.yaml +1 -2
- data/ext/osx/file_mapping.yaml +0 -5
- data/ext/project_data.yaml +2 -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 +13 -9
- data/lib/puppet/application/ssl.rb +1 -1
- data/lib/puppet/configurer.rb +27 -29
- data/lib/puppet/configurer/plugin_handler.rb +21 -19
- data/lib/puppet/defaults.rb +57 -162
- data/lib/puppet/environments.rb +8 -23
- data/lib/puppet/face/facts.rb +73 -49
- data/lib/puppet/face/help.rb +1 -1
- data/lib/puppet/face/node/clean.rb +8 -0
- 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 +6 -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/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/facts/facter.rb +25 -3
- data/lib/puppet/indirector/facts/rest.rb +3 -22
- 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/node/rest.rb +2 -4
- 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 +67 -0
- 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 +3 -1
- 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 +0 -5
- 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 +7 -5
- 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/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/type/user.rb +1 -1
- 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/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 +521 -1226
- data/man/man5/puppet.conf.5 +34 -94
- data/man/man8/puppet-facts.8 +56 -35
- data/man/man8/puppet-filebucket.8 +3 -3
- data/man/man8/puppet-module.8 +0 -57
- data/man/man8/puppet.8 +1 -1
- 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/indirector/file_content/file_server_spec.rb +0 -2
- data/spec/integration/indirector/file_metadata/file_server_spec.rb +0 -2
- 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 +1 -0
- data/spec/spec_helper.rb +2 -0
- data/spec/unit/agent_spec.rb +0 -2
- data/spec/unit/application/facts_spec.rb +86 -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 +22 -47
- data/spec/unit/environments_spec.rb +0 -3
- data/spec/unit/face/facts_spec.rb +4 -0
- data/spec/unit/face/node_spec.rb +14 -2
- 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 +22 -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/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 +0 -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 +0 -1
- 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 +113 -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/report/rest_spec.rb +2 -17
- 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 -129
- data/spec/unit/network/authorization_spec.rb +2 -55
- data/spec/unit/network/formats_spec.rb +45 -4
- data/spec/unit/network/http/api/indirected_routes_spec.rb +1 -92
- 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 -1
- 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/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 +17 -0
- data/spec/unit/ssl/base_spec.rb +36 -3
- data/spec/unit/ssl/certificate_request_spec.rb +19 -55
- data/spec/unit/ssl/certificate_spec.rb +2 -11
- 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/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 +47 -218
- 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/fact_dif.rb +0 -62
- 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/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/key_spec.rb +0 -9
- data/spec/unit/face/module/search_spec.rb +0 -231
- 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 -78
- 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 -148
- data/spec/unit/rest/route_spec.rb +0 -132
- data/spec/unit/ssl/host_spec.rb +0 -645
- 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
@@ -1,38 +1,52 @@
|
|
1
1
|
# The puppetserver service.
|
2
2
|
#
|
3
|
-
# @api
|
3
|
+
# @api public
|
4
4
|
#
|
5
5
|
class Puppet::HTTP::Service::Puppetserver < Puppet::HTTP::Service
|
6
|
+
|
7
|
+
# Use `Puppet::HTTP::Session.route_to(:puppetserver)` to create or get an instance of this class.
|
8
|
+
#
|
6
9
|
# @param [Puppet::HTTP::Client] client
|
7
10
|
# @param [Puppet::HTTP::Session] session
|
8
|
-
# @param [String] server If an explicit server is given,
|
11
|
+
# @param [String] server (`Puppet[:server]`) If an explicit server is given,
|
9
12
|
# create a service using that server. If server is nil, the default value
|
10
13
|
# is used to create the service.
|
11
|
-
# @param [Integer] port If an explicit port is given, create
|
14
|
+
# @param [Integer] port (`Puppet[:masterport]`) If an explicit port is given, create
|
12
15
|
# a service using that port. If port is nil, the default value is used to
|
13
16
|
# create the service.
|
14
|
-
# @api private
|
15
17
|
#
|
16
18
|
def initialize(client, session, server, port)
|
17
19
|
url = build_url('', server || Puppet[:server], port || Puppet[:serverport])
|
18
20
|
super(client, session, url)
|
19
21
|
end
|
20
22
|
|
21
|
-
# Request the puppetserver's simple status
|
23
|
+
# Request the puppetserver's simple status.
|
22
24
|
#
|
23
25
|
# @param [Puppet::SSL::SSLContext] ssl_context to use when establishing
|
24
26
|
# the connection.
|
25
27
|
# @return Puppet::HTTP::Response The HTTP response
|
26
|
-
#
|
28
|
+
#
|
29
|
+
# @api public
|
27
30
|
#
|
28
31
|
def get_simple_status(ssl_context: nil)
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
32
|
+
request_path = "/status/v1/simple/server"
|
33
|
+
|
34
|
+
begin
|
35
|
+
response = @client.get(
|
36
|
+
with_base_url(request_path),
|
37
|
+
headers: add_puppet_headers({}),
|
38
|
+
options: {ssl_context: ssl_context}
|
39
|
+
)
|
34
40
|
|
35
|
-
|
41
|
+
process_response(response)
|
42
|
+
rescue Puppet::HTTP::ResponseError => e
|
43
|
+
if e.response.code == 404 && e.response.url.path == "/status/v1/simple/server"
|
44
|
+
request_path = "/status/v1/simple/master"
|
45
|
+
retry
|
46
|
+
else
|
47
|
+
raise e
|
48
|
+
end
|
49
|
+
end
|
36
50
|
|
37
51
|
[response, response.body.to_s]
|
38
52
|
end
|
@@ -1,16 +1,13 @@
|
|
1
|
+
# The Report service is used to submit run reports to the report server.
|
1
2
|
#
|
2
|
-
# @api
|
3
|
-
#
|
4
|
-
# The Report service is used to submit run reports to the report server
|
3
|
+
# @api public
|
5
4
|
#
|
6
5
|
class Puppet::HTTP::Service::Report < Puppet::HTTP::Service
|
7
6
|
|
8
|
-
# @api private
|
9
7
|
# @return [String] Default API for the report service
|
10
8
|
API = '/puppet/v3'.freeze
|
11
9
|
|
12
|
-
#
|
13
|
-
# @api private
|
10
|
+
# Use `Puppet::HTTP::Session.route_to(:report)` to create or get an instance of this class.
|
14
11
|
#
|
15
12
|
# @param [Puppet::HTTP::Client] client
|
16
13
|
# @param [Puppet::HTTP::Session] session
|
@@ -21,15 +18,14 @@ class Puppet::HTTP::Service::Report < Puppet::HTTP::Service
|
|
21
18
|
# a service using that port. If port is nil, the default value is used to
|
22
19
|
# create the service.
|
23
20
|
#
|
21
|
+
# @api private
|
22
|
+
#
|
24
23
|
def initialize(client, session, server, port)
|
25
24
|
url = build_url(API, server || Puppet[:report_server], port || Puppet[:report_port])
|
26
25
|
super(client, session, url)
|
27
26
|
end
|
28
27
|
|
29
|
-
#
|
30
|
-
# @api private
|
31
|
-
#
|
32
|
-
# Submit a report to the report server
|
28
|
+
# Submit a report to the report server.
|
33
29
|
#
|
34
30
|
# @param [String] name the name of the report being submitted
|
35
31
|
# @param [Puppet::Transaction::Report] report run report to be submitted
|
@@ -37,6 +33,8 @@ class Puppet::HTTP::Service::Report < Puppet::HTTP::Service
|
|
37
33
|
#
|
38
34
|
# @return [Puppet::HTTP::Response] response returned by the server
|
39
35
|
#
|
36
|
+
# @api public
|
37
|
+
#
|
40
38
|
def put_report(name, report, environment:)
|
41
39
|
formatter = Puppet::Network::FormatHandler.format_for(Puppet[:preferred_serialization_format])
|
42
40
|
headers = add_puppet_headers(
|
data/lib/puppet/http/session.rb
CHANGED
@@ -1,8 +1,6 @@
|
|
1
|
-
#
|
2
|
-
# @api private
|
3
|
-
#
|
4
1
|
# The session is the mechanism by which services may be connected to and accessed.
|
5
2
|
#
|
3
|
+
# @api public
|
6
4
|
class Puppet::HTTP::Session
|
7
5
|
# capabilities for a site
|
8
6
|
CAP_LOCALES = 'locales'.freeze
|
@@ -14,16 +12,15 @@ class Puppet::HTTP::Session
|
|
14
12
|
# puppet version where JSON was enabled by default
|
15
13
|
SUPPORTED_JSON_DEFAULT = Gem::Version.new("5.0.0")
|
16
14
|
|
17
|
-
#
|
18
|
-
# @api private
|
19
|
-
#
|
20
15
|
# Create a new HTTP session. The session is the mechanism by which services
|
21
|
-
# may be connected to and accessed.
|
16
|
+
# may be connected to and accessed. Sessions should be created using
|
17
|
+
# `Puppet::HTTP::Client#create_session`.
|
22
18
|
#
|
23
19
|
# @param [Puppet::HTTP::Client] client the container for this session
|
24
20
|
# @param [Array<Puppet::HTTP::Resolver>] resolvers array of resolver strategies
|
25
21
|
# to implement.
|
26
22
|
#
|
23
|
+
# @api private
|
27
24
|
def initialize(client, resolvers)
|
28
25
|
@client = client
|
29
26
|
@resolvers = resolvers
|
@@ -31,9 +28,6 @@ class Puppet::HTTP::Session
|
|
31
28
|
@server_versions = {}
|
32
29
|
end
|
33
30
|
|
34
|
-
#
|
35
|
-
# @api private
|
36
|
-
#
|
37
31
|
# If an explicit server and port are specified on the command line or
|
38
32
|
# configuration file, this method always returns a Service with that host and
|
39
33
|
# port. Otherwise, we walk the list of resolvers in priority order:
|
@@ -45,12 +39,13 @@ class Puppet::HTTP::Session
|
|
45
39
|
# is cached and returned if `route_to` is called again.
|
46
40
|
#
|
47
41
|
# @param [Symbol] name the service to resolve
|
48
|
-
# @param [URI] url
|
49
|
-
# @param [Puppet::SSL::SSLContext] ssl_context
|
42
|
+
# @param [URI] url optional explicit url to use, if it is already known
|
43
|
+
# @param [Puppet::SSL::SSLContext] ssl_context ssl context to be
|
50
44
|
# used for connections
|
51
45
|
#
|
52
46
|
# @return [Puppet::HTTP::Service] the resolved service
|
53
47
|
#
|
48
|
+
# @api public
|
54
49
|
def route_to(name, url: nil, ssl_context: nil)
|
55
50
|
raise ArgumentError, "Unknown service #{name}" unless Puppet::HTTP::Service.valid_name?(name)
|
56
51
|
|
@@ -82,25 +77,20 @@ class Puppet::HTTP::Session
|
|
82
77
|
raise Puppet::HTTP::RouteError, "No more routes to #{name}"
|
83
78
|
end
|
84
79
|
|
85
|
-
#
|
86
|
-
# @api private
|
87
|
-
#
|
88
80
|
# Collect per-site server versions. This will allow us to modify future
|
89
81
|
# requests based on the version of puppetserver we are talking to.
|
90
82
|
#
|
91
83
|
# @param [Puppet::HTTP::Response] response the request response containing headers
|
92
84
|
#
|
85
|
+
# @api private
|
93
86
|
def process_response(response)
|
94
87
|
version = response[Puppet::HTTP::HEADER_PUPPET_VERSION]
|
95
88
|
if version
|
96
|
-
site = Puppet::
|
89
|
+
site = Puppet::HTTP::Site.from_uri(response.url)
|
97
90
|
@server_versions[site] = version
|
98
91
|
end
|
99
92
|
end
|
100
93
|
|
101
|
-
#
|
102
|
-
# @api private
|
103
|
-
#
|
104
94
|
# Determine if a session supports a capability. Depending on the server version
|
105
95
|
# we are talking to, we know certain features are available or not. These
|
106
96
|
# specifications are defined here so we can modify our requests appropriately.
|
@@ -110,13 +100,14 @@ class Puppet::HTTP::Session
|
|
110
100
|
#
|
111
101
|
# @return [Boolean]
|
112
102
|
#
|
103
|
+
# @api public
|
113
104
|
def supports?(name, capability)
|
114
105
|
raise ArgumentError, "Unknown service #{name}" unless Puppet::HTTP::Service.valid_name?(name)
|
115
106
|
|
116
107
|
service = @resolved_services[name]
|
117
108
|
return false unless service
|
118
109
|
|
119
|
-
site = Puppet::
|
110
|
+
site = Puppet::HTTP::Site.from_uri(service.url)
|
120
111
|
server_version = @server_versions[site]
|
121
112
|
|
122
113
|
case capability
|
@@ -5,8 +5,6 @@ class Puppet::Resource::Catalog::Rest < Puppet::Indirector::REST
|
|
5
5
|
desc "Find resource catalogs over HTTP via REST."
|
6
6
|
|
7
7
|
def find(request)
|
8
|
-
return super unless use_http_client?
|
9
|
-
|
10
8
|
checksum_type = if request.options[:checksum_type]
|
11
9
|
request.options[:checksum_type].split('.')
|
12
10
|
else
|
@@ -30,11 +28,11 @@ class Puppet::Resource::Catalog::Rest < Puppet::Indirector::REST
|
|
30
28
|
if e.response.code == 404
|
31
29
|
return nil unless request.options[:fail_on_404]
|
32
30
|
|
33
|
-
_, body = parse_response(e.response
|
31
|
+
_, body = parse_response(e.response)
|
34
32
|
msg = _("Find %{uri} resulted in 404 with the message: %{body}") % { uri: elide(e.response.url.path, 100), body: body }
|
35
33
|
raise Puppet::Error, msg
|
36
34
|
else
|
37
|
-
raise convert_to_http_error(e.response
|
35
|
+
raise convert_to_http_error(e.response)
|
38
36
|
end
|
39
37
|
end
|
40
38
|
end
|
@@ -32,8 +32,14 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
|
|
32
32
|
# Initialize core Puppet facts, such as puppetversion
|
33
33
|
Puppet.initialize_facts
|
34
34
|
|
35
|
-
result =
|
36
|
-
|
35
|
+
result = if request.options[:resolve_options]
|
36
|
+
raise(Puppet::Error, _("puppet facts show requires version 4.0.40 or greater of Facter.")) unless Facter.respond_to?(:resolve)
|
37
|
+
find_with_options(request)
|
38
|
+
else
|
39
|
+
Puppet::Node::Facts.new(request.key, Facter.to_hash)
|
40
|
+
end
|
41
|
+
|
42
|
+
result.add_local_facts unless request.options[:resolve_options]
|
37
43
|
result.sanitize
|
38
44
|
result
|
39
45
|
end
|
@@ -61,7 +67,7 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
|
|
61
67
|
|
62
68
|
true
|
63
69
|
end
|
64
|
-
|
70
|
+
dirs << request.options[:custom_dir] if request.options[:custom_dir]
|
65
71
|
Facter.search(*dirs)
|
66
72
|
end
|
67
73
|
|
@@ -83,6 +89,22 @@ class Puppet::Node::Facts::Facter < Puppet::Indirector::Code
|
|
83
89
|
dirs << dir
|
84
90
|
end
|
85
91
|
|
92
|
+
dirs << request.options[:external_dir] if request.options[:external_dir]
|
86
93
|
Facter.search_external dirs
|
87
94
|
end
|
95
|
+
|
96
|
+
private
|
97
|
+
|
98
|
+
def find_with_options(request)
|
99
|
+
options = request.options
|
100
|
+
options_for_facter = String.new
|
101
|
+
options_for_facter += options[:user_query].join(' ')
|
102
|
+
options_for_facter += " --config #{options[:config_file]}" if options[:config_file]
|
103
|
+
options_for_facter += " --show-legacy" if options[:show_legacy]
|
104
|
+
options_for_facter += " --no-block" if options[:no_block] == false
|
105
|
+
options_for_facter += " --no-cache" if options[:no_cache] == false
|
106
|
+
options_for_facter += " --timing" if options[:timing]
|
107
|
+
|
108
|
+
Puppet::Node::Facts.new(request.key, Facter.resolve(options_for_facter))
|
109
|
+
end
|
88
110
|
end
|
@@ -5,8 +5,6 @@ class Puppet::Node::Facts::Rest < Puppet::Indirector::REST
|
|
5
5
|
desc "Find and save facts about nodes over HTTP via REST."
|
6
6
|
|
7
7
|
def find(request)
|
8
|
-
return super unless use_http_client?
|
9
|
-
|
10
8
|
session = Puppet.lookup(:http_session)
|
11
9
|
api = session.route_to(:puppet)
|
12
10
|
_, facts = api.get_facts(
|
@@ -18,19 +16,17 @@ class Puppet::Node::Facts::Rest < Puppet::Indirector::REST
|
|
18
16
|
if e.response.code == 404
|
19
17
|
return nil unless request.options[:fail_on_404]
|
20
18
|
|
21
|
-
_, body = parse_response(e.response
|
19
|
+
_, body = parse_response(e.response)
|
22
20
|
msg = _("Find %{uri} resulted in 404 with the message: %{body}") % { uri: elide(e.response.url.path, 100), body: body }
|
23
21
|
raise Puppet::Error, msg
|
24
22
|
else
|
25
|
-
raise convert_to_http_error(e.response
|
23
|
+
raise convert_to_http_error(e.response)
|
26
24
|
end
|
27
25
|
end
|
28
26
|
|
29
27
|
def save(request)
|
30
28
|
raise ArgumentError, _("PUT does not accept options") unless request.options.empty?
|
31
29
|
|
32
|
-
return legacy_save(request) unless use_http_client?
|
33
|
-
|
34
30
|
session = Puppet.lookup(:http_session)
|
35
31
|
api = session.route_to(:puppet)
|
36
32
|
api.put_facts(
|
@@ -43,21 +39,6 @@ class Puppet::Node::Facts::Rest < Puppet::Indirector::REST
|
|
43
39
|
nil
|
44
40
|
rescue Puppet::HTTP::ResponseError => e
|
45
41
|
# always raise even if fail_on_404 is false
|
46
|
-
raise convert_to_http_error(e.response
|
47
|
-
end
|
48
|
-
|
49
|
-
private
|
50
|
-
|
51
|
-
def legacy_save(request)
|
52
|
-
response = do_request(request) do |req|
|
53
|
-
http_put(req, IndirectedRoutes.request_to_uri(req), req.instance.render, headers.merge({ "Content-Type" => req.instance.mime }))
|
54
|
-
end
|
55
|
-
|
56
|
-
if is_http_200?(response)
|
57
|
-
content_type, body = parse_response(response)
|
58
|
-
deserialize_save(content_type, body)
|
59
|
-
else
|
60
|
-
raise convert_to_http_error(response)
|
61
|
-
end
|
42
|
+
raise convert_to_http_error(e.response)
|
62
43
|
end
|
63
44
|
end
|
@@ -6,8 +6,6 @@ module Puppet::FileBucketFile
|
|
6
6
|
desc "This is a REST based mechanism to send/retrieve file to/from the filebucket"
|
7
7
|
|
8
8
|
def head(request)
|
9
|
-
return super unless use_http_client?
|
10
|
-
|
11
9
|
session = Puppet.lookup(:http_session)
|
12
10
|
api = session.route_to(:puppet)
|
13
11
|
api.head_filebucket_file(
|
@@ -17,12 +15,10 @@ module Puppet::FileBucketFile
|
|
17
15
|
)
|
18
16
|
rescue Puppet::HTTP::ResponseError => e
|
19
17
|
return nil if e.response.code == 404
|
20
|
-
raise convert_to_http_error(e.response
|
18
|
+
raise convert_to_http_error(e.response)
|
21
19
|
end
|
22
20
|
|
23
21
|
def find(request)
|
24
|
-
return super unless use_http_client?
|
25
|
-
|
26
22
|
session = Puppet.lookup(:http_session)
|
27
23
|
api = session.route_to(:puppet)
|
28
24
|
_, filebucket_file = api.get_filebucket_file(
|
@@ -36,12 +32,10 @@ module Puppet::FileBucketFile
|
|
36
32
|
)
|
37
33
|
filebucket_file
|
38
34
|
rescue Puppet::HTTP::ResponseError => e
|
39
|
-
raise convert_to_http_error(e.response
|
35
|
+
raise convert_to_http_error(e.response)
|
40
36
|
end
|
41
37
|
|
42
38
|
def save(request)
|
43
|
-
return super unless use_http_client?
|
44
|
-
|
45
39
|
session = Puppet.lookup(:http_session)
|
46
40
|
api = session.route_to(:puppet)
|
47
41
|
api.put_filebucket_file(
|
@@ -50,7 +44,7 @@ module Puppet::FileBucketFile
|
|
50
44
|
environment: request.environment.to_s,
|
51
45
|
)
|
52
46
|
rescue Puppet::HTTP::ResponseError => e
|
53
|
-
raise convert_to_http_error(e.response
|
47
|
+
raise convert_to_http_error(e.response)
|
54
48
|
end
|
55
49
|
end
|
56
50
|
end
|
@@ -5,11 +5,7 @@ require 'puppet/indirector/rest'
|
|
5
5
|
class Puppet::Indirector::FileContent::Rest < Puppet::Indirector::REST
|
6
6
|
desc "Retrieve file contents via a REST HTTP interface."
|
7
7
|
|
8
|
-
use_srv_service(:fileserver)
|
9
|
-
|
10
8
|
def find(request)
|
11
|
-
return super unless use_http_client?
|
12
|
-
|
13
9
|
content = StringIO.new
|
14
10
|
content.binmode
|
15
11
|
|
@@ -29,11 +25,11 @@ class Puppet::Indirector::FileContent::Rest < Puppet::Indirector::REST
|
|
29
25
|
if e.response.code == 404
|
30
26
|
return nil unless request.options[:fail_on_404]
|
31
27
|
|
32
|
-
_, body = parse_response(e.response
|
28
|
+
_, body = parse_response(e.response)
|
33
29
|
msg = _("Find %{uri} resulted in 404 with the message: %{body}") % { uri: elide(e.response.url.path, 100), body: body }
|
34
30
|
raise Puppet::Error, msg
|
35
31
|
else
|
36
|
-
raise convert_to_http_error(e.response
|
32
|
+
raise convert_to_http_error(e.response)
|
37
33
|
end
|
38
34
|
end
|
39
35
|
end
|
@@ -5,11 +5,7 @@ require 'puppet/indirector/rest'
|
|
5
5
|
class Puppet::Indirector::FileMetadata::Rest < Puppet::Indirector::REST
|
6
6
|
desc "Retrieve file metadata via a REST HTTP interface."
|
7
7
|
|
8
|
-
use_srv_service(:fileserver)
|
9
|
-
|
10
8
|
def find(request)
|
11
|
-
return super unless use_http_client?
|
12
|
-
|
13
9
|
url = URI.parse(Puppet::Util.uri_encode(request.uri))
|
14
10
|
session = Puppet.lookup(:http_session)
|
15
11
|
api = session.route_to(:fileserver, url: url)
|
@@ -26,17 +22,15 @@ class Puppet::Indirector::FileMetadata::Rest < Puppet::Indirector::REST
|
|
26
22
|
if e.response.code == 404
|
27
23
|
return nil unless request.options[:fail_on_404]
|
28
24
|
|
29
|
-
_, body = parse_response(e.response
|
25
|
+
_, body = parse_response(e.response)
|
30
26
|
msg = _("Find %{uri} resulted in 404 with the message: %{body}") % { uri: elide(e.response.url.path, 100), body: body }
|
31
27
|
raise Puppet::Error, msg
|
32
28
|
else
|
33
|
-
raise convert_to_http_error(e.response
|
29
|
+
raise convert_to_http_error(e.response)
|
34
30
|
end
|
35
31
|
end
|
36
32
|
|
37
33
|
def search(request)
|
38
|
-
return super unless use_http_client?
|
39
|
-
|
40
34
|
url = URI.parse(Puppet::Util.uri_encode(request.uri))
|
41
35
|
session = Puppet.lookup(:http_session)
|
42
36
|
api = session.route_to(:fileserver, url: url)
|
@@ -56,6 +50,6 @@ class Puppet::Indirector::FileMetadata::Rest < Puppet::Indirector::REST
|
|
56
50
|
# since it's search, return empty array instead of nil
|
57
51
|
return [] if e.response.code == 404
|
58
52
|
|
59
|
-
raise convert_to_http_error(e.response
|
53
|
+
raise convert_to_http_error(e.response)
|
60
54
|
end
|
61
55
|
end
|