puppet 5.5.12-x64-mingw32 → 5.5.13-x64-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Gemfile +0 -5
- data/Gemfile.lock +11 -11
- data/lib/puppet/application/filebucket.rb +4 -0
- data/lib/puppet/configurer.rb +9 -3
- data/lib/puppet/indirector/request.rb +26 -15
- data/lib/puppet/indirector/rest.rb +16 -7
- data/lib/puppet/network/http/connection.rb +15 -7
- data/lib/puppet/transaction/event_manager.rb +1 -5
- data/lib/puppet/type/file/source.rb +0 -1
- data/lib/puppet/util/http_proxy.rb +3 -2
- data/lib/puppet/version.rb +1 -1
- data/locales/puppet.pot +108 -36
- data/man/man5/puppet.conf.5 +2 -2
- data/man/man8/puppet-agent.8 +1 -1
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-ca.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-cert.8 +1 -1
- data/man/man8/puppet-certificate.8 +1 -1
- data/man/man8/puppet-certificate_request.8 +1 -1
- data/man/man8/puppet-certificate_revocation_list.8 +1 -1
- data/man/man8/puppet-config.8 +1 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +1 -1
- data/man/man8/puppet-filebucket.8 +1 -1
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-key.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-man.8 +1 -1
- data/man/man8/puppet-master.8 +1 -1
- data/man/man8/puppet-module.8 +1 -1
- data/man/man8/puppet-node.8 +1 -1
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-status.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- data/spec/integration/agent/logging_spec.rb +5 -7
- data/spec/integration/application/apply_spec.rb +28 -26
- data/spec/integration/application/doc_spec.rb +1 -2
- data/spec/integration/application/lookup_spec.rb +5 -5
- data/spec/integration/configurer_spec.rb +5 -6
- data/spec/integration/defaults_spec.rb +5 -6
- data/spec/integration/directory_environments_spec.rb +1 -1
- data/spec/integration/faces/ca_spec.rb +2 -3
- data/spec/integration/faces/config_spec.rb +3 -4
- data/spec/integration/faces/documentation_spec.rb +0 -1
- data/spec/integration/faces/plugin_spec.rb +1 -1
- data/spec/integration/file_bucket/file_spec.rb +3 -5
- data/spec/integration/file_serving/content_spec.rb +0 -1
- data/spec/integration/file_serving/fileset_spec.rb +0 -1
- data/spec/integration/file_serving/metadata_spec.rb +0 -1
- data/spec/integration/file_serving/terminus_helper_spec.rb +0 -1
- data/spec/integration/indirector/catalog/compiler_spec.rb +10 -11
- data/spec/integration/indirector/direct_file_server_spec.rb +1 -1
- data/spec/integration/indirector/facts/facter_spec.rb +5 -5
- data/spec/integration/indirector/file_content/file_server_spec.rb +7 -8
- data/spec/integration/indirector/file_metadata/file_server_spec.rb +7 -8
- data/spec/integration/indirector/node/ldap_spec.rb +2 -3
- data/spec/integration/network/authconfig_spec.rb +23 -24
- data/spec/integration/network/formats_spec.rb +0 -1
- data/spec/integration/network/http/api/indirected_routes_spec.rb +0 -1
- data/spec/integration/node/environment_spec.rb +0 -1
- data/spec/integration/node/facts_spec.rb +9 -10
- data/spec/integration/node_spec.rb +6 -7
- data/spec/integration/parser/catalog_spec.rb +4 -2
- data/spec/integration/parser/collection_spec.rb +1 -2
- data/spec/integration/parser/compiler_spec.rb +6 -6
- data/spec/integration/parser/scope_spec.rb +1 -1
- data/spec/integration/parser/undef_param_spec.rb +1 -1
- data/spec/integration/provider/cron/crontab_spec.rb +8 -10
- data/spec/integration/provider/mailalias/aliases_spec.rb +0 -1
- data/spec/integration/provider/mount_spec.rb +9 -9
- data/spec/integration/provider/service/init_spec.rb +4 -5
- data/spec/integration/provider/service/systemd_spec.rb +0 -2
- data/spec/integration/provider/service/windows_spec.rb +1 -2
- data/spec/integration/provider/ssh_authorized_key_spec.rb +6 -8
- data/spec/integration/provider/sshkey_spec.rb +6 -12
- data/spec/integration/provider/yumrepo_spec.rb +8 -12
- data/spec/integration/reference/providers_spec.rb +0 -1
- data/spec/integration/reports_spec.rb +1 -2
- data/spec/integration/resource/catalog_spec.rb +14 -17
- data/spec/integration/resource/type_collection_spec.rb +4 -5
- data/spec/integration/ssl/certificate_authority_spec.rb +0 -1
- data/spec/integration/ssl/certificate_request_spec.rb +0 -1
- data/spec/integration/ssl/certificate_revocation_list_spec.rb +0 -1
- data/spec/integration/ssl/host_spec.rb +0 -1
- data/spec/integration/ssl/key_spec.rb +0 -1
- data/spec/integration/test/test_helper_spec.rb +1 -2
- data/spec/integration/transaction/report_spec.rb +6 -11
- data/spec/integration/transaction_spec.rb +18 -19
- data/spec/integration/type/exec_spec.rb +0 -1
- data/spec/integration/type/file_spec.rb +13 -14
- data/spec/integration/type/nagios_spec.rb +3 -5
- data/spec/integration/type/package_spec.rb +19 -23
- data/spec/integration/type/tidy_spec.rb +1 -2
- data/spec/integration/type/user_spec.rb +0 -1
- data/spec/integration/type_spec.rb +0 -1
- data/spec/integration/util/autoload_spec.rb +1 -2
- data/spec/integration/util/rdoc/parser_spec.rb +0 -1
- data/spec/integration/util/settings_spec.rb +0 -1
- data/spec/integration/util/windows/adsi_spec.rb +3 -5
- data/spec/integration/util/windows/principal_spec.rb +0 -1
- data/spec/integration/util/windows/process_spec.rb +4 -6
- data/spec/integration/util/windows/registry_spec.rb +41 -51
- data/spec/integration/util/windows/security_spec.rb +2 -4
- data/spec/integration/util/windows/user_spec.rb +18 -20
- data/spec/integration/util_spec.rb +4 -7
- data/spec/lib/puppet_spec/compiler.rb +1 -1
- data/spec/lib/puppet_spec/files.rb +0 -1
- data/spec/lib/puppet_spec/module_tool/shared_functions.rb +1 -1
- data/spec/lib/puppet_spec/scope.rb +1 -2
- data/spec/shared_behaviours/all_parsedfile_providers.rb +1 -1
- data/spec/shared_behaviours/file_server_terminus.rb +8 -9
- data/spec/shared_behaviours/file_serving.rb +6 -8
- data/spec/shared_behaviours/file_serving_model.rb +4 -6
- data/spec/shared_behaviours/hiera_indirections.rb +3 -4
- data/spec/shared_behaviours/iterative_functions.rb +0 -1
- data/spec/shared_behaviours/memory_terminus.rb +2 -2
- data/spec/shared_examples/rhel_package_provider.rb +112 -70
- data/spec/spec_helper.rb +11 -2
- data/spec/unit/agent/disabler_spec.rb +4 -5
- data/spec/unit/agent/locker_spec.rb +12 -13
- data/spec/unit/agent_spec.rb +80 -85
- data/spec/unit/application/agent_spec.rb +88 -93
- data/spec/unit/application/apply_spec.rb +78 -79
- data/spec/unit/application/cert_spec.rb +42 -49
- data/spec/unit/application/certificate_spec.rb +2 -3
- data/spec/unit/application/config_spec.rb +0 -1
- data/spec/unit/application/describe_spec.rb +6 -7
- data/spec/unit/application/device_spec.rb +175 -184
- data/spec/unit/application/doc_spec.rb +44 -46
- data/spec/unit/application/face_base_spec.rb +61 -62
- data/spec/unit/application/facts_spec.rb +3 -4
- data/spec/unit/application/filebucket_spec.rb +66 -74
- data/spec/unit/application/indirection_base_spec.rb +8 -6
- data/spec/unit/application/lookup_spec.rb +26 -26
- data/spec/unit/application/master_spec.rb +95 -95
- data/spec/unit/application/resource_spec.rb +42 -48
- data/spec/unit/application_spec.rb +74 -84
- data/spec/unit/capability_spec.rb +9 -6
- data/spec/unit/configurer/downloader_spec.rb +20 -21
- data/spec/unit/configurer/fact_handler_spec.rb +2 -3
- data/spec/unit/configurer/plugin_handler_spec.rb +41 -8
- data/spec/unit/configurer_spec.rb +190 -193
- data/spec/unit/confine/exists_spec.rb +17 -15
- data/spec/unit/confine/false_spec.rb +5 -6
- data/spec/unit/confine/feature_spec.rb +7 -5
- data/spec/unit/confine/true_spec.rb +5 -6
- data/spec/unit/confine/variable_spec.rb +14 -15
- data/spec/unit/confine_collection_spec.rb +28 -29
- data/spec/unit/confine_spec.rb +13 -14
- data/spec/unit/confiner_spec.rb +10 -11
- data/spec/unit/context/trusted_information_spec.rb +1 -1
- data/spec/unit/daemon_spec.rb +34 -35
- data/spec/unit/data_providers/function_data_provider_spec.rb +0 -1
- data/spec/unit/data_providers/hiera_data_provider_spec.rb +0 -1
- data/spec/unit/datatypes_spec.rb +3 -4
- data/spec/unit/defaults_spec.rb +17 -12
- data/spec/unit/environments_spec.rb +7 -7
- data/spec/unit/etc_spec.rb +30 -32
- data/spec/unit/external/pson_spec.rb +0 -1
- data/spec/unit/face/ca_spec.rb +0 -1
- data/spec/unit/face/catalog_spec.rb +0 -1
- data/spec/unit/face/certificate_request_spec.rb +0 -1
- data/spec/unit/face/certificate_revocation_list_spec.rb +0 -1
- data/spec/unit/face/certificate_spec.rb +7 -10
- data/spec/unit/face/config_spec.rb +31 -35
- data/spec/unit/face/epp_face_spec.rb +3 -4
- data/spec/unit/face/facts_spec.rb +5 -6
- data/spec/unit/face/generate_spec.rb +4 -5
- data/spec/unit/face/help_spec.rb +7 -8
- data/spec/unit/face/key_spec.rb +0 -1
- data/spec/unit/face/man_spec.rb +1 -2
- data/spec/unit/face/module/build_spec.rb +17 -17
- data/spec/unit/face/module/install_spec.rb +3 -5
- data/spec/unit/face/module/list_spec.rb +2 -12
- data/spec/unit/face/module/search_spec.rb +11 -9
- data/spec/unit/face/module/uninstall_spec.rb +4 -8
- data/spec/unit/face/node_spec.rb +33 -34
- data/spec/unit/face/parser_spec.rb +3 -3
- data/spec/unit/face/plugin_spec.rb +36 -9
- data/spec/unit/face/status_spec.rb +0 -1
- data/spec/unit/file_bucket/dipper_spec.rb +24 -20
- data/spec/unit/file_bucket/file_spec.rb +0 -2
- data/spec/unit/file_serving/base_spec.rb +16 -17
- data/spec/unit/file_serving/configuration/parser_spec.rb +27 -28
- data/spec/unit/file_serving/configuration_spec.rb +63 -66
- data/spec/unit/file_serving/content_spec.rb +10 -11
- data/spec/unit/file_serving/fileset_spec.rb +63 -58
- data/spec/unit/file_serving/http_metadata_spec.rb +8 -7
- data/spec/unit/file_serving/metadata_spec.rb +36 -36
- data/spec/unit/file_serving/mount/file_spec.rb +31 -32
- data/spec/unit/file_serving/mount/locales_spec.rb +23 -24
- data/spec/unit/file_serving/mount/modules_spec.rb +14 -15
- data/spec/unit/file_serving/mount/pluginfacts_spec.rb +23 -24
- data/spec/unit/file_serving/mount/plugins_spec.rb +23 -24
- data/spec/unit/file_serving/mount/tasks_spec.rb +14 -15
- data/spec/unit/file_serving/mount_spec.rb +0 -1
- data/spec/unit/file_serving/terminus_helper_spec.rb +37 -42
- data/spec/unit/file_serving/terminus_selector_spec.rb +12 -13
- data/spec/unit/file_system/uniquefile_spec.rb +4 -4
- data/spec/unit/file_system_spec.rb +2 -2
- data/spec/unit/forge/errors_spec.rb +1 -1
- data/spec/unit/forge/forge_spec.rb +13 -14
- data/spec/unit/forge/module_release_spec.rb +18 -18
- data/spec/unit/forge/repository_spec.rb +29 -30
- data/spec/unit/forge_spec.rb +15 -11
- data/spec/unit/functions/binary_file_spec.rb +3 -3
- data/spec/unit/functions/contain_spec.rb +0 -2
- data/spec/unit/functions/defined_spec.rb +0 -1
- data/spec/unit/functions/epp_spec.rb +2 -2
- data/spec/unit/functions/find_file_spec.rb +7 -7
- data/spec/unit/functions/include_spec.rb +0 -4
- data/spec/unit/functions/lookup_fixture_spec.rb +0 -1
- data/spec/unit/functions/lookup_spec.rb +1 -2
- data/spec/unit/functions/module_directory_spec.rb +12 -12
- data/spec/unit/functions/require_spec.rb +0 -3
- data/spec/unit/functions/shared.rb +5 -8
- data/spec/unit/functions/versioncmp_spec.rb +1 -2
- data/spec/unit/functions4_spec.rb +7 -8
- data/spec/unit/gettext/config_spec.rb +4 -4
- data/spec/unit/gettext/module_loading_spec.rb +7 -7
- data/spec/unit/graph/rb_tree_map_spec.rb +0 -2
- data/spec/unit/graph/relationship_graph_spec.rb +1 -2
- data/spec/unit/graph/simple_graph_spec.rb +8 -9
- data/spec/unit/hiera_puppet_spec.rb +20 -20
- data/spec/unit/indirector/catalog/compiler_spec.rb +147 -149
- data/spec/unit/indirector/catalog/json_spec.rb +1 -2
- data/spec/unit/indirector/catalog/msgpack_spec.rb +0 -1
- data/spec/unit/indirector/catalog/rest_spec.rb +0 -1
- data/spec/unit/indirector/catalog/store_configs_spec.rb +0 -1
- data/spec/unit/indirector/catalog/yaml_spec.rb +0 -1
- data/spec/unit/indirector/certificate/ca_spec.rb +2 -4
- data/spec/unit/indirector/certificate/disabled_ca_spec.rb +1 -2
- data/spec/unit/indirector/certificate/file_spec.rb +2 -3
- data/spec/unit/indirector/certificate/rest_spec.rb +8 -10
- data/spec/unit/indirector/certificate_request/ca_spec.rb +0 -1
- data/spec/unit/indirector/certificate_request/disabled_ca_spec.rb +1 -2
- data/spec/unit/indirector/certificate_request/file_spec.rb +0 -1
- data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -1
- data/spec/unit/indirector/certificate_revocation_list/ca_spec.rb +1 -2
- data/spec/unit/indirector/certificate_revocation_list/disabled_ca_spec.rb +1 -2
- data/spec/unit/indirector/certificate_revocation_list/file_spec.rb +1 -2
- data/spec/unit/indirector/certificate_revocation_list/rest_spec.rb +2 -3
- data/spec/unit/indirector/certificate_status/file_spec.rb +2 -3
- data/spec/unit/indirector/certificate_status/rest_spec.rb +0 -1
- data/spec/unit/indirector/code_spec.rb +5 -6
- data/spec/unit/indirector/direct_file_server_spec.rb +33 -27
- data/spec/unit/indirector/envelope_spec.rb +1 -2
- data/spec/unit/indirector/exec_spec.rb +15 -14
- data/spec/unit/indirector/face_spec.rb +9 -9
- data/spec/unit/indirector/facts/facter_spec.rb +37 -43
- data/spec/unit/indirector/facts/network_device_spec.rb +8 -9
- data/spec/unit/indirector/facts/rest_spec.rb +7 -8
- data/spec/unit/indirector/facts/store_configs_spec.rb +0 -1
- data/spec/unit/indirector/facts/yaml_spec.rb +2 -4
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +3 -4
- data/spec/unit/indirector/file_bucket_file/rest_spec.rb +0 -1
- data/spec/unit/indirector/file_bucket_file/selector_spec.rb +4 -5
- data/spec/unit/indirector/file_content/file_server_spec.rb +0 -1
- data/spec/unit/indirector/file_content/file_spec.rb +0 -1
- data/spec/unit/indirector/file_content/rest_spec.rb +0 -1
- data/spec/unit/indirector/file_content/selector_spec.rb +0 -1
- data/spec/unit/indirector/file_metadata/file_server_spec.rb +0 -1
- data/spec/unit/indirector/file_metadata/file_spec.rb +12 -13
- data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -1
- data/spec/unit/indirector/file_metadata/selector_spec.rb +0 -1
- data/spec/unit/indirector/file_server_spec.rb +99 -93
- data/spec/unit/indirector/indirection_spec.rb +242 -226
- data/spec/unit/indirector/json_spec.rb +7 -9
- data/spec/unit/indirector/key/ca_spec.rb +2 -3
- data/spec/unit/indirector/key/disabled_ca_spec.rb +1 -2
- data/spec/unit/indirector/key/file_spec.rb +25 -26
- data/spec/unit/indirector/ldap_spec.rb +34 -41
- data/spec/unit/indirector/memory_spec.rb +6 -7
- data/spec/unit/indirector/msgpack_spec.rb +7 -9
- data/spec/unit/indirector/node/exec_spec.rb +6 -6
- data/spec/unit/indirector/node/ldap_spec.rb +74 -76
- data/spec/unit/indirector/node/memory_spec.rb +2 -4
- data/spec/unit/indirector/node/msgpack_spec.rb +0 -1
- data/spec/unit/indirector/node/plain_spec.rb +2 -4
- data/spec/unit/indirector/node/rest_spec.rb +0 -1
- data/spec/unit/indirector/node/store_configs_spec.rb +0 -1
- data/spec/unit/indirector/node/write_only_yaml_spec.rb +1 -2
- data/spec/unit/indirector/node/yaml_spec.rb +0 -1
- data/spec/unit/indirector/none_spec.rb +5 -5
- data/spec/unit/indirector/plain_spec.rb +7 -8
- data/spec/unit/indirector/report/msgpack_spec.rb +0 -1
- data/spec/unit/indirector/report/processor_spec.rb +21 -22
- data/spec/unit/indirector/report/rest_spec.rb +11 -12
- data/spec/unit/indirector/report/yaml_spec.rb +0 -1
- data/spec/unit/indirector/request_spec.rb +11 -12
- data/spec/unit/indirector/resource/ral_spec.rb +47 -54
- data/spec/unit/indirector/resource/store_configs_spec.rb +0 -1
- data/spec/unit/indirector/rest_spec.rb +113 -110
- data/spec/unit/indirector/ssl_file_spec.rb +74 -77
- data/spec/unit/indirector/status/local_spec.rb +0 -1
- data/spec/unit/indirector/status/rest_spec.rb +0 -1
- data/spec/unit/indirector/store_configs_spec.rb +0 -1
- data/spec/unit/indirector/terminus_spec.rb +31 -29
- data/spec/unit/indirector/yaml_spec.rb +33 -32
- data/spec/unit/indirector_spec.rb +1 -2
- data/spec/unit/info_service_spec.rb +3 -1
- data/spec/unit/interface/action_builder_spec.rb +0 -1
- data/spec/unit/interface/action_manager_spec.rb +0 -1
- data/spec/unit/interface/action_spec.rb +2 -3
- data/spec/unit/interface/documentation_spec.rb +0 -1
- data/spec/unit/interface/face_collection_spec.rb +19 -12
- data/spec/unit/interface_spec.rb +3 -3
- data/spec/unit/man_spec.rb +3 -4
- data/spec/unit/module_spec.rb +46 -51
- data/spec/unit/module_tool/applications/builder_spec.rb +5 -5
- data/spec/unit/module_tool/applications/installer_spec.rb +10 -11
- data/spec/unit/module_tool/applications/searcher_spec.rb +3 -3
- data/spec/unit/module_tool/applications/uninstaller_spec.rb +1 -2
- data/spec/unit/module_tool/applications/unpacker_spec.rb +13 -13
- data/spec/unit/module_tool/applications/upgrader_spec.rb +5 -5
- data/spec/unit/module_tool/install_directory_spec.rb +8 -8
- data/spec/unit/module_tool/installed_modules_spec.rb +3 -3
- data/spec/unit/module_tool/tar/gnu_spec.rb +6 -6
- data/spec/unit/module_tool/tar/mini_spec.rb +12 -12
- data/spec/unit/module_tool/tar_spec.rb +12 -13
- data/spec/unit/module_tool_spec.rb +7 -12
- data/spec/unit/network/auth_config_parser_spec.rb +11 -13
- data/spec/unit/network/authconfig_spec.rb +17 -18
- data/spec/unit/network/authorization_spec.rb +4 -5
- data/spec/unit/network/authstore_spec.rb +0 -1
- data/spec/unit/network/format_handler_spec.rb +0 -1
- data/spec/unit/network/format_spec.rb +9 -10
- data/spec/unit/network/format_support_spec.rb +28 -29
- data/spec/unit/network/formats_spec.rb +4 -5
- data/spec/unit/network/http/api/ca/v1_spec.rb +1 -1
- data/spec/unit/network/http/api/indirected_routes_spec.rb +22 -29
- data/spec/unit/network/http/api/master/v3/authorization_spec.rb +2 -2
- data/spec/unit/network/http/api/master/v3/environment_spec.rb +1 -1
- data/spec/unit/network/http/api/master/v3/environments_spec.rb +6 -7
- data/spec/unit/network/http/api_spec.rb +1 -3
- data/spec/unit/network/http/compression_spec.rb +21 -22
- data/spec/unit/network/http/connection_spec.rb +39 -36
- data/spec/unit/network/http/factory_spec.rb +5 -6
- data/spec/unit/network/http/handler_spec.rb +9 -18
- data/spec/unit/network/http/nocache_pool_spec.rb +6 -7
- data/spec/unit/network/http/pool_spec.rb +28 -29
- data/spec/unit/network/http/rack/rest_spec.rb +24 -27
- data/spec/unit/network/http/rack_spec.rb +5 -6
- data/spec/unit/network/http/request_spec.rb +0 -2
- data/spec/unit/network/http/response_spec.rb +11 -13
- data/spec/unit/network/http/route_spec.rb +0 -1
- data/spec/unit/network/http/session_spec.rb +1 -2
- data/spec/unit/network/http/site_spec.rb +0 -1
- data/spec/unit/network/http/webrick/rest_spec.rb +40 -41
- data/spec/unit/network/http/webrick_spec.rb +49 -52
- data/spec/unit/network/http_pool_spec.rb +18 -9
- data/spec/unit/network/http_spec.rb +0 -1
- data/spec/unit/network/resolver_spec.rb +16 -17
- data/spec/unit/network/rights_spec.rb +52 -53
- data/spec/unit/network/server_spec.rb +12 -13
- data/spec/unit/node/environment_spec.rb +16 -14
- data/spec/unit/node/facts_spec.rb +5 -7
- data/spec/unit/node_spec.rb +4 -10
- data/spec/unit/other/selinux_spec.rb +2 -3
- data/spec/unit/parameter/boolean_spec.rb +1 -2
- data/spec/unit/parameter/package_options_spec.rb +1 -2
- data/spec/unit/parameter/path_spec.rb +0 -1
- data/spec/unit/parameter/value_collection_spec.rb +0 -1
- data/spec/unit/parameter/value_spec.rb +0 -1
- data/spec/unit/parameter_spec.rb +9 -9
- data/spec/unit/parser/ast/block_expression_spec.rb +6 -8
- data/spec/unit/parser/ast/leaf_spec.rb +20 -21
- data/spec/unit/parser/compiler_spec.rb +84 -96
- data/spec/unit/parser/environment_compiler_spec.rb +11 -9
- data/spec/unit/parser/files_spec.rb +0 -1
- data/spec/unit/parser/functions/create_resources_spec.rb +1 -1
- data/spec/unit/parser/functions/digest_spec.rb +0 -1
- data/spec/unit/parser/functions/fail_spec.rb +1 -2
- data/spec/unit/parser/functions/file_spec.rb +13 -14
- data/spec/unit/parser/functions/fqdn_rand_spec.rb +5 -6
- data/spec/unit/parser/functions/generate_spec.rb +7 -8
- data/spec/unit/parser/functions/inline_template_spec.rb +0 -1
- data/spec/unit/parser/functions/regsubst_spec.rb +0 -1
- data/spec/unit/parser/functions/scanf_spec.rb +0 -1
- data/spec/unit/parser/functions/shellquote_spec.rb +0 -1
- data/spec/unit/parser/functions/split_spec.rb +0 -1
- data/spec/unit/parser/functions/sprintf_spec.rb +0 -1
- data/spec/unit/parser/functions/tag_spec.rb +1 -2
- data/spec/unit/parser/functions/tagged_spec.rb +2 -3
- data/spec/unit/parser/functions/template_spec.rb +13 -13
- data/spec/unit/parser/functions/versioncmp_spec.rb +1 -2
- data/spec/unit/parser/functions_spec.rb +3 -4
- data/spec/unit/parser/relationship_spec.rb +0 -1
- data/spec/unit/parser/resource_spec.rb +42 -42
- data/spec/unit/parser/scope_spec.rb +39 -35
- data/spec/unit/parser/templatewrapper_spec.rb +11 -12
- data/spec/unit/parser/type_loader_spec.rb +17 -19
- data/spec/unit/pops/adaptable_spec.rb +0 -1
- data/spec/unit/pops/benchmark_spec.rb +0 -1
- data/spec/unit/pops/evaluator/access_ops_spec.rb +0 -1
- data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +0 -1
- data/spec/unit/pops/evaluator/basic_expressions_spec.rb +0 -1
- data/spec/unit/pops/evaluator/collections_ops_spec.rb +0 -1
- data/spec/unit/pops/evaluator/comparison_ops_spec.rb +0 -1
- data/spec/unit/pops/evaluator/conditionals_spec.rb +0 -1
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +6 -6
- data/spec/unit/pops/evaluator/logical_ops_spec.rb +0 -1
- data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +0 -1
- data/spec/unit/pops/evaluator/string_interpolation_spec.rb +0 -1
- data/spec/unit/pops/evaluator/variables_spec.rb +0 -1
- data/spec/unit/pops/factory_spec.rb +3 -4
- data/spec/unit/pops/issues_spec.rb +19 -20
- data/spec/unit/pops/loaders/loader_spec.rb +8 -4
- data/spec/unit/pops/loaders/loaders_spec.rb +30 -27
- data/spec/unit/pops/lookup/context_spec.rb +0 -1
- data/spec/unit/pops/lookup/interpolation_spec.rb +2 -3
- data/spec/unit/pops/merge_strategy_spec.rb +0 -1
- data/spec/unit/pops/migration_spec.rb +3 -5
- data/spec/unit/pops/model/model_spec.rb +0 -1
- data/spec/unit/pops/model/pn_transformer_spec.rb +0 -1
- data/spec/unit/pops/parser/locator_spec.rb +3 -6
- data/spec/unit/pops/parser/parse_application_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_calls_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_capabilities_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_conditionals_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_containers_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_plan_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_resource_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_site_spec.rb +0 -1
- data/spec/unit/pops/parser/pn_parser_spec.rb +0 -1
- data/spec/unit/pops/pn_spec.rb +0 -1
- data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -1
- data/spec/unit/pops/serialization/serialization_spec.rb +1 -1
- data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
- data/spec/unit/pops/types/recursion_guard_spec.rb +10 -10
- data/spec/unit/pops/types/ruby_generator_spec.rb +2 -2
- data/spec/unit/pops/types/type_asserter_spec.rb +2 -2
- data/spec/unit/pops/types/type_calculator_spec.rb +36 -36
- data/spec/unit/pops/types/type_parser_spec.rb +13 -13
- data/spec/unit/pops/validator/validator_spec.rb +1 -2
- data/spec/unit/pops/visitor_spec.rb +0 -1
- data/spec/unit/property/boolean_spec.rb +1 -1
- data/spec/unit/property/ensure_spec.rb +0 -1
- data/spec/unit/property/keyvalue_spec.rb +32 -34
- data/spec/unit/property/list_spec.rb +26 -27
- data/spec/unit/property/ordered_list_spec.rb +10 -14
- data/spec/unit/property_spec.rb +42 -43
- data/spec/unit/provider/aix_object_spec.rb +47 -45
- data/spec/unit/provider/augeas/augeas_spec.rb +192 -192
- data/spec/unit/provider/cisco_spec.rb +1 -2
- data/spec/unit/provider/command_spec.rb +9 -9
- data/spec/unit/provider/cron/crontab_spec.rb +10 -11
- data/spec/unit/provider/cron/parsed_spec.rb +22 -24
- data/spec/unit/provider/exec/posix_spec.rb +6 -7
- data/spec/unit/provider/exec/shell_spec.rb +0 -1
- data/spec/unit/provider/exec/windows_spec.rb +2 -4
- data/spec/unit/provider/exec_spec.rb +0 -1
- data/spec/unit/provider/file/posix_spec.rb +22 -24
- data/spec/unit/provider/file/windows_spec.rb +15 -17
- data/spec/unit/provider/group/aix_spec.rb +3 -2
- data/spec/unit/provider/group/groupadd_spec.rb +30 -26
- data/spec/unit/provider/group/ldap_spec.rb +18 -18
- data/spec/unit/provider/group/pw_spec.rb +11 -11
- data/spec/unit/provider/group/windows_adsi_spec.rb +54 -54
- data/spec/unit/provider/host/parsed_spec.rb +6 -6
- data/spec/unit/provider/interface/cisco_spec.rb +20 -24
- data/spec/unit/provider/ldap_spec.rb +61 -62
- data/spec/unit/provider/macauthorization_spec.rb +26 -47
- data/spec/unit/provider/mcx/mcxcontent_spec.rb +45 -47
- data/spec/unit/provider/mount/parsed_spec.rb +18 -24
- data/spec/unit/provider/mount_spec.rb +57 -66
- data/spec/unit/provider/naginator_spec.rb +13 -14
- data/spec/unit/provider/nameservice/directoryservice_spec.rb +35 -36
- data/spec/unit/provider/nameservice_spec.rb +38 -40
- data/spec/unit/provider/network_device_spec.rb +28 -28
- data/spec/unit/provider/package/aix_spec.rb +15 -15
- data/spec/unit/provider/package/appdmg_spec.rb +13 -13
- data/spec/unit/provider/package/apt_spec.rb +44 -27
- data/spec/unit/provider/package/aptitude_spec.rb +6 -7
- data/spec/unit/provider/package/aptrpm_spec.rb +7 -12
- data/spec/unit/provider/package/base_spec.rb +4 -4
- data/spec/unit/provider/package/dnf_spec.rb +14 -16
- data/spec/unit/provider/package/dpkg_spec.rb +52 -52
- data/spec/unit/provider/package/freebsd_spec.rb +11 -11
- data/spec/unit/provider/package/gem_spec.rb +51 -43
- data/spec/unit/provider/package/hpux_spec.rb +8 -8
- data/spec/unit/provider/package/macports_spec.rb +46 -42
- data/spec/unit/provider/package/nim_spec.rb +30 -39
- data/spec/unit/provider/package/openbsd_spec.rb +36 -39
- data/spec/unit/provider/package/opkg_spec.rb +23 -26
- data/spec/unit/provider/package/pacman_spec.rb +97 -118
- data/spec/unit/provider/package/pip_spec.rb +69 -71
- data/spec/unit/provider/package/pkg_spec.rb +109 -109
- data/spec/unit/provider/package/pkgdmg_spec.rb +65 -63
- data/spec/unit/provider/package/pkgin_spec.rb +10 -8
- data/spec/unit/provider/package/pkgng_spec.rb +17 -18
- data/spec/unit/provider/package/pkgutil_spec.rb +45 -49
- data/spec/unit/provider/package/portage_spec.rb +70 -74
- data/spec/unit/provider/package/puppet_gem_spec.rb +28 -8
- data/spec/unit/provider/package/rpm_spec.rb +53 -64
- data/spec/unit/provider/package/sun_spec.rb +16 -18
- data/spec/unit/provider/package/tdnf_spec.rb +2 -2
- data/spec/unit/provider/package/up2date_spec.rb +2 -4
- data/spec/unit/provider/package/urpmi_spec.rb +15 -17
- data/spec/unit/provider/package/windows/exe_package_spec.rb +12 -15
- data/spec/unit/provider/package/windows/msi_package_spec.rb +19 -22
- data/spec/unit/provider/package/windows/package_spec.rb +37 -42
- data/spec/unit/provider/package/windows_spec.rb +36 -32
- data/spec/unit/provider/package/yum_spec.rb +4 -4
- data/spec/unit/provider/package/zypper_spec.rb +87 -87
- data/spec/unit/provider/parsedfile_spec.rb +44 -45
- data/spec/unit/provider/scheduled_task/win32_taskscheduler_spec.rb +120 -130
- data/spec/unit/provider/selboolean_spec.rb +9 -11
- data/spec/unit/provider/selmodule_spec.rb +20 -22
- data/spec/unit/provider/service/base_spec.rb +4 -5
- data/spec/unit/provider/service/bsd_spec.rb +27 -29
- data/spec/unit/provider/service/daemontools_spec.rb +35 -35
- data/spec/unit/provider/service/debian_spec.rb +37 -37
- data/spec/unit/provider/service/freebsd_spec.rb +18 -18
- data/spec/unit/provider/service/gentoo_spec.rb +50 -56
- data/spec/unit/provider/service/init_spec.rb +55 -55
- data/spec/unit/provider/service/launchd_spec.rb +138 -116
- data/spec/unit/provider/service/openbsd_spec.rb +50 -50
- data/spec/unit/provider/service/openrc_spec.rb +43 -46
- data/spec/unit/provider/service/openwrt_spec.rb +26 -32
- data/spec/unit/provider/service/rcng_spec.rb +14 -14
- data/spec/unit/provider/service/redhat_spec.rb +45 -43
- data/spec/unit/provider/service/runit_spec.rb +29 -27
- data/spec/unit/provider/service/smf_spec.rb +74 -66
- data/spec/unit/provider/service/src_spec.rb +46 -47
- data/spec/unit/provider/service/systemd_spec.rb +93 -98
- data/spec/unit/provider/service/upstart_spec.rb +74 -72
- data/spec/unit/provider/service/windows_spec.rb +33 -41
- data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +54 -68
- data/spec/unit/provider/sshkey/parsed_spec.rb +7 -8
- data/spec/unit/provider/user/aix_spec.rb +31 -31
- data/spec/unit/provider/user/directoryservice_spec.rb +109 -114
- data/spec/unit/provider/user/hpux_spec.rb +15 -15
- data/spec/unit/provider/user/ldap_spec.rb +57 -57
- data/spec/unit/provider/user/openbsd_spec.rb +10 -12
- data/spec/unit/provider/user/pw_spec.rb +37 -35
- data/spec/unit/provider/user/user_role_add_spec.rb +93 -93
- data/spec/unit/provider/user/useradd_spec.rb +93 -92
- data/spec/unit/provider/user/windows_adsi_spec.rb +59 -60
- data/spec/unit/provider/vlan/cisco_spec.rb +10 -12
- data/spec/unit/provider/yumrepo/inifile_spec.rb +75 -80
- data/spec/unit/provider/zfs/zfs_spec.rb +26 -21
- data/spec/unit/provider/zone/solaris_spec.rb +56 -42
- data/spec/unit/provider/zpool/zpool_spec.rb +19 -20
- data/spec/unit/provider_spec.rb +29 -29
- data/spec/unit/puppet_pal_2pec.rb +4 -5
- data/spec/unit/puppet_pal_spec.rb +0 -1
- data/spec/unit/puppet_spec.rb +7 -8
- data/spec/unit/relationship_spec.rb +0 -1
- data/spec/unit/reports/http_spec.rb +21 -23
- data/spec/unit/reports/store_spec.rb +3 -4
- data/spec/unit/reports_spec.rb +12 -14
- data/spec/unit/resource/capability_finder_spec.rb +18 -16
- data/spec/unit/resource/catalog_spec.rb +72 -68
- data/spec/unit/resource/status_spec.rb +6 -8
- data/spec/unit/resource/type_collection_spec.rb +17 -18
- data/spec/unit/resource/type_spec.rb +34 -35
- data/spec/unit/resource_spec.rb +36 -32
- data/spec/unit/scheduler/job_spec.rb +0 -1
- data/spec/unit/scheduler/scheduler_spec.rb +0 -1
- data/spec/unit/scheduler/splay_job_spec.rb +1 -2
- data/spec/unit/settings/array_setting_spec.rb +1 -1
- data/spec/unit/settings/autosign_setting_spec.rb +9 -9
- data/spec/unit/settings/certificate_revocation_setting_spec.rb +1 -1
- data/spec/unit/settings/config_file_spec.rb +0 -1
- data/spec/unit/settings/directory_setting_spec.rb +2 -7
- data/spec/unit/settings/duration_setting_spec.rb +1 -2
- data/spec/unit/settings/enum_setting_spec.rb +1 -1
- data/spec/unit/settings/environment_conf_spec.rb +4 -6
- data/spec/unit/settings/file_setting_spec.rb +44 -46
- data/spec/unit/settings/path_setting_spec.rb +1 -2
- data/spec/unit/settings/priority_setting_spec.rb +1 -2
- data/spec/unit/settings/string_setting_spec.rb +14 -15
- data/spec/unit/settings/terminus_setting_spec.rb +1 -2
- data/spec/unit/settings/value_translator_spec.rb +0 -1
- data/spec/unit/settings_spec.rb +226 -233
- data/spec/unit/ssl/base_spec.rb +14 -15
- data/spec/unit/ssl/certificate_authority/autosign_command_spec.rb +6 -7
- data/spec/unit/ssl/certificate_authority/interface_spec.rb +116 -113
- data/spec/unit/ssl/certificate_authority_spec.rb +258 -268
- data/spec/unit/ssl/certificate_factory_spec.rb +3 -5
- data/spec/unit/ssl/certificate_request_attributes_spec.rb +2 -3
- data/spec/unit/ssl/certificate_request_spec.rb +66 -67
- data/spec/unit/ssl/certificate_revocation_list_spec.rb +3 -4
- data/spec/unit/ssl/certificate_spec.rb +23 -25
- data/spec/unit/ssl/configuration_spec.rb +1 -4
- data/spec/unit/ssl/digest_spec.rb +0 -1
- data/spec/unit/ssl/host_spec.rb +217 -188
- data/spec/unit/ssl/inventory_spec.rb +25 -21
- data/spec/unit/ssl/key_spec.rb +30 -31
- data/spec/unit/ssl/validator_spec.rb +40 -40
- data/spec/unit/task_spec.rb +6 -7
- data/spec/unit/transaction/additional_resource_generator_spec.rb +6 -5
- data/spec/unit/transaction/event_manager_spec.rb +88 -88
- data/spec/unit/transaction/event_spec.rb +16 -15
- data/spec/unit/transaction/persistence_spec.rb +16 -17
- data/spec/unit/transaction/report_spec.rb +11 -12
- data/spec/unit/transaction/resource_harness_spec.rb +28 -33
- data/spec/unit/transaction_spec.rb +98 -100
- data/spec/unit/type/augeas_spec.rb +11 -10
- data/spec/unit/type/component_spec.rb +0 -1
- data/spec/unit/type/computer_spec.rb +7 -10
- data/spec/unit/type/cron_spec.rb +3 -7
- data/spec/unit/type/exec_spec.rb +60 -56
- data/spec/unit/type/file/checksum_spec.rb +9 -10
- data/spec/unit/type/file/checksum_value_spec.rb +31 -32
- data/spec/unit/type/file/content_spec.rb +58 -61
- data/spec/unit/type/file/ctime_spec.rb +0 -1
- data/spec/unit/type/file/ensure_spec.rb +12 -13
- data/spec/unit/type/file/group_spec.rb +5 -7
- data/spec/unit/type/file/mode_spec.rb +4 -6
- data/spec/unit/type/file/mtime_spec.rb +0 -1
- data/spec/unit/type/file/owner_spec.rb +6 -8
- data/spec/unit/type/file/selinux_spec.rb +17 -19
- data/spec/unit/type/file/source_spec.rb +104 -101
- data/spec/unit/type/file/type_spec.rb +0 -1
- data/spec/unit/type/file_spec.rb +195 -185
- data/spec/unit/type/filebucket_spec.rb +4 -5
- data/spec/unit/type/group_spec.rb +6 -8
- data/spec/unit/type/host_spec.rb +2 -3
- data/spec/unit/type/interface_spec.rb +2 -3
- data/spec/unit/type/k5login_spec.rb +3 -4
- data/spec/unit/type/macauthorization_spec.rb +6 -8
- data/spec/unit/type/mailalias_spec.rb +2 -3
- data/spec/unit/type/maillist_spec.rb +6 -9
- data/spec/unit/type/mcx_spec.rb +4 -8
- data/spec/unit/type/mount_spec.rb +26 -38
- data/spec/unit/type/nagios_spec.rb +0 -1
- data/spec/unit/type/noop_metaparam_spec.rb +1 -2
- data/spec/unit/type/package/package_settings_spec.rb +44 -23
- data/spec/unit/type/package_spec.rb +53 -54
- data/spec/unit/type/resources_spec.rb +86 -88
- data/spec/unit/type/schedule_spec.rb +24 -26
- data/spec/unit/type/scheduled_task_spec.rb +1 -2
- data/spec/unit/type/selboolean_spec.rb +5 -6
- data/spec/unit/type/selmodule_spec.rb +0 -1
- data/spec/unit/type/service_spec.rb +47 -47
- data/spec/unit/type/ssh_authorized_key_spec.rb +5 -35
- data/spec/unit/type/sshkey_spec.rb +0 -2
- data/spec/unit/type/stage_spec.rb +0 -1
- data/spec/unit/type/tidy_spec.rb +61 -62
- data/spec/unit/type/user_spec.rb +41 -27
- data/spec/unit/type/vlan_spec.rb +2 -4
- data/spec/unit/type/whit_spec.rb +0 -1
- data/spec/unit/type/zfs_spec.rb +6 -7
- data/spec/unit/type/zone_spec.rb +14 -4
- data/spec/unit/type/zpool_spec.rb +4 -5
- data/spec/unit/type_spec.rb +54 -53
- data/spec/unit/util/at_fork_spec.rb +18 -19
- data/spec/unit/util/autoload_spec.rb +53 -54
- data/spec/unit/util/backups_spec.rb +34 -35
- data/spec/unit/util/character_encoding_spec.rb +8 -8
- data/spec/unit/util/checksums_spec.rb +38 -39
- data/spec/unit/util/colors_spec.rb +1 -2
- data/spec/unit/util/command_line_spec.rb +24 -25
- data/spec/unit/util/constant_inflector_spec.rb +0 -1
- data/spec/unit/util/diff_spec.rb +7 -8
- data/spec/unit/util/errors_spec.rb +0 -1
- data/spec/unit/util/execution_spec.rb +187 -162
- data/spec/unit/util/execution_stub_spec.rb +0 -1
- data/spec/unit/util/feature_spec.rb +13 -13
- data/spec/unit/util/filetype_spec.rb +49 -49
- data/spec/unit/util/http_proxy_spec.rb +12 -12
- data/spec/unit/util/inifile_spec.rb +26 -31
- data/spec/unit/util/json_lockfile_spec.rb +3 -5
- data/spec/unit/util/ldap/connection_spec.rb +26 -25
- data/spec/unit/util/ldap/generator_spec.rb +0 -1
- data/spec/unit/util/ldap/manager_spec.rb +102 -101
- data/spec/unit/util/lockfile_spec.rb +0 -1
- data/spec/unit/util/log/destinations_spec.rb +30 -33
- data/spec/unit/util/log_spec.rb +35 -36
- data/spec/unit/util/logging_spec.rb +58 -66
- data/spec/unit/util/metric_spec.rb +0 -1
- data/spec/unit/util/monkey_patches_spec.rb +7 -9
- data/spec/unit/util/multi_match_spec.rb +0 -1
- data/spec/unit/util/nagios_maker_spec.rb +35 -36
- data/spec/unit/util/network_device/cisco/device_spec.rb +59 -50
- data/spec/unit/util/network_device/cisco/facts_spec.rb +4 -5
- data/spec/unit/util/network_device/cisco/interface_spec.rb +29 -20
- data/spec/unit/util/network_device/config_spec.rb +0 -1
- data/spec/unit/util/network_device/ipcalc_spec.rb +0 -1
- data/spec/unit/util/network_device/transport/base_spec.rb +5 -6
- data/spec/unit/util/network_device/transport/ssh_spec.rb +94 -60
- data/spec/unit/util/network_device/transport/telnet_spec.rb +18 -14
- data/spec/unit/util/network_device_spec.rb +7 -9
- data/spec/unit/util/package_spec.rb +0 -1
- data/spec/unit/util/pidlock_spec.rb +13 -14
- data/spec/unit/util/plist_spec.rb +40 -33
- data/spec/unit/util/posix_spec.rb +54 -51
- data/spec/unit/util/rdoc_spec.rb +9 -10
- data/spec/unit/util/reference_spec.rb +0 -1
- data/spec/unit/util/resource_template_spec.rb +20 -20
- data/spec/unit/util/retry_action_spec.rb +7 -8
- data/spec/unit/util/rubygems_spec.rb +14 -14
- data/spec/unit/util/run_mode_spec.rb +3 -4
- data/spec/unit/util/selinux_spec.rb +79 -72
- data/spec/unit/util/splayer_spec.rb +8 -9
- data/spec/unit/util/ssl_spec.rb +0 -1
- data/spec/unit/util/storage_spec.rb +3 -4
- data/spec/unit/util/suidmanager_spec.rb +45 -54
- data/spec/unit/util/symbolic_file_mode_spec.rb +0 -1
- data/spec/unit/util/tag_set_spec.rb +0 -1
- data/spec/unit/util/tagging_spec.rb +0 -1
- data/spec/unit/util/terminal_spec.rb +9 -10
- data/spec/unit/util/user_attr_spec.rb +1 -2
- data/spec/unit/util/warnings_spec.rb +3 -4
- data/spec/unit/util/watcher/periodic_watcher_spec.rb +2 -2
- data/spec/unit/util/watcher_spec.rb +51 -21
- data/spec/unit/util/windows/access_control_entry_spec.rb +0 -1
- data/spec/unit/util/windows/access_control_list_spec.rb +0 -1
- data/spec/unit/util/windows/adsi_spec.rb +136 -138
- data/spec/unit/util/windows/api_types_spec.rb +0 -1
- data/spec/unit/util/windows/eventlog_spec.rb +9 -12
- data/spec/unit/util/windows/file_spec.rb +0 -1
- data/spec/unit/util/windows/root_certs_spec.rb +0 -1
- data/spec/unit/util/windows/security_descriptor_spec.rb +0 -2
- data/spec/unit/util/windows/service_spec.rb +66 -68
- data/spec/unit/util/windows/sid_spec.rb +11 -13
- data/spec/unit/util/windows/string_spec.rb +0 -1
- data/spec/unit/util_spec.rb +55 -59
- data/spec/unit/version_spec.rb +6 -6
- metadata +2 -2
| @@ -1,4 +1,3 @@ | |
| 1 | 
            -
            #! /usr/bin/env ruby
         | 
