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,135 +1,8 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
-
|
3
2
|
require 'puppet/network/authconfig'
|
4
3
|
|
5
|
-
describe Puppet::Network::DefaultAuthProvider do
|
6
|
-
before :each do
|
7
|
-
allow(Puppet::FileSystem).to receive(:stat).and_return(double('stat', :ctime => :now))
|
8
|
-
allow(Time).to receive(:now).and_return(Time.now)
|
9
|
-
end
|
10
|
-
|
11
|
-
describe "when initializing" do
|
12
|
-
it "inserts default ACLs after setting initial rights" do
|
13
|
-
expect_any_instance_of(Puppet::Network::DefaultAuthProvider).to receive(:insert_default_acl)
|
14
|
-
Puppet::Network::DefaultAuthProvider.new
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
describe "when defining an acl with mk_acl" do
|
19
|
-
before :each do
|
20
|
-
allow_any_instance_of(Puppet::Network::DefaultAuthProvider).to receive(:insert_default_acl)
|
21
|
-
@authprovider = Puppet::Network::DefaultAuthProvider.new
|
22
|
-
end
|
23
|
-
|
24
|
-
it "should create a new right for each default acl" do
|
25
|
-
@authprovider.mk_acl(:acl => '/')
|
26
|
-
expect(@authprovider.rights['/']).to be
|
27
|
-
end
|
28
|
-
|
29
|
-
it "allows everyone for each default right" do
|
30
|
-
@authprovider.mk_acl(:acl => '/')
|
31
|
-
expect(@authprovider.rights['/']).to be_globalallow
|
32
|
-
end
|
33
|
-
|
34
|
-
it "accepts an argument to restrict the method" do
|
35
|
-
@authprovider.mk_acl(:acl => '/', :method => :find)
|
36
|
-
expect(@authprovider.rights['/'].methods).to eq([:find])
|
37
|
-
end
|
38
|
-
|
39
|
-
it "creates rights with authentication set to true by default" do
|
40
|
-
@authprovider.mk_acl(:acl => '/')
|
41
|
-
expect(@authprovider.rights['/'].authentication).to be_truthy
|
42
|
-
end
|
43
|
-
|
44
|
-
it "accepts an argument to set the authentication requirement" do
|
45
|
-
@authprovider.mk_acl(:acl => '/', :authenticated => :any)
|
46
|
-
expect(@authprovider.rights['/'].authentication).to be_falsey
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
describe "when adding default ACLs" do
|
51
|
-
before :each do
|
52
|
-
allow_any_instance_of(Puppet::Network::DefaultAuthProvider).to receive(:insert_default_acl)
|
53
|
-
@authprovider = Puppet::Network::DefaultAuthProvider.new
|
54
|
-
allow_any_instance_of(Puppet::Network::DefaultAuthProvider).to receive(:insert_default_acl).and_call_original
|
55
|
-
end
|
56
|
-
|
57
|
-
Puppet::Network::DefaultAuthProvider::default_acl.each do |acl|
|
58
|
-
it "should create a default right for #{acl[:acl]}" do
|
59
|
-
allow(@authprovider).to receive(:mk_acl)
|
60
|
-
expect(@authprovider).to receive(:mk_acl).with(acl)
|
61
|
-
@authprovider.insert_default_acl
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
it "should log at info loglevel" do
|
66
|
-
expect(Puppet).to receive(:info).at_least(:once)
|
67
|
-
@authprovider.insert_default_acl
|
68
|
-
end
|
69
|
-
|
70
|
-
it "creates an empty catch-all rule for '/' for any authentication request state" do
|
71
|
-
allow(@authprovider).to receive(:mk_acl)
|
72
|
-
|
73
|
-
@authprovider.insert_default_acl
|
74
|
-
expect(@authprovider.rights['/']).to be_empty
|
75
|
-
expect(@authprovider.rights['/'].authentication).to be_falsey
|
76
|
-
end
|
77
|
-
|
78
|
-
it '(CVE-2013-2275) allows report submission only for the node matching the certname by default' do
|
79
|
-
acl = {
|
80
|
-
:acl => "~ ^#{Puppet::Network::HTTP::MASTER_URL_PREFIX}\/v3\/report\/([^\/]+)$",
|
81
|
-
:method => :save,
|
82
|
-
:allow => '$1',
|
83
|
-
:authenticated => true
|
84
|
-
}
|
85
|
-
allow(@authprovider).to receive(:mk_acl)
|
86
|
-
expect(@authprovider).to receive(:mk_acl).with(acl)
|
87
|
-
@authprovider.insert_default_acl
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
|
-
describe "when checking authorization" do
|
92
|
-
it "should ask for authorization to the ACL subsystem" do
|
93
|
-
params = {
|
94
|
-
:ip => "127.0.0.1",
|
95
|
-
:node => "me",
|
96
|
-
:environment => :env,
|
97
|
-
:authenticated => true
|
98
|
-
}
|
99
|
-
|
100
|
-
expect_any_instance_of(Puppet::Network::Rights).to receive(:is_request_forbidden_and_why?).with(:save, "/path/to/resource", params)
|
101
|
-
|
102
|
-
described_class.new.check_authorization(:save, "/path/to/resource", params)
|
103
|
-
end
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|
107
4
|
describe Puppet::Network::AuthConfig do
|
108
|
-
|
109
|
-
Puppet::Network::AuthConfig.authprovider_class =
|
110
|
-
end
|
111
|
-
|
112
|
-
class TestAuthProvider
|
113
|
-
def initialize(rights=nil); end
|
114
|
-
def check_authorization(method, path, params); end
|
115
|
-
end
|
116
|
-
|
117
|
-
it "instantiates authprovider_class with rights" do
|
118
|
-
Puppet::Network::AuthConfig.authprovider_class = TestAuthProvider
|
119
|
-
rights = Puppet::Network::Rights.new
|
120
|
-
expect(TestAuthProvider).to receive(:new).with(rights)
|
121
|
-
described_class.new(rights)
|
122
|
-
end
|
123
|
-
|
124
|
-
it "delegates authorization check to authprovider_class" do
|
125
|
-
Puppet::Network::AuthConfig.authprovider_class = TestAuthProvider
|
126
|
-
expect_any_instance_of(TestAuthProvider).to receive(:check_authorization).with(:save, '/path/to/resource', {})
|
127
|
-
described_class.new.check_authorization(:save, '/path/to/resource', {})
|
128
|
-
end
|
129
|
-
|
130
|
-
it "uses DefaultAuthProvider by default" do
|
131
|
-
Puppet::Network::AuthConfig.authprovider_class = nil
|
132
|
-
expect_any_instance_of(Puppet::Network::DefaultAuthProvider).to receive(:check_authorization).with(:save, '/path/to/resource', {})
|
133
|
-
described_class.new.check_authorization(:save, '/path/to/resource', {})
|
5
|
+
it "accepts an auth provider class" do
|
6
|
+
Puppet::Network::AuthConfig.authprovider_class = Object
|
134
7
|
end
|
135
8
|
end
|
@@ -1,61 +1,8 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
-
require 'puppet/network/http'
|
3
|
-
require 'puppet/network/http/api/indirected_routes'
|
4
2
|
require 'puppet/network/authorization'
|
5
3
|
|
6
4
|
describe Puppet::Network::Authorization do
|
7
|
-
class
|
8
|
-
|
9
|
-
end
|
10
|
-
|
11
|
-
subject { AuthTest.new }
|
12
|
-
|
13
|
-
context "when creating an authconfig object" do
|
14
|
-
before :each do
|
15
|
-
# Other tests may have created an authconfig, so we have to undo that.
|
16
|
-
@orig_auth_config = Puppet::Network::AuthConfigLoader.instance_variable_get(:@auth_config)
|
17
|
-
@orig_auth_config_file = Puppet::Network::AuthConfigLoader.instance_variable_get(:@auth_config_file)
|
18
|
-
|
19
|
-
Puppet::Network::AuthConfigLoader.instance_variable_set(:@auth_config, nil)
|
20
|
-
Puppet::Network::AuthConfigLoader.instance_variable_set(:@auth_config_file, nil)
|
21
|
-
end
|
22
|
-
|
23
|
-
after :each do
|
24
|
-
Puppet::Network::AuthConfigLoader.instance_variable_set(:@auth_config, @orig_auth_config)
|
25
|
-
Puppet::Network::AuthConfigLoader.instance_variable_set(:@auth_config_file, @orig_auth_config_file)
|
26
|
-
end
|
27
|
-
|
28
|
-
it "creates default ACL entries if no file has been read" do
|
29
|
-
expect(Puppet::Network::AuthConfigParser).to receive(:new_from_file).and_raise(Errno::ENOENT)
|
30
|
-
expect_any_instance_of(Puppet::Network::DefaultAuthProvider).to receive(:insert_default_acl)
|
31
|
-
|
32
|
-
subject.authconfig
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
class TestAuthConfig
|
37
|
-
def check_authorization(method, path, params); end
|
38
|
-
end
|
39
|
-
|
40
|
-
class TestAuthConfigLoader
|
41
|
-
def self.authconfig
|
42
|
-
TestAuthConfig.new
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
context "when checking authorization" do
|
47
|
-
after :each do
|
48
|
-
Puppet::Network::Authorization.authconfigloader_class = nil
|
49
|
-
end
|
50
|
-
|
51
|
-
it "delegates to the authconfig object" do
|
52
|
-
Puppet::Network::Authorization.authconfigloader_class =
|
53
|
-
TestAuthConfigLoader
|
54
|
-
expect_any_instance_of(TestAuthConfig).to receive(:check_authorization).with(
|
55
|
-
:save, '/mypath', {:param1 => "value1"}).and_return("yay, it worked!")
|
56
|
-
expect(subject.check_authorization(
|
57
|
-
:save, '/mypath',
|
58
|
-
{:param1 => "value1"})).to eq("yay, it worked!")
|
59
|
-
end
|
5
|
+
it "accepts an auth config loader class" do
|
6
|
+
Puppet::Network::Authorization.authconfigloader_class = Object
|
60
7
|
end
|
61
8
|
end
|
@@ -161,19 +161,19 @@ describe "Puppet Network Format" do
|
|
161
161
|
end
|
162
162
|
|
163
163
|
it 'raises when interning an instance of an unacceptable indirected type' do
|
164
|
-
obj =
|
164
|
+
obj = :something
|
165
165
|
|
166
166
|
expect {
|
167
167
|
yaml.intern(obj.class, YAML.dump(obj))
|
168
|
-
}.to raise_error(Puppet::Network::FormatHandler::FormatError, /Tried to load unspecified class:
|
168
|
+
}.to raise_error(Puppet::Network::FormatHandler::FormatError, /Tried to load unspecified class: Symbol/)
|
169
169
|
end
|
170
170
|
|
171
171
|
it 'raises when interning multple instances of an unacceptable indirected type' do
|
172
|
-
obj =
|
172
|
+
obj = :something
|
173
173
|
|
174
174
|
expect {
|
175
175
|
yaml.intern_multiple(obj.class, YAML.dump([obj]))
|
176
|
-
}.to raise_error(Puppet::Network::FormatHandler::FormatError, /Tried to load unspecified class:
|
176
|
+
}.to raise_error(Puppet::Network::FormatHandler::FormatError, /Tried to load unspecified class: Symbol/)
|
177
177
|
end
|
178
178
|
end
|
179
179
|
|
@@ -534,4 +534,45 @@ EOT
|
|
534
534
|
end
|
535
535
|
end
|
536
536
|
end
|
537
|
+
|
538
|
+
describe ":flat format" do
|
539
|
+
let(:flat) { Puppet::Network::FormatHandler.format(:flat) }
|
540
|
+
|
541
|
+
it "should include a flat format" do
|
542
|
+
expect(flat).to be_an_instance_of Puppet::Network::Format
|
543
|
+
end
|
544
|
+
|
545
|
+
[:intern, :intern_multiple].each do |method|
|
546
|
+
it "should not implement #{method}" do
|
547
|
+
expect { flat.send(method, String, 'blah') }.to raise_error NotImplementedError
|
548
|
+
end
|
549
|
+
end
|
550
|
+
|
551
|
+
context "when rendering arrays" do
|
552
|
+
{
|
553
|
+
[] => "",
|
554
|
+
[1, 2] => "0=1\n1=2\n",
|
555
|
+
["one"] => "0=one\n",
|
556
|
+
[{"one" => 1}, {"two" => 2}] => "0.one=1\n1.two=2\n",
|
557
|
+
[['something', 'for'], ['the', 'test']] => "0=[\"something\", \"for\"]\n1=[\"the\", \"test\"]\n"
|
558
|
+
}.each_pair do |input, output|
|
559
|
+
it "should render #{input.inspect} as one item per line" do
|
560
|
+
expect(flat.render(input)).to eq(output)
|
561
|
+
end
|
562
|
+
end
|
563
|
+
end
|
564
|
+
|
565
|
+
context "when rendering hashes" do
|
566
|
+
{
|
567
|
+
{} => "",
|
568
|
+
{1 => 2} => "1=2\n",
|
569
|
+
{"one" => "two"} => "one=two\n",
|
570
|
+
{[1,2] => 3, [2,3] => 5, [3,4] => 7} => "[1, 2]=3\n[2, 3]=5\n[3, 4]=7\n",
|
571
|
+
}.each_pair do |input, output|
|
572
|
+
it "should render #{input.inspect}" do
|
573
|
+
expect(flat.render(input)).to eq(output)
|
574
|
+
end
|
575
|
+
end
|
576
|
+
end
|
577
|
+
end
|
537
578
|
end
|
@@ -58,7 +58,7 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
|
|
58
58
|
}.to raise_error(bad_request_error)
|
59
59
|
end
|
60
60
|
|
61
|
-
it "should not pass a
|
61
|
+
it "should not pass a bucket_path parameter through (See Bugs #13553, #13518, #13511)" do
|
62
62
|
expect(handler.uri2indirection("GET", "#{master_url_prefix}/node/bar",
|
63
63
|
{ :environment => "env",
|
64
64
|
:bucket_path => "/malicious/path" })[3]).not_to include({ :bucket_path => "/malicious/path" })
|
@@ -118,10 +118,6 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
|
|
118
118
|
expect(handler.uri2indirection("PUT", "#{master_url_prefix}/facts/puppet.node.test", params)[0].name).to eq(:facts)
|
119
119
|
end
|
120
120
|
|
121
|
-
it "should change indirection name to 'status' if the http method is a GET and the indirection name is statuses" do
|
122
|
-
expect(handler.uri2indirection("GET", "#{master_url_prefix}/statuses/bar", params)[0].name).to eq(:status)
|
123
|
-
end
|
124
|
-
|
125
121
|
it "should change indirection name to 'node' if the http method is a GET and the indirection name is nodes" do
|
126
122
|
expect(handler.uri2indirection("GET", "#{master_url_prefix}/nodes/bar", params)[0].name).to eq(:node)
|
127
123
|
end
|
@@ -145,96 +141,9 @@ describe Puppet::Network::HTTP::API::IndirectedRoutes do
|
|
145
141
|
_, _, key, _ = handler.uri2indirection("GET", "#{master_url_prefix}/node/#{escaped}", params)
|
146
142
|
expect(key).to eq(escaped)
|
147
143
|
end
|
148
|
-
|
149
|
-
it "should not unescape the URI passed through in a call to check_authorization" do
|
150
|
-
key_escaped = Puppet::Util.uri_encode("foo bar")
|
151
|
-
uri_escaped = "#{master_url_prefix}/node/#{key_escaped}"
|
152
|
-
expect(handler).to receive(:check_authorization).with(anything, uri_escaped, anything)
|
153
|
-
handler.uri2indirection("GET", uri_escaped, params)
|
154
|
-
end
|
155
|
-
|
156
|
-
it "when the environment is unknown should remove :environment from params passed to check_authorization and therefore fail" do
|
157
|
-
expect(handler).to receive(:check_authorization).with(anything,
|
158
|
-
anything,
|
159
|
-
excluding(:environment))
|
160
|
-
expect { handler.uri2indirection("GET",
|
161
|
-
"#{master_url_prefix}/node/bar",
|
162
|
-
{:environment => 'bogus'})
|
163
|
-
}.to raise_error(not_found_error)
|
164
|
-
end
|
165
|
-
|
166
|
-
it "should not URI unescape the indirection key as passed through to a call to check_authorization" do
|
167
|
-
expect(handler).to receive(:check_authorization).with(anything, anything, hash_including(environment: be_a(Puppet::Node::Environment).and(have_attributes(name: :env))))
|
168
|
-
|
169
|
-
handler.uri2indirection("GET", "#{master_url_prefix}/node/bar", params)
|
170
|
-
end
|
171
|
-
|
172
|
-
end
|
173
|
-
|
174
|
-
describe "when converting a request into a URI" do
|
175
|
-
let(:environment) { Puppet::Node::Environment.create(:myenv, []) }
|
176
|
-
let(:request) { Puppet::Indirector::Request.new(:foo, :find, "with spaces", nil, :foo => :bar, :environment => environment) }
|
177
|
-
|
178
|
-
it "should include the environment in the query string of the URI" do
|
179
|
-
expect(handler.class.request_to_uri(request)).to eq("#{master_url_prefix}/foo/with%20spaces?environment=myenv&foo=bar")
|
180
|
-
end
|
181
|
-
|
182
|
-
it "should include the correct url prefix if it is a ca request" do
|
183
|
-
allow(request).to receive(:indirection_name).and_return("certificate")
|
184
|
-
expect(handler.class.request_to_uri(request)).to eq("#{ca_url_prefix}/certificate/with%20spaces?environment=myenv&foo=bar")
|
185
|
-
end
|
186
|
-
|
187
|
-
it "should pluralize the indirection name if the method is 'search'" do
|
188
|
-
allow(request).to receive(:method).and_return(:search)
|
189
|
-
expect(handler.class.request_to_uri(request).split("/")[3]).to eq("foos")
|
190
|
-
end
|
191
|
-
|
192
|
-
it "should add the query string to the URI" do
|
193
|
-
expect(request).to receive(:query_string).and_return("query")
|
194
|
-
expect(handler.class.request_to_uri(request)).to match(/\&query$/)
|
195
|
-
end
|
196
|
-
end
|
197
|
-
|
198
|
-
describe "when converting a request into a URI with body" do
|
199
|
-
let(:environment) { Puppet::Node::Environment.create(:myenv, []) }
|
200
|
-
let(:request) { Puppet::Indirector::Request.new(:foo, :find, "with spaces", nil, :foo => :bar, :environment => environment) }
|
201
|
-
|
202
|
-
it "should use the indirection as the first field of the URI" do
|
203
|
-
expect(handler.class.request_to_uri_and_body(request).first.split("/")[3]).to eq("foo")
|
204
|
-
end
|
205
|
-
|
206
|
-
it "should use the escaped key as the remainder of the URI" do
|
207
|
-
escaped = Puppet::Util.uri_encode("with spaces")
|
208
|
-
expect(handler.class.request_to_uri_and_body(request).first.split("/")[4].sub(/\?.+/, '')).to eq(escaped)
|
209
|
-
end
|
210
|
-
|
211
|
-
it "should include the correct url prefix if it is a master request" do
|
212
|
-
expect(handler.class.request_to_uri_and_body(request).first).to eq("#{master_url_prefix}/foo/with%20spaces")
|
213
|
-
end
|
214
|
-
|
215
|
-
it "should include the correct url prefix if it is a ca request" do
|
216
|
-
allow(request).to receive(:indirection_name).and_return("certificate")
|
217
|
-
expect(handler.class.request_to_uri_and_body(request).first).to eq("#{ca_url_prefix}/certificate/with%20spaces")
|
218
|
-
end
|
219
|
-
|
220
|
-
it "should return the URI and body separately" do
|
221
|
-
expect(handler.class.request_to_uri_and_body(request)).to eq(["#{master_url_prefix}/foo/with%20spaces", "environment=myenv&foo=bar"])
|
222
|
-
end
|
223
144
|
end
|
224
145
|
|
225
146
|
describe "when processing a request" do
|
226
|
-
it "should raise not_authorized_error when authorization fails" do
|
227
|
-
data = Puppet::IndirectorTesting.new("my data")
|
228
|
-
indirection.save(data, "my data")
|
229
|
-
request = a_request_that_heads(data)
|
230
|
-
|
231
|
-
expect(handler).to receive(:check_authorization).and_raise(Puppet::Network::AuthorizationError.new("forbidden"))
|
232
|
-
|
233
|
-
expect {
|
234
|
-
handler.call(request, response)
|
235
|
-
}.to raise_error(not_authorized_error)
|
236
|
-
end
|
237
|
-
|
238
147
|
it "should raise not_found_error if the indirection does not support remote requests" do
|
239
148
|
request = a_request_that_heads(Puppet::IndirectorTesting.new("my data"))
|
240
149
|
|
@@ -15,15 +15,18 @@ describe Puppet::Network::HTTP::API::Master::V3 do
|
|
15
15
|
chain(Puppet::Network::HTTP::API::Master::V3.routes)
|
16
16
|
}
|
17
17
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
18
|
+
# simulate puppetserver registering its authconfigloader class
|
19
|
+
around :each do |example|
|
20
|
+
Puppet::Network::Authorization.authconfigloader_class = Object
|
21
|
+
begin
|
22
|
+
example.run
|
23
|
+
ensure
|
24
|
+
Puppet::Network::Authorization.authconfigloader_class = nil
|
25
|
+
end
|
23
26
|
end
|
24
27
|
|
25
|
-
it "mounts the
|
26
|
-
request = Puppet::Network::HTTP::Request.from_hash(:path => "#{master_url_prefix}/
|
28
|
+
it "mounts the environments endpoint" do
|
29
|
+
request = Puppet::Network::HTTP::Request.from_hash(:path => "#{master_url_prefix}/environments")
|
27
30
|
master_routes.process(request, response)
|
28
31
|
|
29
32
|
expect(response.code).to eq(200)
|
@@ -54,4 +57,22 @@ describe Puppet::Network::HTTP::API::Master::V3 do
|
|
54
57
|
master_routes.process(request, response)
|
55
58
|
}.to raise_error(not_found_error)
|
56
59
|
end
|
60
|
+
|
61
|
+
it "checks authorization for indirected routes" do
|
62
|
+
Puppet::Network::Authorization.authconfigloader_class = nil
|
63
|
+
|
64
|
+
request = Puppet::Network::HTTP::Request.from_hash(:path => "#{master_url_prefix}/catalog/foo")
|
65
|
+
expect {
|
66
|
+
master_routes.process(request, response)
|
67
|
+
}.to raise_error(Puppet::Network::HTTP::Error::HTTPNotAuthorizedError, %r{Not Authorized: Forbidden request: /puppet/v3/catalog/foo \(method GET\)})
|
68
|
+
end
|
69
|
+
|
70
|
+
it "checks authorization for environments" do
|
71
|
+
Puppet::Network::Authorization.authconfigloader_class = nil
|
72
|
+
|
73
|
+
request = Puppet::Network::HTTP::Request.from_hash(:path => "#{master_url_prefix}/environments")
|
74
|
+
expect {
|
75
|
+
master_routes.process(request, response)
|
76
|
+
}.to raise_error(Puppet::Network::HTTP::Error::HTTPNotAuthorizedError, %r{Not Authorized: Forbidden request: /puppet/v3/environments \(method GET\)})
|
77
|
+
end
|
57
78
|
end
|
@@ -70,6 +70,16 @@ describe Puppet::Network::HTTP::API do
|
|
70
70
|
end
|
71
71
|
|
72
72
|
describe "when processing master routes" do
|
73
|
+
# simulate puppetserver registering its authconfigloader class
|
74
|
+
around :each do |example|
|
75
|
+
Puppet::Network::Authorization.authconfigloader_class = Object
|
76
|
+
begin
|
77
|
+
example.run
|
78
|
+
ensure
|
79
|
+
Puppet::Network::Authorization.authconfigloader_class = nil
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
73
83
|
it "responds to v3 indirector requests" do
|
74
84
|
req = Puppet::Network::HTTP::Request.from_hash(:path => "#{master_prefix}/v3/node/foo",
|
75
85
|
:params => {:environment => "production"},
|