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
data/spec/unit/provider_spec.rb
CHANGED
@@ -668,18 +668,6 @@ describe Puppet::Provider do
|
|
668
668
|
|
669
669
|
expect { |b| provider.execpipe("a_command", true, &b) }.to yield_with_args('some output')
|
670
670
|
end
|
671
|
-
|
672
|
-
it "delegates instance execfail to Puppet::Util::Execution" do
|
673
|
-
expect(Puppet::Util::Execution).to receive(:execfail).with("a_command", "an exception to raise")
|
674
|
-
|
675
|
-
provider.new.execfail("a_command", "an exception to raise")
|
676
|
-
end
|
677
|
-
|
678
|
-
it "delegates class execfail to Puppet::Util::Execution" do
|
679
|
-
expect(Puppet::Util::Execution).to receive(:execfail).with("a_command", "an exception to raise")
|
680
|
-
|
681
|
-
provider.execfail("a_command", "an exception to raise")
|
682
|
-
end
|
683
671
|
end
|
684
672
|
|
685
673
|
context "mk_resource_methods" do
|
@@ -75,18 +75,16 @@ describe Puppet::Resource::TypeCollection do
|
|
75
75
|
end.to raise_error(Puppet::ParseError, /cannot be redefined/)
|
76
76
|
end
|
77
77
|
|
78
|
-
it "should remove all nodes, classes
|
78
|
+
it "should remove all nodes, classes and definitions when cleared" do
|
79
79
|
loader = Puppet::Resource::TypeCollection.new(environment)
|
80
80
|
loader.add Puppet::Resource::Type.new(:hostclass, "class")
|
81
81
|
loader.add Puppet::Resource::Type.new(:definition, "define")
|
82
82
|
loader.add Puppet::Resource::Type.new(:node, "node")
|
83
|
-
loader.add Puppet::Resource::Type.new(:application, "application")
|
84
83
|
|
85
84
|
loader.clear
|
86
85
|
expect(loader.hostclass("class")).to be_nil
|
87
86
|
expect(loader.definition("define")).to be_nil
|
88
87
|
expect(loader.node("node")).to be_nil
|
89
|
-
expect(loader.node("application")).to be_nil
|
90
88
|
end
|
91
89
|
|
92
90
|
describe "when looking up names" do
|
@@ -155,7 +153,7 @@ describe Puppet::Resource::TypeCollection do
|
|
155
153
|
end
|
156
154
|
end
|
157
155
|
|
158
|
-
KINDS = %w{hostclass node definition
|
156
|
+
KINDS = %w{hostclass node definition}
|
159
157
|
KINDS.each do |data|
|
160
158
|
describe "behavior of add for #{data}" do
|
161
159
|
|
@@ -178,24 +176,6 @@ describe Puppet::Resource::TypeCollection do
|
|
178
176
|
it "should return nil when asked for a #{data} that has not been added" do
|
179
177
|
expect(Puppet::Resource::TypeCollection.new(environment).send(data, "foo")).to be_nil
|
180
178
|
end
|
181
|
-
|
182
|
-
if data != "node"
|
183
|
-
it "should fail if an application with the same name is added" do
|
184
|
-
loader = Puppet::Resource::TypeCollection.new(environment)
|
185
|
-
instance = Puppet::Resource::Type.new(data, "foo")
|
186
|
-
application = Puppet::Resource::Type.new(:application, "foo")
|
187
|
-
loader.add(instance)
|
188
|
-
expect { loader.add(application) }.to raise_error(Puppet::ParseError, /redefine/)
|
189
|
-
end
|
190
|
-
|
191
|
-
it "should fail if there is an application with the same name" do
|
192
|
-
loader = Puppet::Resource::TypeCollection.new(environment)
|
193
|
-
application = Puppet::Resource::Type.new(:application, "foo")
|
194
|
-
instance = Puppet::Resource::Type.new(data, "foo")
|
195
|
-
loader.add(instance)
|
196
|
-
expect { loader.add(application) }.to raise_error(Puppet::ParseError, /redefine/)
|
197
|
-
end
|
198
|
-
end
|
199
179
|
end
|
200
180
|
end
|
201
181
|
|
data/spec/unit/resource_spec.rb
CHANGED
@@ -286,39 +286,6 @@ describe Puppet::Resource do
|
|
286
286
|
Puppet::Parser::AST::Leaf.new(value: value)
|
287
287
|
end
|
288
288
|
|
289
|
-
it "should fail when asked to set default values and it is not a parser resource" do
|
290
|
-
environment.known_resource_types.add(
|
291
|
-
Puppet::Resource::Type.new(:definition, "default_param", :arguments => {"a" => ast_leaf("default")})
|
292
|
-
)
|
293
|
-
resource = Puppet::Resource.new("default_param", "name", :environment => environment)
|
294
|
-
expect { resource.set_default_parameters(scope) }.to raise_error(Puppet::DevError)
|
295
|
-
end
|
296
|
-
|
297
|
-
it "should evaluate and set any default values when no value is provided" do
|
298
|
-
environment.known_resource_types.add(
|
299
|
-
Puppet::Resource::Type.new(:definition, "default_param", :arguments => {"a" => ast_leaf("a_default_value")})
|
300
|
-
)
|
301
|
-
resource = Puppet::Parser::Resource.new("default_param", "name", :scope => scope)
|
302
|
-
resource.set_default_parameters(scope)
|
303
|
-
expect(resource["a"]).to eq("a_default_value")
|
304
|
-
end
|
305
|
-
|
306
|
-
it "should skip attributes with no default value" do
|
307
|
-
environment.known_resource_types.add(
|
308
|
-
Puppet::Resource::Type.new(:definition, "no_default_param", :arguments => {"a" => ast_leaf("a_default_value")})
|
309
|
-
)
|
310
|
-
resource = Puppet::Parser::Resource.new("no_default_param", "name", :scope => scope)
|
311
|
-
expect { resource.set_default_parameters(scope) }.not_to raise_error
|
312
|
-
end
|
313
|
-
|
314
|
-
it "should return the list of default parameters set" do
|
315
|
-
environment.known_resource_types.add(
|
316
|
-
Puppet::Resource::Type.new(:definition, "default_param", :arguments => {"a" => ast_leaf("a_default_value")})
|
317
|
-
)
|
318
|
-
resource = Puppet::Parser::Resource.new("default_param", "name", :scope => scope)
|
319
|
-
expect(resource.set_default_parameters(scope)).to eq(["a"])
|
320
|
-
end
|
321
|
-
|
322
289
|
describe "when the resource type is :hostclass" do
|
323
290
|
let(:environment_name) { "testing env" }
|
324
291
|
let(:fact_values) { { 'a' => 1 } }
|
@@ -402,7 +369,6 @@ describe Puppet::Resource do
|
|
402
369
|
|
403
370
|
it "should use the value provided" do
|
404
371
|
expect(Puppet::DataBinding.indirection).not_to receive(:find)
|
405
|
-
expect(resource.set_default_parameters(scope)).to eq([])
|
406
372
|
expect(resource[:port]).to eq('8080')
|
407
373
|
end
|
408
374
|
|
@@ -444,28 +410,6 @@ describe Puppet::Resource do
|
|
444
410
|
end
|
445
411
|
end
|
446
412
|
|
447
|
-
describe "when validating all required parameters are present" do
|
448
|
-
it "should be able to validate that all required parameters are present" do
|
449
|
-
environment.known_resource_types.add(
|
450
|
-
Puppet::Resource::Type.new(:definition, "required_param", :arguments => {"a" => nil})
|
451
|
-
)
|
452
|
-
expect { Puppet::Resource.new("required_param", "name", :environment => environment).validate_complete }.to raise_error(Puppet::ParseError)
|
453
|
-
end
|
454
|
-
|
455
|
-
it "should not fail when all required parameters are present" do
|
456
|
-
environment.known_resource_types.add(
|
457
|
-
Puppet::Resource::Type.new(:definition, "no_required_param")
|
458
|
-
)
|
459
|
-
resource = Puppet::Resource.new("no_required_param", "name", :environment => environment)
|
460
|
-
resource["a"] = "meh"
|
461
|
-
expect { resource.validate_complete }.not_to raise_error
|
462
|
-
end
|
463
|
-
|
464
|
-
it "should not validate against builtin types" do
|
465
|
-
expect { Puppet::Resource.new("file", "/bar").validate_complete }.not_to raise_error
|
466
|
-
end
|
467
|
-
end
|
468
|
-
|
469
413
|
describe "when referring to a resource with name canonicalization" do
|
470
414
|
it "should canonicalize its own name" do
|
471
415
|
res = Puppet::Resource.new("file", "/path/")
|
@@ -46,18 +46,16 @@ describe Puppet::Settings::HttpExtraHeadersSetting do
|
|
46
46
|
end
|
47
47
|
|
48
48
|
describe 'raises an error when' do
|
49
|
-
|
50
|
-
# Ruby 2.3 reports the class of these objects as Fixnum, whereas later ruby versions report them as Integer
|
51
49
|
it 'is given an unexpected object type' do
|
52
50
|
expect {
|
53
51
|
subject.munge(65)
|
54
|
-
}.to raise_error(ArgumentError, /^Expected an Array, String, or Hash, got a
|
52
|
+
}.to raise_error(ArgumentError, /^Expected an Array, String, or Hash, got a Integer/)
|
55
53
|
end
|
56
54
|
|
57
55
|
it 'is given an array of unexpected object types' do
|
58
56
|
expect {
|
59
57
|
subject.munge([65, 82])
|
60
|
-
}.to raise_error(ArgumentError, /^Expected an Array or String, got a
|
58
|
+
}.to raise_error(ArgumentError, /^Expected an Array or String, got a Integer/)
|
61
59
|
end
|
62
60
|
end
|
63
61
|
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
require 'puppet/settings'
|
4
|
+
require 'puppet/settings/integer_setting'
|
5
|
+
|
6
|
+
describe Puppet::Settings::IntegerSetting do
|
7
|
+
let(:setting) { described_class.new(:settings => double('settings'), :desc => "test") }
|
8
|
+
|
9
|
+
it "is of type :integer" do
|
10
|
+
expect(setting.type).to eq(:integer)
|
11
|
+
end
|
12
|
+
|
13
|
+
describe "when munging the setting" do
|
14
|
+
it "returns the same value if given a positive integer" do
|
15
|
+
expect(setting.munge(5)).to eq(5)
|
16
|
+
end
|
17
|
+
|
18
|
+
it "returns the same value if given a negative integer" do
|
19
|
+
expect(setting.munge(-25)).to eq(-25)
|
20
|
+
end
|
21
|
+
|
22
|
+
it "returns an integer if given a valid integer as string" do
|
23
|
+
expect(setting.munge('12')).to eq(12)
|
24
|
+
end
|
25
|
+
|
26
|
+
it "returns an integer if given a valid negative integer as string" do
|
27
|
+
expect(setting.munge('-12')).to eq(-12)
|
28
|
+
end
|
29
|
+
|
30
|
+
it "returns an integer if given a valid positive integer as string" do
|
31
|
+
expect(setting.munge('+12')).to eq(12)
|
32
|
+
end
|
33
|
+
|
34
|
+
it "raises if given an invalid value" do
|
35
|
+
expect { setting.munge('a5') }.to raise_error(Puppet::Settings::ValidationError)
|
36
|
+
end
|
37
|
+
|
38
|
+
it "raises if given nil" do
|
39
|
+
expect { setting.munge(nil) }.to raise_error(Puppet::Settings::ValidationError)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
require 'puppet/settings'
|
4
|
+
require 'puppet/settings/port_setting'
|
5
|
+
|
6
|
+
describe Puppet::Settings::PortSetting do
|
7
|
+
let(:setting) { described_class.new(:settings => double('settings'), :desc => "test") }
|
8
|
+
|
9
|
+
it "is of type :port" do
|
10
|
+
expect(setting.type).to eq(:port)
|
11
|
+
end
|
12
|
+
|
13
|
+
describe "when munging the setting" do
|
14
|
+
it "returns the same value if given a valid port as integer" do
|
15
|
+
expect(setting.munge(5)).to eq(5)
|
16
|
+
end
|
17
|
+
|
18
|
+
it "returns an integer if given valid port as string" do
|
19
|
+
expect(setting.munge('12')).to eq(12)
|
20
|
+
end
|
21
|
+
|
22
|
+
it "raises if given a negative port number" do
|
23
|
+
expect { setting.munge('-5') }.to raise_error(Puppet::Settings::ValidationError)
|
24
|
+
end
|
25
|
+
|
26
|
+
it "raises if the port number is too high" do
|
27
|
+
expect { setting.munge(65536) }.to raise_error(Puppet::Settings::ValidationError)
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
@@ -52,10 +52,10 @@ describe Puppet::Settings::PrioritySetting do
|
|
52
52
|
describe "on a Windows-like platform it", :if => Puppet::Util::Platform.windows? do
|
53
53
|
it "parses high, normal, low, and idle priorities" do
|
54
54
|
{
|
55
|
-
'high' => Puppet::
|
56
|
-
'normal' => Puppet::
|
57
|
-
'low' => Puppet::
|
58
|
-
'idle' => Puppet::
|
55
|
+
'high' => Puppet::FFI::Windows::Constants::HIGH_PRIORITY_CLASS,
|
56
|
+
'normal' => Puppet::FFI::Windows::Constants::NORMAL_PRIORITY_CLASS,
|
57
|
+
'low' => Puppet::FFI::Windows::Constants::BELOW_NORMAL_PRIORITY_CLASS,
|
58
|
+
'idle' => Puppet::FFI::Windows::Constants::IDLE_PRIORITY_CLASS
|
59
59
|
}.each do |value, converted_value|
|
60
60
|
expect(setting.munge(value)).to eq(converted_value)
|
61
61
|
end
|
data/spec/unit/settings_spec.rb
CHANGED
@@ -1991,6 +1991,23 @@ describe Puppet::Settings do
|
|
1991
1991
|
end
|
1992
1992
|
end
|
1993
1993
|
|
1994
|
+
describe 'when settings_catalog is disabled' do
|
1995
|
+
let(:settings) { Puppet::Settings.new }
|
1996
|
+
before do
|
1997
|
+
allow(Puppet).to receive(:[]).with(:settings_catalog).and_return(false)
|
1998
|
+
end
|
1999
|
+
|
2000
|
+
it 'does not compile and apply settings catalog' do
|
2001
|
+
expect(settings).not_to receive(:to_catalog)
|
2002
|
+
settings.use(:main)
|
2003
|
+
end
|
2004
|
+
|
2005
|
+
it 'logs a message that settings catalog is skipped' do
|
2006
|
+
expect(Puppet).to receive(:debug).with('Skipping settings catalog for sections main')
|
2007
|
+
settings.use(:main)
|
2008
|
+
end
|
2009
|
+
end
|
2010
|
+
|
1994
2011
|
describe "when dealing with printing configs" do
|
1995
2012
|
before do
|
1996
2013
|
@settings = Puppet::Settings.new
|
data/spec/unit/ssl/base_spec.rb
CHANGED
@@ -38,9 +38,8 @@ describe Puppet::SSL::Certificate do
|
|
38
38
|
|
39
39
|
describe "when determining a name from a certificate subject" do
|
40
40
|
it "should extract only the CN and not any other components" do
|
41
|
-
|
42
|
-
expect(
|
43
|
-
expect(@class.name_from_subject(subject)).to eq('host.domain.com')
|
41
|
+
name = OpenSSL::X509::Name.parse('/CN=host.domain.com/L=Portland/ST=Oregon')
|
42
|
+
expect(@class.name_from_subject(name)).to eq('host.domain.com')
|
44
43
|
end
|
45
44
|
end
|
46
45
|
|
@@ -89,4 +88,38 @@ describe Puppet::SSL::Certificate do
|
|
89
88
|
}.to raise_error(Puppet::Error, "Unknown signature algorithm 'nonsense'")
|
90
89
|
end
|
91
90
|
end
|
91
|
+
|
92
|
+
describe "when getting a CN from a subject" do
|
93
|
+
def parse(dn)
|
94
|
+
OpenSSL::X509::Name.parse(dn)
|
95
|
+
end
|
96
|
+
|
97
|
+
def cn_from(subject)
|
98
|
+
@class.name_from_subject(subject)
|
99
|
+
end
|
100
|
+
|
101
|
+
it "should correctly parse a subject containing only a CN" do
|
102
|
+
subj = parse('/CN=foo')
|
103
|
+
expect(cn_from(subj)).to eq('foo')
|
104
|
+
end
|
105
|
+
|
106
|
+
it "should correctly parse a subject containing other components" do
|
107
|
+
subj = parse('/CN=Root CA/OU=Server Operations/O=Example Org')
|
108
|
+
expect(cn_from(subj)).to eq('Root CA')
|
109
|
+
end
|
110
|
+
|
111
|
+
it "should correctly parse a subject containing other components with CN not first" do
|
112
|
+
subj = parse('/emailAddress=foo@bar.com/CN=foo.bar.com/O=Example Org')
|
113
|
+
expect(cn_from(subj)).to eq('foo.bar.com')
|
114
|
+
end
|
115
|
+
|
116
|
+
it "should return nil for a subject with no CN" do
|
117
|
+
subj = parse('/OU=Server Operations/O=Example Org')
|
118
|
+
expect(cn_from(subj)).to eq(nil)
|
119
|
+
end
|
120
|
+
|
121
|
+
it "should return nil for a bare string" do
|
122
|
+
expect(cn_from("/CN=foo")).to eq(nil)
|
123
|
+
end
|
124
|
+
end
|
92
125
|
end
|
@@ -1,23 +1,10 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
require 'puppet/ssl/certificate_request'
|
4
|
-
require 'puppet/ssl/key'
|
5
4
|
|
6
5
|
describe Puppet::SSL::CertificateRequest do
|
7
6
|
let(:request) { described_class.new("myname") }
|
8
|
-
let(:key) {
|
9
|
-
k = Puppet::SSL::Key.new("myname")
|
10
|
-
k.generate
|
11
|
-
k
|
12
|
-
}
|
13
|
-
|
14
|
-
it "should be extended with the Indirector module" do
|
15
|
-
expect(described_class.singleton_class).to be_include(Puppet::Indirector)
|
16
|
-
end
|
17
|
-
|
18
|
-
it "should indirect certificate_request" do
|
19
|
-
expect(described_class.indirection.name).to eq(:certificate_request)
|
20
|
-
end
|
7
|
+
let(:key) { OpenSSL::PKey::RSA.new(Puppet[:keylength]) }
|
21
8
|
|
22
9
|
it "should use any provided name as its name" do
|
23
10
|
expect(described_class.new("myname").name).to eq("myname")
|
@@ -83,14 +70,9 @@ describe Puppet::SSL::CertificateRequest do
|
|
83
70
|
end
|
84
71
|
|
85
72
|
describe "when generating", :unless => RUBY_PLATFORM == 'java' do
|
86
|
-
it "should
|
73
|
+
it "should verify the CSR using the public key associated with the private key" do
|
87
74
|
request.generate(key)
|
88
|
-
expect(request.content.verify(key.
|
89
|
-
end
|
90
|
-
|
91
|
-
it "should set the subject to [CN, name]" do
|
92
|
-
request.generate(key)
|
93
|
-
expect(request.content.subject).to eq OpenSSL::X509::Name.new([['CN', key.name]])
|
75
|
+
expect(request.content.verify(key.public_key)).to be_truthy
|
94
76
|
end
|
95
77
|
|
96
78
|
it "should set the version to 0" do
|
@@ -101,7 +83,7 @@ describe Puppet::SSL::CertificateRequest do
|
|
101
83
|
it "should set the public key to the provided key's public key" do
|
102
84
|
request.generate(key)
|
103
85
|
# The openssl bindings do not define equality on keys so we use to_s
|
104
|
-
expect(request.content.public_key.to_s).to eq(key.
|
86
|
+
expect(request.content.public_key.to_s).to eq(key.public_key.to_s)
|
105
87
|
end
|
106
88
|
|
107
89
|
context "without subjectAltName / dns_alt_names" do
|
@@ -295,20 +277,20 @@ describe Puppet::SSL::CertificateRequest do
|
|
295
277
|
|
296
278
|
it "should sign the csr with the provided key" do
|
297
279
|
request.generate(key)
|
298
|
-
expect(request.content.verify(key.
|
280
|
+
expect(request.content.verify(key.public_key)).to be_truthy
|
299
281
|
end
|
300
282
|
|
301
283
|
it "should verify the generated request using the public key" do
|
302
284
|
# Stupid keys don't have a competent == method.
|
303
285
|
expect_any_instance_of(OpenSSL::X509::Request).to receive(:verify) do |public_key|
|
304
|
-
public_key.to_s == key.
|
286
|
+
public_key.to_s == key.public_key.to_s
|
305
287
|
end.and_return(true)
|
306
288
|
request.generate(key)
|
307
289
|
end
|
308
290
|
|
309
291
|
it "should fail if verification fails" do
|
310
292
|
expect_any_instance_of(OpenSSL::X509::Request).to receive(:verify) do |public_key|
|
311
|
-
public_key.to_s == key.
|
293
|
+
public_key.to_s == key.public_key.to_s
|
312
294
|
end.and_return(false)
|
313
295
|
|
314
296
|
expect do
|
@@ -334,37 +316,31 @@ describe Puppet::SSL::CertificateRequest do
|
|
334
316
|
expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA256").and_return(false)
|
335
317
|
expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA1").and_return(true)
|
336
318
|
signer = Puppet::SSL::CertificateSigner.new
|
337
|
-
signer.sign(csr, key
|
338
|
-
expect(csr.verify(key
|
319
|
+
signer.sign(csr, key)
|
320
|
+
expect(csr.verify(key)).to be_truthy
|
339
321
|
end
|
340
322
|
|
341
|
-
|
342
|
-
|
343
|
-
# The problem seems to be with the ability to sign a CSR when using either of
|
344
|
-
# these hash algorithms
|
345
|
-
pending "should use SHA512 to sign the csr when SHA256 and SHA1 aren't available" do
|
323
|
+
it "should use SHA512 to sign the csr when SHA256 and SHA1 aren't available" do
|
324
|
+
key = OpenSSL::PKey::RSA.new(2048)
|
346
325
|
csr = OpenSSL::X509::Request.new
|
347
326
|
expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA256").and_return(false)
|
348
327
|
expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA1").and_return(false)
|
349
328
|
expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA512").and_return(true)
|
350
329
|
signer = Puppet::SSL::CertificateSigner.new
|
351
|
-
signer.sign(csr, key
|
352
|
-
expect(csr.verify(key
|
330
|
+
signer.sign(csr, key)
|
331
|
+
expect(csr.verify(key)).to be_truthy
|
353
332
|
end
|
354
333
|
|
355
|
-
|
356
|
-
|
357
|
-
# The problem seems to be with the ability to sign a CSR when using either of
|
358
|
-
# these hash algorithms
|
359
|
-
pending "should use SHA384 to sign the csr when SHA256/SHA1/SHA512 aren't available" do
|
334
|
+
it "should use SHA384 to sign the csr when SHA256/SHA1/SHA512 aren't available" do
|
335
|
+
key = OpenSSL::PKey::RSA.new(2048)
|
360
336
|
csr = OpenSSL::X509::Request.new
|
361
337
|
expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA256").and_return(false)
|
362
338
|
expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA1").and_return(false)
|
363
339
|
expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA512").and_return(false)
|
364
340
|
expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA384").and_return(true)
|
365
341
|
signer = Puppet::SSL::CertificateSigner.new
|
366
|
-
signer.sign(csr, key
|
367
|
-
expect(csr.verify(key
|
342
|
+
signer.sign(csr, key)
|
343
|
+
expect(csr.verify(key)).to be_truthy
|
368
344
|
end
|
369
345
|
|
370
346
|
it "should use SHA224 to sign the csr when SHA256/SHA1/SHA512/SHA384 aren't available" do
|
@@ -375,8 +351,8 @@ describe Puppet::SSL::CertificateRequest do
|
|
375
351
|
expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA384").and_return(false)
|
376
352
|
expect(OpenSSL::Digest).to receive(:const_defined?).with("SHA224").and_return(true)
|
377
353
|
signer = Puppet::SSL::CertificateSigner.new
|
378
|
-
signer.sign(csr, key
|
379
|
-
expect(csr.verify(key
|
354
|
+
signer.sign(csr, key)
|
355
|
+
expect(csr.verify(key)).to be_truthy
|
380
356
|
end
|
381
357
|
|
382
358
|
it "should raise an error if neither SHA256/SHA1/SHA512/SHA384/SHA224 are available" do
|
@@ -390,16 +366,4 @@ describe Puppet::SSL::CertificateRequest do
|
|
390
366
|
}.to raise_error(Puppet::Error)
|
391
367
|
end
|
392
368
|
end
|
393
|
-
|
394
|
-
it "should save the CSR" do
|
395
|
-
csr = Puppet::SSL::CertificateRequest.new("me")
|
396
|
-
terminus = double('terminus')
|
397
|
-
allow(terminus).to receive(:validate)
|
398
|
-
expect(Puppet::SSL::CertificateRequest.indirection).to receive(:prepare).and_return(terminus)
|
399
|
-
expect(terminus).to receive(:save) do |request|
|
400
|
-
expect(request.instance).to eq(csr)
|
401
|
-
expect(request.key).to eq("me")
|
402
|
-
end
|
403
|
-
Puppet::SSL::CertificateRequest.indirection.save(csr)
|
404
|
-
end
|
405
369
|
end
|