| 2 1 | 
             
            # encoding: ASCII-8BIT
         | 
| 3 2 | 
             
            require 'spec_helper'
         | 
| 4 3 |  | 
| @@ -10,12 +9,12 @@ describe Puppet::SSL::CertificateAuthority do | |
| 10 9 | 
             
              end
         | 
| 11 10 |  | 
| 12 11 | 
             
              def stub_ca_host
         | 
| 13 | 
            -
                @key =  | 
| 14 | 
            -
                @key. | 
| 15 | 
            -
                @cacert =  | 
| 16 | 
            -
                @cacert. | 
| 12 | 
            +
                @key = double('key')
         | 
| 13 | 
            +
                allow(@key).to receive(:content).and_return("cakey")
         | 
| 14 | 
            +
                @cacert = double('certificate')
         | 
| 15 | 
            +
                allow(@cacert).to receive(:content).and_return("cacertificate")
         | 
| 17 16 |  | 
| 18 | 
            -
                @host =  | 
| 17 | 
            +
                @host = double('ssl_host', :key => @key, :certificate => @cacert, :name => Puppet::SSL::Host.ca_name)
         | 
| 19 18 | 
             
              end
         | 
| 20 19 |  | 
| 21 20 | 
             
              it "should have a class method for returning a singleton instance" do
         | 
