puppet 6.0.7-universal-darwin → 6.0.8-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 +4 -8
- data/lib/puppet/application/device.rb +99 -83
- data/lib/puppet/application/filebucket.rb +4 -0
- data/lib/puppet/configurer.rb +5 -4
- data/lib/puppet/defaults.rb +31 -11
- data/lib/puppet/indirector/request.rb +26 -15
- 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/connection.rb +15 -6
- data/lib/puppet/util/http_proxy.rb +3 -2
- data/lib/puppet/version.rb +1 -1
- data/locales/puppet.pot +99 -40
- data/man/man5/puppet.conf.5 +8 -8
- 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/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/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 -93
- 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 +395 -419
- 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 +3 -3
- 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 +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 +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 +46 -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 +41 -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/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_pool_spec.rb +18 -9
- 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 +8 -4
- 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 +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/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 +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 +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 +104 -113
- 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 +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 +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 +58 -27
- 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 +166 -149
- data/spec/unit/ssl/key_spec.rb +30 -31
- data/spec/unit/ssl/validator_spec.rb +38 -39
- 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 +48 -48
- 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 +21 -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 +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 -57
- data/spec/unit/version_spec.rb +6 -6
- metadata +2 -2
@@ -1,4 +1,3 @@
|
|
1
|
-
#! /usr/bin/env ruby
|
2
1
|
require 'spec_helper'
|
3
2
|
|
4
3
|
require 'puppet/indirector/indirection'
|
@@ -7,23 +6,23 @@ shared_examples_for "Indirection Delegator" do
|
|
7
6
|
it "should create a request object with the appropriate method name and all of the passed arguments" do
|
8
7
|
request = Puppet::Indirector::Request.new(:indirection, :find, "me", nil)
|
9
8
|
|
10
|
-
@indirection.
|
9
|
+
expect(@indirection).to receive(:request).with(@method, "mystuff", nil, :one => :two).and_return(request)
|
11
10
|
|
12
|
-
@terminus.
|
11
|
+
allow(@terminus).to receive(@method)
|
13
12
|
|
14
13
|
@indirection.send(@method, "mystuff", :one => :two)
|
15
14
|
end
|
16
15
|
|
17
16
|
it "should choose the terminus returned by the :terminus_class" do
|
18
|
-
@indirection.
|
17
|
+
expect(@indirection).to receive(:terminus_class).and_return(:test_terminus)
|
19
18
|
|
20
|
-
@terminus.
|
19
|
+
expect(@terminus).to receive(@method)
|
21
20
|
|
22
21
|
@indirection.send(@method, "me")
|
23
22
|
end
|
24
23
|
|
25
24
|
it "should let the appropriate terminus perform the lookup" do
|
26
|
-
@terminus.
|
25
|
+
expect(@terminus).to receive(@method).with(be_a(Puppet::Indirector::Request))
|
27
26
|
@indirection.send(@method, "me")
|
28
27
|
end
|
29
28
|
end
|
@@ -38,38 +37,38 @@ shared_examples_for "Delegation Authorizer" do
|
|
38
37
|
end
|
39
38
|
|
40
39
|
it "should not check authorization if a node name is not provided" do
|
41
|
-
@terminus.
|
42
|
-
@terminus.
|
40
|
+
expect(@terminus).not_to receive(:authorized?)
|
41
|
+
allow(@terminus).to receive(@method)
|
43
42
|
|
44
|
-
# The
|
45
|
-
@request.
|
43
|
+
# The parenthesis are necessary here, else it looks like a block.
|
44
|
+
allow(@request).to receive(:options).and_return({})
|
46
45
|
@indirection.send(@method, "/my/key")
|
47
46
|
end
|
48
47
|
|
49
48
|
it "should pass the request to the terminus's authorization method" do
|
50
|
-
@terminus.
|
51
|
-
@terminus.
|
49
|
+
expect(@terminus).to receive(:authorized?).with(be_a(Puppet::Indirector::Request)).and_return(true)
|
50
|
+
allow(@terminus).to receive(@method)
|
52
51
|
|
53
52
|
@indirection.send(@method, "/my/key", :node => "mynode")
|
54
53
|
end
|
55
54
|
|
56
55
|
it "should fail if authorization returns false" do
|
57
|
-
@terminus.
|
58
|
-
@terminus.
|
56
|
+
expect(@terminus).to receive(:authorized?).and_return(false)
|
57
|
+
allow(@terminus).to receive(@method)
|
59
58
|
expect { @indirection.send(@method, "/my/key", :node => "mynode") }.to raise_error(ArgumentError)
|
60
59
|
end
|
61
60
|
|
62
61
|
it "should continue if authorization returns true" do
|
63
|
-
@terminus.
|
64
|
-
@terminus.
|
62
|
+
expect(@terminus).to receive(:authorized?).and_return(true)
|
63
|
+
allow(@terminus).to receive(@method)
|
65
64
|
@indirection.send(@method, "/my/key", :node => "mynode")
|
66
65
|
end
|
67
66
|
end
|
68
67
|
|
69
68
|
shared_examples_for "Request validator" do
|
70
69
|
it "asks the terminus to validate the request" do
|
71
|
-
@terminus.
|
72
|
-
@terminus.
|
70
|
+
expect(@terminus).to receive(:validate).and_raise(Puppet::Indirector::ValidationError, "Invalid")
|
71
|
+
expect(@terminus).not_to receive(@method)
|
73
72
|
expect {
|
74
73
|
@indirection.send(@method, "key")
|
75
74
|
}.to raise_error Puppet::Indirector::ValidationError
|
@@ -79,24 +78,24 @@ end
|
|
79
78
|
describe Puppet::Indirector::Indirection do
|
80
79
|
describe "when initializing" do
|
81
80
|
it "should keep a reference to the indirecting model" do
|
82
|
-
model =
|
81
|
+
model = double('model')
|
83
82
|
@indirection = Puppet::Indirector::Indirection.new(model, :myind)
|
84
83
|
expect(@indirection.model).to equal(model)
|
85
84
|
end
|
86
85
|
|
87
86
|
it "should set the name" do
|
88
|
-
@indirection = Puppet::Indirector::Indirection.new(
|
87
|
+
@indirection = Puppet::Indirector::Indirection.new(double('model'), :myind)
|
89
88
|
expect(@indirection.name).to eq(:myind)
|
90
89
|
end
|
91
90
|
|
92
91
|
it "should require indirections to have unique names" do
|
93
|
-
@indirection = Puppet::Indirector::Indirection.new(
|
92
|
+
@indirection = Puppet::Indirector::Indirection.new(double('model'), :test)
|
94
93
|
expect { Puppet::Indirector::Indirection.new(:test) }.to raise_error(ArgumentError)
|
95
94
|
end
|
96
95
|
|
97
96
|
it "should extend itself with any specified module" do
|
98
97
|
mod = Module.new
|
99
|
-
@indirection = Puppet::Indirector::Indirection.new(
|
98
|
+
@indirection = Puppet::Indirector::Indirection.new(double('model'), :test, :extend => mod)
|
100
99
|
expect(@indirection.singleton_class.included_modules).to include(mod)
|
101
100
|
end
|
102
101
|
|
@@ -107,23 +106,22 @@ describe Puppet::Indirector::Indirection do
|
|
107
106
|
|
108
107
|
describe "when an instance" do
|
109
108
|
before :each do
|
110
|
-
@terminus_class =
|
111
|
-
@terminus =
|
112
|
-
@terminus.
|
113
|
-
@terminus_class.
|
114
|
-
@cache =
|
115
|
-
@cache_class =
|
116
|
-
Puppet::Indirector::Terminus.
|
117
|
-
Puppet::Indirector::Terminus.
|
118
|
-
|
119
|
-
@indirection = Puppet::Indirector::Indirection.new(
|
109
|
+
@terminus_class = double('terminus_class')
|
110
|
+
@terminus = double('terminus')
|
111
|
+
allow(@terminus).to receive(:validate)
|
112
|
+
allow(@terminus_class).to receive(:new).and_return(@terminus)
|
113
|
+
@cache = double('cache', :name => "mycache")
|
114
|
+
@cache_class = double('cache_class')
|
115
|
+
allow(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :cache_terminus).and_return(@cache_class)
|
116
|
+
allow(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :test_terminus).and_return(@terminus_class)
|
117
|
+
|
118
|
+
@indirection = Puppet::Indirector::Indirection.new(double('model'), :test)
|
120
119
|
@indirection.terminus_class = :test_terminus
|
121
120
|
|
122
|
-
@instance =
|
121
|
+
@instance = double('instance', :expiration => nil, :expiration= => nil, :name => "whatever")
|
123
122
|
@name = :mything
|
124
123
|
|
125
|
-
|
126
|
-
@request = mock 'instance'
|
124
|
+
@request = double('instance')
|
127
125
|
end
|
128
126
|
|
129
127
|
it "should allow setting the ttl" do
|
@@ -137,9 +135,9 @@ describe Puppet::Indirector::Indirection do
|
|
137
135
|
end
|
138
136
|
|
139
137
|
it "should calculate the current expiration by adding the TTL to the current time" do
|
140
|
-
@indirection.
|
138
|
+
allow(@indirection).to receive(:ttl).and_return(100)
|
141
139
|
now = Time.now
|
142
|
-
Time.
|
140
|
+
allow(Time).to receive(:now).and_return(now)
|
143
141
|
expect(@indirection.expiration).to eq(Time.now + 100)
|
144
142
|
end
|
145
143
|
|
@@ -149,28 +147,28 @@ describe Puppet::Indirector::Indirection do
|
|
149
147
|
|
150
148
|
describe "creates a request" do
|
151
149
|
it "should create it with its name as the request's indirection name" do
|
152
|
-
Puppet::Indirector::Request.
|
150
|
+
expect(Puppet::Indirector::Request).to receive(:new).with(@indirection.name, anything, anything)
|
153
151
|
@indirection.request(:funtest, "yayness")
|
154
152
|
end
|
155
153
|
|
156
154
|
it "should require a method and key" do
|
157
|
-
Puppet::Indirector::Request.
|
155
|
+
expect(Puppet::Indirector::Request).to receive(:new).with(anything, :funtest, "yayness")
|
158
156
|
@indirection.request(:funtest, "yayness")
|
159
157
|
end
|
160
158
|
|
161
159
|
it "should support optional arguments" do
|
162
|
-
Puppet::Indirector::Request.
|
160
|
+
expect(Puppet::Indirector::Request).to receive(:new).with(anything, anything, anything, {:one => :two})
|
163
161
|
@indirection.request(:funtest, "yayness", :one => :two)
|
164
162
|
end
|
165
163
|
|
166
164
|
it "should not pass options if none are supplied" do
|
167
|
-
Puppet::Indirector::Request.
|
165
|
+
expect(Puppet::Indirector::Request).to receive(:new).with(anything, anything, anything)
|
168
166
|
@indirection.request(:funtest, "yayness")
|
169
167
|
end
|
170
168
|
|
171
169
|
it "should return the request" do
|
172
|
-
request =
|
173
|
-
Puppet::Indirector::Request.
|
170
|
+
request = double('request')
|
171
|
+
expect(Puppet::Indirector::Request).to receive(:new).and_return(request)
|
174
172
|
expect(@indirection.request(:funtest, "yayness")).to equal(request)
|
175
173
|
end
|
176
174
|
end
|
@@ -183,190 +181,204 @@ describe Puppet::Indirector::Indirection do
|
|
183
181
|
it_should_behave_like "Request validator"
|
184
182
|
|
185
183
|
it "should return the results of the delegation" do
|
186
|
-
@terminus.
|
184
|
+
expect(@terminus).to receive(:find).and_return(@instance)
|
187
185
|
expect(@indirection.find("me")).to equal(@instance)
|
188
186
|
end
|
189
187
|
|
190
188
|
it "should return false if the instance is false" do
|
191
|
-
@terminus.
|
189
|
+
expect(@terminus).to receive(:find).and_return(false)
|
192
190
|
expect(@indirection.find("me")).to equal(false)
|
193
191
|
end
|
194
192
|
|
195
193
|
it "should set the expiration date on any instances without one set" do
|
196
|
-
@terminus.
|
194
|
+
allow(@terminus).to receive(:find).and_return(@instance)
|
197
195
|
|
198
|
-
@indirection.
|
196
|
+
expect(@indirection).to receive(:expiration).and_return(:yay)
|
199
197
|
|
200
|
-
@instance.
|
201
|
-
@instance.
|
198
|
+
expect(@instance).to receive(:expiration).and_return(nil)
|
199
|
+
expect(@instance).to receive(:expiration=).with(:yay)
|
202
200
|
|
203
201
|
@indirection.find("/my/key")
|
204
202
|
end
|
205
203
|
|
206
204
|
it "should not override an already-set expiration date on returned instances" do
|
207
|
-
@terminus.
|
205
|
+
allow(@terminus).to receive(:find).and_return(@instance)
|
208
206
|
|
209
|
-
@indirection.
|
207
|
+
expect(@indirection).not_to receive(:expiration)
|
210
208
|
|
211
|
-
@instance.
|
212
|
-
@instance.
|
209
|
+
expect(@instance).to receive(:expiration).and_return(:yay)
|
210
|
+
expect(@instance).not_to receive(:expiration=)
|
213
211
|
|
214
212
|
@indirection.find("/my/key")
|
215
213
|
end
|
216
214
|
|
217
215
|
it "should filter the result instance if the terminus supports it" do
|
218
|
-
@terminus.
|
219
|
-
@terminus.
|
216
|
+
allow(@terminus).to receive(:find).and_return(@instance)
|
217
|
+
allow(@terminus).to receive(:respond_to?).with(:filter).and_return(true)
|
220
218
|
|
221
|
-
@terminus.
|
219
|
+
expect(@terminus).to receive(:filter).with(@instance)
|
222
220
|
|
223
221
|
@indirection.find("/my/key")
|
224
222
|
end
|
223
|
+
|
225
224
|
describe "when caching is enabled" do
|
226
225
|
before do
|
227
226
|
@indirection.cache_class = :cache_terminus
|
228
|
-
@cache_class.
|
227
|
+
allow(@cache_class).to receive(:new).and_return(@cache)
|
229
228
|
|
230
|
-
@instance.
|
229
|
+
allow(@instance).to receive(:expired?).and_return(false)
|
231
230
|
end
|
232
231
|
|
233
232
|
it "should first look in the cache for an instance" do
|
234
|
-
@terminus.
|
235
|
-
@cache.
|
233
|
+
expect(@terminus).not_to receive(:find)
|
234
|
+
expect(@cache).to receive(:find).and_return(@instance)
|
236
235
|
|
237
236
|
@indirection.find("/my/key")
|
238
237
|
end
|
239
238
|
|
240
239
|
it "should not look in the cache if the request specifies not to use the cache" do
|
241
|
-
@terminus.
|
242
|
-
@cache.
|
243
|
-
@cache.
|
240
|
+
expect(@terminus).to receive(:find).and_return(@instance)
|
241
|
+
expect(@cache).not_to receive(:find)
|
242
|
+
allow(@cache).to receive(:save)
|
244
243
|
|
245
244
|
@indirection.find("/my/key", :ignore_cache => true)
|
246
245
|
end
|
247
246
|
|
248
247
|
it "should still save to the cache even if the cache is being ignored during readin" do
|
249
|
-
@terminus.
|
250
|
-
@cache.
|
248
|
+
expect(@terminus).to receive(:find).and_return(@instance)
|
249
|
+
expect(@cache).to receive(:save)
|
251
250
|
|
252
251
|
@indirection.find("/my/key", :ignore_cache => true)
|
253
252
|
end
|
254
253
|
|
255
254
|
it "should not save to the cache if told to skip updating the cache" do
|
256
|
-
@terminus.
|
257
|
-
@cache.
|
258
|
-
@cache.
|
255
|
+
expect(@terminus).to receive(:find).and_return(@instance)
|
256
|
+
expect(@cache).to receive(:find).and_return(nil)
|
257
|
+
expect(@cache).not_to receive(:save)
|
259
258
|
|
260
259
|
@indirection.find("/my/key", :ignore_cache_save => true)
|
261
260
|
end
|
262
261
|
|
263
262
|
it "should only look in the cache if the request specifies not to use the terminus" do
|
264
|
-
@terminus.
|
265
|
-
@cache.
|
263
|
+
expect(@terminus).not_to receive(:find)
|
264
|
+
expect(@cache).to receive(:find)
|
266
265
|
|
267
266
|
@indirection.find("/my/key", :ignore_terminus => true)
|
268
267
|
end
|
269
268
|
|
270
269
|
it "should use a request to look in the cache for cached objects" do
|
271
|
-
@cache.
|
270
|
+
expect(@cache).to receive(:find) do |r|
|
271
|
+
expect(r.method).to eq(:find)
|
272
|
+
expect(r.key).to eq("/my/key")
|
273
|
+
|
274
|
+
@instance
|
275
|
+
end
|
272
276
|
|
273
|
-
@cache.
|
277
|
+
allow(@cache).to receive(:save)
|
274
278
|
|
275
279
|
@indirection.find("/my/key")
|
276
280
|
end
|
277
281
|
|
278
282
|
it "should return the cached object if it is not expired" do
|
279
|
-
@instance.
|
283
|
+
allow(@instance).to receive(:expired?).and_return(false)
|
280
284
|
|
281
|
-
@cache.
|
285
|
+
allow(@cache).to receive(:find).and_return(@instance)
|
282
286
|
expect(@indirection.find("/my/key")).to equal(@instance)
|
283
287
|
end
|
284
288
|
|
285
289
|
it "should not fail if the cache fails" do
|
286
|
-
@terminus.
|
290
|
+
allow(@terminus).to receive(:find).and_return(@instance)
|
287
291
|
|
288
|
-
@cache.
|
289
|
-
@cache.
|
292
|
+
expect(@cache).to receive(:find).and_raise(ArgumentError)
|
293
|
+
allow(@cache).to receive(:save)
|
290
294
|
expect { @indirection.find("/my/key") }.not_to raise_error
|
291
295
|
end
|
292
296
|
|
293
297
|
it "should look in the main terminus if the cache fails" do
|
294
|
-
@terminus.
|
295
|
-
@cache.
|
296
|
-
@cache.
|
298
|
+
expect(@terminus).to receive(:find).and_return(@instance)
|
299
|
+
expect(@cache).to receive(:find).and_raise(ArgumentError)
|
300
|
+
allow(@cache).to receive(:save)
|
297
301
|
expect(@indirection.find("/my/key")).to equal(@instance)
|
298
302
|
end
|
299
303
|
|
300
304
|
it "should send a debug log if it is using the cached object" do
|
301
|
-
Puppet.
|
302
|
-
@cache.
|
305
|
+
expect(Puppet).to receive(:debug)
|
306
|
+
allow(@cache).to receive(:find).and_return(@instance)
|
303
307
|
|
304
308
|
@indirection.find("/my/key")
|
305
309
|
end
|
306
310
|
|
307
311
|
it "should not return the cached object if it is expired" do
|
308
|
-
@instance.
|
312
|
+
allow(@instance).to receive(:expired?).and_return(true)
|
309
313
|
|
310
|
-
@cache.
|
311
|
-
@terminus.
|
314
|
+
allow(@cache).to receive(:find).and_return(@instance)
|
315
|
+
allow(@terminus).to receive(:find).and_return(nil)
|
312
316
|
expect(@indirection.find("/my/key")).to be_nil
|
313
317
|
end
|
314
318
|
|
315
319
|
it "should send an info log if it is using the cached object" do
|
316
|
-
Puppet.
|
317
|
-
@instance.
|
320
|
+
expect(Puppet).to receive(:info)
|
321
|
+
allow(@instance).to receive(:expired?).and_return(true)
|
318
322
|
|
319
|
-
@cache.
|
320
|
-
@terminus.
|
323
|
+
allow(@cache).to receive(:find).and_return(@instance)
|
324
|
+
allow(@terminus).to receive(:find).and_return(nil)
|
321
325
|
@indirection.find("/my/key")
|
322
326
|
end
|
323
327
|
|
324
328
|
it "should cache any objects not retrieved from the cache" do
|
325
|
-
@cache.
|
329
|
+
expect(@cache).to receive(:find).and_return(nil)
|
326
330
|
|
327
|
-
@terminus.
|
328
|
-
@cache.
|
331
|
+
expect(@terminus).to receive(:find).and_return(@instance)
|
332
|
+
expect(@cache).to receive(:save)
|
329
333
|
|
330
334
|
@indirection.find("/my/key")
|
331
335
|
end
|
332
336
|
|
333
337
|
it "should use a request to look in the cache for cached objects" do
|
334
|
-
@cache.
|
338
|
+
expect(@cache).to receive(:find) do |r|
|
339
|
+
expect(r.method).to eq(:find)
|
340
|
+
expect(r.key).to eq("/my/key")
|
335
341
|
|
336
|
-
|
337
|
-
|
342
|
+
nil
|
343
|
+
end
|
344
|
+
|
345
|
+
allow(@terminus).to receive(:find).and_return(@instance)
|
346
|
+
allow(@cache).to receive(:save)
|
338
347
|
|
339
348
|
@indirection.find("/my/key")
|
340
349
|
end
|
341
350
|
|
342
351
|
it "should cache the instance using a request with the instance set to the cached object" do
|
343
|
-
@cache.
|
352
|
+
allow(@cache).to receive(:find).and_return(nil)
|
344
353
|
|
345
|
-
@terminus.
|
354
|
+
allow(@terminus).to receive(:find).and_return(@instance)
|
346
355
|
|
347
|
-
@cache.
|
356
|
+
expect(@cache).to receive(:save) do |r|
|
357
|
+
expect(r.method).to eq(:save)
|
358
|
+
expect(r.instance).to eq(@instance)
|
359
|
+
end
|
348
360
|
|
349
361
|
@indirection.find("/my/key")
|
350
362
|
end
|
351
363
|
|
352
364
|
it "should send an info log that the object is being cached" do
|
353
|
-
@cache.
|
365
|
+
allow(@cache).to receive(:find).and_return(nil)
|
354
366
|
|
355
|
-
@terminus.
|
356
|
-
@cache.
|
367
|
+
allow(@terminus).to receive(:find).and_return(@instance)
|
368
|
+
allow(@cache).to receive(:save)
|
357
369
|
|
358
|
-
Puppet.
|
370
|
+
expect(Puppet).to receive(:info)
|
359
371
|
|
360
372
|
@indirection.find("/my/key")
|
361
373
|
end
|
362
374
|
|
363
375
|
it "should fail if saving to the cache fails but log the exception" do
|
364
|
-
@cache.
|
376
|
+
allow(@cache).to receive(:find).and_return(nil)
|
365
377
|
|
366
|
-
@terminus.
|
367
|
-
@cache.
|
378
|
+
allow(@terminus).to receive(:find).and_return(@instance)
|
379
|
+
allow(@cache).to receive(:save).and_raise(RuntimeError)
|
368
380
|
|
369
|
-
Puppet.
|
381
|
+
expect(Puppet).to receive(:log_exception)
|
370
382
|
|
371
383
|
expect { @indirection.find("/my/key") }.to raise_error RuntimeError
|
372
384
|
end
|
@@ -381,63 +393,63 @@ describe Puppet::Indirector::Indirection do
|
|
381
393
|
it_should_behave_like "Request validator"
|
382
394
|
|
383
395
|
it "should return true if the head method returned true" do
|
384
|
-
@terminus.
|
396
|
+
expect(@terminus).to receive(:head).and_return(true)
|
385
397
|
expect(@indirection.head("me")).to eq(true)
|
386
398
|
end
|
387
399
|
|
388
400
|
it "should return false if the head method returned false" do
|
389
|
-
@terminus.
|
401
|
+
expect(@terminus).to receive(:head).and_return(false)
|
390
402
|
expect(@indirection.head("me")).to eq(false)
|
391
403
|
end
|
392
404
|
|
393
405
|
describe "when caching is enabled" do
|
394
406
|
before do
|
395
407
|
@indirection.cache_class = :cache_terminus
|
396
|
-
@cache_class.
|
408
|
+
allow(@cache_class).to receive(:new).and_return(@cache)
|
397
409
|
|
398
|
-
@instance.
|
410
|
+
allow(@instance).to receive(:expired?).and_return(false)
|
399
411
|
end
|
400
412
|
|
401
413
|
it "should first look in the cache for an instance" do
|
402
|
-
@terminus.
|
403
|
-
@terminus.
|
404
|
-
@cache.
|
414
|
+
expect(@terminus).not_to receive(:find)
|
415
|
+
expect(@terminus).not_to receive(:head)
|
416
|
+
expect(@cache).to receive(:find).and_return(@instance)
|
405
417
|
|
406
418
|
expect(@indirection.head("/my/key")).to eq(true)
|
407
419
|
end
|
408
420
|
|
409
421
|
it "should not save to the cache" do
|
410
|
-
@cache.
|
411
|
-
@cache.
|
412
|
-
@terminus.
|
422
|
+
expect(@cache).to receive(:find).and_return(nil)
|
423
|
+
expect(@cache).not_to receive(:save)
|
424
|
+
expect(@terminus).to receive(:head).and_return(true)
|
413
425
|
expect(@indirection.head("/my/key")).to eq(true)
|
414
426
|
end
|
415
427
|
|
416
428
|
it "should not fail if the cache fails" do
|
417
|
-
@terminus.
|
429
|
+
allow(@terminus).to receive(:head).and_return(true)
|
418
430
|
|
419
|
-
@cache.
|
431
|
+
expect(@cache).to receive(:find).and_raise(ArgumentError)
|
420
432
|
expect { @indirection.head("/my/key") }.not_to raise_error
|
421
433
|
end
|
422
434
|
|
423
435
|
it "should look in the main terminus if the cache fails" do
|
424
|
-
@terminus.
|
425
|
-
@cache.
|
436
|
+
expect(@terminus).to receive(:head).and_return(true)
|
437
|
+
expect(@cache).to receive(:find).and_raise(ArgumentError)
|
426
438
|
expect(@indirection.head("/my/key")).to eq(true)
|
427
439
|
end
|
428
440
|
|
429
441
|
it "should send a debug log if it is using the cached object" do
|
430
|
-
Puppet.
|
431
|
-
@cache.
|
442
|
+
expect(Puppet).to receive(:debug)
|
443
|
+
allow(@cache).to receive(:find).and_return(@instance)
|
432
444
|
|
433
445
|
@indirection.head("/my/key")
|
434
446
|
end
|
435
447
|
|
436
448
|
it "should not accept the cached object if it is expired" do
|
437
|
-
@instance.
|
449
|
+
allow(@instance).to receive(:expired?).and_return(true)
|
438
450
|
|
439
|
-
@cache.
|
440
|
-
@terminus.
|
451
|
+
allow(@cache).to receive(:find).and_return(@instance)
|
452
|
+
allow(@terminus).to receive(:head).and_return(false)
|
441
453
|
expect(@indirection.head("/my/key")).to eq(false)
|
442
454
|
end
|
443
455
|
end
|
@@ -447,51 +459,51 @@ describe Puppet::Indirector::Indirection do
|
|
447
459
|
before { @method = :save }
|
448
460
|
|
449
461
|
it "should return the result of the save" do
|
450
|
-
@terminus.
|
462
|
+
allow(@terminus).to receive(:save).and_return("foo")
|
451
463
|
expect(@indirection.save(@instance)).to eq("foo")
|
452
464
|
end
|
453
465
|
|
454
466
|
describe "when caching is enabled" do
|
455
467
|
before do
|
456
468
|
@indirection.cache_class = :cache_terminus
|
457
|
-
@cache_class.
|
469
|
+
allow(@cache_class).to receive(:new).and_return(@cache)
|
458
470
|
|
459
|
-
@instance.
|
471
|
+
allow(@instance).to receive(:expired?).and_return(false)
|
460
472
|
end
|
461
473
|
|
462
474
|
it "should return the result of saving to the terminus" do
|
463
|
-
request =
|
475
|
+
request = double('request', :instance => @instance, :node => nil, :ignore_cache_save? => false)
|
464
476
|
|
465
|
-
@indirection.
|
477
|
+
expect(@indirection).to receive(:request).and_return(request)
|
466
478
|
|
467
|
-
@cache.
|
468
|
-
@terminus.
|
479
|
+
allow(@cache).to receive(:save)
|
480
|
+
allow(@terminus).to receive(:save).and_return(@instance)
|
469
481
|
expect(@indirection.save(@instance)).to equal(@instance)
|
470
482
|
end
|
471
483
|
|
472
484
|
it "should use a request to save the object to the cache" do
|
473
|
-
request =
|
485
|
+
request = double('request', :instance => @instance, :node => nil, :ignore_cache_save? => false)
|
474
486
|
|
475
|
-
@indirection.
|
487
|
+
expect(@indirection).to receive(:request).and_return(request)
|
476
488
|
|
477
|
-
@cache.
|
478
|
-
@terminus.
|
489
|
+
expect(@cache).to receive(:save).with(request)
|
490
|
+
allow(@terminus).to receive(:save)
|
479
491
|
@indirection.save(@instance)
|
480
492
|
end
|
481
493
|
|
482
494
|
it "should not save to the cache if the normal save fails" do
|
483
|
-
request =
|
495
|
+
request = double('request', :instance => @instance, :node => nil)
|
484
496
|
|
485
|
-
@indirection.
|
497
|
+
expect(@indirection).to receive(:request).and_return(request)
|
486
498
|
|
487
|
-
@cache.
|
488
|
-
@terminus.
|
499
|
+
expect(@cache).not_to receive(:save)
|
500
|
+
expect(@terminus).to receive(:save).and_raise("eh")
|
489
501
|
expect { @indirection.save(@instance) }.to raise_error(RuntimeError, /eh/)
|
490
502
|
end
|
491
503
|
|
492
504
|
it "should not save to the cache if told to ignore saving to the cache" do
|
493
|
-
@terminus.
|
494
|
-
@cache.
|
505
|
+
expect(@terminus).to receive(:save)
|
506
|
+
expect(@cache).not_to receive(:save)
|
495
507
|
|
496
508
|
@indirection.save(@instance, '/my/key', :ignore_cache_save => true)
|
497
509
|
end
|
@@ -506,31 +518,31 @@ describe Puppet::Indirector::Indirection do
|
|
506
518
|
it_should_behave_like "Request validator"
|
507
519
|
|
508
520
|
it "should return the result of removing the instance" do
|
509
|
-
@terminus.
|
521
|
+
allow(@terminus).to receive(:destroy).and_return("yayness")
|
510
522
|
expect(@indirection.destroy("/my/key")).to eq("yayness")
|
511
523
|
end
|
512
524
|
|
513
525
|
describe "when caching is enabled" do
|
514
526
|
before do
|
515
527
|
@indirection.cache_class = :cache_terminus
|
516
|
-
@cache_class.
|
528
|
+
expect(@cache_class).to receive(:new).and_return(@cache)
|
517
529
|
|
518
|
-
@instance.
|
530
|
+
allow(@instance).to receive(:expired?).and_return(false)
|
519
531
|
end
|
520
532
|
|
521
533
|
it "should use a request instance to search in and remove objects from the cache" do
|
522
|
-
destroy =
|
523
|
-
find =
|
534
|
+
destroy = double('destroy_request', :key => "/my/key", :node => nil)
|
535
|
+
find = double('destroy_request', :key => "/my/key", :node => nil)
|
524
536
|
|
525
|
-
@indirection.
|
526
|
-
@indirection.
|
537
|
+
expect(@indirection).to receive(:request).with(:destroy, "/my/key", nil, be_a(Hash).or(be_nil)).and_return(destroy)
|
538
|
+
expect(@indirection).to receive(:request).with(:find, "/my/key", nil, be_a(Hash).or(be_nil)).and_return(find)
|
527
539
|
|
528
|
-
cached =
|
540
|
+
cached = double('cache')
|
529
541
|
|
530
|
-
@cache.
|
531
|
-
@cache.
|
542
|
+
expect(@cache).to receive(:find).with(find).and_return(cached)
|
543
|
+
expect(@cache).to receive(:destroy).with(destroy)
|
532
544
|
|
533
|
-
@terminus.
|
545
|
+
allow(@terminus).to receive(:destroy)
|
534
546
|
|
535
547
|
@indirection.destroy("/my/key")
|
536
548
|
end
|
@@ -545,29 +557,29 @@ describe Puppet::Indirector::Indirection do
|
|
545
557
|
it_should_behave_like "Request validator"
|
546
558
|
|
547
559
|
it "should set the expiration date on any instances without one set" do
|
548
|
-
@terminus.
|
560
|
+
allow(@terminus).to receive(:search).and_return([@instance])
|
549
561
|
|
550
|
-
@indirection.
|
562
|
+
expect(@indirection).to receive(:expiration).and_return(:yay)
|
551
563
|
|
552
|
-
@instance.
|
553
|
-
@instance.
|
564
|
+
expect(@instance).to receive(:expiration).and_return(nil)
|
565
|
+
expect(@instance).to receive(:expiration=).with(:yay)
|
554
566
|
|
555
567
|
@indirection.search("/my/key")
|
556
568
|
end
|
557
569
|
|
558
570
|
it "should not override an already-set expiration date on returned instances" do
|
559
|
-
@terminus.
|
571
|
+
allow(@terminus).to receive(:search).and_return([@instance])
|
560
572
|
|
561
|
-
@indirection.
|
573
|
+
expect(@indirection).not_to receive(:expiration)
|
562
574
|
|
563
|
-
@instance.
|
564
|
-
@instance.
|
575
|
+
expect(@instance).to receive(:expiration).and_return(:yay)
|
576
|
+
expect(@instance).not_to receive(:expiration=)
|
565
577
|
|
566
578
|
@indirection.search("/my/key")
|
567
579
|
end
|
568
580
|
|
569
581
|
it "should return the results of searching in the terminus" do
|
570
|
-
@terminus.
|
582
|
+
expect(@terminus).to receive(:search).and_return([@instance])
|
571
583
|
expect(@indirection.search("/my/key")).to eq([@instance])
|
572
584
|
end
|
573
585
|
end
|
@@ -575,7 +587,7 @@ describe Puppet::Indirector::Indirection do
|
|
575
587
|
describe "and expiring a model instance" do
|
576
588
|
describe "when caching is not enabled" do
|
577
589
|
it "should do nothing" do
|
578
|
-
@cache_class.
|
590
|
+
expect(@cache_class).not_to receive(:new)
|
579
591
|
|
580
592
|
@indirection.expire("/my/key")
|
581
593
|
end
|
@@ -584,65 +596,75 @@ describe Puppet::Indirector::Indirection do
|
|
584
596
|
describe "when caching is enabled" do
|
585
597
|
before do
|
586
598
|
@indirection.cache_class = :cache_terminus
|
587
|
-
@cache_class.
|
599
|
+
expect(@cache_class).to receive(:new).and_return(@cache)
|
588
600
|
|
589
|
-
@instance.
|
601
|
+
allow(@instance).to receive(:expired?).and_return(false)
|
590
602
|
|
591
|
-
@cached =
|
603
|
+
@cached = double('cached', :expiration= => nil, :name => "/my/key")
|
592
604
|
end
|
593
605
|
|
594
606
|
it "should use a request to find within the cache" do
|
595
|
-
@cache.
|
607
|
+
expect(@cache).to receive(:find) do |r|
|
608
|
+
expect(r).to be_a(Puppet::Indirector::Request)
|
609
|
+
expect(r.method).to eq(:find)
|
610
|
+
nil
|
611
|
+
end
|
596
612
|
@indirection.expire("/my/key")
|
597
613
|
end
|
598
614
|
|
599
615
|
it "should do nothing if no such instance is cached" do
|
600
|
-
@cache.
|
616
|
+
expect(@cache).to receive(:find).and_return(nil)
|
601
617
|
|
602
618
|
@indirection.expire("/my/key")
|
603
619
|
end
|
604
620
|
|
605
621
|
it "should log when expiring a found instance" do
|
606
|
-
@cache.
|
607
|
-
@cache.
|
622
|
+
expect(@cache).to receive(:find).and_return(@cached)
|
623
|
+
allow(@cache).to receive(:save)
|
608
624
|
|
609
|
-
Puppet.
|
625
|
+
expect(Puppet).to receive(:info)
|
610
626
|
|
611
627
|
@indirection.expire("/my/key")
|
612
628
|
end
|
613
629
|
|
614
630
|
it "should set the cached instance's expiration to a time in the past" do
|
615
|
-
@cache.
|
616
|
-
@cache.
|
631
|
+
expect(@cache).to receive(:find).and_return(@cached)
|
632
|
+
allow(@cache).to receive(:save)
|
617
633
|
|
618
|
-
@cached.
|
634
|
+
expect(@cached).to receive(:expiration=).with(be < Time.now)
|
619
635
|
|
620
636
|
@indirection.expire("/my/key")
|
621
637
|
end
|
622
638
|
|
623
639
|
it "should save the now expired instance back into the cache" do
|
624
|
-
@cache.
|
640
|
+
expect(@cache).to receive(:find).and_return(@cached)
|
625
641
|
|
626
|
-
@cached.
|
642
|
+
expect(@cached).to receive(:expiration=).with(be < Time.now)
|
627
643
|
|
628
|
-
@cache.
|
644
|
+
expect(@cache).to receive(:save)
|
629
645
|
|
630
646
|
@indirection.expire("/my/key")
|
631
647
|
end
|
632
648
|
|
633
649
|
it "does not expire an instance if told to skip cache saving" do
|
634
|
-
@indirection.cache.
|
635
|
-
@indirection.cache.
|
650
|
+
expect(@indirection.cache).not_to receive(:find)
|
651
|
+
expect(@indirection.cache).not_to receive(:save)
|
636
652
|
|
637
653
|
@indirection.expire("/my/key", :ignore_cache_save => true)
|
638
654
|
end
|
639
655
|
|
640
656
|
it "should use a request to save the expired resource to the cache" do
|
641
|
-
@cache.
|
657
|
+
expect(@cache).to receive(:find).and_return(@cached)
|
658
|
+
|
659
|
+
expect(@cached).to receive(:expiration=).with(be < Time.now)
|
642
660
|
|
643
|
-
@
|
661
|
+
expect(@cache).to receive(:save) do |r|
|
662
|
+
expect(r).to be_a(Puppet::Indirector::Request)
|
663
|
+
expect(r.instance).to eq(@cached)
|
664
|
+
expect(r.method).to eq(:save)
|
644
665
|
|
645
|
-
|
666
|
+
@cached
|
667
|
+
end
|
646
668
|
|
647
669
|
@indirection.expire("/my/key")
|
648
670
|
end
|
@@ -657,7 +679,7 @@ describe Puppet::Indirector::Indirection do
|
|
657
679
|
|
658
680
|
describe "when managing indirection instances" do
|
659
681
|
it "should allow an indirection to be retrieved by name" do
|
660
|
-
@indirection = Puppet::Indirector::Indirection.new(
|
682
|
+
@indirection = Puppet::Indirector::Indirection.new(double('model'), :test)
|
661
683
|
expect(Puppet::Indirector::Indirection.instance(:test)).to equal(@indirection)
|
662
684
|
end
|
663
685
|
|
@@ -666,7 +688,7 @@ describe Puppet::Indirector::Indirection do
|
|
666
688
|
end
|
667
689
|
|
668
690
|
it "should allow an indirection's model to be retrieved by name" do
|
669
|
-
mock_model =
|
691
|
+
mock_model = double('model')
|
670
692
|
@indirection = Puppet::Indirector::Indirection.new(mock_model, :test)
|
671
693
|
expect(Puppet::Indirector::Indirection.model(:test)).to equal(mock_model)
|
672
694
|
end
|
@@ -682,10 +704,10 @@ describe Puppet::Indirector::Indirection do
|
|
682
704
|
|
683
705
|
describe "when routing to the correct the terminus class" do
|
684
706
|
before do
|
685
|
-
@indirection = Puppet::Indirector::Indirection.new(
|
686
|
-
@terminus =
|
687
|
-
@terminus_class =
|
688
|
-
Puppet::Indirector::Terminus.
|
707
|
+
@indirection = Puppet::Indirector::Indirection.new(double('model'), :test)
|
708
|
+
@terminus = double('terminus')
|
709
|
+
@terminus_class = double('terminus class', :new => @terminus)
|
710
|
+
allow(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :default).and_return(@terminus_class)
|
689
711
|
end
|
690
712
|
|
691
713
|
it "should fail if no terminus class can be picked" do
|
@@ -698,14 +720,14 @@ describe Puppet::Indirector::Indirection do
|
|
698
720
|
end
|
699
721
|
|
700
722
|
it "should use the provided Puppet setting if told to do so" do
|
701
|
-
Puppet::Indirector::Terminus.
|
723
|
+
allow(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :my_terminus).and_return(double("terminus_class2"))
|
702
724
|
Puppet[:node_terminus] = :my_terminus
|
703
725
|
@indirection.terminus_setting = :node_terminus
|
704
726
|
expect(@indirection.terminus_class).to equal(:my_terminus)
|
705
727
|
end
|
706
728
|
|
707
729
|
it "should fail if the provided terminus class is not valid" do
|
708
|
-
Puppet::Indirector::Terminus.
|
730
|
+
allow(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :nosuchclass).and_return(nil)
|
709
731
|
expect { @indirection.terminus_class = :nosuchclass }.to raise_error(ArgumentError)
|
710
732
|
end
|
711
733
|
|
@@ -716,10 +738,10 @@ describe Puppet::Indirector::Indirection do
|
|
716
738
|
|
717
739
|
describe "when specifying the terminus class to use" do
|
718
740
|
before do
|
719
|
-
@indirection = Puppet::Indirector::Indirection.new(
|
720
|
-
@terminus =
|
721
|
-
@terminus.
|
722
|
-
@terminus_class =
|
741
|
+
@indirection = Puppet::Indirector::Indirection.new(double('model'), :test)
|
742
|
+
@terminus = double('terminus')
|
743
|
+
allow(@terminus).to receive(:validate)
|
744
|
+
@terminus_class = double('terminus class', :new => @terminus)
|
723
745
|
end
|
724
746
|
|
725
747
|
it "should allow specification of a terminus type" do
|
@@ -739,17 +761,17 @@ describe Puppet::Indirector::Indirection do
|
|
739
761
|
end
|
740
762
|
|
741
763
|
it "should fail when the specified terminus class cannot be found" do
|
742
|
-
Puppet::Indirector::Terminus.
|
764
|
+
expect(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :foo).and_return(nil)
|
743
765
|
expect { @indirection.terminus_class = :foo }.to raise_error(ArgumentError)
|
744
766
|
end
|
745
767
|
|
746
768
|
it "should select the specified terminus class if a terminus class name is provided" do
|
747
|
-
Puppet::Indirector::Terminus.
|
769
|
+
expect(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :foo).and_return(@terminus_class)
|
748
770
|
expect(@indirection.terminus(:foo)).to equal(@terminus)
|
749
771
|
end
|
750
772
|
|
751
773
|
it "should use the configured terminus class if no terminus name is specified" do
|
752
|
-
Puppet::Indirector::Terminus.
|
774
|
+
allow(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :foo).and_return(@terminus_class)
|
753
775
|
@indirection.terminus_class = :foo
|
754
776
|
expect(@indirection.terminus).to equal(@terminus)
|
755
777
|
end
|
@@ -761,27 +783,27 @@ describe Puppet::Indirector::Indirection do
|
|
761
783
|
|
762
784
|
describe "when managing terminus instances" do
|
763
785
|
before do
|
764
|
-
@indirection = Puppet::Indirector::Indirection.new(
|
765
|
-
@terminus =
|
766
|
-
@terminus_class =
|
767
|
-
Puppet::Indirector::Terminus.
|
786
|
+
@indirection = Puppet::Indirector::Indirection.new(double('model'), :test)
|
787
|
+
@terminus = double('terminus')
|
788
|
+
@terminus_class = double('terminus class')
|
789
|
+
allow(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :foo).and_return(@terminus_class)
|
768
790
|
end
|
769
791
|
|
770
792
|
it "should create an instance of the chosen terminus class" do
|
771
|
-
@terminus_class.
|
793
|
+
allow(@terminus_class).to receive(:new).and_return(@terminus)
|
772
794
|
expect(@indirection.terminus(:foo)).to equal(@terminus)
|
773
795
|
end
|
774
796
|
|
775
797
|
# Make sure it caches the terminus.
|
776
798
|
it "should return the same terminus instance each time for a given name" do
|
777
|
-
@terminus_class.
|
799
|
+
allow(@terminus_class).to receive(:new).and_return(@terminus)
|
778
800
|
expect(@indirection.terminus(:foo)).to equal(@terminus)
|
779
801
|
expect(@indirection.terminus(:foo)).to equal(@terminus)
|
780
802
|
end
|
781
803
|
|
782
804
|
it "should not create a terminus instance until one is actually needed" do
|
783
|
-
Puppet::Indirector.
|
784
|
-
Puppet::Indirector::Indirection.new(
|
805
|
+
expect(Puppet::Indirector).not_to receive(:terminus)
|
806
|
+
Puppet::Indirector::Indirection.new(double('model'), :lazytest)
|
785
807
|
end
|
786
808
|
|
787
809
|
after do
|
@@ -791,11 +813,11 @@ describe Puppet::Indirector::Indirection do
|
|
791
813
|
|
792
814
|
describe "when deciding whether to cache" do
|
793
815
|
before do
|
794
|
-
@indirection = Puppet::Indirector::Indirection.new(
|
795
|
-
@terminus =
|
796
|
-
@terminus_class =
|
797
|
-
@terminus_class.
|
798
|
-
Puppet::Indirector::Terminus.
|
816
|
+
@indirection = Puppet::Indirector::Indirection.new(double('model'), :test)
|
817
|
+
@terminus = double('terminus')
|
818
|
+
@terminus_class = double('terminus class')
|
819
|
+
allow(@terminus_class).to receive(:new).and_return(@terminus)
|
820
|
+
allow(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :foo).and_return(@terminus_class)
|
799
821
|
@indirection.terminus_class = :foo
|
800
822
|
end
|
801
823
|
|
@@ -817,7 +839,7 @@ describe Puppet::Indirector::Indirection do
|
|
817
839
|
end
|
818
840
|
|
819
841
|
it "should fail to set the cache class when the specified cache class cannot be found" do
|
820
|
-
Puppet::Indirector::Terminus.
|
842
|
+
expect(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :foo).and_return(nil)
|
821
843
|
expect { @indirection.cache_class = :foo }.to raise_error(ArgumentError)
|
822
844
|
end
|
823
845
|
|
@@ -828,14 +850,14 @@ describe Puppet::Indirector::Indirection do
|
|
828
850
|
|
829
851
|
describe "when using a cache" do
|
830
852
|
before :each do
|
831
|
-
@terminus_class =
|
832
|
-
@terminus =
|
833
|
-
@terminus_class.
|
834
|
-
@cache =
|
835
|
-
@cache_class =
|
836
|
-
Puppet::Indirector::Terminus.
|
837
|
-
Puppet::Indirector::Terminus.
|
838
|
-
@indirection = Puppet::Indirector::Indirection.new(
|
853
|
+
@terminus_class = double('terminus_class')
|
854
|
+
@terminus = double('terminus')
|
855
|
+
allow(@terminus_class).to receive(:new).and_return(@terminus)
|
856
|
+
@cache = double('cache')
|
857
|
+
@cache_class = double('cache_class')
|
858
|
+
allow(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :cache_terminus).and_return(@cache_class)
|
859
|
+
allow(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :test_terminus).and_return(@terminus_class)
|
860
|
+
@indirection = Puppet::Indirector::Indirection.new(double('model'), :test)
|
839
861
|
@indirection.terminus_class = :test_terminus
|
840
862
|
end
|
841
863
|
|
@@ -846,19 +868,13 @@ describe Puppet::Indirector::Indirection do
|
|
846
868
|
end
|
847
869
|
|
848
870
|
it "should reuse the cache terminus" do
|
849
|
-
@cache_class.
|
871
|
+
expect(@cache_class).to receive(:new).and_return(@cache)
|
850
872
|
@indirection.cache_class = :cache_terminus
|
851
873
|
expect(@indirection.cache).to equal(@cache)
|
852
874
|
expect(@indirection.cache).to equal(@cache)
|
853
875
|
end
|
854
876
|
end
|
855
877
|
|
856
|
-
describe "and saving" do
|
857
|
-
end
|
858
|
-
|
859
|
-
describe "and finding" do
|
860
|
-
end
|
861
|
-
|
862
878
|
after :each do
|
863
879
|
@indirection.delete
|
864
880
|
end
|