puppet 6.4.0-universal-darwin → 6.4.1-universal-darwin
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Gemfile +0 -1
- data/Gemfile.lock +7 -11
- data/lib/puppet/application/device.rb +97 -82
- data/lib/puppet/application/filebucket.rb +4 -0
- data/lib/puppet/application/ssl.rb +2 -2
- data/lib/puppet/configurer.rb +5 -4
- data/lib/puppet/defaults.rb +33 -11
- data/lib/puppet/indirector/request.rb +28 -15
- data/lib/puppet/ssl.rb +1 -1
- data/lib/puppet/ssl/certificate.rb +1 -1
- data/lib/puppet/ssl/error.rb +1 -1
- data/lib/puppet/ssl/host.rb +0 -47
- data/lib/puppet/ssl/ssl_provider.rb +2 -2
- data/lib/puppet/ssl/state_machine.rb +16 -17
- data/lib/puppet/ssl/validator/default_validator.rb +4 -4
- data/lib/puppet/ssl/verifier.rb +1 -1
- data/lib/puppet/transaction/event_manager.rb +1 -5
- data/lib/puppet/util/connection.rb +15 -8
- data/lib/puppet/util/monkey_patches.rb +20 -1
- data/lib/puppet/version.rb +1 -1
- data/locales/puppet.pot +135 -68
- data/man/man5/puppet.conf.5 +9 -9
- data/man/man8/puppet-agent.8 +1 -1
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +1 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +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-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-ssl.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 +18 -16
- 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/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 +2 -4
- 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 +4 -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/network/authconfig_spec.rb +23 -24
- data/spec/integration/network/formats_spec.rb +0 -1
- data/spec/integration/network/http_pool_spec.rb +3 -3
- 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 +1 -5
- 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/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/reference/providers_spec.rb +1 -2
- 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/rest/client_spec.rb +1 -1
- data/spec/integration/ssl/certificate_request_spec.rb +0 -1
- data/spec/integration/ssl/host_spec.rb +1 -2
- data/spec/integration/ssl/key_spec.rb +0 -1
- data/spec/integration/test/test_helper_spec.rb +0 -1
- 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/package_spec.rb +19 -23
- data/spec/integration/type/tidy_spec.rb +1 -2
- 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 +3 -5
- 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 +10 -1
- 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 -94
- data/spec/unit/application/apply_spec.rb +82 -83
- 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 +379 -384
- 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/resource_spec.rb +42 -48
- data/spec/unit/application/ssl_spec.rb +9 -9
- data/spec/unit/application_spec.rb +82 -92
- data/spec/unit/capability_spec.rb +6 -6
- data/spec/unit/certificate_factory_spec.rb +3 -5
- 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 +189 -192
- 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 +35 -36
- 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 +18 -13
- 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/catalog_spec.rb +0 -1
- 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/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 +23 -24
- 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 +14 -15
- 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 +4 -4
- 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 +9 -10
- 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 +9 -10
- 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/file_spec.rb +0 -1
- data/spec/unit/indirector/certificate/rest_spec.rb +8 -10
- 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/direct_file_server_spec.rb +17 -18
- data/spec/unit/indirector/envelope_spec.rb +1 -2
- data/spec/unit/indirector/exec_spec.rb +4 -5
- 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 +0 -1
- 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 +87 -87
- data/spec/unit/indirector/indirection_spec.rb +242 -226
- data/spec/unit/indirector/json_spec.rb +7 -9
- data/spec/unit/indirector/key/file_spec.rb +21 -22
- 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 +2 -3
- 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/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 +64 -65
- 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 +27 -27
- data/spec/unit/indirector/yaml_spec.rb +5 -6
- data/spec/unit/indirector_spec.rb +1 -2
- data/spec/unit/info_service_spec.rb +1 -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/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/indirected_routes_spec.rb +24 -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 +0 -2
- data/spec/unit/network/http/compression_spec.rb +21 -22
- data/spec/unit/network/http/connection_spec.rb +35 -35
- 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 +33 -34
- 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 +2 -3
- data/spec/unit/network/http/site_spec.rb +0 -1
- data/spec/unit/network/http_pool_spec.rb +19 -10
- data/spec/unit/network/http_spec.rb +0 -1
- data/spec/unit/network/resolver_spec.rb +25 -26
- data/spec/unit/network/rights_spec.rb +52 -53
- data/spec/unit/node/environment_spec.rb +14 -15
- data/spec/unit/node/facts_spec.rb +5 -7
- data/spec/unit/node_spec.rb +4 -10
- data/spec/unit/other/selinux_spec.rb +0 -1
- 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 +7 -8
- 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 +6 -7
- 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 +10 -11
- 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 +9 -5
- data/spec/unit/pops/loaders/loaders_spec.rb +31 -28
- 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 +30 -30
- 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/command_spec.rb +9 -9
- data/spec/unit/provider/exec/posix_spec.rb +8 -9
- 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/ldap_spec.rb +61 -62
- data/spec/unit/provider/nameservice/directoryservice_spec.rb +35 -36
- data/spec/unit/provider/nameservice_spec.rb +38 -40
- 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 +18 -20
- 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 +71 -72
- data/spec/unit/provider/package/pkg_spec.rb +113 -114
- 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 +21 -22
- data/spec/unit/provider/package/pkgutil_spec.rb +45 -49
- data/spec/unit/provider/package/portage_spec.rb +71 -75
- 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 +7 -7
- data/spec/unit/provider/package/zypper_spec.rb +87 -87
- data/spec/unit/provider/parsedfile_spec.rb +44 -45
- 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 +38 -38
- data/spec/unit/provider/service/freebsd_spec.rb +18 -18
- data/spec/unit/provider/service/gentoo_spec.rb +50 -55
- data/spec/unit/provider/service/init_spec.rb +53 -52
- 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 -45
- data/spec/unit/provider/service/openwrt_spec.rb +26 -31
- 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 +113 -122
- data/spec/unit/provider/service/upstart_spec.rb +74 -71
- data/spec/unit/provider/service/windows_spec.rb +33 -41
- 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 +16 -16
- 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_spec.rb +35 -35
- data/spec/unit/puppet_pal_2pec.rb +4 -5
- data/spec/unit/puppet_pal_spec.rb +0 -1
- data/spec/unit/puppet_spec.rb +6 -7
- data/spec/unit/relationship_spec.rb +0 -1
- data/spec/unit/reports/http_spec.rb +22 -24
- 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 +15 -17
- 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/rest/client_spec.rb +56 -25
- data/spec/unit/rest/route_spec.rb +5 -5
- 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 +228 -235
- data/spec/unit/ssl/base_spec.rb +14 -15
- data/spec/unit/ssl/certificate_request_spec.rb +62 -58
- data/spec/unit/ssl/certificate_spec.rb +23 -25
- data/spec/unit/ssl/digest_spec.rb +0 -1
- data/spec/unit/ssl/host_spec.rb +147 -130
- data/spec/unit/ssl/key_spec.rb +30 -31
- data/spec/unit/ssl/ssl_provider_spec.rb +24 -24
- data/spec/unit/ssl/state_machine_spec.rb +50 -58
- data/spec/unit/ssl/validator_spec.rb +43 -54
- data/spec/unit/ssl/verifier_spec.rb +10 -10
- data/spec/unit/task_spec.rb +44 -45
- data/spec/unit/transaction/additional_resource_generator_spec.rb +3 -5
- data/spec/unit/transaction/event_manager_spec.rb +87 -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 +100 -101
- data/spec/unit/type/component_spec.rb +0 -1
- 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/noop_metaparam_spec.rb +1 -2
- data/spec/unit/type/package/package_settings_spec.rb +44 -23
- data/spec/unit/type/package_spec.rb +56 -57
- data/spec/unit/type/resources_spec.rb +72 -74
- data/spec/unit/type/schedule_spec.rb +24 -26
- data/spec/unit/type/service_spec.rb +49 -49
- 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 +24 -25
- data/spec/unit/type/whit_spec.rb +0 -1
- data/spec/unit/type_spec.rb +55 -54
- data/spec/unit/util/at_fork_spec.rb +18 -19
- data/spec/unit/util/autoload_spec.rb +55 -56
- data/spec/unit/util/backups_spec.rb +34 -35
- data/spec/unit/util/character_encoding_spec.rb +5 -5
- 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 +185 -161
- data/spec/unit/util/execution_stub_spec.rb +0 -1
- data/spec/unit/util/feature_spec.rb +23 -14
- 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 -72
- 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/network_device/config_spec.rb +0 -1
- data/spec/unit/util/network_device/transport/base_spec.rb +5 -6
- 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 +21 -22
- 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 +7 -8
- 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 +1 -2
- 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 -57
- data/spec/unit/version_spec.rb +6 -6
- data/spec/unit/x509/cert_provider_spec.rb +14 -14
- data/spec/unit/x509/pem_store_spec.rb +5 -5
- metadata +2 -2
@@ -5,7 +5,7 @@ require 'puppet_spec/ssl'
|
|
5
5
|
describe Puppet::SSL::Validator::DefaultValidator, unless: Puppet::Util::Platform.jruby? do
|
6
6
|
include PuppetSpec::Files
|
7
7
|
let(:ssl_context) do
|
8
|
-
|
8
|
+
double('OpenSSL::X509::StoreContext')
|
9
9
|
end
|
10
10
|
|
11
11
|
before(:all) do
|
@@ -17,10 +17,10 @@ describe Puppet::SSL::Validator::DefaultValidator, unless: Puppet::Util::Platfor
|
|
17
17
|
end
|
18
18
|
|
19
19
|
let(:ssl_host) do
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
20
|
+
double('ssl_host',
|
21
|
+
:ssl_store => nil,
|
22
|
+
:certificate => double('cert', :content => nil),
|
23
|
+
:key => double('key', :content => nil))
|
24
24
|
end
|
25
25
|
|
26
26
|
subject do
|
@@ -28,46 +28,46 @@ describe Puppet::SSL::Validator::DefaultValidator, unless: Puppet::Util::Platfor
|
|
28
28
|
end
|
29
29
|
|
30
30
|
before :each do
|
31
|
-
subject.
|
31
|
+
allow(subject).to receive(:read_file).and_return(@pki[:root_cert].to_s)
|
32
32
|
end
|
33
33
|
|
34
34
|
describe '#call' do
|
35
35
|
before :each do
|
36
|
-
ssl_context.
|
37
|
-
ssl_context.
|
36
|
+
allow(ssl_context).to receive(:current_cert).and_return(*cert_chain_in_callback_order)
|
37
|
+
allow(ssl_context).to receive(:chain).and_return(cert_chain)
|
38
38
|
end
|
39
39
|
|
40
40
|
context 'When pre-verification is not OK' do
|
41
41
|
context 'and the ssl_context is in an error state' do
|
42
|
-
let(:root_subject) { @pki[:root_cert].subject.
|
42
|
+
let(:root_subject) { @pki[:root_cert].subject.to_utf8 }
|
43
43
|
let(:code) { OpenSSL::X509::V_ERR_INVALID_CA }
|
44
44
|
|
45
45
|
it 'rejects the connection' do
|
46
|
-
ssl_context.
|
47
|
-
ssl_context.
|
46
|
+
allow(ssl_context).to receive(:error_string).and_return("Something went wrong")
|
47
|
+
allow(ssl_context).to receive(:error).and_return(code)
|
48
48
|
|
49
49
|
expect(subject.call(false, ssl_context)).to eq(false)
|
50
50
|
end
|
51
51
|
|
52
52
|
it 'makes the error available via #verify_errors' do
|
53
|
-
ssl_context.
|
54
|
-
ssl_context.
|
53
|
+
allow(ssl_context).to receive(:error_string).and_return("Something went wrong")
|
54
|
+
allow(ssl_context).to receive(:error).and_return(code)
|
55
55
|
|
56
56
|
subject.call(false, ssl_context)
|
57
57
|
expect(subject.verify_errors).to eq(["Something went wrong for #{root_subject}"])
|
58
58
|
end
|
59
59
|
|
60
60
|
it 'uses a generic message if error_string is nil' do
|
61
|
-
ssl_context.
|
62
|
-
ssl_context.
|
61
|
+
allow(ssl_context).to receive(:error_string).and_return(nil)
|
62
|
+
allow(ssl_context).to receive(:error).and_return(code)
|
63
63
|
|
64
64
|
subject.call(false, ssl_context)
|
65
65
|
expect(subject.verify_errors).to eq(["OpenSSL error #{code} for #{root_subject}"])
|
66
66
|
end
|
67
67
|
|
68
68
|
it 'uses 0 for nil error codes' do
|
69
|
-
ssl_context.
|
70
|
-
ssl_context.
|
69
|
+
allow(ssl_context).to receive(:error_string).and_return("Something went wrong")
|
70
|
+
allow(ssl_context).to receive(:error).and_return(nil)
|
71
71
|
|
72
72
|
subject.call(false, ssl_context)
|
73
73
|
expect(subject.verify_errors).to eq(["Something went wrong for #{root_subject}"])
|
@@ -75,12 +75,12 @@ describe Puppet::SSL::Validator::DefaultValidator, unless: Puppet::Util::Platfor
|
|
75
75
|
|
76
76
|
context "when CRL is not yet valid" do
|
77
77
|
before :each do
|
78
|
-
ssl_context.
|
79
|
-
ssl_context.
|
78
|
+
allow(ssl_context).to receive(:error_string).and_return("CRL is not yet valid")
|
79
|
+
allow(ssl_context).to receive(:error).and_return(OpenSSL::X509::V_ERR_CRL_NOT_YET_VALID)
|
80
80
|
end
|
81
81
|
|
82
82
|
it 'rejects nil CRL' do
|
83
|
-
ssl_context.
|
83
|
+
allow(ssl_context).to receive(:current_crl).and_return(nil)
|
84
84
|
|
85
85
|
expect(subject.call(false, ssl_context)).to eq(false)
|
86
86
|
expect(subject.verify_errors).to eq(["CRL is not yet valid"])
|
@@ -90,17 +90,17 @@ describe Puppet::SSL::Validator::DefaultValidator, unless: Puppet::Util::Platfor
|
|
90
90
|
crl = OpenSSL::X509::CRL.new
|
91
91
|
crl.issuer = OpenSSL::X509::Name.new([['CN','Puppet CA: puppetmaster.example.com']])
|
92
92
|
crl.last_update = Time.now + 24 * 60 * 60
|
93
|
-
ssl_context.
|
93
|
+
allow(ssl_context).to receive(:current_crl).and_return(crl)
|
94
94
|
|
95
95
|
subject.call(false, ssl_context)
|
96
|
-
expect(subject.verify_errors).to eq(["CRL is not yet valid for
|
96
|
+
expect(subject.verify_errors).to eq(["CRL is not yet valid for CN=Puppet CA: puppetmaster.example.com"])
|
97
97
|
end
|
98
98
|
|
99
99
|
it 'rejects CRLs whose last_update time is more than 5 minutes in the future' do
|
100
100
|
crl = OpenSSL::X509::CRL.new
|
101
101
|
crl.issuer = OpenSSL::X509::Name.new([['CN','Puppet CA: puppetmaster.example.com']])
|
102
102
|
crl.last_update = Time.now + 24 * 60 * 60
|
103
|
-
ssl_context.
|
103
|
+
allow(ssl_context).to receive(:current_crl).and_return(crl)
|
104
104
|
|
105
105
|
expect(subject.call(false, ssl_context)).to eq(false)
|
106
106
|
end
|
@@ -109,7 +109,7 @@ describe Puppet::SSL::Validator::DefaultValidator, unless: Puppet::Util::Platfor
|
|
109
109
|
crl = OpenSSL::X509::CRL.new
|
110
110
|
crl.issuer = OpenSSL::X509::Name.new([['CN','Puppet CA: puppetmaster.example.com']])
|
111
111
|
crl.last_update = Time.now + 10
|
112
|
-
ssl_context.
|
112
|
+
allow(ssl_context).to receive(:current_crl).and_return(crl)
|
113
113
|
|
114
114
|
expect(subject.call(false, ssl_context)).to eq(true)
|
115
115
|
end
|
@@ -120,7 +120,7 @@ describe Puppet::SSL::Validator::DefaultValidator, unless: Puppet::Util::Platfor
|
|
120
120
|
context 'When pre-verification is OK' do
|
121
121
|
context 'and the ssl_context is in an error state' do
|
122
122
|
before :each do
|
123
|
-
ssl_context.
|
123
|
+
allow(ssl_context).to receive(:error_string).and_return("Something went wrong")
|
124
124
|
end
|
125
125
|
|
126
126
|
it 'does not make the error available via #verify_errors' do
|
@@ -146,7 +146,7 @@ describe Puppet::SSL::Validator::DefaultValidator, unless: Puppet::Util::Platfor
|
|
146
146
|
|
147
147
|
context 'and the chain is invalid' do
|
148
148
|
before :each do
|
149
|
-
subject.
|
149
|
+
allow(subject).to receive(:read_file).and_return(@pki[:unrevoked_leaf_node_cert])
|
150
150
|
end
|
151
151
|
|
152
152
|
it 'is true for each CA certificate in the chain' do
|
@@ -165,7 +165,7 @@ describe Puppet::SSL::Validator::DefaultValidator, unless: Puppet::Util::Platfor
|
|
165
165
|
|
166
166
|
context 'an error is raised inside of #call' do
|
167
167
|
before :each do
|
168
|
-
ssl_context.
|
168
|
+
expect(ssl_context).to receive(:current_cert).and_raise(StandardError, "BOOM!")
|
169
169
|
end
|
170
170
|
|
171
171
|
it 'is false' do
|
@@ -182,26 +182,25 @@ describe Puppet::SSL::Validator::DefaultValidator, unless: Puppet::Util::Platfor
|
|
182
182
|
|
183
183
|
describe '#setup_connection' do
|
184
184
|
it 'updates the connection for verification' do
|
185
|
-
subject.
|
186
|
-
connection =
|
185
|
+
allow(subject).to receive(:ssl_certificates_are_present?).and_return(true)
|
186
|
+
connection = double('Net::HTTP')
|
187
187
|
|
188
|
-
connection.
|
189
|
-
connection.
|
190
|
-
connection.
|
191
|
-
connection.
|
192
|
-
connection.
|
193
|
-
connection.
|
188
|
+
expect(connection).to receive(:cert_store=).with(ssl_host.ssl_store)
|
189
|
+
expect(connection).to receive(:ca_file=).with(ca_path)
|
190
|
+
expect(connection).to receive(:cert=).with(ssl_host.certificate.content)
|
191
|
+
expect(connection).to receive(:key=).with(ssl_host.key.content)
|
192
|
+
expect(connection).to receive(:verify_callback=).with(subject)
|
193
|
+
expect(connection).to receive(:verify_mode=).with(OpenSSL::SSL::VERIFY_PEER)
|
194
194
|
|
195
195
|
subject.setup_connection(connection, ssl_host)
|
196
196
|
end
|
197
197
|
|
198
198
|
context 'when no file path is found' do
|
199
|
-
|
200
199
|
it 'does not perform verification if certificate files are missing' do
|
201
|
-
subject.
|
202
|
-
connection =
|
200
|
+
allow(subject).to receive(:ssl_certificates_are_present?).and_return(false)
|
201
|
+
connection = double('Net::HTTP')
|
203
202
|
|
204
|
-
connection.
|
203
|
+
expect(connection).to receive(:verify_mode=).with(OpenSSL::SSL::VERIFY_NONE)
|
205
204
|
|
206
205
|
subject.setup_connection(connection, ssl_host)
|
207
206
|
end
|
@@ -215,7 +214,7 @@ describe Puppet::SSL::Validator::DefaultValidator, unless: Puppet::Util::Platfor
|
|
215
214
|
|
216
215
|
context 'when the peer presents a valid chain' do
|
217
216
|
before :each do
|
218
|
-
subject.
|
217
|
+
allow(subject).to receive(:has_authz_peer_cert).and_return(true)
|
219
218
|
end
|
220
219
|
|
221
220
|
it 'is true' do
|
@@ -225,7 +224,7 @@ describe Puppet::SSL::Validator::DefaultValidator, unless: Puppet::Util::Platfor
|
|
225
224
|
|
226
225
|
context 'when the peer presents an invalid chain' do
|
227
226
|
before :each do
|
228
|
-
subject.
|
227
|
+
allow(subject).to receive(:has_authz_peer_cert).and_return(false)
|
229
228
|
end
|
230
229
|
|
231
230
|
it 'is false' do
|
@@ -234,7 +233,9 @@ describe Puppet::SSL::Validator::DefaultValidator, unless: Puppet::Util::Platfor
|
|
234
233
|
|
235
234
|
it 'makes a helpful error message available via #verify_errors' do
|
236
235
|
subject.valid_peer?
|
237
|
-
expect(subject.verify_errors).to eq([
|
236
|
+
expect(subject.verify_errors).to eq([<<END.chomp])
|
237
|
+
The server presented a SSL certificate chain which does not include a CA listed in the ssl_client_ca_auth file. Authorized Issuers: CN=root-ca-𠜎 Peer Chain: CN=unrevoked-int-node => CN=unrevoked-int-caۿᚠ𠜎 => CN=root-ca-𠜎
|
238
|
+
END
|
238
239
|
end
|
239
240
|
end
|
240
241
|
end
|
@@ -272,16 +273,4 @@ describe Puppet::SSL::Validator::DefaultValidator, unless: Puppet::Util::Platfor
|
|
272
273
|
def cert_chain_in_callback_order
|
273
274
|
cert_chain.reverse
|
274
275
|
end
|
275
|
-
|
276
|
-
let :authz_error_prefix do
|
277
|
-
"The server presented a SSL certificate chain which does not include a CA listed in the ssl_client_ca_auth file. "
|
278
|
-
end
|
279
|
-
|
280
|
-
let :expected_authz_error_msg do
|
281
|
-
authz_ca_certs = subject.decode_cert_bundle(subject.read_file)
|
282
|
-
msg = authz_error_prefix
|
283
|
-
msg << "Authorized Issuers: #{authz_ca_certs.collect {|c| c.subject}.join(', ')} "
|
284
|
-
msg << "Peer Chain: #{cert_chain.collect {|c| c.subject}.join(' => ')}"
|
285
|
-
msg
|
286
|
-
end
|
287
276
|
end
|
@@ -40,7 +40,7 @@ describe Puppet::SSL::Verifier do
|
|
40
40
|
|
41
41
|
context '#setup_connection' do
|
42
42
|
it 'copies parameters from the ssl_context to the connection' do
|
43
|
-
store =
|
43
|
+
store = double('store')
|
44
44
|
options.merge!(store: store)
|
45
45
|
verifier.setup_connection(http)
|
46
46
|
|
@@ -48,7 +48,7 @@ describe Puppet::SSL::Verifier do
|
|
48
48
|
end
|
49
49
|
|
50
50
|
it 'defaults to VERIFY_PEER' do
|
51
|
-
http.
|
51
|
+
expect(http).to receive(:verify_mode=).with(OpenSSL::SSL::VERIFY_PEER)
|
52
52
|
|
53
53
|
verifier.setup_connection(http)
|
54
54
|
end
|
@@ -56,7 +56,7 @@ describe Puppet::SSL::Verifier do
|
|
56
56
|
it 'only uses VERIFY_NONE if explicitly disabled' do
|
57
57
|
options.merge!(verify_peer: false)
|
58
58
|
|
59
|
-
http.
|
59
|
+
expect(http).to receive(:verify_mode=).with(OpenSSL::SSL::VERIFY_NONE)
|
60
60
|
|
61
61
|
verifier.setup_connection(http)
|
62
62
|
end
|
@@ -74,27 +74,27 @@ describe Puppet::SSL::Verifier do
|
|
74
74
|
let(:ssl_error) { OpenSSL::SSL::SSLError.new("certificate verify failed") }
|
75
75
|
|
76
76
|
it "raises a verification error for a CA cert" do
|
77
|
-
store_context =
|
77
|
+
store_context = double('store_context', current_cert: peer_cert, chain: [peer_cert], error: OpenSSL::X509::V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY, error_string: "unable to get local issuer certificate")
|
78
78
|
verifier.call(false, store_context)
|
79
79
|
|
80
80
|
expect {
|
81
81
|
verifier.handle_connection_error(http, ssl_error)
|
82
|
-
}.to raise_error(Puppet::SSL::CertVerifyError, "certificate verify failed [unable to get local issuer certificate for
|
82
|
+
}.to raise_error(Puppet::SSL::CertVerifyError, "certificate verify failed [unable to get local issuer certificate for CN=127.0.0.1]")
|
83
83
|
end
|
84
84
|
|
85
85
|
it "raises a verification error for the server cert" do
|
86
|
-
store_context =
|
86
|
+
store_context = double('store_context', current_cert: peer_cert, chain: chain, error: OpenSSL::X509::V_ERR_CERT_REJECTED, error_string: "certificate rejected")
|
87
87
|
verifier.call(false, store_context)
|
88
88
|
|
89
89
|
expect {
|
90
90
|
verifier.handle_connection_error(http, ssl_error)
|
91
|
-
}.to raise_error(Puppet::SSL::CertVerifyError, "certificate verify failed [certificate rejected for
|
91
|
+
}.to raise_error(Puppet::SSL::CertVerifyError, "certificate verify failed [certificate rejected for CN=127.0.0.1]")
|
92
92
|
end
|
93
93
|
|
94
94
|
it "raises cert mismatch error on ruby < 2.4" do
|
95
|
-
http.
|
95
|
+
expect(http).to receive(:peer_cert).and_return(peer_cert)
|
96
96
|
|
97
|
-
store_context =
|
97
|
+
store_context = double('store_context')
|
98
98
|
verifier.call(true, store_context)
|
99
99
|
|
100
100
|
ssl_error = OpenSSL::SSL::SSLError.new("hostname 'example'com' does not match the server certificate")
|
@@ -105,7 +105,7 @@ describe Puppet::SSL::Verifier do
|
|
105
105
|
end
|
106
106
|
|
107
107
|
it "raises cert mismatch error on ruby >= 2.4" do
|
108
|
-
store_context =
|
108
|
+
store_context = double('store_context', current_cert: peer_cert, chain: chain, error: OpenSSL::X509::V_OK, error_string: "ok")
|
109
109
|
verifier.call(false, store_context)
|
110
110
|
|
111
111
|
expect {
|
data/spec/unit/task_spec.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
#! /usr/bin/env ruby
|
2
1
|
require 'spec_helper'
|
3
2
|
require 'puppet_spec/files'
|
4
3
|
require 'puppet_spec/modules'
|
@@ -24,9 +23,9 @@ describe Puppet::Module::Task do
|
|
24
23
|
|
25
24
|
it "constructs tasks as expected when every task has a metadata file with the same name (besides extension)" do
|
26
25
|
task_files = %w{task1.json task1 task2.json task2.exe task3.json task3.sh}.map { |bn| "#{tasks_path}/#{bn}" }
|
27
|
-
Dir.
|
26
|
+
expect(Dir).to receive(:glob).with(tasks_glob).and_return(task_files)
|
28
27
|
tasks = Puppet::Module::Task.tasks_in_module(mymod)
|
29
|
-
Puppet::Module::Task.
|
28
|
+
allow_any_instance_of(Puppet::Module::Task).to receive(:metadata).and_return({})
|
30
29
|
|
31
30
|
expect(tasks.count).to eq(3)
|
32
31
|
expect(tasks.map{|t| t.name}).to eq(%w{mymod::task1 mymod::task2 mymod::task3})
|
@@ -52,8 +51,8 @@ describe Puppet::Module::Task do
|
|
52
51
|
|
53
52
|
it "constructs tasks as expected when some tasks don't have a metadata file" do
|
54
53
|
task_files = %w{task1 task2.exe task3.json task3.sh}.map { |bn| "#{tasks_path}/#{bn}" }
|
55
|
-
Dir.
|
56
|
-
Puppet::Module::Task.
|
54
|
+
expect(Dir).to receive(:glob).with(tasks_glob).and_return(task_files)
|
55
|
+
allow_any_instance_of(Puppet::Module::Task).to receive(:metadata).and_return({})
|
57
56
|
tasks = Puppet::Module::Task.tasks_in_module(mymod)
|
58
57
|
|
59
58
|
expect(tasks.count).to eq(3)
|
@@ -66,9 +65,9 @@ describe Puppet::Module::Task do
|
|
66
65
|
|
67
66
|
it "constructs a task as expected when a task has implementations" do
|
68
67
|
task_files = %w{task1.elf task1.sh task1.json}.map { |bn| "#{tasks_path}/#{bn}" }
|
69
|
-
Dir.
|
68
|
+
expect(Dir).to receive(:glob).with(tasks_glob).and_return(task_files)
|
70
69
|
tasks = Puppet::Module::Task.tasks_in_module(mymod)
|
71
|
-
Puppet::Module::Task.
|
70
|
+
allow_any_instance_of(Puppet::Module::Task).to receive(:metadata).and_return({'implementations' => [{"name" => "task1.sh"}]})
|
72
71
|
|
73
72
|
expect(tasks.count).to eq(1)
|
74
73
|
expect(tasks.map{|t| t.name}).to eq(%w{mymod::task1})
|
@@ -78,10 +77,10 @@ describe Puppet::Module::Task do
|
|
78
77
|
|
79
78
|
it "constructs a task as expected when task metadata declares additional files" do
|
80
79
|
task_files = %w{task1.sh task1.json}.map { |bn| "#{tasks_path}/#{bn}" }
|
81
|
-
Dir.
|
82
|
-
Puppet::Module::Task.
|
80
|
+
expect(Dir).to receive(:glob).with(tasks_glob).and_return(task_files)
|
81
|
+
expect(Puppet::Module::Task).to receive(:find_extra_files).and_return([{'name' => 'mymod/lib/file0.elf', 'path' => "/path/to/file0.elf"}])
|
83
82
|
tasks = Puppet::Module::Task.tasks_in_module(mymod)
|
84
|
-
Puppet::Module::Task.
|
83
|
+
allow_any_instance_of(Puppet::Module::Task).to receive(:metadata).and_return({'files' => ["mymod/lib/file0.elf"]})
|
85
84
|
|
86
85
|
expect(tasks.count).to eq(1)
|
87
86
|
expect(tasks.map{|t| t.name}).to eq(%w{mymod::task1})
|
@@ -91,10 +90,10 @@ describe Puppet::Module::Task do
|
|
91
90
|
|
92
91
|
it "constructs a task as expected when a task implementation declares additional files" do
|
93
92
|
task_files = %w{task1.sh task1.json}.map { |bn| "#{tasks_path}/#{bn}" }
|
94
|
-
Dir.
|
95
|
-
Puppet::Module::Task.
|
93
|
+
expect(Dir).to receive(:glob).with(tasks_glob).and_return(task_files)
|
94
|
+
expect(Puppet::Module::Task).to receive(:find_extra_files).and_return([{'name' => 'mymod/lib/file0.elf', 'path' => "/path/to/file0.elf"}])
|
96
95
|
tasks = Puppet::Module::Task.tasks_in_module(mymod)
|
97
|
-
Puppet::Module::Task.
|
96
|
+
allow_any_instance_of(Puppet::Module::Task).to receive(:metadata).and_return({'implementations' => [{"name" => "task1.sh", "files" => ["mymod/lib/file0.elf"]}]})
|
98
97
|
|
99
98
|
expect(tasks.count).to eq(1)
|
100
99
|
expect(tasks.map{|t| t.name}).to eq(%w{mymod::task1})
|
@@ -104,13 +103,13 @@ describe Puppet::Module::Task do
|
|
104
103
|
|
105
104
|
it "constructs a task as expected when task metadata and a task implementation both declare additional files" do
|
106
105
|
task_files = %w{task1.sh task1.json}.map { |bn| "#{tasks_path}/#{bn}" }
|
107
|
-
Dir.
|
108
|
-
Puppet::Module::Task.
|
106
|
+
expect(Dir).to receive(:glob).with(tasks_glob).and_return(task_files)
|
107
|
+
expect(Puppet::Module::Task).to receive(:find_extra_files).and_return([
|
109
108
|
{'name' => 'mymod/lib/file0.elf', 'path' => "/path/to/file0.elf"},
|
110
109
|
{'name' => 'yourmod/files/file1.txt', 'path' => "/other/path/to/file1.txt"}
|
111
110
|
])
|
112
111
|
tasks = Puppet::Module::Task.tasks_in_module(mymod)
|
113
|
-
Puppet::Module::Task.
|
112
|
+
allow_any_instance_of(Puppet::Module::Task).to receive(:metadata).and_return({'implementations' => [{"name" => "task1.sh", "files" => ["mymod/lib/file0.elf"]}]})
|
114
113
|
|
115
114
|
expect(tasks.count).to eq(1)
|
116
115
|
expect(tasks.map{|t| t.name}).to eq(%w{mymod::task1})
|
@@ -124,14 +123,14 @@ describe Puppet::Module::Task do
|
|
124
123
|
|
125
124
|
it "constructs a task as expected when a task has files" do
|
126
125
|
og_files = %w{task1.sh task1.json}.map { |bn| "#{tasks_path}/#{bn}" }
|
127
|
-
Dir.
|
128
|
-
File.
|
126
|
+
expect(Dir).to receive(:glob).with(tasks_glob).and_return(og_files)
|
127
|
+
expect(File).to receive(:exist?).with(any_args).and_return(true).at_least(:once)
|
129
128
|
|
130
|
-
Puppet::Module.
|
129
|
+
expect(Puppet::Module).to receive(:find).with(othermod.name, "production").and_return(othermod).at_least(:once)
|
131
130
|
short_files = %w{other_task.sh other_task.json task_2.sh}.map { |bn| "#{othermod.name}/tasks/#{bn}" }
|
132
131
|
long_files = %w{other_task.sh other_task.json task_2.sh}.map { |bn| "#{other_tasks_path}/#{bn}" }
|
133
132
|
tasks = Puppet::Module::Task.tasks_in_module(mymod)
|
134
|
-
Puppet::Module::Task.
|
133
|
+
allow_any_instance_of(Puppet::Module::Task).to receive(:metadata).and_return({'files' => short_files})
|
135
134
|
|
136
135
|
expect(tasks.count).to eq(1)
|
137
136
|
expect(tasks.map{|t| t.files.map{ |f| f["path"] } }).to eq([["#{tasks_path}/task1.sh"] + long_files])
|
@@ -139,18 +138,18 @@ describe Puppet::Module::Task do
|
|
139
138
|
|
140
139
|
it "fails to load a task if its metadata specifies a non-existent file" do
|
141
140
|
og_files = %w{task1.sh task1.json}.map { |bn| "#{tasks_path}/#{bn}" }
|
142
|
-
Dir.
|
143
|
-
File.
|
141
|
+
allow(Dir).to receive(:glob).with(tasks_glob).and_return(og_files)
|
142
|
+
allow(File).to receive(:exist?).with(any_args).and_return(true)
|
144
143
|
|
145
|
-
Puppet::Module.
|
144
|
+
expect(Puppet::Module).to receive(:find).with(othermod.name, "production").and_return(nil).at_least(:once)
|
146
145
|
tasks = Puppet::Module::Task.tasks_in_module(mymod)
|
147
|
-
Puppet::Module::Task.
|
146
|
+
allow_any_instance_of(Puppet::Module::Task).to receive(:metadata).and_return({'files' => ["#{othermod.name}/files/test"]})
|
148
147
|
|
149
148
|
expect { tasks.first.files }.to raise_error(Puppet::Module::Task::InvalidMetadata, /Could not find module #{othermod.name} containing task file test/)
|
150
149
|
end
|
151
150
|
|
152
151
|
it "finds files whose names (besides extensions) are valid task names" do
|
153
|
-
Dir.
|
152
|
+
expect(Dir).to receive(:glob).with(tasks_glob).and_return(%w{task task_1 xx_t_a_s_k_2_xx})
|
154
153
|
tasks = Puppet::Module::Task.tasks_in_module(mymod)
|
155
154
|
|
156
155
|
expect(tasks.count).to eq(3)
|
@@ -158,7 +157,7 @@ describe Puppet::Module::Task do
|
|
158
157
|
end
|
159
158
|
|
160
159
|
it "ignores files that have names (besides extensions) that are not valid task names" do
|
161
|
-
Dir.
|
160
|
+
expect(Dir).to receive(:glob).with(tasks_glob).and_return(%w{.nottask.exe .wat !runme _task 2task2furious def_a_task_PSYCH Fake_task not-a-task realtask})
|
162
161
|
tasks = Puppet::Module::Task.tasks_in_module(mymod)
|
163
162
|
|
164
163
|
expect(tasks.count).to eq(1)
|
@@ -166,7 +165,7 @@ describe Puppet::Module::Task do
|
|
166
165
|
end
|
167
166
|
|
168
167
|
it "ignores files that have names ending in .conf and .md" do
|
169
|
-
Dir.
|
168
|
+
expect(Dir).to receive(:glob).with(tasks_glob).and_return(%w{ginuwine_task task.conf readme.md other_task.md})
|
170
169
|
tasks = Puppet::Module::Task.tasks_in_module(mymod)
|
171
170
|
|
172
171
|
expect(tasks.count).to eq(1)
|
@@ -180,8 +179,8 @@ describe Puppet::Module::Task do
|
|
180
179
|
describe :metadata do
|
181
180
|
it "loads metadata for a task" do
|
182
181
|
metadata = {'desciption': 'some info'}
|
183
|
-
Dir.
|
184
|
-
Puppet::Module::Task.
|
182
|
+
expect(Dir).to receive(:glob).with(tasks_glob).and_return(%w{task1.exe task1.json})
|
183
|
+
allow(Puppet::Module::Task).to receive(:read_metadata).and_return(metadata)
|
185
184
|
|
186
185
|
tasks = Puppet::Module::Task.tasks_in_module(mymod)
|
187
186
|
|
@@ -190,7 +189,7 @@ describe Puppet::Module::Task do
|
|
190
189
|
end
|
191
190
|
|
192
191
|
it 'returns nil for metadata if no file is present' do
|
193
|
-
Dir.
|
192
|
+
expect(Dir).to receive(:glob).with(tasks_glob).and_return(%w{task1.exe})
|
194
193
|
tasks = Puppet::Module::Task.tasks_in_module(mymod)
|
195
194
|
|
196
195
|
expect(tasks.count).to eq(1)
|
@@ -213,7 +212,7 @@ describe Puppet::Module::Task do
|
|
213
212
|
|
214
213
|
describe :validate do
|
215
214
|
it "validates when there is no metadata" do
|
216
|
-
Dir.
|
215
|
+
expect(Dir).to receive(:glob).with(tasks_glob).and_return(%w{task1.exe})
|
217
216
|
|
218
217
|
tasks = Puppet::Module::Task.tasks_in_module(mymod)
|
219
218
|
|
@@ -224,8 +223,8 @@ describe Puppet::Module::Task do
|
|
224
223
|
it "validates when an implementation isn't used" do
|
225
224
|
metadata = {'desciption' => 'some info',
|
226
225
|
'implementations' => [ {"name" => "task1.exe"}, ] }
|
227
|
-
Dir.
|
228
|
-
Puppet::Module::Task.
|
226
|
+
expect(Dir).to receive(:glob).with(tasks_glob).and_return(%w{task1.exe task1.sh task1.json})
|
227
|
+
allow(Puppet::Module::Task).to receive(:read_metadata).and_return(metadata)
|
229
228
|
|
230
229
|
tasks = Puppet::Module::Task.tasks_in_module(mymod)
|
231
230
|
|
@@ -236,8 +235,8 @@ describe Puppet::Module::Task do
|
|
236
235
|
it "validates when an implementation is another task" do
|
237
236
|
metadata = {'desciption' => 'some info',
|
238
237
|
'implementations' => [ {"name" => "task2.sh"}, ] }
|
239
|
-
Dir.
|
240
|
-
Puppet::Module::Task.
|
238
|
+
expect(Dir).to receive(:glob).with(tasks_glob).and_return(%w{task1.exe task2.sh task1.json})
|
239
|
+
allow(Puppet::Module::Task).to receive(:read_metadata).and_return(metadata)
|
241
240
|
|
242
241
|
tasks = Puppet::Module::Task.tasks_in_module(mymod)
|
243
242
|
|
@@ -246,9 +245,9 @@ describe Puppet::Module::Task do
|
|
246
245
|
end
|
247
246
|
|
248
247
|
it "fails validation when there is no metadata and multiple task files" do
|
249
|
-
Dir.
|
248
|
+
expect(Dir).to receive(:glob).with(tasks_glob).and_return(%w{task1.elf task1.exe task1.json task2.ps1 task2.sh})
|
250
249
|
tasks = Puppet::Module::Task.tasks_in_module(mymod)
|
251
|
-
Puppet::Module::Task.
|
250
|
+
allow_any_instance_of(Puppet::Module::Task).to receive(:metadata).and_return({})
|
252
251
|
|
253
252
|
tasks.each do |task|
|
254
253
|
expect {task.validate}.to raise_error(Puppet::Module::Task::InvalidTask)
|
@@ -256,9 +255,9 @@ describe Puppet::Module::Task do
|
|
256
255
|
end
|
257
256
|
|
258
257
|
it "fails validation when an implementation references a non-existant file" do
|
259
|
-
Dir.
|
258
|
+
expect(Dir).to receive(:glob).with(tasks_glob).and_return(%w{task1.elf task1.exe task1.json})
|
260
259
|
tasks = Puppet::Module::Task.tasks_in_module(mymod)
|
261
|
-
Puppet::Module::Task.
|
260
|
+
allow_any_instance_of(Puppet::Module::Task).to receive(:metadata).and_return({'implementations' => [ { 'name' => 'task1.sh' } ] })
|
262
261
|
|
263
262
|
tasks.each do |task|
|
264
263
|
expect {task.validate}.to raise_error(Puppet::Module::Task::InvalidTask)
|
@@ -266,25 +265,25 @@ describe Puppet::Module::Task do
|
|
266
265
|
end
|
267
266
|
|
268
267
|
it 'fails validation when there is metadata but no executable' do
|
269
|
-
Dir.
|
268
|
+
expect(Dir).to receive(:glob).with(tasks_glob).and_return(%w{task1.json task2.sh})
|
270
269
|
tasks = Puppet::Module::Task.tasks_in_module(mymod)
|
271
|
-
Puppet::Module::Task.
|
270
|
+
allow_any_instance_of(Puppet::Module::Task).to receive(:metadata).and_return({})
|
272
271
|
|
273
272
|
expect { tasks.find { |t| t.name == 'mymod::task1' }.validate }.to raise_error(Puppet::Module::Task::InvalidTask)
|
274
273
|
end
|
275
274
|
|
276
275
|
it 'fails validation when the implementations are not an array' do
|
277
|
-
Dir.
|
276
|
+
expect(Dir).to receive(:glob).with(tasks_glob).and_return(%w{task1.json task2.sh})
|
278
277
|
tasks = Puppet::Module::Task.tasks_in_module(mymod)
|
279
|
-
Puppet::Module::Task.
|
278
|
+
allow_any_instance_of(Puppet::Module::Task).to receive(:metadata).and_return({"implemenations" => {}})
|
280
279
|
|
281
280
|
expect { tasks.find { |t| t.name == 'mymod::task1' }.validate }.to raise_error(Puppet::Module::Task::InvalidTask)
|
282
281
|
end
|
283
282
|
|
284
283
|
it 'fails validation when the implementation is json' do
|
285
|
-
Dir.
|
284
|
+
expect(Dir).to receive(:glob).with(tasks_glob).and_return(%w{task1.json task1.sh})
|
286
285
|
tasks = Puppet::Module::Task.tasks_in_module(mymod)
|
287
|
-
Puppet::Module::Task.
|
286
|
+
allow_any_instance_of(Puppet::Module::Task).to receive(:metadata).and_return({'implementations' => [ { 'name' => 'task1.json' } ] })
|
288
287
|
|
289
288
|
expect { tasks.find { |t| t.name == 'mymod::task1' }.validate }.to raise_error(Puppet::Module::Task::InvalidTask)
|
290
289
|
end
|