| @@ -26,10 +25,10 @@ describe Puppet::SSL::CertificateAuthority do | |
| 26 25 | 
             
                describe "and the host is a CA host and the run_mode is master" do
         | 
| 27 26 | 
             
                  before do
         | 
| 28 27 | 
             
                    Puppet[:ca] = true
         | 
| 29 | 
            -
                    Puppet.run_mode. | 
| 28 | 
            +
                    allow(Puppet.run_mode).to receive(:master?).and_return(true)
         | 
| 30 29 |  | 
| 31 | 
            -
                    @ca =  | 
| 32 | 
            -
                    Puppet::SSL::CertificateAuthority. | 
| 30 | 
            +
                    @ca = double('ca')
         | 
| 31 | 
            +
                    allow(Puppet::SSL::CertificateAuthority).to receive(:new).and_return(@ca)
         | 
| 33 32 | 
             
                  end
         | 
| 34 33 |  | 
| 35 34 | 
             
                  it "should return an instance" do
         | 
| @@ -44,9 +43,9 @@ describe Puppet::SSL::CertificateAuthority do | |
| 44 43 | 
             
                describe "and the host is not a CA host" do
         | 
| 45 44 | 
             
                  it "should return nil" do
         | 
| 46 45 | 
             
                    Puppet[:ca] = false
         | 
| 47 | 
            -
                    Puppet.run_mode. | 
| 46 | 
            +
                    allow(Puppet.run_mode).to receive(:master?).and_return(true)
         | 
| 48 47 |  | 
| 49 | 
            -
                    Puppet::SSL::CertificateAuthority. | 
| 48 | 
            +
                    expect(Puppet::SSL::CertificateAuthority).not_to receive(:new)
         | 
| 50 49 | 
             
                    expect(Puppet::SSL::CertificateAuthority.instance).to be_nil
         | 
| 51 50 | 
             
                  end
         | 
| 52 51 | 
             
                end
         | 
| @@ -54,9 +53,9 @@ describe Puppet::SSL::CertificateAuthority do | |
| 54 53 | 
             
                describe "and the run_mode is not master" do
         | 
| 55 54 | 
             
                  it "should return nil" do
         | 
| 56 55 | 
             
                    Puppet[:ca] = true
         | 
| 57 | 
            -
                    Puppet.run_mode. | 
| 56 | 
            +
                    allow(Puppet.run_mode).to receive(:master?).and_return(false)
         | 
| 58 57 |  | 
| 59 | 
            -
                    Puppet::SSL::CertificateAuthority. | 
| 58 | 
            +
                    expect(Puppet::SSL::CertificateAuthority).not_to receive(:new)
         | 
| 60 59 | 
             
                    expect(Puppet::SSL::CertificateAuthority.instance).to be_nil
         | 
| 61 60 | 
             
                  end
         | 
| 62 61 | 
             
                end
         | 
| @@ -64,9 +63,9 @@ describe Puppet::SSL::CertificateAuthority do | |
| 64 63 |  | 
| 65 64 | 
             
              describe "when initializing" do
         | 
| 66 65 | 
             
                before do
         | 
| 67 | 
            -
                  Puppet.settings. | 
| 66 | 
            +
                  allow(Puppet.settings).to receive(:use)
         | 
| 68 67 |  | 
| 69 | 
            -
                  Puppet::SSL::CertificateAuthority. | 
| 68 | 
            +
                  allow_any_instance_of(Puppet::SSL::CertificateAuthority).to receive(:setup)
         | 
| 70 69 | 
             
                end
         | 
| 71 70 |  | 
| 72 71 | 
             
                it "should always set its name to the value of :certname" do
         | 
| @@ -76,21 +75,21 @@ describe Puppet::SSL::CertificateAuthority do | |
| 76 75 | 
             
                end
         | 
| 77 76 |  | 
| 78 77 | 
             
                it "should create an SSL::Host instance whose name is the 'ca_name'" do
         | 
| 79 | 
            -
                  Puppet::SSL::Host. | 
| 78 | 
            +
                  expect(Puppet::SSL::Host).to receive(:ca_name).and_return("caname")
         | 
| 80 79 |  | 
| 81 | 
            -
                  host =  | 
| 82 | 
            -
                  Puppet::SSL::Host. | 
| 80 | 
            +
                  host = double('host')
         | 
| 81 | 
            +
                  expect(Puppet::SSL::Host).to receive(:new).with("caname").and_return(host)
         | 
| 83 82 |  | 
| 84 83 | 
             
                  Puppet::SSL::CertificateAuthority.new
         | 
| 85 84 | 
             
                end
         | 
| 86 85 |  | 
| 87 86 | 
             
                it "should use the :main, :ca, and :ssl settings sections" do
         | 
| 88 | 
            -
                  Puppet.settings. | 
| 87 | 
            +
                  expect(Puppet.settings).to receive(:use).with(:main, :ssl, :ca)
         | 
| 89 88 | 
             
                  Puppet::SSL::CertificateAuthority.new
         | 
| 90 89 | 
             
                end
         | 
| 91 90 |  | 
| 92 91 | 
             
                it "should make sure the CA is set up" do
         | 
| 93 | 
            -
                  Puppet::SSL::CertificateAuthority. | 
| 92 | 
            +
                  expect_any_instance_of(Puppet::SSL::CertificateAuthority).to receive(:setup)
         | 
| 94 93 |  | 
| 95 94 | 
             
                  Puppet::SSL::CertificateAuthority.new
         | 
| 96 95 | 
             
                end
         | 
| @@ -98,47 +97,47 @@ describe Puppet::SSL::CertificateAuthority do | |
| 98 97 |  | 
| 99 98 | 
             
              describe "when setting itself up" do
         | 
| 100 99 | 
             
                it "should generate the CA certificate if it does not have one" do
         | 
| 101 | 
            -
                  Puppet.settings. | 
| 100 | 
            +
                  allow(Puppet.settings).to receive(:use)
         | 
| 102 101 |  | 
| 103 | 
            -
                  host =  | 
| 104 | 
            -
                  Puppet::SSL::Host. | 
| 102 | 
            +
                  host = double('host')
         | 
| 103 | 
            +
                  allow(Puppet::SSL::Host).to receive(:new).and_return(host)
         | 
| 105 104 |  | 
| 106 | 
            -
                  host. | 
| 105 | 
            +
                  expect(host).to receive(:certificate).and_return(nil)
         | 
| 107 106 |  | 
| 108 | 
            -
                  Puppet::SSL::CertificateAuthority. | 
| 107 | 
            +
                  expect_any_instance_of(Puppet::SSL::CertificateAuthority).to receive(:generate_ca_certificate)
         | 
| 109 108 | 
             
                  Puppet::SSL::CertificateAuthority.new
         | 
| 110 109 | 
             
                end
         | 
| 111 110 | 
             
              end
         | 
| 112 111 |  | 
| 113 112 | 
             
              describe "when retrieving the certificate revocation list" do
         | 
| 114 113 | 
             
                before do
         | 
| 115 | 
            -
                  Puppet.settings. | 
| 114 | 
            +
                  allow(Puppet.settings).to receive(:use)
         | 
| 116 115 | 
             
                  Puppet[:cacrl] = "/my/crl"
         | 
| 117 116 |  | 
| 118 | 
            -
                  cert =  | 
| 119 | 
            -
                  key =  | 
| 120 | 
            -
                  @host =  | 
| 117 | 
            +
                  cert = double("certificate", :content => "real_cert")
         | 
| 118 | 
            +
                  key = double("key", :content => "real_key")
         | 
| 119 | 
            +
                  @host = double('host', :certificate => cert, :name => "hostname", :key => key)
         | 
| 121 120 |  | 
| 122 | 
            -
                  Puppet::SSL::CertificateAuthority. | 
| 121 | 
            +
                  allow_any_instance_of(Puppet::SSL::CertificateAuthority).to receive(:setup)
         | 
| 123 122 | 
             
                  @ca = Puppet::SSL::CertificateAuthority.new
         | 
| 124 123 |  | 
| 125 | 
            -
                  @ca. | 
| 124 | 
            +
                  allow(@ca).to receive(:host).and_return(@host)
         | 
| 126 125 | 
             
                end
         | 
| 127 126 |  | 
| 128 127 | 
             
                it "should return any found CRL instance" do
         | 
| 129 | 
            -
                  crl =  | 
| 130 | 
            -
                  Puppet::SSL::CertificateRevocationList.indirection. | 
| 128 | 
            +
                  crl = double('crl')
         | 
| 129 | 
            +
                  expect(Puppet::SSL::CertificateRevocationList.indirection).to receive(:find).and_return(crl)
         | 
| 131 130 | 
             
                  expect(@ca.crl).to equal(crl)
         | 
| 132 131 | 
             
                end
         | 
| 133 132 |  | 
| 134 133 | 
             
                it "should create, generate, and save a new CRL instance of no CRL can be found" do
         | 
| 135 134 | 
             
                  crl = Puppet::SSL::CertificateRevocationList.new("fakename")
         | 
| 136 | 
            -
                  Puppet::SSL::CertificateRevocationList.indirection. | 
| 135 | 
            +
                  expect(Puppet::SSL::CertificateRevocationList.indirection).to receive(:find).and_return(nil)
         | 
| 137 136 |  | 
| 138 | 
            -
                  Puppet::SSL::CertificateRevocationList. | 
| 137 | 
            +
                  expect(Puppet::SSL::CertificateRevocationList).to receive(:new).and_return(crl)
         | 
| 139 138 |  | 
| 140 | 
            -
                  crl. | 
| 141 | 
            -
                  Puppet::SSL::CertificateRevocationList.indirection. | 
| 139 | 
            +
                  expect(crl).to receive(:generate).with(@ca.host.certificate.content, @ca.host.key.content)
         | 
| 140 | 
            +
                  expect(Puppet::SSL::CertificateRevocationList.indirection).to receive(:save).with(crl)
         | 
| 142 141 |  | 
| 143 142 | 
             
                  expect(@ca.crl).to equal(crl)
         | 
| 144 143 | 
             
                end
         | 
| @@ -146,28 +145,28 @@ describe Puppet::SSL::CertificateAuthority do | |
| 146 145 |  | 
| 147 146 | 
             
              describe "when generating a self-signed CA certificate" do
         | 
| 148 147 | 
             
                before do
         | 
| 149 | 
            -
                  Puppet.settings. | 
| 148 | 
            +
                  allow(Puppet.settings).to receive(:use)
         | 
| 150 149 |  | 
| 151 | 
            -
                  Puppet::SSL::CertificateAuthority. | 
| 152 | 
            -
                  Puppet::SSL::CertificateAuthority. | 
| 150 | 
            +
                  allow_any_instance_of(Puppet::SSL::CertificateAuthority).to receive(:setup)
         | 
| 151 | 
            +
                  allow_any_instance_of(Puppet::SSL::CertificateAuthority).to receive(:crl)
         | 
| 153 152 | 
             
                  @ca = Puppet::SSL::CertificateAuthority.new
         | 
| 154 153 |  | 
| 155 | 
            -
                  @host =  | 
| 154 | 
            +
                  @host = double('host', :key => double("key"), :name => "hostname", :certificate => double('certificate'))
         | 
| 156 155 |  | 
| 157 | 
            -
                  Puppet::SSL::CertificateRequest. | 
| 156 | 
            +
                  allow_any_instance_of(Puppet::SSL::CertificateRequest).to receive(:generate)
         | 
| 158 157 |  | 
| 159 | 
            -
                  @ca. | 
| 158 | 
            +
                  allow(@ca).to receive(:host).and_return(@host)
         | 
| 160 159 | 
             
                end
         | 
| 161 160 |  | 
| 162 161 | 
             
                it "should create and store a password at :capass" do
         | 
| 163 162 | 
             
                  Puppet[:capass] = File.expand_path("/path/to/pass")
         | 
| 164 163 |  | 
| 165 | 
            -
                  Puppet::FileSystem. | 
| 164 | 
            +
                  expect(Puppet::FileSystem).to receive(:exist?).with(Puppet[:capass]).and_return(false)
         | 
| 166 165 |  | 
| 167 166 | 
             
                  fh = StringIO.new
         | 
| 168 | 
            -
                  Puppet.settings.setting(:capass). | 
| 167 | 
            +
                  expect(Puppet.settings.setting(:capass)).to receive(:open).with('w:ASCII').and_yield(fh)
         | 
| 169 168 |  | 
| 170 | 
            -
                  @ca. | 
| 169 | 
            +
                  allow(@ca).to receive(:sign)
         | 
| 171 170 |  | 
| 172 171 | 
             
                  @ca.generate_ca_certificate
         | 
| 173 172 |  | 
| @@ -175,37 +174,42 @@ describe Puppet::SSL::CertificateAuthority do | |
| 175 174 | 
             
                end
         | 
| 176 175 |  | 
| 177 176 | 
             
                it "should generate a key if one does not exist" do
         | 
| 178 | 
            -
                  @ca. | 
| 179 | 
            -
                  @ca. | 
| 177 | 
            +
                  allow(@ca).to receive(:generate_password)
         | 
| 178 | 
            +
                  allow(@ca).to receive(:sign)
         | 
| 180 179 |  | 
| 181 | 
            -
                  @ca.host. | 
| 182 | 
            -
                  @ca.host. | 
| 180 | 
            +
                  expect(@ca.host).to receive(:key).and_return(nil)
         | 
| 181 | 
            +
                  expect(@ca.host).to receive(:generate_key)
         | 
| 183 182 |  | 
| 184 183 | 
             
                  @ca.generate_ca_certificate
         | 
| 185 184 | 
             
                end
         | 
| 186 185 |  | 
| 187 186 | 
             
                it "should create and sign a self-signed cert using the CA name" do
         | 
| 188 | 
            -
                  request =  | 
| 189 | 
            -
                  Puppet::SSL::CertificateRequest. | 
| 190 | 
            -
                  request. | 
| 191 | 
            -
                  request. | 
| 187 | 
            +
                  request = double('request')
         | 
| 188 | 
            +
                  expect(Puppet::SSL::CertificateRequest).to receive(:new).with(@ca.host.name).and_return(request)
         | 
| 189 | 
            +
                  expect(request).to receive(:generate).with(@ca.host.key)
         | 
| 190 | 
            +
                  allow(request).to receive(:request_extensions).and_return([])
         | 
| 192 191 |  | 
| 193 | 
            -
                  @ca. | 
| 194 | 
            -
             | 
| 192 | 
            +
                  expect(@ca).to receive(:sign).with(
         | 
| 193 | 
            +
                    @host.name,
         | 
| 194 | 
            +
                    {
         | 
| 195 | 
            +
                      allow_dns_alt_names: false,
         | 
| 196 | 
            +
                      self_signing_csr: request
         | 
| 197 | 
            +
                    }
         | 
| 198 | 
            +
                  )
         | 
| 195 199 |  | 
| 196 | 
            -
                  @ca. | 
| 200 | 
            +
                  allow(@ca).to receive(:generate_password)
         | 
| 197 201 |  | 
| 198 202 | 
             
                  @ca.generate_ca_certificate
         | 
| 199 203 | 
             
                end
         | 
| 200 204 |  | 
| 201 205 | 
             
                it "should generate its CRL" do
         | 
| 202 | 
            -
                  @ca. | 
| 203 | 
            -
                  @ca. | 
| 206 | 
            +
                  allow(@ca).to receive(:generate_password)
         | 
| 207 | 
            +
                  allow(@ca).to receive(:sign)
         | 
| 204 208 |  | 
| 205 | 
            -
                  @ca.host. | 
| 206 | 
            -
                  @ca.host. | 
| 209 | 
            +
                  expect(@ca.host).to receive(:key).and_return(nil)
         | 
| 210 | 
            +
                  expect(@ca.host).to receive(:generate_key)
         | 
| 207 211 |  | 
| 208 | 
            -
                  @ca. | 
| 212 | 
            +
                  expect(@ca).to receive(:crl)
         | 
| 209 213 |  | 
| 210 214 | 
             
                  @ca.generate_ca_certificate
         | 
| 211 215 | 
             
                end
         | 
| @@ -213,86 +217,80 @@ describe Puppet::SSL::CertificateAuthority do | |
| 213 217 |  | 
| 214 218 | 
             
              describe "when signing" do
         | 
| 215 219 | 
             
                before do
         | 
| 216 | 
            -
                  Puppet.settings. | 
| 220 | 
            +
                  allow(Puppet.settings).to receive(:use)
         | 
| 217 221 |  | 
| 218 | 
            -
                  Puppet::SSL::CertificateAuthority. | 
| 222 | 
            +
                  allow_any_instance_of(Puppet::SSL::CertificateAuthority).to receive(:password?).and_return(true)
         | 
| 219 223 |  | 
| 220 224 | 
             
                  stub_ca_host
         | 
| 221 225 |  | 
| 222 | 
            -
                  Puppet::SSL::Host. | 
| 226 | 
            +
                  expect(Puppet::SSL::Host).to receive(:new).with(Puppet::SSL::Host.ca_name).and_return(@host)
         | 
| 223 227 |  | 
| 224 228 | 
             
                  @ca = Puppet::SSL::CertificateAuthority.new
         | 
| 225 229 |  | 
| 226 230 | 
             
                  @name = "myhost"
         | 
| 227 | 
            -
                  @real_cert =  | 
| 231 | 
            +
                  @real_cert = double('realcert', :sign => nil)
         | 
| 228 232 | 
             
                  @cert = Puppet::SSL::Certificate.new(@name)
         | 
| 229 233 | 
             
                  @cert.content = @real_cert
         | 
| 230 234 |  | 
| 231 | 
            -
                  Puppet::SSL::Certificate. | 
| 235 | 
            +
                  allow(Puppet::SSL::Certificate).to receive(:new).and_return(@cert)
         | 
| 232 236 |  | 
| 233 | 
            -
                  Puppet::SSL::Certificate.indirection. | 
| 237 | 
            +
                  allow(Puppet::SSL::Certificate.indirection).to receive(:save)
         | 
| 234 238 |  | 
| 235 239 | 
             
                  # Stub out the factory
         | 
| 236 | 
            -
                  Puppet::SSL::CertificateFactory. | 
| 240 | 
            +
                  allow(Puppet::SSL::CertificateFactory).to receive(:build).and_return(@cert.content)
         | 
| 237 241 |  | 
| 238 | 
            -
                  @request_content =  | 
| 239 | 
            -
                  @request =  | 
| 240 | 
            -
                  @request_content. | 
| 242 | 
            +
                  @request_content = double("request content stub", :subject => OpenSSL::X509::Name.new([['CN', @name]]), :public_key => double('public_key'))
         | 
| 243 | 
            +
                  @request = double('request', :name => @name, :request_extensions => [], :subject_alt_names => [], :content => @request_content)
         | 
| 244 | 
            +
                  allow(@request_content).to receive(:verify).and_return(true)
         | 
| 241 245 |  | 
| 242 246 | 
             
                  # And the inventory
         | 
| 243 | 
            -
                  @inventory =  | 
| 244 | 
            -
                  @ca. | 
| 247 | 
            +
                  @inventory = double('inventory', :add => nil)
         | 
| 248 | 
            +
                  allow(@ca).to receive(:inventory).and_return(@inventory)
         | 
| 245 249 |  | 
| 246 | 
            -
                  Puppet::SSL::CertificateRequest.indirection. | 
| 250 | 
            +
                  allow(Puppet::SSL::CertificateRequest.indirection).to receive(:destroy)
         | 
| 247 251 | 
             
                end
         | 
| 248 252 |  | 
| 249 253 | 
             
                describe "its own certificate" do
         | 
| 250 254 | 
             
                  before do
         | 
| 251 255 | 
             
                    @serial = 10
         | 
| 252 | 
            -
                    @ca. | 
| 256 | 
            +
                    allow(@ca).to receive(:next_serial).and_return(@serial)
         | 
| 253 257 | 
             
                  end
         | 
| 254 258 |  | 
| 255 259 | 
             
                  it "should not look up a certificate request for the host" do
         | 
| 256 | 
            -
                    Puppet::SSL::CertificateRequest.indirection. | 
| 260 | 
            +
                    expect(Puppet::SSL::CertificateRequest.indirection).not_to receive(:find)
         | 
| 257 261 |  | 
| 258 262 | 
             
                    @ca.sign(@name, {allow_dns_alt_names: true,
         | 
| 259 263 | 
             
                                     self_signing_csr: @request})
         | 
| 260 264 | 
             
                  end
         | 
| 261 265 |  | 
| 262 266 | 
             
                  it "should use a certificate type of :ca" do
         | 
| 263 | 
            -
                    Puppet::SSL::CertificateFactory. | 
| 264 | 
            -
                      expect(args[0]).to eq(:ca)
         | 
| 265 | 
            -
                    end.returns @cert.content
         | 
| 267 | 
            +
                    expect(Puppet::SSL::CertificateFactory).to receive(:build).with(:ca, any_args).and_return(@cert.content)
         | 
| 266 268 | 
             
                    @ca.sign(@name, {allow_dns_alt_names: true,
         | 
| 267 269 | 
             
                                     self_signing_csr: @request})
         | 
| 268 270 | 
             
                  end
         | 
| 269 271 |  | 
| 270 272 | 
             
                  it "should pass the provided CSR as the CSR" do
         | 
| 271 | 
            -
                    Puppet::SSL::CertificateFactory. | 
| 272 | 
            -
                      expect(args[1]).to eq(@request)
         | 
| 273 | 
            -
                    end.returns @cert.content
         | 
| 273 | 
            +
                    expect(Puppet::SSL::CertificateFactory).to receive(:build).with(anything, @request, any_args).and_return(@cert.content)
         | 
| 274 274 | 
             
                    @ca.sign(@name, {allow_dns_alt_names: true,
         | 
| 275 275 | 
             
                                     self_signing_csr: @request})
         | 
| 276 276 | 
             
                  end
         | 
| 277 277 |  | 
| 278 278 | 
             
                  it "should use the provided CSR's content as the issuer" do
         | 
| 279 | 
            -
                    Puppet::SSL::CertificateFactory. | 
| 279 | 
            +
                    expect(Puppet::SSL::CertificateFactory).to receive(:build) do |*args|
         | 
| 280 280 | 
             
                      expect(args[2].subject.to_s).to eq("/CN=myhost")
         | 
| 281 | 
            -
                    end. | 
| 281 | 
            +
                    end.and_return(@cert.content)
         | 
| 282 282 | 
             
                    @ca.sign(@name, {allow_dns_alt_names: true,
         | 
| 283 283 | 
             
                                     self_signing_csr: @request})
         | 
| 284 284 | 
             
                  end
         | 
| 285 285 |  | 
| 286 286 | 
             
                  it "should pass the next serial as the serial number" do
         | 
| 287 | 
            -
                    Puppet::SSL::CertificateFactory. | 
| 288 | 
            -
                      expect(args[3]).to eq(@serial)
         | 
| 289 | 
            -
                    end.returns @cert.content
         | 
| 287 | 
            +
                    expect(Puppet::SSL::CertificateFactory).to receive(:build).with(anything, anything, anything, @serial).and_return(@cert.content)
         | 
| 290 288 | 
             
                    @ca.sign(@name, {allow_dns_alt_names: true,
         | 
| 291 289 | 
             
                                     self_signing_csr: @request})
         | 
| 292 290 | 
             
                  end
         | 
| 293 291 |  | 
| 294 292 | 
             
                  it "should sign the certificate request even if it contains alt names" do
         | 
| 295 | 
            -
                    @request. | 
| 293 | 
            +
                    allow(@request).to receive(:subject_alt_names).and_return(%w[DNS:foo DNS:bar DNS:baz])
         | 
| 296 294 |  | 
| 297 295 | 
             
                    expect do
         | 
| 298 296 | 
             
                      @ca.sign(@name, {allow_dns_alt_names: false,
         | 
| @@ -301,7 +299,7 @@ describe Puppet::SSL::CertificateAuthority do | |
| 301 299 | 
             
                  end
         | 
| 302 300 |  | 
| 303 301 | 
             
                  it "should save the resulting certificate" do
         | 
| 304 | 
            -
                    Puppet::SSL::Certificate.indirection. | 
| 302 | 
            +
                    expect(Puppet::SSL::Certificate.indirection).to receive(:save).with(@cert)
         | 
| 305 303 |  | 
| 306 304 | 
             
                    @ca.sign(@name, {allow_dns_alt_names: true,
         | 
| 307 305 | 
             
                                     self_signing_csr: @request})
         | 
| @@ -311,45 +309,43 @@ describe Puppet::SSL::CertificateAuthority do | |
| 311 309 | 
             
                describe "another host's certificate" do
         | 
| 312 310 | 
             
                  before do
         | 
| 313 311 | 
             
                    @serial = 10
         | 
| 314 | 
            -
                    @ca. | 
| 312 | 
            +
                    allow(@ca).to receive(:next_serial).and_return(@serial)
         | 
| 315 313 |  | 
| 316 | 
            -
                    Puppet::SSL::CertificateRequest.indirection. | 
| 317 | 
            -
                    Puppet::SSL::CertificateRequest.indirection. | 
| 314 | 
            +
                    allow(Puppet::SSL::CertificateRequest.indirection).to receive(:find).with(@name).and_return(@request)
         | 
| 315 | 
            +
                    allow(Puppet::SSL::CertificateRequest.indirection).to receive(:save)
         | 
| 318 316 | 
             
                  end
         | 
| 319 317 |  | 
| 320 318 | 
             
                  it "should use a certificate type of :server" do
         | 
| 321 | 
            -
                    Puppet::SSL::CertificateFactory. | 
| 322 | 
            -
                      args[0] == :server
         | 
| 323 | 
            -
                    end.returns @cert.content
         | 
| 319 | 
            +
                    expect(Puppet::SSL::CertificateFactory).to receive(:build).with(:server, any_args).and_return(@cert.content)
         | 
| 324 320 |  | 
| 325 321 | 
             
                    @ca.sign(@name)
         | 
| 326 322 | 
             
                  end
         | 
| 327 323 |  | 
| 328 324 | 
             
                  it "should use look up a CSR for the host in the :ca_file terminus" do
         | 
| 329 | 
            -
                    Puppet::SSL::CertificateRequest.indirection. | 
| 325 | 
            +
                    expect(Puppet::SSL::CertificateRequest.indirection).to receive(:find).with(@name).and_return(@request)
         | 
| 330 326 |  | 
| 331 327 | 
             
                    @ca.sign(@name)
         | 
| 332 328 | 
             
                  end
         | 
| 333 329 |  | 
| 334 330 | 
             
                  it "should fail if no CSR can be found for the host" do
         | 
| 335 | 
            -
                    Puppet::SSL::CertificateRequest.indirection. | 
| 331 | 
            +
                    expect(Puppet::SSL::CertificateRequest.indirection).to receive(:find).with(@name).and_return(nil)
         | 
| 336 332 |  | 
| 337 333 | 
             
                    expect { @ca.sign(@name) }.to raise_error(ArgumentError)
         | 
| 338 334 | 
             
                  end
         | 
| 339 335 |  | 
| 340 336 | 
             
                  it "should fail if an unknown request extension is present" do
         | 
| 341 | 
            -
                    @request. | 
| 342 | 
            -
             | 
| 337 | 
            +
                    allow(@request).to receive(:request_extensions).and_return([{ "oid"   => "bananas",
         | 
| 338 | 
            +
                                                                                  "value" => "delicious" }])
         | 
| 343 339 | 
             
                    expect {
         | 
| 344 340 | 
             
                      @ca.sign(@name)
         | 
| 345 341 | 
             
                    }.to raise_error(/CSR has request extensions that are not permitted/)
         | 
| 346 342 | 
             
                  end
         | 
| 347 343 |  | 
| 348 344 | 
             
                  it "should reject auth extensions" do
         | 
| 349 | 
            -
                    @request. | 
| 350 | 
            -
             | 
| 351 | 
            -
             | 
| 352 | 
            -
             | 
| 345 | 
            +
                    allow(@request).to receive(:request_extensions).and_return([{"oid" => "1.3.6.1.4.1.34380.1.3.1",
         | 
| 346 | 
            +
                                                                                 "value" => "true"},
         | 
| 347 | 
            +
                                                                                {"oid" => "1.3.6.1.4.1.34380.1.3.13",
         | 
| 348 | 
            +
                                                                                 "value" => "com"}])
         | 
| 353 349 |  | 
| 354 350 | 
             
                    expect {
         | 
| 355 351 | 
             
                      @ca.sign(@name)
         | 
| @@ -358,15 +354,15 @@ describe Puppet::SSL::CertificateAuthority do | |
| 358 354 | 
             
                  end
         | 
| 359 355 |  | 
| 360 356 | 
             
                  it "should not fail if the CSR contains auth extensions and they're allowed" do
         | 
| 361 | 
            -
                    @request. | 
| 362 | 
            -
             | 
| 363 | 
            -
             | 
| 364 | 
            -
             | 
| 357 | 
            +
                    allow(@request).to receive(:request_extensions).and_return([{"oid" => "1.3.6.1.4.1.34380.1.3.1",
         | 
| 358 | 
            +
                                                                                 "value" => "true"},
         | 
| 359 | 
            +
                                                                                {"oid" => "1.3.6.1.4.1.34380.1.3.13",
         | 
| 360 | 
            +
                                                                                 "value" => "com"}])
         | 
| 365 361 | 
             
                    expect { @ca.sign(@name, {allow_authorization_extensions: true})}.to_not raise_error
         | 
| 366 362 | 
             
                  end
         | 
| 367 363 |  | 
| 368 364 | 
             
                  it "should fail if the CSR contains alt names and they are not expected" do
         | 
| 369 | 
            -
                    @request. | 
| 365 | 
            +
                    allow(@request).to receive(:subject_alt_names).and_return(%w[DNS:foo DNS:bar DNS:baz])
         | 
| 370 366 |  | 
| 371 367 | 
             
                    expect do
         | 
| 372 368 | 
             
                      @ca.sign(@name, {allow_dns_alt_names: false})
         | 
| @@ -374,12 +370,12 @@ describe Puppet::SSL::CertificateAuthority do | |
| 374 370 | 
             
                  end
         | 
| 375 371 |  | 
| 376 372 | 
             
                  it "should not fail if the CSR does not contain alt names and they are expected" do
         | 
| 377 | 
            -
                    @request. | 
| 373 | 
            +
                    allow(@request).to receive(:subject_alt_names).and_return([])
         | 
| 378 374 | 
             
                    expect { @ca.sign(@name, {allow_dns_alt_names: true}) }.to_not raise_error
         | 
| 379 375 | 
             
                  end
         | 
| 380 376 |  | 
| 381 377 | 
             
                  it "should reject alt names by default" do
         | 
| 382 | 
            -
                    @request. | 
| 378 | 
            +
                    allow(@request).to receive(:subject_alt_names).and_return(%w[DNS:foo DNS:bar DNS:baz])
         | 
| 383 379 |  | 
| 384 380 | 
             
                    expect do
         | 
| 385 381 | 
             
                      @ca.sign(@name)
         | 
| @@ -387,43 +383,39 @@ describe Puppet::SSL::CertificateAuthority do | |
| 387 383 | 
             
                  end
         | 
| 388 384 |  | 
| 389 385 | 
             
                  it "should use the CA certificate as the issuer" do
         | 
| 390 | 
            -
                    Puppet::SSL::CertificateFactory. | 
| 391 | 
            -
                      args[2] == @cacert.content
         | 
| 392 | 
            -
                    end.returns @cert.content
         | 
| 386 | 
            +
                    expect(Puppet::SSL::CertificateFactory).to receive(:build).with(anything, anything, @cacert.content, any_args).and_return(@cert.content)
         | 
| 393 387 | 
             
                    @ca.sign(@name)
         | 
| 394 388 | 
             
                  end
         | 
| 395 389 |  | 
| 396 390 | 
             
                  it "should pass the next serial as the serial number" do
         | 
| 397 | 
            -
                    Puppet::SSL::CertificateFactory. | 
| 398 | 
            -
                      args[3] == @serial
         | 
| 399 | 
            -
                    end.returns @cert.content
         | 
| 391 | 
            +
                    expect(Puppet::SSL::CertificateFactory).to receive(:build).with(anything, anything, anything, @serial).and_return(@cert.content)
         | 
| 400 392 | 
             
                    @ca.sign(@name)
         | 
| 401 393 | 
             
                  end
         | 
| 402 394 |  | 
| 403 395 | 
             
                  it "should sign the resulting certificate using its real key and a digest" do
         | 
| 404 | 
            -
                    digest =  | 
| 405 | 
            -
                    OpenSSL::Digest::SHA256. | 
| 396 | 
            +
                    digest = double('digest')
         | 
| 397 | 
            +
                    expect(OpenSSL::Digest::SHA256).to receive(:new).and_return(digest)
         | 
| 406 398 |  | 
| 407 | 
            -
                    key =  | 
| 408 | 
            -
                    @ca.host. | 
| 399 | 
            +
                    key = double('key', :content => "real_key")
         | 
| 400 | 
            +
                    allow(@ca.host).to receive(:key).and_return(key)
         | 
| 409 401 |  | 
| 410 | 
            -
                    @cert.content. | 
| 402 | 
            +
                    expect(@cert.content).to receive(:sign).with("real_key", digest)
         | 
| 411 403 | 
             
                    @ca.sign(@name)
         | 
| 412 404 | 
             
                  end
         | 
| 413 405 |  | 
| 414 406 | 
             
                  it "should save the resulting certificate" do
         | 
| 415 | 
            -
                    Puppet::SSL::Certificate.indirection. | 
| 407 | 
            +
                    allow(Puppet::SSL::Certificate.indirection).to receive(:save).with(@cert)
         | 
| 416 408 | 
             
                    @ca.sign(@name)
         | 
| 417 409 | 
             
                  end
         | 
| 418 410 |  | 
| 419 411 | 
             
                  it "should remove the host's certificate request" do
         | 
| 420 | 
            -
                    Puppet::SSL::CertificateRequest.indirection. | 
| 412 | 
            +
                    expect(Puppet::SSL::CertificateRequest.indirection).to receive(:destroy).with(@name)
         | 
| 421 413 |  | 
| 422 414 | 
             
                    @ca.sign(@name)
         | 
| 423 415 | 
             
                  end
         | 
| 424 416 |  | 
| 425 417 | 
             
                  it "should check the internal signing policies" do
         | 
| 426 | 
            -
                    @ca. | 
| 418 | 
            +
                    expect(@ca).to receive(:check_internal_signing_policies).and_return(true)
         | 
| 427 419 | 
             
                    @ca.sign(@name)
         | 
| 428 420 | 
             
                  end
         | 
| 429 421 | 
             
                end
         | 
| @@ -431,10 +423,10 @@ describe Puppet::SSL::CertificateAuthority do | |
| 431 423 | 
             
                context "#check_internal_signing_policies" do
         | 
| 432 424 | 
             
                  before do
         | 
| 433 425 | 
             
                    @serial = 10
         | 
| 434 | 
            -
                    @ca. | 
| 426 | 
            +
                    allow(@ca).to receive(:next_serial).and_return(@serial)
         | 
| 435 427 |  | 
| 436 | 
            -
                    Puppet::SSL::CertificateRequest.indirection. | 
| 437 | 
            -
                    @cert. | 
| 428 | 
            +
                    allow(Puppet::SSL::CertificateRequest.indirection).to receive(:find).with(@name).and_return(@request)
         | 
| 429 | 
            +
                    allow(@cert).to receive(:save)
         | 
| 438 430 | 
             
                  end
         | 
| 439 431 |  | 
| 440 432 | 
             
                  it "should reject CSRs whose CN doesn't match the name for which we're signing them" do
         | 
| @@ -489,7 +481,7 @@ describe Puppet::SSL::CertificateAuthority do | |
| 489 481 | 
             
                      it "should reject #{name.inspect}" do
         | 
| 490 482 | 
             
                        # We aren't even allowed to make objects with these names, so let's
         | 
| 491 483 | 
             
                        # stub that to simulate an invalid one coming from outside Puppet
         | 
| 492 | 
            -
                        Puppet::SSL::CertificateRequest. | 
| 484 | 
            +
                        allow(Puppet::SSL::CertificateRequest).to receive(:validate_certname)
         | 
| 493 485 | 
             
                        csr = Puppet::SSL::CertificateRequest.new(name)
         | 
| 494 486 | 
             
                        csr.generate(@signing_key)
         | 
| 495 487 |  | 
| @@ -507,7 +499,7 @@ describe Puppet::SSL::CertificateAuthority do | |
| 507 499 | 
             
                    exts = [{ 'oid' => '1.3.6.1.4.1.34380.1.1.1',
         | 
| 508 500 | 
             
                              'value' => '657e4780-4cf5-11e3-8f96-0800200c9a66'}]
         | 
| 509 501 |  | 
| 510 | 
            -
                    @request. | 
| 502 | 
            +
                    allow(@request).to receive(:request_extensions).and_return(exts)
         | 
| 511 503 |  | 
| 512 504 | 
             
                    expect {
         | 
| 513 505 | 
             
                      @ca.check_internal_signing_policies(@name, @request)
         | 
| @@ -518,7 +510,7 @@ describe Puppet::SSL::CertificateAuthority do | |
| 518 510 | 
             
                    exts = [{ 'oid' => 'pp_uuid',
         | 
| 519 511 | 
             
                              'value' => '657e4780-4cf5-11e3-8f96-0800200c9a66'}]
         | 
| 520 512 |  | 
| 521 | 
            -
                    @request. | 
| 513 | 
            +
                    allow(@request).to receive(:request_extensions).and_return(exts)
         | 
| 522 514 |  | 
| 523 515 | 
             
                    expect {
         | 
| 524 516 | 
             
                      @ca.check_internal_signing_policies(@name, @request)
         | 
| @@ -529,7 +521,7 @@ describe Puppet::SSL::CertificateAuthority do | |
| 529 521 | 
             
                    exts = [{ 'oid' => '1.3.6.1.4.1.34380.1.2.1',
         | 
| 530 522 | 
             
                              'value' => 'private extension'}]
         | 
| 531 523 |  | 
| 532 | 
            -
                    @request. | 
| 524 | 
            +
                    allow(@request).to receive(:request_extensions).and_return(exts)
         | 
| 533 525 |  | 
| 534 526 | 
             
                    expect {
         | 
| 535 527 | 
             
                      @ca.check_internal_signing_policies(@name, @request)
         | 
| @@ -538,9 +530,9 @@ describe Puppet::SSL::CertificateAuthority do | |
| 538 530 |  | 
| 539 531 |  | 
| 540 532 | 
             
                  it "should reject a critical extension that isn't on the whitelist" do
         | 
| 541 | 
            -
                    @request. | 
| 542 | 
            -
             | 
| 543 | 
            -
             | 
| 533 | 
            +
                    allow(@request).to receive(:request_extensions).and_return([{ "oid" => "banana",
         | 
| 534 | 
            +
                                                                                  "value" => "yumm",
         | 
| 535 | 
            +
                                                                                  "critical" => true }])
         | 
| 544 536 | 
             
                    expect { @ca.check_internal_signing_policies(@name, @request) }.to raise_error(
         | 
| 545 537 | 
             
                      Puppet::SSL::CertificateAuthority::CertificateSigningError,
         | 
| 546 538 | 
             
                      /request extensions that are not permitted/
         | 
| @@ -548,9 +540,9 @@ describe Puppet::SSL::CertificateAuthority do | |
| 548 540 | 
             
                  end
         | 
| 549 541 |  | 
| 550 542 | 
             
                  it "should reject a non-critical extension that isn't on the whitelist" do
         | 
| 551 | 
            -
                    @request. | 
| 552 | 
            -
             | 
| 553 | 
            -
             | 
| 543 | 
            +
                    allow(@request).to receive(:request_extensions).and_return([{ "oid" => "peach",
         | 
| 544 | 
            +
                                                                                  "value" => "meh",
         | 
| 545 | 
            +
                                                                                  "critical" => false }])
         | 
| 554 546 | 
             
                    expect { @ca.check_internal_signing_policies(@name, @request) }.to raise_error(
         | 
| 555 547 | 
             
                      Puppet::SSL::CertificateAuthority::CertificateSigningError,
         | 
| 556 548 | 
             
                      /request extensions that are not permitted/
         | 
| @@ -558,12 +550,12 @@ describe Puppet::SSL::CertificateAuthority do | |
| 558 550 | 
             
                  end
         | 
| 559 551 |  | 
| 560 552 | 
             
                  it "should reject non-whitelist extensions even if a valid extension is present" do
         | 
| 561 | 
            -
                    @request. | 
| 562 | 
            -
             | 
| 563 | 
            -
             | 
| 564 | 
            -
             | 
| 565 | 
            -
             | 
| 566 | 
            -
             | 
| 553 | 
            +
                    allow(@request).to receive(:request_extensions).and_return([{ "oid" => "peach",
         | 
| 554 | 
            +
                                                                                  "value" => "meh",
         | 
| 555 | 
            +
                                                                                  "critical" => false },
         | 
| 556 | 
            +
                                                                                { "oid" => "subjectAltName",
         | 
| 557 | 
            +
                                                                                  "value" => "DNS:foo",
         | 
| 558 | 
            +
                                                                                  "critical" => true }])
         | 
| 567 559 | 
             
                    expect { @ca.check_internal_signing_policies(@name, @request) }.to raise_error(
         | 
| 568 560 | 
             
                      Puppet::SSL::CertificateAuthority::CertificateSigningError,
         | 
| 569 561 | 
             
                      /request extensions that are not permitted/
         | 
| @@ -571,7 +563,7 @@ describe Puppet::SSL::CertificateAuthority do | |
| 571 563 | 
             
                  end
         | 
| 572 564 |  | 
| 573 565 | 
             
                  it "should reject a subjectAltName for a non-DNS value" do
         | 
| 574 | 
            -
                    @request. | 
| 566 | 
            +
                    allow(@request).to receive(:subject_alt_names).and_return(['DNS:foo', 'email:bar@example.com'])
         | 
| 575 567 | 
             
                    expect {
         | 
| 576 568 | 
             
                      @ca.check_internal_signing_policies(@name, @request, {allow_dns_alt_names: true})
         | 
| 577 569 | 
             
                    }.to raise_error(
         | 
| @@ -581,7 +573,7 @@ describe Puppet::SSL::CertificateAuthority do | |
| 581 573 | 
             
                  end
         | 
| 582 574 |  | 
| 583 575 | 
             
                  it "should allow a subjectAltName if subject matches CA's certname" do
         | 
| 584 | 
            -
                    @request. | 
| 576 | 
            +
                    allow(@request).to receive(:subject_alt_names).and_return(['DNS:foo'])
         | 
| 585 577 | 
             
                    Puppet[:certname] = @name
         | 
| 586 578 |  | 
| 587 579 | 
             
                    expect {
         | 
| @@ -590,8 +582,8 @@ describe Puppet::SSL::CertificateAuthority do | |
| 590 582 | 
             
                  end
         | 
| 591 583 |  | 
| 592 584 | 
             
                  it "should reject a wildcard subject" do
         | 
| 593 | 
            -
                    @request.content. | 
| 594 | 
            -
                       | 
| 585 | 
            +
                    allow(@request.content).to receive(:subject).
         | 
| 586 | 
            +
                      and_return(OpenSSL::X509::Name.new([["CN", "*.local"]]))
         | 
| 595 587 |  | 
| 596 588 | 
             
                    expect { @ca.check_internal_signing_policies('*.local', @request) }.to raise_error(
         | 
| 597 589 | 
             
                      Puppet::SSL::CertificateAuthority::CertificateSigningError,
         | 
| @@ -600,7 +592,7 @@ describe Puppet::SSL::CertificateAuthority do | |
| 600 592 | 
             
                  end
         | 
| 601 593 |  | 
| 602 594 | 
             
                  it "should reject a wildcard subjectAltName" do
         | 
| 603 | 
            -
                    @request. | 
| 595 | 
            +
                    allow(@request).to receive(:subject_alt_names).and_return(['DNS:foo', 'DNS:*.bar'])
         | 
| 604 596 | 
             
                    expect {
         | 
| 605 597 | 
             
                      @ca.check_internal_signing_policies(@name, @request, {allow_dns_alt_names: true})
         | 
| 606 598 | 
             
                    }.to raise_error(
         | 
| @@ -612,28 +604,28 @@ describe Puppet::SSL::CertificateAuthority do | |
| 612 604 |  | 
| 613 605 | 
             
                it "should create a certificate instance with the content set to the newly signed x509 certificate" do
         | 
| 614 606 | 
             
                  @serial = 10
         | 
| 615 | 
            -
                  @ca. | 
| 607 | 
            +
                  allow(@ca).to receive(:next_serial).and_return(@serial)
         | 
| 616 608 |  | 
| 617 | 
            -
                  Puppet::SSL::CertificateRequest.indirection. | 
| 618 | 
            -
                  Puppet::SSL::Certificate.indirection. | 
| 619 | 
            -
                  Puppet::SSL::Certificate. | 
| 609 | 
            +
                  allow(Puppet::SSL::CertificateRequest.indirection).to receive(:find).with(@name).and_return(@request)
         | 
| 610 | 
            +
                  allow(Puppet::SSL::Certificate.indirection).to receive(:save)
         | 
| 611 | 
            +
                  expect(Puppet::SSL::Certificate).to receive(:new).with(@name).and_return(@cert)
         | 
| 620 612 |  | 
| 621 613 | 
             
                  @ca.sign(@name)
         | 
| 622 614 | 
             
                end
         | 
| 623 615 |  | 
| 624 616 | 
             
                it "should return the certificate instance" do
         | 
| 625 | 
            -
                  @ca. | 
| 626 | 
            -
                  Puppet::SSL::CertificateRequest.indirection. | 
| 627 | 
            -
                  Puppet::SSL::Certificate.indirection. | 
| 617 | 
            +
                  allow(@ca).to receive(:next_serial).and_return(@serial)
         | 
| 618 | 
            +
                  allow(Puppet::SSL::CertificateRequest.indirection).to receive(:find).with(@name).and_return(@request)
         | 
| 619 | 
            +
                  allow(Puppet::SSL::Certificate.indirection).to receive(:save)
         | 
| 628 620 | 
             
                  expect(@ca.sign(@name)).to equal(@cert)
         | 
| 629 621 | 
             
                end
         | 
| 630 622 |  | 
| 631 623 | 
             
                it "should add the certificate to its inventory" do
         | 
| 632 | 
            -
                  @ca. | 
| 633 | 
            -
                  @inventory. | 
| 624 | 
            +
                  allow(@ca).to receive(:next_serial).and_return(@serial)
         | 
| 625 | 
            +
                  expect(@inventory).to receive(:add).with(@cert)
         | 
| 634 626 |  | 
| 635 | 
            -
                  Puppet::SSL::CertificateRequest.indirection. | 
| 636 | 
            -
                  Puppet::SSL::Certificate.indirection. | 
| 627 | 
            +
                  allow(Puppet::SSL::CertificateRequest.indirection).to receive(:find).with(@name).and_return(@request)
         | 
| 628 | 
            +
                  allow(Puppet::SSL::Certificate.indirection).to receive(:save)
         | 
| 637 629 | 
             
                  @ca.sign(@name)
         | 
| 638 630 | 
             
                end
         | 
| 639 631 |  | 
| @@ -650,7 +642,7 @@ describe Puppet::SSL::CertificateAuthority do | |
| 650 642 | 
             
                    it "should do nothing if autosign is disabled" do
         | 
| 651 643 | 
             
                      Puppet[:autosign] = false
         | 
| 652 644 |  | 
| 653 | 
            -
                      @ca. | 
| 645 | 
            +
                      expect(@ca).not_to receive(:sign)
         | 
| 654 646 | 
             
                      @ca.autosign(csr)
         | 
| 655 647 | 
             
                    end
         | 
| 656 648 |  | 
| @@ -658,13 +650,13 @@ describe Puppet::SSL::CertificateAuthority do | |
| 658 650 | 
             
                      Puppet[:autosign] = autosign
         | 
| 659 651 | 
             
                      non_existent_file = Puppet::FileSystem::MemoryFile.a_missing_file(autosign)
         | 
| 660 652 | 
             
                      Puppet::FileSystem.overlay(non_existent_file) do
         | 
| 661 | 
            -
                        @ca. | 
| 653 | 
            +
                        expect(@ca).not_to receive(:sign)
         | 
| 662 654 | 
             
                        @ca.autosign(csr)
         | 
| 663 655 | 
             
                      end
         | 
| 664 656 | 
             
                    end
         | 
| 665 657 |  | 
| 666 658 | 
             
                    describe "and autosign is enabled and the autosign.conf file exists" do
         | 
| 667 | 
            -
                      let(:store) {  | 
| 659 | 
            +
                      let(:store) { double('store', :allow => nil, :allowed? => false) }
         | 
| 668 660 |  | 
| 669 661 | 
             
                      before do
         | 
| 670 662 | 
             
                        Puppet[:autosign] = autosign
         | 
| @@ -673,10 +665,10 @@ describe Puppet::SSL::CertificateAuthority do | |
| 673 665 | 
             
                      describe "when creating the AuthStore instance to verify autosigning" do
         | 
| 674 666 | 
             
                        it "should create an AuthStore with each line in the configuration file allowed to be autosigned" do
         | 
| 675 667 | 
             
                          Puppet::FileSystem.overlay(Puppet::FileSystem::MemoryFile.a_regular_file_containing(autosign, "one\ntwo\n")) do
         | 
| 676 | 
            -
                            Puppet::Network::AuthStore. | 
| 668 | 
            +
                            allow(Puppet::Network::AuthStore).to receive(:new).and_return(store)
         | 
| 677 669 |  | 
| 678 | 
            -
                            store. | 
| 679 | 
            -
                            store. | 
| 670 | 
            +
                            expect(store).to receive(:allow).with("one")
         | 
| 671 | 
            +
                            expect(store).to receive(:allow).with("two")
         | 
| 680 672 |  | 
| 681 673 | 
             
                            @ca.autosign(csr)
         | 
| 682 674 | 
             
                          end
         | 
| @@ -684,7 +676,7 @@ describe Puppet::SSL::CertificateAuthority do | |
| 684 676 |  | 
| 685 677 | 
             
                        it "should reparse the autosign configuration on each call" do
         | 
| 686 678 | 
             
                          Puppet::FileSystem.overlay(Puppet::FileSystem::MemoryFile.a_regular_file_containing(autosign, "one")) do
         | 
| 687 | 
            -
                            Puppet::Network::AuthStore. | 
| 679 | 
            +
                            allow(Puppet::Network::AuthStore).to receive(:new).twice.and_return(store)
         | 
| 688 680 |  | 
| 689 681 | 
             
                            @ca.autosign(csr)
         | 
| 690 682 | 
             
                            @ca.autosign(csr)
         | 
| @@ -693,9 +685,9 @@ describe Puppet::SSL::CertificateAuthority do | |
| 693 685 |  | 
| 694 686 | 
             
                        it "should ignore comments" do
         | 
| 695 687 | 
             
                          Puppet::FileSystem.overlay(Puppet::FileSystem::MemoryFile.a_regular_file_containing(autosign, "one\n#two\n")) do
         | 
| 696 | 
            -
                            Puppet::Network::AuthStore. | 
| 688 | 
            +
                            allow(Puppet::Network::AuthStore).to receive(:new).and_return(store)
         | 
| 697 689 |  | 
| 698 | 
            -
                            store. | 
| 690 | 
            +
                            expect(store).to receive(:allow).with("one")
         | 
| 699 691 |  | 
| 700 692 | 
             
                            @ca.autosign(csr)
         | 
| 701 693 | 
             
                          end
         | 
| @@ -703,9 +695,9 @@ describe Puppet::SSL::CertificateAuthority do | |
| 703 695 |  | 
| 704 696 | 
             
                        it "should ignore blank lines" do
         | 
| 705 697 | 
             
                          Puppet::FileSystem.overlay(Puppet::FileSystem::MemoryFile.a_regular_file_containing(autosign, "one\n\n")) do
         | 
| 706 | 
            -
                            Puppet::Network::AuthStore. | 
| 698 | 
            +
                            allow(Puppet::Network::AuthStore).to receive(:new).and_return(store)
         | 
| 707 699 |  | 
| 708 | 
            -
                            store. | 
| 700 | 
            +
                            expect(store).to receive(:allow).with("one")
         | 
| 709 701 | 
             
                            @ca.autosign(csr)
         | 
| 710 702 | 
             
                          end
         | 
| 711 703 | 
             
                        end
         | 
| @@ -715,29 +707,29 @@ describe Puppet::SSL::CertificateAuthority do | |
| 715 707 |  | 
| 716 708 | 
             
                  describe "using the autosign command setting" do
         | 
| 717 709 | 
             
                    let(:cmd) { File.expand_path('/autosign_cmd') }
         | 
| 718 | 
            -
                    let(:autosign_cmd) {  | 
| 710 | 
            +
                    let(:autosign_cmd) { double('autosign_command') }
         | 
| 719 711 | 
             
                    let(:autosign_executable) { Puppet::FileSystem::MemoryFile.an_executable(cmd) }
         | 
| 720 712 |  | 
| 721 713 | 
             
                    before do
         | 
| 722 714 | 
             
                      Puppet[:autosign] = cmd
         | 
| 723 715 |  | 
| 724 | 
            -
                      Puppet::SSL::CertificateAuthority::AutosignCommand. | 
| 716 | 
            +
                      allow(Puppet::SSL::CertificateAuthority::AutosignCommand).to receive(:new).and_return(autosign_cmd)
         | 
| 725 717 | 
             
                    end
         | 
| 726 718 |  | 
| 727 719 | 
             
                    it "autosigns the CSR if the autosign command returned true" do
         | 
| 728 720 | 
             
                      Puppet::FileSystem.overlay(autosign_executable) do
         | 
| 729 | 
            -
                        autosign_cmd. | 
| 721 | 
            +
                        expect(autosign_cmd).to receive(:allowed?).with(csr).and_return(true)
         | 
| 730 722 |  | 
| 731 | 
            -
                        @ca. | 
| 723 | 
            +
                        expect(@ca).to receive(:sign).with('host')
         | 
| 732 724 | 
             
                        @ca.autosign(csr)
         | 
| 733 725 | 
             
                      end
         | 
| 734 726 | 
             
                    end
         | 
| 735 727 |  | 
| 736 728 | 
             
                    it "doesn't autosign the CSR if the autosign_command returned false" do
         | 
| 737 729 | 
             
                      Puppet::FileSystem.overlay(autosign_executable) do
         | 
| 738 | 
            -
                        autosign_cmd. | 
| 730 | 
            +
                        expect(autosign_cmd).to receive(:allowed?).with(csr).and_return(false)
         | 
| 739 731 |  | 
| 740 | 
            -
                        @ca. | 
| 732 | 
            +
                        expect(@ca).not_to receive(:sign)
         | 
| 741 733 | 
             
                        @ca.autosign(csr)
         | 
| 742 734 | 
             
                      end
         | 
| 743 735 | 
             
                    end
         | 
| @@ -747,30 +739,30 @@ describe Puppet::SSL::CertificateAuthority do | |
| 747 739 |  | 
| 748 740 | 
             
              describe "when managing certificate clients" do
         | 
| 749 741 | 
             
                before do
         | 
| 750 | 
            -
                  Puppet.settings. | 
| 742 | 
            +
                  allow(Puppet.settings).to receive(:use)
         | 
| 751 743 |  | 
| 752 | 
            -
                  Puppet::SSL::CertificateAuthority. | 
| 744 | 
            +
                  allow_any_instance_of(Puppet::SSL::CertificateAuthority).to receive(:password?).and_return(true)
         | 
| 753 745 |  | 
| 754 746 | 
             
                  stub_ca_host
         | 
| 755 747 |  | 
| 756 | 
            -
                  Puppet::SSL::Host. | 
| 757 | 
            -
                  Puppet::SSL::CertificateAuthority. | 
| 748 | 
            +
                  expect(Puppet::SSL::Host).to receive(:new).and_return(@host)
         | 
| 749 | 
            +
                  allow_any_instance_of(Puppet::SSL::CertificateAuthority).to receive(:host).and_return(@host)
         | 
| 758 750 |  | 
| 759 | 
            -
                  @cacert =  | 
| 760 | 
            -
                  @cacert. | 
| 751 | 
            +
                  @cacert = double('certificate')
         | 
| 752 | 
            +
                  allow(@cacert).to receive(:content).and_return("cacertificate")
         | 
| 761 753 | 
             
                  @ca = Puppet::SSL::CertificateAuthority.new
         | 
| 762 754 | 
             
                end
         | 
| 763 755 |  | 
| 764 756 | 
             
                it "should be able to list waiting certificate requests" do
         | 
| 765 | 
            -
                  req1 =  | 
| 766 | 
            -
                  req2 =  | 
| 767 | 
            -
                  Puppet::SSL::CertificateRequest.indirection. | 
| 757 | 
            +
                  req1 = double('req1', :name => "one")
         | 
| 758 | 
            +
                  req2 = double('req2', :name => "two")
         | 
| 759 | 
            +
                  expect(Puppet::SSL::CertificateRequest.indirection).to receive(:search).with("*").and_return([req1, req2])
         | 
| 768 760 |  | 
| 769 761 | 
             
                  expect(@ca.waiting?).to eq(%w{one two})
         | 
| 770 762 | 
             
                end
         | 
| 771 763 |  | 
| 772 764 | 
             
                it "should delegate removing hosts to the Host class" do
         | 
| 773 | 
            -
                  Puppet::SSL::Host. | 
| 765 | 
            +
                  expect(Puppet::SSL::Host).to receive(:destroy).with("myhost")
         | 
| 774 766 |  | 
| 775 767 | 
             
                  @ca.destroy("myhost")
         | 
| 776 768 | 
             
                end
         | 
| @@ -780,170 +772,171 @@ describe Puppet::SSL::CertificateAuthority do | |
| 780 772 | 
             
                end
         | 
| 781 773 |  | 
| 782 774 | 
             
                it "should list certificates as the sorted list of all existing signed certificates" do
         | 
| 783 | 
            -
                  cert1 =  | 
| 784 | 
            -
                  cert2 =  | 
| 785 | 
            -
                  Puppet::SSL::Certificate.indirection. | 
| 775 | 
            +
                  cert1 = double('cert1', :name => "cert1")
         | 
| 776 | 
            +
                  cert2 = double('cert2', :name => "cert2")
         | 
| 777 | 
            +
                  expect(Puppet::SSL::Certificate.indirection).to receive(:search).with("*").and_return([cert1, cert2])
         | 
| 786 778 | 
             
                  expect(@ca.list).to eq(%w{cert1 cert2})
         | 
| 787 779 | 
             
                end
         | 
| 788 780 |  | 
| 789 781 | 
             
                it "should list the full certificates" do
         | 
| 790 | 
            -
                  cert1 =  | 
| 791 | 
            -
                  cert2 =  | 
| 792 | 
            -
                  Puppet::SSL::Certificate.indirection. | 
| 782 | 
            +
                  cert1 = double('cert1', :name => "cert1")
         | 
| 783 | 
            +
                  cert2 = double('cert2', :name => "cert2")
         | 
| 784 | 
            +
                  expect(Puppet::SSL::Certificate.indirection).to receive(:search).with("*").and_return([cert1, cert2])
         | 
| 793 785 | 
             
                  expect(@ca.list_certificates).to eq([cert1, cert2])
         | 
| 794 786 | 
             
                end
         | 
| 795 787 |  | 
| 796 788 | 
             
                it "should print a deprecation when using #list_certificates" do
         | 
| 797 | 
            -
                  Puppet::SSL::Certificate.indirection. | 
| 798 | 
            -
                  Puppet. | 
| 789 | 
            +
                  allow(Puppet::SSL::Certificate.indirection).to receive(:search).with("*").and_return([:foo, :bar])
         | 
| 790 | 
            +
                  expect(Puppet).to receive(:deprecation_warning).with(/list_certificates is deprecated/)
         | 
| 799 791 | 
             
                  @ca.list_certificates
         | 
| 800 792 | 
             
                end
         | 
| 801 793 |  | 
| 802 794 | 
             
                describe "and printing certificates" do
         | 
| 803 795 | 
             
                  it "should return nil if the certificate cannot be found" do
         | 
| 804 | 
            -
                    Puppet::SSL::Certificate.indirection. | 
| 796 | 
            +
                    expect(Puppet::SSL::Certificate.indirection).to receive(:find).with("myhost").and_return(nil)
         | 
| 805 797 | 
             
                    expect(@ca.print("myhost")).to be_nil
         | 
| 806 798 | 
             
                  end
         | 
| 807 799 |  | 
| 808 800 | 
             
                  it "should print certificates by calling :to_text on the host's certificate" do
         | 
| 809 | 
            -
                    cert1 =  | 
| 810 | 
            -
                    Puppet::SSL::Certificate.indirection. | 
| 801 | 
            +
                    cert1 = double('cert1', :name => "cert1", :to_text => "mytext")
         | 
| 802 | 
            +
                    expect(Puppet::SSL::Certificate.indirection).to receive(:find).with("myhost").and_return(cert1)
         | 
| 811 803 | 
             
                    expect(@ca.print("myhost")).to eq("mytext")
         | 
| 812 804 | 
             
                  end
         | 
| 813 805 | 
             
                end
         | 
| 814 806 |  | 
| 815 807 | 
             
                describe "and fingerprinting certificates" do
         | 
| 816 808 | 
             
                  before :each do
         | 
| 817 | 
            -
                    @cert =  | 
| 818 | 
            -
                    Puppet::SSL::Certificate.indirection. | 
| 819 | 
            -
                    Puppet::SSL::CertificateRequest.indirection. | 
| 809 | 
            +
                    @cert = double('cert', :name => "cert", :fingerprint => "DIGEST")
         | 
| 810 | 
            +
                    allow(Puppet::SSL::Certificate.indirection).to receive(:find).with("myhost").and_return(@cert)
         | 
| 811 | 
            +
                    allow(Puppet::SSL::CertificateRequest.indirection).to receive(:find).with("myhost")
         | 
| 820 812 | 
             
                  end
         | 
| 821 813 |  | 
| 822 814 | 
             
                  it "should raise an error if the certificate or CSR cannot be found" do
         | 
| 823 | 
            -
                    Puppet::SSL::Certificate.indirection. | 
| 824 | 
            -
                    Puppet::SSL::CertificateRequest.indirection. | 
| 815 | 
            +
                    expect(Puppet::SSL::Certificate.indirection).to receive(:find).with("myhost").and_return(nil)
         | 
| 816 | 
            +
                    expect(Puppet::SSL::CertificateRequest.indirection).to receive(:find).with("myhost").and_return(nil)
         | 
| 825 817 | 
             
                    expect { @ca.fingerprint("myhost") }.to raise_error(ArgumentError, /Could not find a certificate/)
         | 
| 826 818 | 
             
                  end
         | 
| 827 819 |  | 
| 828 820 | 
             
                  it "should try to find a CSR if no certificate can be found" do
         | 
| 829 | 
            -
                    Puppet::SSL::Certificate.indirection. | 
| 830 | 
            -
                    Puppet::SSL::CertificateRequest.indirection. | 
| 831 | 
            -
                    @cert. | 
| 821 | 
            +
                    expect(Puppet::SSL::Certificate.indirection).to receive(:find).with("myhost").and_return(nil)
         | 
| 822 | 
            +
                    expect(Puppet::SSL::CertificateRequest.indirection).to receive(:find).with("myhost").and_return(@cert)
         | 
| 823 | 
            +
                    expect(@cert).to receive(:fingerprint)
         | 
| 832 824 | 
             
                    @ca.fingerprint("myhost")
         | 
| 833 825 | 
             
                  end
         | 
| 834 826 |  | 
| 835 827 | 
             
                  it "should delegate to the certificate fingerprinting" do
         | 
| 836 | 
            -
                    @cert. | 
| 828 | 
            +
                    expect(@cert).to receive(:fingerprint)
         | 
| 837 829 | 
             
                    @ca.fingerprint("myhost")
         | 
| 838 830 | 
             
                  end
         | 
| 839 831 |  | 
| 840 832 | 
             
                  it "should propagate the digest algorithm to the certificate fingerprinting system" do
         | 
| 841 | 
            -
                    @cert. | 
| 833 | 
            +
                    expect(@cert).to receive(:fingerprint).with(:digest)
         | 
| 842 834 | 
             
                    @ca.fingerprint("myhost", :digest)
         | 
| 843 835 | 
             
                  end
         | 
| 844 836 | 
             
                end
         | 
| 845 837 |  | 
| 846 838 | 
             
                describe "and verifying certificates" do
         | 
| 847 839 | 
             
                  let(:cacert) { File.expand_path("/ca/cert") }
         | 
| 840 | 
            +
             | 
| 848 841 | 
             
                  before do
         | 
| 849 | 
            -
                    @store =  | 
| 842 | 
            +
                    @store = double('store', :verify => true, :add_file => nil, :purpose= => nil, :add_crl => true, :flags= => nil)
         | 
| 850 843 |  | 
| 851 | 
            -
                    OpenSSL::X509::Store. | 
| 844 | 
            +
                    allow(OpenSSL::X509::Store).to receive(:new).and_return(@store)
         | 
| 852 845 |  | 
| 853 | 
            -
                    @cert =  | 
| 854 | 
            -
                    Puppet::SSL::Certificate.indirection. | 
| 846 | 
            +
                    @cert = double('cert', :content => "mycert")
         | 
| 847 | 
            +
                    allow(Puppet::SSL::Certificate.indirection).to receive(:find).and_return(@cert)
         | 
| 855 848 |  | 
| 856 | 
            -
                    @crl =  | 
| 849 | 
            +
                    @crl = double('crl', :content => "mycrl")
         | 
| 857 850 |  | 
| 858 | 
            -
                    @ca. | 
| 851 | 
            +
                    allow(@ca).to receive(:crl).and_return(@crl)
         | 
| 859 852 | 
             
                  end
         | 
| 860 853 |  | 
| 861 854 | 
             
                  it "should fail if the host's certificate cannot be found" do
         | 
| 862 | 
            -
                    Puppet::SSL::Certificate.indirection. | 
| 855 | 
            +
                    expect(Puppet::SSL::Certificate.indirection).to receive(:find).with("me").and_return(nil)
         | 
| 863 856 |  | 
| 864 857 | 
             
                    expect { @ca.verify("me") }.to raise_error(ArgumentError)
         | 
| 865 858 | 
             
                  end
         | 
| 866 859 |  | 
| 867 860 | 
             
                  it "should create an SSL Store to verify" do
         | 
| 868 | 
            -
                    OpenSSL::X509::Store. | 
| 861 | 
            +
                    expect(OpenSSL::X509::Store).to receive(:new).and_return(@store)
         | 
| 869 862 |  | 
| 870 863 | 
             
                    @ca.verify("me")
         | 
| 871 864 | 
             
                  end
         | 
| 872 865 |  | 
| 873 866 | 
             
                  it "should add the CA Certificate to the store" do
         | 
| 874 867 | 
             
                    Puppet[:cacert] = cacert
         | 
| 875 | 
            -
                    @store. | 
| 868 | 
            +
                    expect(@store).to receive(:add_file).with(cacert)
         | 
| 876 869 |  | 
| 877 870 | 
             
                    @ca.verify("me")
         | 
| 878 871 | 
             
                  end
         | 
| 879 872 |  | 
| 880 873 | 
             
                  it "should add the CRL to the store if the crl is enabled" do
         | 
| 881 | 
            -
                    @store. | 
| 874 | 
            +
                    expect(@store).to receive(:add_crl).with("mycrl")
         | 
| 882 875 |  | 
| 883 876 | 
             
                    @ca.verify("me")
         | 
| 884 877 | 
             
                  end
         | 
| 885 878 |  | 
| 886 879 | 
             
                  it "should set the store purpose to OpenSSL::X509::PURPOSE_SSL_CLIENT" do
         | 
| 887 880 | 
             
                    Puppet[:cacert] = cacert
         | 
| 888 | 
            -
                    @store. | 
| 881 | 
            +
                    expect(@store).to receive(:add_file).with(cacert)
         | 
| 889 882 |  | 
| 890 883 | 
             
                    @ca.verify("me")
         | 
| 891 884 | 
             
                  end
         | 
| 892 885 |  | 
| 893 886 | 
             
                  it "should set the store flags to check the crl" do
         | 
| 894 | 
            -
                    @store. | 
| 887 | 
            +
                    expect(@store).to receive(:flags=).with(OpenSSL::X509::V_FLAG_CRL_CHECK_ALL | OpenSSL::X509::V_FLAG_CRL_CHECK)
         | 
| 895 888 |  | 
| 896 889 | 
             
                    @ca.verify("me")
         | 
| 897 890 | 
             
                  end
         | 
| 898 891 |  | 
| 899 892 | 
             
                  it "should use the store to verify the certificate" do
         | 
| 900 | 
            -
                    @cert. | 
| 893 | 
            +
                    expect(@cert).to receive(:content).and_return("mycert")
         | 
| 901 894 |  | 
| 902 | 
            -
                    @store. | 
| 895 | 
            +
                    expect(@store).to receive(:verify).with("mycert").and_return(true)
         | 
| 903 896 |  | 
| 904 897 | 
             
                    @ca.verify("me")
         | 
| 905 898 | 
             
                  end
         | 
| 906 899 |  | 
| 907 900 | 
             
                  it "should fail if the verification returns false" do
         | 
| 908 | 
            -
                    @cert. | 
| 901 | 
            +
                    expect(@cert).to receive(:content).and_return("mycert")
         | 
| 909 902 |  | 
| 910 | 
            -
                    @store. | 
| 911 | 
            -
                    @store. | 
| 912 | 
            -
                    @store. | 
| 903 | 
            +
                    expect(@store).to receive(:verify).with("mycert").and_return(false)
         | 
| 904 | 
            +
                    expect(@store).to receive(:error)
         | 
| 905 | 
            +
                    expect(@store).to receive(:error_string)
         | 
| 913 906 |  | 
| 914 907 | 
             
                    expect { @ca.verify("me") }.to raise_error(Puppet::SSL::CertificateAuthority::CertificateVerificationError)
         | 
| 915 908 | 
             
                  end
         | 
| 916 909 |  | 
| 917 910 | 
             
                  describe "certificate_is_alive?" do
         | 
| 918 911 | 
             
                    it "should return false if verification fails" do
         | 
| 919 | 
            -
                      @cert. | 
| 912 | 
            +
                      expect(@cert).to receive(:content).and_return("mycert")
         | 
| 920 913 |  | 
| 921 | 
            -
                      @store. | 
| 914 | 
            +
                      expect(@store).to receive(:verify).with("mycert").and_return(false)
         | 
| 922 915 |  | 
| 923 916 | 
             
                      expect(@ca.certificate_is_alive?(@cert)).to be_falsey
         | 
| 924 917 | 
             
                    end
         | 
| 925 918 |  | 
| 926 919 | 
             
                    it "should return true if verification passes" do
         | 
| 927 | 
            -
                      @cert. | 
| 920 | 
            +
                      expect(@cert).to receive(:content).and_return("mycert")
         | 
| 928 921 |  | 
| 929 | 
            -
                      @store. | 
| 922 | 
            +
                      expect(@store).to receive(:verify).with("mycert").and_return(true)
         | 
| 930 923 |  | 
| 931 924 | 
             
                      expect(@ca.certificate_is_alive?(@cert)).to be_truthy
         | 
| 932 925 | 
             
                    end
         | 
| 933 926 |  | 
| 934 927 | 
             
                    it "should use a cached instance of the x509 store" do
         | 
| 935 | 
            -
                      OpenSSL::X509::Store. | 
| 928 | 
            +
                      allow(OpenSSL::X509::Store).to receive(:new).and_return(@store).once
         | 
| 936 929 |  | 
| 937 | 
            -
                      @cert. | 
| 930 | 
            +
                      expect(@cert).to receive(:content).and_return("mycert")
         | 
| 938 931 |  | 
| 939 | 
            -
                      @store. | 
| 932 | 
            +
                      expect(@store).to receive(:verify).with("mycert").and_return(true)
         | 
| 940 933 |  | 
| 941 934 | 
             
                      @ca.certificate_is_alive?(@cert)
         | 
| 942 935 | 
             
                      @ca.certificate_is_alive?(@cert)
         | 
| 943 936 | 
             
                    end
         | 
| 944 937 |  | 
| 945 938 | 
             
                    it "should be deprecated" do
         | 
| 946 | 
            -
                      Puppet. | 
| 939 | 
            +
                      expect(Puppet).to receive(:deprecation_warning).with(/certificate_is_alive\? is deprecated/)
         | 
| 947 940 | 
             
                      @ca.certificate_is_alive?(@cert)
         | 
| 948 941 | 
             
                    end
         | 
| 949 942 | 
             
                  end
         | 
| @@ -951,78 +944,77 @@ describe Puppet::SSL::CertificateAuthority do | |
| 951 944 |  | 
| 952 945 | 
             
                describe "and revoking certificates" do
         | 
| 953 946 | 
             
                  before do
         | 
| 954 | 
            -
                    @crl =  | 
| 955 | 
            -
                    @ca. | 
| 956 | 
            -
             | 
| 957 | 
            -
                    @ca.stubs(:next_serial).returns 10
         | 
| 947 | 
            +
                    @crl = double('crl')
         | 
| 948 | 
            +
                    allow(@ca).to receive(:crl).and_return(@crl)
         | 
| 958 949 |  | 
| 959 | 
            -
                    @ | 
| 960 | 
            -
                    @cert = stub 'cert', :content => @real_cert
         | 
| 961 | 
            -
                    Puppet::SSL::Certificate.indirection.stubs(:find).returns @cert
         | 
| 950 | 
            +
                    allow(@ca).to receive(:next_serial).and_return(10)
         | 
| 962 951 |  | 
| 952 | 
            +
                    @real_cert = double('real_cert', :serial => 15)
         | 
| 953 | 
            +
                    @cert = double('cert', :content => @real_cert)
         | 
| 954 | 
            +
                    allow(Puppet::SSL::Certificate.indirection).to receive(:find).and_return(@cert)
         | 
| 963 955 | 
             
                  end
         | 
| 964 956 |  | 
| 965 957 | 
             
                  it "should fail if the certificate revocation list is disabled" do
         | 
| 966 | 
            -
                    @ca. | 
| 958 | 
            +
                    allow(@ca).to receive(:crl).and_return(false)
         | 
| 967 959 |  | 
| 968 960 | 
             
                    expect { @ca.revoke('ca_testing') }.to raise_error(ArgumentError)
         | 
| 969 961 |  | 
| 970 962 | 
             
                  end
         | 
| 971 963 |  | 
| 972 964 | 
             
                  it "should delegate the revocation to its CRL" do
         | 
| 973 | 
            -
                    @ca.crl. | 
| 965 | 
            +
                    expect(@ca.crl).to receive(:revoke)
         | 
| 974 966 |  | 
| 975 967 | 
             
                    @ca.revoke('host')
         | 
| 976 968 | 
             
                  end
         | 
| 977 969 |  | 
| 978 970 | 
             
                  it "should get the serial number from the local certificate if it exists" do
         | 
| 979 | 
            -
                    @ca.crl. | 
| 971 | 
            +
                    expect(@ca.crl).to receive(:revoke).with(15, anything)
         | 
| 980 972 |  | 
| 981 | 
            -
                    Puppet::SSL::Certificate.indirection. | 
| 973 | 
            +
                    expect(Puppet::SSL::Certificate.indirection).to receive(:find).with("host").and_return(@cert)
         | 
| 982 974 |  | 
| 983 975 | 
             
                    @ca.revoke('host')
         | 
| 984 976 | 
             
                  end
         | 
| 985 977 |  | 
| 986 978 | 
             
                  it "should get the serial number from inventory if no local certificate exists" do
         | 
| 987 | 
            -
                    Puppet::SSL::Certificate.indirection. | 
| 979 | 
            +
                    expect(Puppet::SSL::Certificate.indirection).to receive(:find).with("host").and_return(nil)
         | 
| 988 980 |  | 
| 989 | 
            -
                    @ca.inventory. | 
| 981 | 
            +
                    expect(@ca.inventory).to receive(:serials).with("host").and_return([16])
         | 
| 990 982 |  | 
| 991 | 
            -
                    @ca.crl. | 
| 983 | 
            +
                    expect(@ca.crl).to receive(:revoke).with(16, anything)
         | 
| 992 984 | 
             
                    @ca.revoke('host')
         | 
| 993 985 | 
             
                  end
         | 
| 994 986 |  | 
| 995 987 | 
             
                  it "should revoke all serials matching a name" do
         | 
| 996 | 
            -
                    Puppet::SSL::Certificate.indirection. | 
| 988 | 
            +
                    expect(Puppet::SSL::Certificate.indirection).to receive(:find).with("host").and_return(nil)
         | 
| 997 989 |  | 
| 998 | 
            -
                    @ca.inventory. | 
| 990 | 
            +
                    expect(@ca.inventory).to receive(:serials).with("host").and_return([16, 20, 25])
         | 
| 999 991 |  | 
| 1000 | 
            -
                    @ca.crl. | 
| 1001 | 
            -
                    @ca.crl. | 
| 1002 | 
            -
                    @ca.crl. | 
| 992 | 
            +
                    expect(@ca.crl).to receive(:revoke).with(16, anything)
         | 
| 993 | 
            +
                    expect(@ca.crl).to receive(:revoke).with(20, anything)
         | 
| 994 | 
            +
                    expect(@ca.crl).to receive(:revoke).with(25, anything)
         | 
| 1003 995 | 
             
                    @ca.revoke('host')
         | 
| 1004 996 | 
             
                  end
         | 
| 1005 997 |  | 
| 1006 998 | 
             
                  it "should raise an error if no certificate match" do
         | 
| 1007 | 
            -
                    Puppet::SSL::Certificate.indirection. | 
| 999 | 
            +
                    expect(Puppet::SSL::Certificate.indirection).to receive(:find).with("host").and_return(nil)
         | 
| 1008 1000 |  | 
| 1009 | 
            -
                    @ca.inventory. | 
| 1001 | 
            +
                    expect(@ca.inventory).to receive(:serials).with("host").and_return([])
         | 
| 1010 1002 |  | 
| 1011 | 
            -
                    @ca.crl. | 
| 1003 | 
            +
                    expect(@ca.crl).not_to receive(:revoke)
         | 
| 1012 1004 | 
             
                    expect { @ca.revoke('host') }.to raise_error(ArgumentError, /Could not find a serial number for host/)
         | 
| 1013 1005 | 
             
                  end
         | 
| 1014 1006 |  | 
| 1015 1007 | 
             
                  context "revocation by serial number (#16798)" do
         | 
| 1016 1008 | 
             
                    it "revokes when given a lower case hexadecimal formatted string" do
         | 
| 1017 | 
            -
                      @ca.crl. | 
| 1018 | 
            -
                      Puppet::SSL::Certificate.indirection. | 
| 1009 | 
            +
                      expect(@ca.crl).to receive(:revoke).with(15, anything)
         | 
| 1010 | 
            +
                      expect(Puppet::SSL::Certificate.indirection).to receive(:find).with("0xf").and_return(nil)
         | 
| 1019 1011 |  | 
| 1020 1012 | 
             
                      @ca.revoke('0xf')
         | 
| 1021 1013 | 
             
                    end
         | 
| 1022 1014 |  | 
| 1023 1015 | 
             
                    it "revokes when given an upper case hexadecimal formatted string" do
         | 
| 1024 | 
            -
                      @ca.crl. | 
| 1025 | 
            -
                      Puppet::SSL::Certificate.indirection. | 
| 1016 | 
            +
                      expect(@ca.crl).to receive(:revoke).with(15, anything)
         | 
| 1017 | 
            +
                      expect(Puppet::SSL::Certificate.indirection).to receive(:find).with("0xF").and_return(nil)
         | 
| 1026 1018 |  | 
| 1027 1019 | 
             
                      @ca.revoke('0xF')
         | 
| 1028 1020 | 
             
                    end
         | 
| @@ -1031,8 +1023,8 @@ describe Puppet::SSL::CertificateAuthority do | |
| 1031 1023 | 
             
                      bighex = '0x4000000000000000000000000000000000000000'
         | 
| 1032 1024 | 
             
                      bighex_int = 365375409332725729550921208179070754913983135744
         | 
| 1033 1025 |  | 
| 1034 | 
            -
                      @ca.crl. | 
| 1035 | 
            -
                      Puppet::SSL::Certificate.indirection. | 
| 1026 | 
            +
                      expect(@ca.crl).to receive(:revoke).with(bighex_int, anything)
         | 
| 1027 | 
            +
                      expect(Puppet::SSL::Certificate.indirection).to receive(:find).with(bighex).and_return(nil)
         | 
| 1036 1028 |  | 
| 1037 1029 | 
             
                      @ca.revoke(bighex)
         | 
| 1038 1030 | 
             
                    end
         | 
| @@ -1049,9 +1041,8 @@ require 'puppet/indirector/memory' | |
| 1049 1041 |  | 
| 1050 1042 | 
             
            module CertificateAuthorityGenerateSpecs
         | 
| 1051 1043 | 
             
            describe "CertificateAuthority.generate" do
         | 
| 1052 | 
            -
             | 
| 1053 1044 | 
             
              def expect_to_increment_serial_file
         | 
| 1054 | 
            -
                Puppet.settings.setting(:serial). | 
| 1045 | 
            +
                expect(Puppet.settings.setting(:serial)).to receive(:exclusive_open)
         | 
| 1055 1046 | 
             
              end
         | 
| 1056 1047 |  | 
| 1057 1048 | 
             
              def expect_to_sign_a_cert
         | 
| @@ -1059,7 +1050,7 @@ describe "CertificateAuthority.generate" do | |
| 1059 1050 | 
             
              end
         | 
| 1060 1051 |  | 
| 1061 1052 | 
             
              def expect_to_write_the_ca_password
         | 
| 1062 | 
            -
                Puppet.settings.setting(:capass). | 
| 1053 | 
            +
                expect(Puppet.settings.setting(:capass)).to receive(:open).with('w:ASCII')
         | 
| 1063 1054 | 
             
              end
         | 
| 1064 1055 |  | 
| 1065 1056 | 
             
              def expect_ca_initialization
         | 
| @@ -1088,7 +1079,7 @@ describe "CertificateAuthority.generate" do | |
| 1088 1079 | 
             
              end
         | 
| 1089 1080 |  | 
| 1090 1081 | 
             
              before do
         | 
| 1091 | 
            -
                Puppet::SSL::Inventory. | 
| 1082 | 
            +
                allow(Puppet::SSL::Inventory).to receive(:new).and_return(double("Inventory", :add => nil))
         | 
| 1092 1083 | 
             
                INDIRECTED_CLASSES.each { |const| const.indirection.terminus_class = :memory }
         | 
| 1093 1084 | 
             
              end
         | 
| 1094 1085 |  | 
| @@ -1153,9 +1144,8 @@ describe "CertificateAuthority.generate" do | |
| 1153 1144 | 
             
                  end
         | 
| 1154 1145 |  | 
| 1155 1146 | 
             
                  context "if autosign is true (Redmine #6112)" do
         | 
| 1156 | 
            -
             | 
| 1157 1147 | 
             
                    def run_mode_must_be_master_for_autosign_to_be_attempted
         | 
| 1158 | 
            -
                      Puppet. | 
| 1148 | 
            +
                      allow(Puppet).to receive(:run_mode).and_return(Puppet::Util::RunMode[:master])
         | 
| 1159 1149 | 
             
                    end
         | 
| 1160 1150 |  | 
| 1161 1151 | 
             
                    before do
         |