puppet 5.5.12-x86-mingw32 → 5.5.13-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Gemfile +0 -5
- data/Gemfile.lock +11 -11
- data/lib/puppet/application/filebucket.rb +4 -0
- data/lib/puppet/configurer.rb +9 -3
- data/lib/puppet/indirector/request.rb +26 -15
- data/lib/puppet/indirector/rest.rb +16 -7
- data/lib/puppet/network/http/connection.rb +15 -7
- data/lib/puppet/transaction/event_manager.rb +1 -5
- data/lib/puppet/type/file/source.rb +0 -1
- data/lib/puppet/util/http_proxy.rb +3 -2
- data/lib/puppet/version.rb +1 -1
- data/locales/puppet.pot +108 -36
- data/man/man5/puppet.conf.5 +2 -2
- data/man/man8/puppet-agent.8 +1 -1
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-ca.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-cert.8 +1 -1
- data/man/man8/puppet-certificate.8 +1 -1
- data/man/man8/puppet-certificate_request.8 +1 -1
- data/man/man8/puppet-certificate_revocation_list.8 +1 -1
- data/man/man8/puppet-config.8 +1 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +1 -1
- data/man/man8/puppet-filebucket.8 +1 -1
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-key.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-man.8 +1 -1
- data/man/man8/puppet-master.8 +1 -1
- data/man/man8/puppet-module.8 +1 -1
- data/man/man8/puppet-node.8 +1 -1
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-status.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- data/spec/integration/agent/logging_spec.rb +5 -7
- data/spec/integration/application/apply_spec.rb +28 -26
- data/spec/integration/application/doc_spec.rb +1 -2
- data/spec/integration/application/lookup_spec.rb +5 -5
- data/spec/integration/configurer_spec.rb +5 -6
- data/spec/integration/defaults_spec.rb +5 -6
- data/spec/integration/directory_environments_spec.rb +1 -1
- data/spec/integration/faces/ca_spec.rb +2 -3
- data/spec/integration/faces/config_spec.rb +3 -4
- data/spec/integration/faces/documentation_spec.rb +0 -1
- data/spec/integration/faces/plugin_spec.rb +1 -1
- data/spec/integration/file_bucket/file_spec.rb +3 -5
- data/spec/integration/file_serving/content_spec.rb +0 -1
- data/spec/integration/file_serving/fileset_spec.rb +0 -1
- data/spec/integration/file_serving/metadata_spec.rb +0 -1
- data/spec/integration/file_serving/terminus_helper_spec.rb +0 -1
- data/spec/integration/indirector/catalog/compiler_spec.rb +10 -11
- data/spec/integration/indirector/direct_file_server_spec.rb +1 -1
- data/spec/integration/indirector/facts/facter_spec.rb +5 -5
- data/spec/integration/indirector/file_content/file_server_spec.rb +7 -8
- data/spec/integration/indirector/file_metadata/file_server_spec.rb +7 -8
- data/spec/integration/indirector/node/ldap_spec.rb +2 -3
- data/spec/integration/network/authconfig_spec.rb +23 -24
- data/spec/integration/network/formats_spec.rb +0 -1
- data/spec/integration/network/http/api/indirected_routes_spec.rb +0 -1
- data/spec/integration/node/environment_spec.rb +0 -1
- data/spec/integration/node/facts_spec.rb +9 -10
- data/spec/integration/node_spec.rb +6 -7
- data/spec/integration/parser/catalog_spec.rb +4 -2
- data/spec/integration/parser/collection_spec.rb +1 -2
- data/spec/integration/parser/compiler_spec.rb +6 -6
- data/spec/integration/parser/scope_spec.rb +1 -1
- data/spec/integration/parser/undef_param_spec.rb +1 -1
- data/spec/integration/provider/cron/crontab_spec.rb +8 -10
- data/spec/integration/provider/mailalias/aliases_spec.rb +0 -1
- data/spec/integration/provider/mount_spec.rb +9 -9
- data/spec/integration/provider/service/init_spec.rb +4 -5
- data/spec/integration/provider/service/systemd_spec.rb +0 -2
- data/spec/integration/provider/service/windows_spec.rb +1 -2
- data/spec/integration/provider/ssh_authorized_key_spec.rb +6 -8
- data/spec/integration/provider/sshkey_spec.rb +6 -12
- data/spec/integration/provider/yumrepo_spec.rb +8 -12
- data/spec/integration/reference/providers_spec.rb +0 -1
- data/spec/integration/reports_spec.rb +1 -2
- data/spec/integration/resource/catalog_spec.rb +14 -17
- data/spec/integration/resource/type_collection_spec.rb +4 -5
- data/spec/integration/ssl/certificate_authority_spec.rb +0 -1
- data/spec/integration/ssl/certificate_request_spec.rb +0 -1
- data/spec/integration/ssl/certificate_revocation_list_spec.rb +0 -1
- data/spec/integration/ssl/host_spec.rb +0 -1
- data/spec/integration/ssl/key_spec.rb +0 -1
- data/spec/integration/test/test_helper_spec.rb +1 -2
- data/spec/integration/transaction/report_spec.rb +6 -11
- data/spec/integration/transaction_spec.rb +18 -19
- data/spec/integration/type/exec_spec.rb +0 -1
- data/spec/integration/type/file_spec.rb +13 -14
- data/spec/integration/type/nagios_spec.rb +3 -5
- data/spec/integration/type/package_spec.rb +19 -23
- data/spec/integration/type/tidy_spec.rb +1 -2
- data/spec/integration/type/user_spec.rb +0 -1
- data/spec/integration/type_spec.rb +0 -1
- data/spec/integration/util/autoload_spec.rb +1 -2
- data/spec/integration/util/rdoc/parser_spec.rb +0 -1
- data/spec/integration/util/settings_spec.rb +0 -1
- data/spec/integration/util/windows/adsi_spec.rb +3 -5
- data/spec/integration/util/windows/principal_spec.rb +0 -1
- data/spec/integration/util/windows/process_spec.rb +4 -6
- data/spec/integration/util/windows/registry_spec.rb +41 -51
- data/spec/integration/util/windows/security_spec.rb +2 -4
- data/spec/integration/util/windows/user_spec.rb +18 -20
- data/spec/integration/util_spec.rb +4 -7
- data/spec/lib/puppet_spec/compiler.rb +1 -1
- data/spec/lib/puppet_spec/files.rb +0 -1
- data/spec/lib/puppet_spec/module_tool/shared_functions.rb +1 -1
- data/spec/lib/puppet_spec/scope.rb +1 -2
- data/spec/shared_behaviours/all_parsedfile_providers.rb +1 -1
- data/spec/shared_behaviours/file_server_terminus.rb +8 -9
- data/spec/shared_behaviours/file_serving.rb +6 -8
- data/spec/shared_behaviours/file_serving_model.rb +4 -6
- data/spec/shared_behaviours/hiera_indirections.rb +3 -4
- data/spec/shared_behaviours/iterative_functions.rb +0 -1
- data/spec/shared_behaviours/memory_terminus.rb +2 -2
- data/spec/shared_examples/rhel_package_provider.rb +112 -70
- data/spec/spec_helper.rb +11 -2
- data/spec/unit/agent/disabler_spec.rb +4 -5
- data/spec/unit/agent/locker_spec.rb +12 -13
- data/spec/unit/agent_spec.rb +80 -85
- data/spec/unit/application/agent_spec.rb +88 -93
- data/spec/unit/application/apply_spec.rb +78 -79
- data/spec/unit/application/cert_spec.rb +42 -49
- data/spec/unit/application/certificate_spec.rb +2 -3
- data/spec/unit/application/config_spec.rb +0 -1
- data/spec/unit/application/describe_spec.rb +6 -7
- data/spec/unit/application/device_spec.rb +175 -184
- data/spec/unit/application/doc_spec.rb +44 -46
- data/spec/unit/application/face_base_spec.rb +61 -62
- data/spec/unit/application/facts_spec.rb +3 -4
- data/spec/unit/application/filebucket_spec.rb +66 -74
- data/spec/unit/application/indirection_base_spec.rb +8 -6
- data/spec/unit/application/lookup_spec.rb +26 -26
- data/spec/unit/application/master_spec.rb +95 -95
- data/spec/unit/application/resource_spec.rb +42 -48
- data/spec/unit/application_spec.rb +74 -84
- data/spec/unit/capability_spec.rb +9 -6
- data/spec/unit/configurer/downloader_spec.rb +20 -21
- data/spec/unit/configurer/fact_handler_spec.rb +2 -3
- data/spec/unit/configurer/plugin_handler_spec.rb +41 -8
- data/spec/unit/configurer_spec.rb +190 -193
- data/spec/unit/confine/exists_spec.rb +17 -15
- data/spec/unit/confine/false_spec.rb +5 -6
- data/spec/unit/confine/feature_spec.rb +7 -5
- data/spec/unit/confine/true_spec.rb +5 -6
- data/spec/unit/confine/variable_spec.rb +14 -15
- data/spec/unit/confine_collection_spec.rb +28 -29
- data/spec/unit/confine_spec.rb +13 -14
- data/spec/unit/confiner_spec.rb +10 -11
- data/spec/unit/context/trusted_information_spec.rb +1 -1
- data/spec/unit/daemon_spec.rb +34 -35
- data/spec/unit/data_providers/function_data_provider_spec.rb +0 -1
- data/spec/unit/data_providers/hiera_data_provider_spec.rb +0 -1
- data/spec/unit/datatypes_spec.rb +3 -4
- data/spec/unit/defaults_spec.rb +17 -12
- data/spec/unit/environments_spec.rb +7 -7
- data/spec/unit/etc_spec.rb +30 -32
- data/spec/unit/external/pson_spec.rb +0 -1
- data/spec/unit/face/ca_spec.rb +0 -1
- data/spec/unit/face/catalog_spec.rb +0 -1
- data/spec/unit/face/certificate_request_spec.rb +0 -1
- data/spec/unit/face/certificate_revocation_list_spec.rb +0 -1
- data/spec/unit/face/certificate_spec.rb +7 -10
- data/spec/unit/face/config_spec.rb +31 -35
- data/spec/unit/face/epp_face_spec.rb +3 -4
- data/spec/unit/face/facts_spec.rb +5 -6
- data/spec/unit/face/generate_spec.rb +4 -5
- data/spec/unit/face/help_spec.rb +7 -8
- data/spec/unit/face/key_spec.rb +0 -1
- data/spec/unit/face/man_spec.rb +1 -2
- data/spec/unit/face/module/build_spec.rb +17 -17
- data/spec/unit/face/module/install_spec.rb +3 -5
- data/spec/unit/face/module/list_spec.rb +2 -12
- data/spec/unit/face/module/search_spec.rb +11 -9
- data/spec/unit/face/module/uninstall_spec.rb +4 -8
- data/spec/unit/face/node_spec.rb +33 -34
- data/spec/unit/face/parser_spec.rb +3 -3
- data/spec/unit/face/plugin_spec.rb +36 -9
- data/spec/unit/face/status_spec.rb +0 -1
- data/spec/unit/file_bucket/dipper_spec.rb +24 -20
- data/spec/unit/file_bucket/file_spec.rb +0 -2
- data/spec/unit/file_serving/base_spec.rb +16 -17
- data/spec/unit/file_serving/configuration/parser_spec.rb +27 -28
- data/spec/unit/file_serving/configuration_spec.rb +63 -66
- data/spec/unit/file_serving/content_spec.rb +10 -11
- data/spec/unit/file_serving/fileset_spec.rb +63 -58
- data/spec/unit/file_serving/http_metadata_spec.rb +8 -7
- data/spec/unit/file_serving/metadata_spec.rb +36 -36
- data/spec/unit/file_serving/mount/file_spec.rb +31 -32
- data/spec/unit/file_serving/mount/locales_spec.rb +23 -24
- data/spec/unit/file_serving/mount/modules_spec.rb +14 -15
- data/spec/unit/file_serving/mount/pluginfacts_spec.rb +23 -24
- data/spec/unit/file_serving/mount/plugins_spec.rb +23 -24
- data/spec/unit/file_serving/mount/tasks_spec.rb +14 -15
- data/spec/unit/file_serving/mount_spec.rb +0 -1
- data/spec/unit/file_serving/terminus_helper_spec.rb +37 -42
- data/spec/unit/file_serving/terminus_selector_spec.rb +12 -13
- data/spec/unit/file_system/uniquefile_spec.rb +4 -4
- data/spec/unit/file_system_spec.rb +2 -2
- data/spec/unit/forge/errors_spec.rb +1 -1
- data/spec/unit/forge/forge_spec.rb +13 -14
- data/spec/unit/forge/module_release_spec.rb +18 -18
- data/spec/unit/forge/repository_spec.rb +29 -30
- data/spec/unit/forge_spec.rb +15 -11
- data/spec/unit/functions/binary_file_spec.rb +3 -3
- data/spec/unit/functions/contain_spec.rb +0 -2
- data/spec/unit/functions/defined_spec.rb +0 -1
- data/spec/unit/functions/epp_spec.rb +2 -2
- data/spec/unit/functions/find_file_spec.rb +7 -7
- data/spec/unit/functions/include_spec.rb +0 -4
- data/spec/unit/functions/lookup_fixture_spec.rb +0 -1
- data/spec/unit/functions/lookup_spec.rb +1 -2
- data/spec/unit/functions/module_directory_spec.rb +12 -12
- data/spec/unit/functions/require_spec.rb +0 -3
- data/spec/unit/functions/shared.rb +5 -8
- data/spec/unit/functions/versioncmp_spec.rb +1 -2
- data/spec/unit/functions4_spec.rb +7 -8
- data/spec/unit/gettext/config_spec.rb +4 -4
- data/spec/unit/gettext/module_loading_spec.rb +7 -7
- data/spec/unit/graph/rb_tree_map_spec.rb +0 -2
- data/spec/unit/graph/relationship_graph_spec.rb +1 -2
- data/spec/unit/graph/simple_graph_spec.rb +8 -9
- data/spec/unit/hiera_puppet_spec.rb +20 -20
- data/spec/unit/indirector/catalog/compiler_spec.rb +147 -149
- data/spec/unit/indirector/catalog/json_spec.rb +1 -2
- data/spec/unit/indirector/catalog/msgpack_spec.rb +0 -1
- data/spec/unit/indirector/catalog/rest_spec.rb +0 -1
- data/spec/unit/indirector/catalog/store_configs_spec.rb +0 -1
- data/spec/unit/indirector/catalog/yaml_spec.rb +0 -1
- data/spec/unit/indirector/certificate/ca_spec.rb +2 -4
- data/spec/unit/indirector/certificate/disabled_ca_spec.rb +1 -2
- data/spec/unit/indirector/certificate/file_spec.rb +2 -3
- data/spec/unit/indirector/certificate/rest_spec.rb +8 -10
- data/spec/unit/indirector/certificate_request/ca_spec.rb +0 -1
- data/spec/unit/indirector/certificate_request/disabled_ca_spec.rb +1 -2
- data/spec/unit/indirector/certificate_request/file_spec.rb +0 -1
- data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -1
- data/spec/unit/indirector/certificate_revocation_list/ca_spec.rb +1 -2
- data/spec/unit/indirector/certificate_revocation_list/disabled_ca_spec.rb +1 -2
- data/spec/unit/indirector/certificate_revocation_list/file_spec.rb +1 -2
- data/spec/unit/indirector/certificate_revocation_list/rest_spec.rb +2 -3
- data/spec/unit/indirector/certificate_status/file_spec.rb +2 -3
- data/spec/unit/indirector/certificate_status/rest_spec.rb +0 -1
- data/spec/unit/indirector/code_spec.rb +5 -6
- data/spec/unit/indirector/direct_file_server_spec.rb +33 -27
- data/spec/unit/indirector/envelope_spec.rb +1 -2
- data/spec/unit/indirector/exec_spec.rb +15 -14
- data/spec/unit/indirector/face_spec.rb +9 -9
- data/spec/unit/indirector/facts/facter_spec.rb +37 -43
- data/spec/unit/indirector/facts/network_device_spec.rb +8 -9
- data/spec/unit/indirector/facts/rest_spec.rb +7 -8
- data/spec/unit/indirector/facts/store_configs_spec.rb +0 -1
- data/spec/unit/indirector/facts/yaml_spec.rb +2 -4
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +3 -4
- data/spec/unit/indirector/file_bucket_file/rest_spec.rb +0 -1
- data/spec/unit/indirector/file_bucket_file/selector_spec.rb +4 -5
- data/spec/unit/indirector/file_content/file_server_spec.rb +0 -1
- data/spec/unit/indirector/file_content/file_spec.rb +0 -1
- data/spec/unit/indirector/file_content/rest_spec.rb +0 -1
- data/spec/unit/indirector/file_content/selector_spec.rb +0 -1
- data/spec/unit/indirector/file_metadata/file_server_spec.rb +0 -1
- data/spec/unit/indirector/file_metadata/file_spec.rb +12 -13
- data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -1
- data/spec/unit/indirector/file_metadata/selector_spec.rb +0 -1
- data/spec/unit/indirector/file_server_spec.rb +99 -93
- data/spec/unit/indirector/indirection_spec.rb +242 -226
- data/spec/unit/indirector/json_spec.rb +7 -9
- data/spec/unit/indirector/key/ca_spec.rb +2 -3
- data/spec/unit/indirector/key/disabled_ca_spec.rb +1 -2
- data/spec/unit/indirector/key/file_spec.rb +25 -26
- data/spec/unit/indirector/ldap_spec.rb +34 -41
- data/spec/unit/indirector/memory_spec.rb +6 -7
- data/spec/unit/indirector/msgpack_spec.rb +7 -9
- data/spec/unit/indirector/node/exec_spec.rb +6 -6
- data/spec/unit/indirector/node/ldap_spec.rb +74 -76
- data/spec/unit/indirector/node/memory_spec.rb +2 -4
- data/spec/unit/indirector/node/msgpack_spec.rb +0 -1
- data/spec/unit/indirector/node/plain_spec.rb +2 -4
- data/spec/unit/indirector/node/rest_spec.rb +0 -1
- data/spec/unit/indirector/node/store_configs_spec.rb +0 -1
- data/spec/unit/indirector/node/write_only_yaml_spec.rb +1 -2
- data/spec/unit/indirector/node/yaml_spec.rb +0 -1
- data/spec/unit/indirector/none_spec.rb +5 -5
- data/spec/unit/indirector/plain_spec.rb +7 -8
- data/spec/unit/indirector/report/msgpack_spec.rb +0 -1
- data/spec/unit/indirector/report/processor_spec.rb +21 -22
- data/spec/unit/indirector/report/rest_spec.rb +11 -12
- data/spec/unit/indirector/report/yaml_spec.rb +0 -1
- data/spec/unit/indirector/request_spec.rb +11 -12
- data/spec/unit/indirector/resource/ral_spec.rb +47 -54
- data/spec/unit/indirector/resource/store_configs_spec.rb +0 -1
- data/spec/unit/indirector/rest_spec.rb +113 -110
- data/spec/unit/indirector/ssl_file_spec.rb +74 -77
- data/spec/unit/indirector/status/local_spec.rb +0 -1
- data/spec/unit/indirector/status/rest_spec.rb +0 -1
- data/spec/unit/indirector/store_configs_spec.rb +0 -1
- data/spec/unit/indirector/terminus_spec.rb +31 -29
- data/spec/unit/indirector/yaml_spec.rb +33 -32
- data/spec/unit/indirector_spec.rb +1 -2
- data/spec/unit/info_service_spec.rb +3 -1
- data/spec/unit/interface/action_builder_spec.rb +0 -1
- data/spec/unit/interface/action_manager_spec.rb +0 -1
- data/spec/unit/interface/action_spec.rb +2 -3
- data/spec/unit/interface/documentation_spec.rb +0 -1
- data/spec/unit/interface/face_collection_spec.rb +19 -12
- data/spec/unit/interface_spec.rb +3 -3
- data/spec/unit/man_spec.rb +3 -4
- data/spec/unit/module_spec.rb +46 -51
- data/spec/unit/module_tool/applications/builder_spec.rb +5 -5
- data/spec/unit/module_tool/applications/installer_spec.rb +10 -11
- data/spec/unit/module_tool/applications/searcher_spec.rb +3 -3
- data/spec/unit/module_tool/applications/uninstaller_spec.rb +1 -2
- data/spec/unit/module_tool/applications/unpacker_spec.rb +13 -13
- data/spec/unit/module_tool/applications/upgrader_spec.rb +5 -5
- data/spec/unit/module_tool/install_directory_spec.rb +8 -8
- data/spec/unit/module_tool/installed_modules_spec.rb +3 -3
- data/spec/unit/module_tool/tar/gnu_spec.rb +6 -6
- data/spec/unit/module_tool/tar/mini_spec.rb +12 -12
- data/spec/unit/module_tool/tar_spec.rb +12 -13
- data/spec/unit/module_tool_spec.rb +7 -12
- data/spec/unit/network/auth_config_parser_spec.rb +11 -13
- data/spec/unit/network/authconfig_spec.rb +17 -18
- data/spec/unit/network/authorization_spec.rb +4 -5
- data/spec/unit/network/authstore_spec.rb +0 -1
- data/spec/unit/network/format_handler_spec.rb +0 -1
- data/spec/unit/network/format_spec.rb +9 -10
- data/spec/unit/network/format_support_spec.rb +28 -29
- data/spec/unit/network/formats_spec.rb +4 -5
- data/spec/unit/network/http/api/ca/v1_spec.rb +1 -1
- data/spec/unit/network/http/api/indirected_routes_spec.rb +22 -29
- data/spec/unit/network/http/api/master/v3/authorization_spec.rb +2 -2
- data/spec/unit/network/http/api/master/v3/environment_spec.rb +1 -1
- data/spec/unit/network/http/api/master/v3/environments_spec.rb +6 -7
- data/spec/unit/network/http/api_spec.rb +1 -3
- data/spec/unit/network/http/compression_spec.rb +21 -22
- data/spec/unit/network/http/connection_spec.rb +39 -36
- data/spec/unit/network/http/factory_spec.rb +5 -6
- data/spec/unit/network/http/handler_spec.rb +9 -18
- data/spec/unit/network/http/nocache_pool_spec.rb +6 -7
- data/spec/unit/network/http/pool_spec.rb +28 -29
- data/spec/unit/network/http/rack/rest_spec.rb +24 -27
- data/spec/unit/network/http/rack_spec.rb +5 -6
- data/spec/unit/network/http/request_spec.rb +0 -2
- data/spec/unit/network/http/response_spec.rb +11 -13
- data/spec/unit/network/http/route_spec.rb +0 -1
- data/spec/unit/network/http/session_spec.rb +1 -2
- data/spec/unit/network/http/site_spec.rb +0 -1
- data/spec/unit/network/http/webrick/rest_spec.rb +40 -41
- data/spec/unit/network/http/webrick_spec.rb +49 -52
- data/spec/unit/network/http_pool_spec.rb +18 -9
- data/spec/unit/network/http_spec.rb +0 -1
- data/spec/unit/network/resolver_spec.rb +16 -17
- data/spec/unit/network/rights_spec.rb +52 -53
- data/spec/unit/network/server_spec.rb +12 -13
- data/spec/unit/node/environment_spec.rb +16 -14
- data/spec/unit/node/facts_spec.rb +5 -7
- data/spec/unit/node_spec.rb +4 -10
- data/spec/unit/other/selinux_spec.rb +2 -3
- data/spec/unit/parameter/boolean_spec.rb +1 -2
- data/spec/unit/parameter/package_options_spec.rb +1 -2
- data/spec/unit/parameter/path_spec.rb +0 -1
- data/spec/unit/parameter/value_collection_spec.rb +0 -1
- data/spec/unit/parameter/value_spec.rb +0 -1
- data/spec/unit/parameter_spec.rb +9 -9
- data/spec/unit/parser/ast/block_expression_spec.rb +6 -8
- data/spec/unit/parser/ast/leaf_spec.rb +20 -21
- data/spec/unit/parser/compiler_spec.rb +84 -96
- data/spec/unit/parser/environment_compiler_spec.rb +11 -9
- data/spec/unit/parser/files_spec.rb +0 -1
- data/spec/unit/parser/functions/create_resources_spec.rb +1 -1
- data/spec/unit/parser/functions/digest_spec.rb +0 -1
- data/spec/unit/parser/functions/fail_spec.rb +1 -2
- data/spec/unit/parser/functions/file_spec.rb +13 -14
- data/spec/unit/parser/functions/fqdn_rand_spec.rb +5 -6
- data/spec/unit/parser/functions/generate_spec.rb +7 -8
- data/spec/unit/parser/functions/inline_template_spec.rb +0 -1
- data/spec/unit/parser/functions/regsubst_spec.rb +0 -1
- data/spec/unit/parser/functions/scanf_spec.rb +0 -1
- data/spec/unit/parser/functions/shellquote_spec.rb +0 -1
- data/spec/unit/parser/functions/split_spec.rb +0 -1
- data/spec/unit/parser/functions/sprintf_spec.rb +0 -1
- data/spec/unit/parser/functions/tag_spec.rb +1 -2
- data/spec/unit/parser/functions/tagged_spec.rb +2 -3
- data/spec/unit/parser/functions/template_spec.rb +13 -13
- data/spec/unit/parser/functions/versioncmp_spec.rb +1 -2
- data/spec/unit/parser/functions_spec.rb +3 -4
- data/spec/unit/parser/relationship_spec.rb +0 -1
- data/spec/unit/parser/resource_spec.rb +42 -42
- data/spec/unit/parser/scope_spec.rb +39 -35
- data/spec/unit/parser/templatewrapper_spec.rb +11 -12
- data/spec/unit/parser/type_loader_spec.rb +17 -19
- data/spec/unit/pops/adaptable_spec.rb +0 -1
- data/spec/unit/pops/benchmark_spec.rb +0 -1
- data/spec/unit/pops/evaluator/access_ops_spec.rb +0 -1
- data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +0 -1
- data/spec/unit/pops/evaluator/basic_expressions_spec.rb +0 -1
- data/spec/unit/pops/evaluator/collections_ops_spec.rb +0 -1
- data/spec/unit/pops/evaluator/comparison_ops_spec.rb +0 -1
- data/spec/unit/pops/evaluator/conditionals_spec.rb +0 -1
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +6 -6
- data/spec/unit/pops/evaluator/logical_ops_spec.rb +0 -1
- data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +0 -1
- data/spec/unit/pops/evaluator/string_interpolation_spec.rb +0 -1
- data/spec/unit/pops/evaluator/variables_spec.rb +0 -1
- data/spec/unit/pops/factory_spec.rb +3 -4
- data/spec/unit/pops/issues_spec.rb +19 -20
- data/spec/unit/pops/loaders/loader_spec.rb +8 -4
- data/spec/unit/pops/loaders/loaders_spec.rb +30 -27
- data/spec/unit/pops/lookup/context_spec.rb +0 -1
- data/spec/unit/pops/lookup/interpolation_spec.rb +2 -3
- data/spec/unit/pops/merge_strategy_spec.rb +0 -1
- data/spec/unit/pops/migration_spec.rb +3 -5
- data/spec/unit/pops/model/model_spec.rb +0 -1
- data/spec/unit/pops/model/pn_transformer_spec.rb +0 -1
- data/spec/unit/pops/parser/locator_spec.rb +3 -6
- data/spec/unit/pops/parser/parse_application_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_calls_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_capabilities_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_conditionals_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_containers_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_plan_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_resource_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_site_spec.rb +0 -1
- data/spec/unit/pops/parser/pn_parser_spec.rb +0 -1
- data/spec/unit/pops/pn_spec.rb +0 -1
- data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -1
- data/spec/unit/pops/serialization/serialization_spec.rb +1 -1
- data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
- data/spec/unit/pops/types/recursion_guard_spec.rb +10 -10
- data/spec/unit/pops/types/ruby_generator_spec.rb +2 -2
- data/spec/unit/pops/types/type_asserter_spec.rb +2 -2
- data/spec/unit/pops/types/type_calculator_spec.rb +36 -36
- data/spec/unit/pops/types/type_parser_spec.rb +13 -13
- data/spec/unit/pops/validator/validator_spec.rb +1 -2
- data/spec/unit/pops/visitor_spec.rb +0 -1
- data/spec/unit/property/boolean_spec.rb +1 -1
- data/spec/unit/property/ensure_spec.rb +0 -1
- data/spec/unit/property/keyvalue_spec.rb +32 -34
- data/spec/unit/property/list_spec.rb +26 -27
- data/spec/unit/property/ordered_list_spec.rb +10 -14
- data/spec/unit/property_spec.rb +42 -43
- data/spec/unit/provider/aix_object_spec.rb +47 -45
- data/spec/unit/provider/augeas/augeas_spec.rb +192 -192
- data/spec/unit/provider/cisco_spec.rb +1 -2
- data/spec/unit/provider/command_spec.rb +9 -9
- data/spec/unit/provider/cron/crontab_spec.rb +10 -11
- data/spec/unit/provider/cron/parsed_spec.rb +22 -24
- data/spec/unit/provider/exec/posix_spec.rb +6 -7
- data/spec/unit/provider/exec/shell_spec.rb +0 -1
- data/spec/unit/provider/exec/windows_spec.rb +2 -4
- data/spec/unit/provider/exec_spec.rb +0 -1
- data/spec/unit/provider/file/posix_spec.rb +22 -24
- data/spec/unit/provider/file/windows_spec.rb +15 -17
- data/spec/unit/provider/group/aix_spec.rb +3 -2
- data/spec/unit/provider/group/groupadd_spec.rb +30 -26
- data/spec/unit/provider/group/ldap_spec.rb +18 -18
- data/spec/unit/provider/group/pw_spec.rb +11 -11
- data/spec/unit/provider/group/windows_adsi_spec.rb +54 -54
- data/spec/unit/provider/host/parsed_spec.rb +6 -6
- data/spec/unit/provider/interface/cisco_spec.rb +20 -24
- data/spec/unit/provider/ldap_spec.rb +61 -62
- data/spec/unit/provider/macauthorization_spec.rb +26 -47
- data/spec/unit/provider/mcx/mcxcontent_spec.rb +45 -47
- data/spec/unit/provider/mount/parsed_spec.rb +18 -24
- data/spec/unit/provider/mount_spec.rb +57 -66
- data/spec/unit/provider/naginator_spec.rb +13 -14
- data/spec/unit/provider/nameservice/directoryservice_spec.rb +35 -36
- data/spec/unit/provider/nameservice_spec.rb +38 -40
- data/spec/unit/provider/network_device_spec.rb +28 -28
- data/spec/unit/provider/package/aix_spec.rb +15 -15
- data/spec/unit/provider/package/appdmg_spec.rb +13 -13
- data/spec/unit/provider/package/apt_spec.rb +44 -27
- data/spec/unit/provider/package/aptitude_spec.rb +6 -7
- data/spec/unit/provider/package/aptrpm_spec.rb +7 -12
- data/spec/unit/provider/package/base_spec.rb +4 -4
- data/spec/unit/provider/package/dnf_spec.rb +14 -16
- data/spec/unit/provider/package/dpkg_spec.rb +52 -52
- data/spec/unit/provider/package/freebsd_spec.rb +11 -11
- data/spec/unit/provider/package/gem_spec.rb +51 -43
- data/spec/unit/provider/package/hpux_spec.rb +8 -8
- data/spec/unit/provider/package/macports_spec.rb +46 -42
- data/spec/unit/provider/package/nim_spec.rb +30 -39
- data/spec/unit/provider/package/openbsd_spec.rb +36 -39
- data/spec/unit/provider/package/opkg_spec.rb +23 -26
- data/spec/unit/provider/package/pacman_spec.rb +97 -118
- data/spec/unit/provider/package/pip_spec.rb +69 -71
- data/spec/unit/provider/package/pkg_spec.rb +109 -109
- data/spec/unit/provider/package/pkgdmg_spec.rb +65 -63
- data/spec/unit/provider/package/pkgin_spec.rb +10 -8
- data/spec/unit/provider/package/pkgng_spec.rb +17 -18
- data/spec/unit/provider/package/pkgutil_spec.rb +45 -49
- data/spec/unit/provider/package/portage_spec.rb +70 -74
- data/spec/unit/provider/package/puppet_gem_spec.rb +28 -8
- data/spec/unit/provider/package/rpm_spec.rb +53 -64
- data/spec/unit/provider/package/sun_spec.rb +16 -18
- data/spec/unit/provider/package/tdnf_spec.rb +2 -2
- data/spec/unit/provider/package/up2date_spec.rb +2 -4
- data/spec/unit/provider/package/urpmi_spec.rb +15 -17
- data/spec/unit/provider/package/windows/exe_package_spec.rb +12 -15
- data/spec/unit/provider/package/windows/msi_package_spec.rb +19 -22
- data/spec/unit/provider/package/windows/package_spec.rb +37 -42
- data/spec/unit/provider/package/windows_spec.rb +36 -32
- data/spec/unit/provider/package/yum_spec.rb +4 -4
- data/spec/unit/provider/package/zypper_spec.rb +87 -87
- data/spec/unit/provider/parsedfile_spec.rb +44 -45
- data/spec/unit/provider/scheduled_task/win32_taskscheduler_spec.rb +120 -130
- data/spec/unit/provider/selboolean_spec.rb +9 -11
- data/spec/unit/provider/selmodule_spec.rb +20 -22
- data/spec/unit/provider/service/base_spec.rb +4 -5
- data/spec/unit/provider/service/bsd_spec.rb +27 -29
- data/spec/unit/provider/service/daemontools_spec.rb +35 -35
- data/spec/unit/provider/service/debian_spec.rb +37 -37
- data/spec/unit/provider/service/freebsd_spec.rb +18 -18
- data/spec/unit/provider/service/gentoo_spec.rb +50 -56
- data/spec/unit/provider/service/init_spec.rb +55 -55
- data/spec/unit/provider/service/launchd_spec.rb +138 -116
- data/spec/unit/provider/service/openbsd_spec.rb +50 -50
- data/spec/unit/provider/service/openrc_spec.rb +43 -46
- data/spec/unit/provider/service/openwrt_spec.rb +26 -32
- data/spec/unit/provider/service/rcng_spec.rb +14 -14
- data/spec/unit/provider/service/redhat_spec.rb +45 -43
- data/spec/unit/provider/service/runit_spec.rb +29 -27
- data/spec/unit/provider/service/smf_spec.rb +74 -66
- data/spec/unit/provider/service/src_spec.rb +46 -47
- data/spec/unit/provider/service/systemd_spec.rb +93 -98
- data/spec/unit/provider/service/upstart_spec.rb +74 -72
- data/spec/unit/provider/service/windows_spec.rb +33 -41
- data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +54 -68
- data/spec/unit/provider/sshkey/parsed_spec.rb +7 -8
- data/spec/unit/provider/user/aix_spec.rb +31 -31
- data/spec/unit/provider/user/directoryservice_spec.rb +109 -114
- data/spec/unit/provider/user/hpux_spec.rb +15 -15
- data/spec/unit/provider/user/ldap_spec.rb +57 -57
- data/spec/unit/provider/user/openbsd_spec.rb +10 -12
- data/spec/unit/provider/user/pw_spec.rb +37 -35
- data/spec/unit/provider/user/user_role_add_spec.rb +93 -93
- data/spec/unit/provider/user/useradd_spec.rb +93 -92
- data/spec/unit/provider/user/windows_adsi_spec.rb +59 -60
- data/spec/unit/provider/vlan/cisco_spec.rb +10 -12
- data/spec/unit/provider/yumrepo/inifile_spec.rb +75 -80
- data/spec/unit/provider/zfs/zfs_spec.rb +26 -21
- data/spec/unit/provider/zone/solaris_spec.rb +56 -42
- data/spec/unit/provider/zpool/zpool_spec.rb +19 -20
- data/spec/unit/provider_spec.rb +29 -29
- data/spec/unit/puppet_pal_2pec.rb +4 -5
- data/spec/unit/puppet_pal_spec.rb +0 -1
- data/spec/unit/puppet_spec.rb +7 -8
- data/spec/unit/relationship_spec.rb +0 -1
- data/spec/unit/reports/http_spec.rb +21 -23
- data/spec/unit/reports/store_spec.rb +3 -4
- data/spec/unit/reports_spec.rb +12 -14
- data/spec/unit/resource/capability_finder_spec.rb +18 -16
- data/spec/unit/resource/catalog_spec.rb +72 -68
- data/spec/unit/resource/status_spec.rb +6 -8
- data/spec/unit/resource/type_collection_spec.rb +17 -18
- data/spec/unit/resource/type_spec.rb +34 -35
- data/spec/unit/resource_spec.rb +36 -32
- data/spec/unit/scheduler/job_spec.rb +0 -1
- data/spec/unit/scheduler/scheduler_spec.rb +0 -1
- data/spec/unit/scheduler/splay_job_spec.rb +1 -2
- data/spec/unit/settings/array_setting_spec.rb +1 -1
- data/spec/unit/settings/autosign_setting_spec.rb +9 -9
- data/spec/unit/settings/certificate_revocation_setting_spec.rb +1 -1
- data/spec/unit/settings/config_file_spec.rb +0 -1
- data/spec/unit/settings/directory_setting_spec.rb +2 -7
- data/spec/unit/settings/duration_setting_spec.rb +1 -2
- data/spec/unit/settings/enum_setting_spec.rb +1 -1
- data/spec/unit/settings/environment_conf_spec.rb +4 -6
- data/spec/unit/settings/file_setting_spec.rb +44 -46
- data/spec/unit/settings/path_setting_spec.rb +1 -2
- data/spec/unit/settings/priority_setting_spec.rb +1 -2
- data/spec/unit/settings/string_setting_spec.rb +14 -15
- data/spec/unit/settings/terminus_setting_spec.rb +1 -2
- data/spec/unit/settings/value_translator_spec.rb +0 -1
- data/spec/unit/settings_spec.rb +226 -233
- data/spec/unit/ssl/base_spec.rb +14 -15
- data/spec/unit/ssl/certificate_authority/autosign_command_spec.rb +6 -7
- data/spec/unit/ssl/certificate_authority/interface_spec.rb +116 -113
- data/spec/unit/ssl/certificate_authority_spec.rb +258 -268
- data/spec/unit/ssl/certificate_factory_spec.rb +3 -5
- data/spec/unit/ssl/certificate_request_attributes_spec.rb +2 -3
- data/spec/unit/ssl/certificate_request_spec.rb +66 -67
- data/spec/unit/ssl/certificate_revocation_list_spec.rb +3 -4
- data/spec/unit/ssl/certificate_spec.rb +23 -25
- data/spec/unit/ssl/configuration_spec.rb +1 -4
- data/spec/unit/ssl/digest_spec.rb +0 -1
- data/spec/unit/ssl/host_spec.rb +217 -188
- data/spec/unit/ssl/inventory_spec.rb +25 -21
- data/spec/unit/ssl/key_spec.rb +30 -31
- data/spec/unit/ssl/validator_spec.rb +40 -40
- data/spec/unit/task_spec.rb +6 -7
- data/spec/unit/transaction/additional_resource_generator_spec.rb +6 -5
- data/spec/unit/transaction/event_manager_spec.rb +88 -88
- data/spec/unit/transaction/event_spec.rb +16 -15
- data/spec/unit/transaction/persistence_spec.rb +16 -17
- data/spec/unit/transaction/report_spec.rb +11 -12
- data/spec/unit/transaction/resource_harness_spec.rb +28 -33
- data/spec/unit/transaction_spec.rb +98 -100
- data/spec/unit/type/augeas_spec.rb +11 -10
- data/spec/unit/type/component_spec.rb +0 -1
- data/spec/unit/type/computer_spec.rb +7 -10
- data/spec/unit/type/cron_spec.rb +3 -7
- data/spec/unit/type/exec_spec.rb +60 -56
- data/spec/unit/type/file/checksum_spec.rb +9 -10
- data/spec/unit/type/file/checksum_value_spec.rb +31 -32
- data/spec/unit/type/file/content_spec.rb +58 -61
- data/spec/unit/type/file/ctime_spec.rb +0 -1
- data/spec/unit/type/file/ensure_spec.rb +12 -13
- data/spec/unit/type/file/group_spec.rb +5 -7
- data/spec/unit/type/file/mode_spec.rb +4 -6
- data/spec/unit/type/file/mtime_spec.rb +0 -1
- data/spec/unit/type/file/owner_spec.rb +6 -8
- data/spec/unit/type/file/selinux_spec.rb +17 -19
- data/spec/unit/type/file/source_spec.rb +104 -101
- data/spec/unit/type/file/type_spec.rb +0 -1
- data/spec/unit/type/file_spec.rb +195 -185
- data/spec/unit/type/filebucket_spec.rb +4 -5
- data/spec/unit/type/group_spec.rb +6 -8
- data/spec/unit/type/host_spec.rb +2 -3
- data/spec/unit/type/interface_spec.rb +2 -3
- data/spec/unit/type/k5login_spec.rb +3 -4
- data/spec/unit/type/macauthorization_spec.rb +6 -8
- data/spec/unit/type/mailalias_spec.rb +2 -3
- data/spec/unit/type/maillist_spec.rb +6 -9
- data/spec/unit/type/mcx_spec.rb +4 -8
- data/spec/unit/type/mount_spec.rb +26 -38
- data/spec/unit/type/nagios_spec.rb +0 -1
- data/spec/unit/type/noop_metaparam_spec.rb +1 -2
- data/spec/unit/type/package/package_settings_spec.rb +44 -23
- data/spec/unit/type/package_spec.rb +53 -54
- data/spec/unit/type/resources_spec.rb +86 -88
- data/spec/unit/type/schedule_spec.rb +24 -26
- data/spec/unit/type/scheduled_task_spec.rb +1 -2
- data/spec/unit/type/selboolean_spec.rb +5 -6
- data/spec/unit/type/selmodule_spec.rb +0 -1
- data/spec/unit/type/service_spec.rb +47 -47
- data/spec/unit/type/ssh_authorized_key_spec.rb +5 -35
- data/spec/unit/type/sshkey_spec.rb +0 -2
- data/spec/unit/type/stage_spec.rb +0 -1
- data/spec/unit/type/tidy_spec.rb +61 -62
- data/spec/unit/type/user_spec.rb +41 -27
- data/spec/unit/type/vlan_spec.rb +2 -4
- data/spec/unit/type/whit_spec.rb +0 -1
- data/spec/unit/type/zfs_spec.rb +6 -7
- data/spec/unit/type/zone_spec.rb +14 -4
- data/spec/unit/type/zpool_spec.rb +4 -5
- data/spec/unit/type_spec.rb +54 -53
- data/spec/unit/util/at_fork_spec.rb +18 -19
- data/spec/unit/util/autoload_spec.rb +53 -54
- data/spec/unit/util/backups_spec.rb +34 -35
- data/spec/unit/util/character_encoding_spec.rb +8 -8
- data/spec/unit/util/checksums_spec.rb +38 -39
- data/spec/unit/util/colors_spec.rb +1 -2
- data/spec/unit/util/command_line_spec.rb +24 -25
- data/spec/unit/util/constant_inflector_spec.rb +0 -1
- data/spec/unit/util/diff_spec.rb +7 -8
- data/spec/unit/util/errors_spec.rb +0 -1
- data/spec/unit/util/execution_spec.rb +187 -162
- data/spec/unit/util/execution_stub_spec.rb +0 -1
- data/spec/unit/util/feature_spec.rb +13 -13
- data/spec/unit/util/filetype_spec.rb +49 -49
- data/spec/unit/util/http_proxy_spec.rb +12 -12
- data/spec/unit/util/inifile_spec.rb +26 -31
- data/spec/unit/util/json_lockfile_spec.rb +3 -5
- data/spec/unit/util/ldap/connection_spec.rb +26 -25
- data/spec/unit/util/ldap/generator_spec.rb +0 -1
- data/spec/unit/util/ldap/manager_spec.rb +102 -101
- data/spec/unit/util/lockfile_spec.rb +0 -1
- data/spec/unit/util/log/destinations_spec.rb +30 -33
- data/spec/unit/util/log_spec.rb +35 -36
- data/spec/unit/util/logging_spec.rb +58 -66
- data/spec/unit/util/metric_spec.rb +0 -1
- data/spec/unit/util/monkey_patches_spec.rb +7 -9
- data/spec/unit/util/multi_match_spec.rb +0 -1
- data/spec/unit/util/nagios_maker_spec.rb +35 -36
- data/spec/unit/util/network_device/cisco/device_spec.rb +59 -50
- data/spec/unit/util/network_device/cisco/facts_spec.rb +4 -5
- data/spec/unit/util/network_device/cisco/interface_spec.rb +29 -20
- data/spec/unit/util/network_device/config_spec.rb +0 -1
- data/spec/unit/util/network_device/ipcalc_spec.rb +0 -1
- data/spec/unit/util/network_device/transport/base_spec.rb +5 -6
- data/spec/unit/util/network_device/transport/ssh_spec.rb +94 -60
- data/spec/unit/util/network_device/transport/telnet_spec.rb +18 -14
- data/spec/unit/util/network_device_spec.rb +7 -9
- data/spec/unit/util/package_spec.rb +0 -1
- data/spec/unit/util/pidlock_spec.rb +13 -14
- data/spec/unit/util/plist_spec.rb +40 -33
- data/spec/unit/util/posix_spec.rb +54 -51
- data/spec/unit/util/rdoc_spec.rb +9 -10
- data/spec/unit/util/reference_spec.rb +0 -1
- data/spec/unit/util/resource_template_spec.rb +20 -20
- data/spec/unit/util/retry_action_spec.rb +7 -8
- data/spec/unit/util/rubygems_spec.rb +14 -14
- data/spec/unit/util/run_mode_spec.rb +3 -4
- data/spec/unit/util/selinux_spec.rb +79 -72
- data/spec/unit/util/splayer_spec.rb +8 -9
- data/spec/unit/util/ssl_spec.rb +0 -1
- data/spec/unit/util/storage_spec.rb +3 -4
- data/spec/unit/util/suidmanager_spec.rb +45 -54
- data/spec/unit/util/symbolic_file_mode_spec.rb +0 -1
- data/spec/unit/util/tag_set_spec.rb +0 -1
- data/spec/unit/util/tagging_spec.rb +0 -1
- data/spec/unit/util/terminal_spec.rb +9 -10
- data/spec/unit/util/user_attr_spec.rb +1 -2
- data/spec/unit/util/warnings_spec.rb +3 -4
- data/spec/unit/util/watcher/periodic_watcher_spec.rb +2 -2
- data/spec/unit/util/watcher_spec.rb +51 -21
- data/spec/unit/util/windows/access_control_entry_spec.rb +0 -1
- data/spec/unit/util/windows/access_control_list_spec.rb +0 -1
- data/spec/unit/util/windows/adsi_spec.rb +136 -138
- data/spec/unit/util/windows/api_types_spec.rb +0 -1
- data/spec/unit/util/windows/eventlog_spec.rb +9 -12
- data/spec/unit/util/windows/file_spec.rb +0 -1
- data/spec/unit/util/windows/root_certs_spec.rb +0 -1
- data/spec/unit/util/windows/security_descriptor_spec.rb +0 -2
- data/spec/unit/util/windows/service_spec.rb +66 -68
- data/spec/unit/util/windows/sid_spec.rb +11 -13
- data/spec/unit/util/windows/string_spec.rb +0 -1
- data/spec/unit/util_spec.rb +55 -59
- data/spec/unit/version_spec.rb +6 -6
- metadata +2 -2
@@ -1,107 +1,111 @@
|
|
1
|
-
#! /usr/bin/env ruby
|
2
1
|
require 'spec_helper'
|
3
2
|
|
4
3
|
require 'puppet/indirector/file_server'
|
5
4
|
require 'puppet/file_serving/configuration'
|
6
5
|
|
7
6
|
describe Puppet::Indirector::FileServer do
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
@
|
12
|
-
|
13
|
-
Puppet::Indirector::Indirection.stubs(:instance).returns(@indirection)
|
7
|
+
before(:each) do
|
8
|
+
allow(Puppet::Indirector::Terminus).to receive(:register_terminus_class)
|
9
|
+
@model = double('model')
|
10
|
+
@indirection = double('indirection', :name => :mystuff, :register_terminus_type => nil, :model => @model)
|
11
|
+
allow(Puppet::Indirector::Indirection).to receive(:instance).and_return(@indirection)
|
14
12
|
|
15
13
|
module Testing; end
|
14
|
+
|
15
|
+
# The Indirector does a lot of class-level caching of things, and indirections register themselves
|
16
|
+
# whenever they're created (at include time), which makes working with them in tests _very_ annoying.
|
17
|
+
# We're effectively undefining the test class if it exists from a previous test so that we can
|
18
|
+
# re-register the new one as any mocks/stubs that existed on the old one from a previous test will no
|
19
|
+
# longer be valid, and will cause rspec-mocks to (rightfully) blow up.
|
20
|
+
Testing.send(:remove_const, :MyFileServer) if Testing.constants.include?(:MyFileServer)
|
21
|
+
|
16
22
|
@file_server_class = class Testing::MyFileServer < Puppet::Indirector::FileServer
|
17
23
|
self
|
18
24
|
end
|
19
|
-
end
|
20
25
|
|
21
|
-
before :each do
|
22
26
|
@file_server = @file_server_class.new
|
23
27
|
|
24
28
|
@uri = "puppet://host/my/local/file"
|
25
|
-
@configuration =
|
26
|
-
Puppet::FileServing::Configuration.
|
29
|
+
@configuration = double('configuration')
|
30
|
+
allow(Puppet::FileServing::Configuration).to receive(:configuration).and_return(@configuration)
|
27
31
|
|
28
32
|
@request = Puppet::Indirector::Request.new(:myind, :mymethod, @uri, :environment => "myenv")
|
29
33
|
end
|
30
34
|
|
31
35
|
describe "when finding files" do
|
32
36
|
before do
|
33
|
-
@mount =
|
34
|
-
@instance =
|
37
|
+
@mount = double('mount', :find => nil)
|
38
|
+
@instance = double('instance', :links= => nil, :collect => nil)
|
35
39
|
end
|
36
40
|
|
37
41
|
it "should use the configuration to find the mount and relative path" do
|
38
|
-
@configuration.
|
42
|
+
expect(@configuration).to receive(:split_path).with(@request)
|
39
43
|
|
40
44
|
@file_server.find(@request)
|
41
45
|
end
|
42
46
|
|
43
47
|
it "should return nil if it cannot find the mount" do
|
44
|
-
@configuration.
|
48
|
+
expect(@configuration).to receive(:split_path).with(@request).and_return([nil, nil])
|
45
49
|
|
46
50
|
expect(@file_server.find(@request)).to be_nil
|
47
51
|
end
|
48
52
|
|
49
53
|
it "should use the mount to find the full path" do
|
50
|
-
@configuration.
|
54
|
+
expect(@configuration).to receive(:split_path).with(@request).and_return([@mount, "rel/path"])
|
51
55
|
|
52
|
-
@mount.
|
56
|
+
expect(@mount).to receive(:find).with("rel/path", anything)
|
53
57
|
|
54
58
|
@file_server.find(@request)
|
55
59
|
end
|
56
60
|
|
57
61
|
it "should pass the request when finding a file" do
|
58
|
-
@configuration.
|
62
|
+
expect(@configuration).to receive(:split_path).with(@request).and_return([@mount, "rel/path"])
|
59
63
|
|
60
|
-
@mount.
|
64
|
+
expect(@mount).to receive(:find).with(anything, @request)
|
61
65
|
|
62
66
|
@file_server.find(@request)
|
63
67
|
end
|
64
68
|
|
65
69
|
it "should return nil if it cannot find a full path" do
|
66
|
-
@configuration.
|
70
|
+
expect(@configuration).to receive(:split_path).with(@request).and_return([@mount, "rel/path"])
|
67
71
|
|
68
|
-
@mount.
|
72
|
+
expect(@mount).to receive(:find).with("rel/path", anything).and_return(nil)
|
69
73
|
|
70
74
|
expect(@file_server.find(@request)).to be_nil
|
71
75
|
end
|
72
76
|
|
73
77
|
it "should create an instance with the found path" do
|
74
|
-
@configuration.
|
78
|
+
expect(@configuration).to receive(:split_path).with(@request).and_return([@mount, "rel/path"])
|
75
79
|
|
76
|
-
@mount.
|
80
|
+
expect(@mount).to receive(:find).with("rel/path", anything).and_return("/my/file")
|
77
81
|
|
78
|
-
@model.
|
82
|
+
expect(@model).to receive(:new).with("/my/file", {:relative_path => nil}).and_return(@instance)
|
79
83
|
|
80
84
|
expect(@file_server.find(@request)).to equal(@instance)
|
81
85
|
end
|
82
86
|
|
83
87
|
it "should set 'links' on the instance if it is set in the request options" do
|
84
88
|
@request.options[:links] = true
|
85
|
-
@configuration.
|
89
|
+
expect(@configuration).to receive(:split_path).with(@request).and_return([@mount, "rel/path"])
|
86
90
|
|
87
|
-
@mount.
|
91
|
+
expect(@mount).to receive(:find).with("rel/path", anything).and_return("/my/file")
|
88
92
|
|
89
|
-
@model.
|
93
|
+
expect(@model).to receive(:new).with("/my/file", {:relative_path => nil}).and_return(@instance)
|
90
94
|
|
91
|
-
@instance.
|
95
|
+
expect(@instance).to receive(:links=).with(true)
|
92
96
|
|
93
97
|
expect(@file_server.find(@request)).to equal(@instance)
|
94
98
|
end
|
95
99
|
|
96
100
|
it "should collect the instance" do
|
97
101
|
@request.options[:links] = true
|
98
|
-
@configuration.
|
102
|
+
expect(@configuration).to receive(:split_path).with(@request).and_return([@mount, "rel/path"])
|
99
103
|
|
100
|
-
@mount.
|
104
|
+
expect(@mount).to receive(:find).with("rel/path", anything).and_return("/my/file")
|
101
105
|
|
102
|
-
@model.
|
106
|
+
expect(@model).to receive(:new).with("/my/file", {:relative_path => nil}).and_return(@instance)
|
103
107
|
|
104
|
-
@instance.
|
108
|
+
expect(@instance).to receive(:collect)
|
105
109
|
|
106
110
|
expect(@file_server.find(@request)).to equal(@instance)
|
107
111
|
end
|
@@ -109,77 +113,77 @@ describe Puppet::Indirector::FileServer do
|
|
109
113
|
|
110
114
|
describe "when searching for instances" do
|
111
115
|
before do
|
112
|
-
@mount =
|
113
|
-
@instance =
|
116
|
+
@mount = double('mount', :search => nil)
|
117
|
+
@instance = double('instance', :links= => nil, :collect => nil)
|
114
118
|
end
|
115
119
|
|
116
120
|
it "should use the configuration to search the mount and relative path" do
|
117
|
-
@configuration.
|
121
|
+
expect(@configuration).to receive(:split_path).with(@request)
|
118
122
|
|
119
123
|
@file_server.search(@request)
|
120
124
|
end
|
121
125
|
|
122
126
|
it "should return nil if it cannot search the mount" do
|
123
|
-
@configuration.
|
127
|
+
expect(@configuration).to receive(:split_path).with(@request).and_return([nil, nil])
|
124
128
|
|
125
129
|
expect(@file_server.search(@request)).to be_nil
|
126
130
|
end
|
127
131
|
|
128
132
|
it "should use the mount to search for the full paths" do
|
129
|
-
@configuration.
|
133
|
+
expect(@configuration).to receive(:split_path).with(@request).and_return([@mount, "rel/path"])
|
130
134
|
|
131
|
-
@mount.
|
135
|
+
expect(@mount).to receive(:search).with("rel/path", anything)
|
132
136
|
|
133
137
|
@file_server.search(@request)
|
134
138
|
end
|
135
139
|
|
136
140
|
it "should pass the request" do
|
137
|
-
@configuration.
|
141
|
+
allow(@configuration).to receive(:split_path).and_return([@mount, "rel/path"])
|
138
142
|
|
139
|
-
@mount.
|
143
|
+
expect(@mount).to receive(:search).with(anything, @request)
|
140
144
|
|
141
145
|
@file_server.search(@request)
|
142
146
|
end
|
143
147
|
|
144
148
|
it "should return nil if searching does not find any full paths" do
|
145
|
-
@configuration.
|
149
|
+
expect(@configuration).to receive(:split_path).with(@request).and_return([@mount, "rel/path"])
|
146
150
|
|
147
|
-
@mount.
|
151
|
+
expect(@mount).to receive(:search).with("rel/path", anything).and_return(nil)
|
148
152
|
|
149
153
|
expect(@file_server.search(@request)).to be_nil
|
150
154
|
end
|
151
155
|
|
152
156
|
it "should create a fileset with each returned path and merge them" do
|
153
|
-
@configuration.
|
157
|
+
expect(@configuration).to receive(:split_path).with(@request).and_return([@mount, "rel/path"])
|
154
158
|
|
155
|
-
@mount.
|
159
|
+
expect(@mount).to receive(:search).with("rel/path", anything).and_return(%w{/one /two})
|
156
160
|
|
157
|
-
Puppet::FileSystem.
|
161
|
+
allow(Puppet::FileSystem).to receive(:exist?).and_return(true)
|
158
162
|
|
159
|
-
one =
|
160
|
-
Puppet::FileServing::Fileset.
|
161
|
-
two =
|
162
|
-
Puppet::FileServing::Fileset.
|
163
|
+
one = double('fileset_one')
|
164
|
+
expect(Puppet::FileServing::Fileset).to receive(:new).with("/one", @request).and_return(one)
|
165
|
+
two = double('fileset_two')
|
166
|
+
expect(Puppet::FileServing::Fileset).to receive(:new).with("/two", @request).and_return(two)
|
163
167
|
|
164
|
-
Puppet::FileServing::Fileset.
|
168
|
+
expect(Puppet::FileServing::Fileset).to receive(:merge).with(one, two).and_return([])
|
165
169
|
|
166
170
|
@file_server.search(@request)
|
167
171
|
end
|
168
172
|
|
169
173
|
it "should create an instance with each path resulting from the merger of the filesets" do
|
170
|
-
@configuration.
|
174
|
+
expect(@configuration).to receive(:split_path).with(@request).and_return([@mount, "rel/path"])
|
171
175
|
|
172
|
-
@mount.
|
176
|
+
expect(@mount).to receive(:search).with("rel/path", anything).and_return([])
|
173
177
|
|
174
|
-
Puppet::FileSystem.
|
178
|
+
allow(Puppet::FileSystem).to receive(:exist?).and_return(true)
|
175
179
|
|
176
|
-
Puppet::FileServing::Fileset.
|
180
|
+
expect(Puppet::FileServing::Fileset).to receive(:merge).and_return("one" => "/one", "two" => "/two")
|
177
181
|
|
178
|
-
one =
|
179
|
-
@model.
|
182
|
+
one = double('one', :collect => nil)
|
183
|
+
expect(@model).to receive(:new).with("/one", :relative_path => "one").and_return(one)
|
180
184
|
|
181
|
-
two =
|
182
|
-
@model.
|
185
|
+
two = double('two', :collect => nil)
|
186
|
+
expect(@model).to receive(:new).with("/two", :relative_path => "two").and_return(two)
|
183
187
|
|
184
188
|
# order can't be guaranteed
|
185
189
|
result = @file_server.search(@request)
|
@@ -189,17 +193,17 @@ describe Puppet::Indirector::FileServer do
|
|
189
193
|
end
|
190
194
|
|
191
195
|
it "should set 'links' on the instances if it is set in the request options" do
|
192
|
-
@configuration.
|
196
|
+
expect(@configuration).to receive(:split_path).with(@request).and_return([@mount, "rel/path"])
|
193
197
|
|
194
|
-
@mount.
|
198
|
+
expect(@mount).to receive(:search).with("rel/path", anything).and_return([])
|
195
199
|
|
196
|
-
Puppet::FileSystem.
|
200
|
+
allow(Puppet::FileSystem).to receive(:exist?).and_return(true)
|
197
201
|
|
198
|
-
Puppet::FileServing::Fileset.
|
202
|
+
expect(Puppet::FileServing::Fileset).to receive(:merge).and_return("one" => "/one")
|
199
203
|
|
200
|
-
one =
|
201
|
-
@model.
|
202
|
-
one.
|
204
|
+
one = double('one', :collect => nil)
|
205
|
+
expect(@model).to receive(:new).with("/one", :relative_path => "one").and_return(one)
|
206
|
+
expect(one).to receive(:links=).with(true)
|
203
207
|
|
204
208
|
@request.options[:links] = true
|
205
209
|
|
@@ -207,35 +211,35 @@ describe Puppet::Indirector::FileServer do
|
|
207
211
|
end
|
208
212
|
|
209
213
|
it "should set 'checksum_type' on the instances if it is set in the request options" do
|
210
|
-
@configuration.
|
214
|
+
expect(@configuration).to receive(:split_path).with(@request).and_return([@mount, "rel/path"])
|
211
215
|
|
212
|
-
@mount.
|
216
|
+
expect(@mount).to receive(:search).with("rel/path", anything).and_return([])
|
213
217
|
|
214
|
-
Puppet::FileSystem.
|
218
|
+
allow(Puppet::FileSystem).to receive(:exist?).and_return(true)
|
215
219
|
|
216
|
-
Puppet::FileServing::Fileset.
|
220
|
+
expect(Puppet::FileServing::Fileset).to receive(:merge).and_return("one" => "/one")
|
217
221
|
|
218
|
-
one =
|
219
|
-
@model.
|
222
|
+
one = double('one', :collect => nil)
|
223
|
+
expect(@model).to receive(:new).with("/one", :relative_path => "one").and_return(one)
|
220
224
|
|
221
|
-
one.
|
225
|
+
expect(one).to receive(:checksum_type=).with(:checksum)
|
222
226
|
@request.options[:checksum_type] = :checksum
|
223
227
|
|
224
228
|
@file_server.search(@request)
|
225
229
|
end
|
226
230
|
|
227
231
|
it "should collect the instances" do
|
228
|
-
@configuration.
|
232
|
+
expect(@configuration).to receive(:split_path).with(@request).and_return([@mount, "rel/path"])
|
229
233
|
|
230
|
-
@mount.
|
234
|
+
expect(@mount).to receive(:search).with("rel/path", anything).and_return([])
|
231
235
|
|
232
|
-
Puppet::FileSystem.
|
236
|
+
allow(Puppet::FileSystem).to receive(:exist?).and_return(true)
|
233
237
|
|
234
|
-
Puppet::FileServing::Fileset.
|
238
|
+
expect(Puppet::FileServing::Fileset).to receive(:merge).and_return("one" => "/one")
|
235
239
|
|
236
|
-
one =
|
237
|
-
@model.
|
238
|
-
one.
|
240
|
+
one = double('one')
|
241
|
+
expect(@model).to receive(:new).with("/one", :relative_path => "one").and_return(one)
|
242
|
+
expect(one).to receive(:collect)
|
239
243
|
|
240
244
|
@file_server.search(@request)
|
241
245
|
end
|
@@ -245,12 +249,14 @@ describe Puppet::Indirector::FileServer do
|
|
245
249
|
before do
|
246
250
|
@request.method = :find
|
247
251
|
|
248
|
-
@mount =
|
249
|
-
@configuration.
|
250
|
-
@request.
|
251
|
-
@request.
|
252
|
-
@mount.
|
253
|
-
@mount.
|
252
|
+
@mount = double('mount')
|
253
|
+
allow(@configuration).to receive(:split_path).with(@request).and_return([@mount, "rel/path"])
|
254
|
+
allow(@request).to receive(:node).and_return("mynode")
|
255
|
+
allow(@request).to receive(:ip).and_return("myip")
|
256
|
+
allow(@mount).to receive(:name).and_return("myname")
|
257
|
+
allow(@mount).to receive(:allowed?).with("mynode", "myip").and_return("something")
|
258
|
+
allow(@mount).to receive(:empty?)
|
259
|
+
allow(@mount).to receive(:globalallow?)
|
254
260
|
end
|
255
261
|
|
256
262
|
it "should return false when destroying" do
|
@@ -264,32 +270,32 @@ describe Puppet::Indirector::FileServer do
|
|
264
270
|
end
|
265
271
|
|
266
272
|
it "should use the configuration to find the mount and relative path" do
|
267
|
-
@configuration.
|
273
|
+
expect(@configuration).to receive(:split_path).with(@request)
|
268
274
|
|
269
275
|
@file_server.authorized?(@request)
|
270
276
|
end
|
271
277
|
|
272
278
|
it "should return false if it cannot find the mount" do
|
273
|
-
@configuration.
|
279
|
+
expect(@configuration).to receive(:split_path).with(@request).and_return([nil, nil])
|
274
280
|
|
275
281
|
expect(@file_server).not_to be_authorized(@request)
|
276
282
|
end
|
277
283
|
|
278
284
|
it "should return true when no auth directives are defined for the mount point" do
|
279
|
-
@mount.
|
280
|
-
@mount.
|
285
|
+
allow(@mount).to receive(:empty?).and_return(true)
|
286
|
+
allow(@mount).to receive(:globalallow?).and_return(nil)
|
281
287
|
expect(@file_server).to be_authorized(@request)
|
282
288
|
end
|
283
289
|
|
284
290
|
it "should return true when a global allow directive is defined for the mount point" do
|
285
|
-
@mount.
|
286
|
-
@mount.
|
291
|
+
allow(@mount).to receive(:empty?).and_return(false)
|
292
|
+
allow(@mount).to receive(:globalallow?).and_return(true)
|
287
293
|
expect(@file_server).to be_authorized(@request)
|
288
294
|
end
|
289
295
|
|
290
296
|
it "should return false when a non-global allow directive is defined for the mount point" do
|
291
|
-
@mount.
|
292
|
-
@mount.
|
297
|
+
allow(@mount).to receive(:empty?).and_return(false)
|
298
|
+
allow(@mount).to receive(:globalallow?).and_return(false)
|
293
299
|
expect(@file_server).not_to be_authorized(@request)
|
294
300
|
end
|
295
301
|
end
|
@@ -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
|
@@ -86,24 +85,24 @@ describe Puppet::Indirector::Indirection do
|
|
86
85
|
end
|
87
86
|
|
88
87
|
it "should keep a reference to the indirecting model" do
|
89
|
-
model =
|
88
|
+
model = double('model')
|
90
89
|
@indirection = Puppet::Indirector::Indirection.new(model, :myind)
|
91
90
|
expect(@indirection.model).to equal(model)
|
92
91
|
end
|
93
92
|
|
94
93
|
it "should set the name" do
|
95
|
-
@indirection = Puppet::Indirector::Indirection.new(
|
94
|
+
@indirection = Puppet::Indirector::Indirection.new(double('model'), :myind)
|
96
95
|
expect(@indirection.name).to eq(:myind)
|
97
96
|
end
|
98
97
|
|
99
98
|
it "should require indirections to have unique names" do
|
100
|
-
@indirection = Puppet::Indirector::Indirection.new(
|
99
|
+
@indirection = Puppet::Indirector::Indirection.new(double('model'), :test)
|
101
100
|
expect { Puppet::Indirector::Indirection.new(:test) }.to raise_error(ArgumentError)
|
102
101
|
end
|
103
102
|
|
104
103
|
it "should extend itself with any specified module" do
|
105
104
|
mod = Module.new
|
106
|
-
@indirection = Puppet::Indirector::Indirection.new(
|
105
|
+
@indirection = Puppet::Indirector::Indirection.new(double('model'), :test, :extend => mod)
|
107
106
|
expect(@indirection.singleton_class.included_modules).to include(mod)
|
108
107
|
end
|
109
108
|
|
@@ -114,23 +113,22 @@ describe Puppet::Indirector::Indirection do
|
|
114
113
|
|
115
114
|
describe "when an instance" do
|
116
115
|
before :each do
|
117
|
-
@terminus_class =
|
118
|
-
@terminus =
|
119
|
-
@terminus.
|
120
|
-
@terminus_class.
|
121
|
-
@cache =
|
122
|
-
@cache_class =
|
123
|
-
Puppet::Indirector::Terminus.
|
124
|
-
Puppet::Indirector::Terminus.
|
125
|
-
|
126
|
-
@indirection = Puppet::Indirector::Indirection.new(
|
116
|
+
@terminus_class = double('terminus_class')
|
117
|
+
@terminus = double('terminus')
|
118
|
+
allow(@terminus).to receive(:validate)
|
119
|
+
allow(@terminus_class).to receive(:new).and_return(@terminus)
|
120
|
+
@cache = double('cache', :name => "mycache")
|
121
|
+
@cache_class = double('cache_class')
|
122
|
+
allow(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :cache_terminus).and_return(@cache_class)
|
123
|
+
allow(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :test_terminus).and_return(@terminus_class)
|
124
|
+
|
125
|
+
@indirection = Puppet::Indirector::Indirection.new(double('model'), :test)
|
127
126
|
@indirection.terminus_class = :test_terminus
|
128
127
|
|
129
|
-
@instance =
|
128
|
+
@instance = double('instance', :expiration => nil, :expiration= => nil, :name => "whatever")
|
130
129
|
@name = :mything
|
131
130
|
|
132
|
-
|
133
|
-
@request = mock 'instance'
|
131
|
+
@request = double('instance')
|
134
132
|
end
|
135
133
|
|
136
134
|
it "should allow setting the ttl" do
|
@@ -144,9 +142,9 @@ describe Puppet::Indirector::Indirection do
|
|
144
142
|
end
|
145
143
|
|
146
144
|
it "should calculate the current expiration by adding the TTL to the current time" do
|
147
|
-
@indirection.
|
145
|
+
allow(@indirection).to receive(:ttl).and_return(100)
|
148
146
|
now = Time.now
|
149
|
-
Time.
|
147
|
+
allow(Time).to receive(:now).and_return(now)
|
150
148
|
expect(@indirection.expiration).to eq(Time.now + 100)
|
151
149
|
end
|
152
150
|
|
@@ -156,28 +154,28 @@ describe Puppet::Indirector::Indirection do
|
|
156
154
|
|
157
155
|
describe "creates a request" do
|
158
156
|
it "should create it with its name as the request's indirection name" do
|
159
|
-
Puppet::Indirector::Request.
|
157
|
+
expect(Puppet::Indirector::Request).to receive(:new).with(@indirection.name, anything, anything)
|
160
158
|
@indirection.request(:funtest, "yayness")
|
161
159
|
end
|
162
160
|
|
163
161
|
it "should require a method and key" do
|
164
|
-
Puppet::Indirector::Request.
|
162
|
+
expect(Puppet::Indirector::Request).to receive(:new).with(anything, :funtest, "yayness")
|
165
163
|
@indirection.request(:funtest, "yayness")
|
166
164
|
end
|
167
165
|
|
168
166
|
it "should support optional arguments" do
|
169
|
-
Puppet::Indirector::Request.
|
167
|
+
expect(Puppet::Indirector::Request).to receive(:new).with(anything, anything, anything, {:one => :two})
|
170
168
|
@indirection.request(:funtest, "yayness", :one => :two)
|
171
169
|
end
|
172
170
|
|
173
171
|
it "should not pass options if none are supplied" do
|
174
|
-
Puppet::Indirector::Request.
|
172
|
+
expect(Puppet::Indirector::Request).to receive(:new).with(anything, anything, anything)
|
175
173
|
@indirection.request(:funtest, "yayness")
|
176
174
|
end
|
177
175
|
|
178
176
|
it "should return the request" do
|
179
|
-
request =
|
180
|
-
Puppet::Indirector::Request.
|
177
|
+
request = double('request')
|
178
|
+
expect(Puppet::Indirector::Request).to receive(:new).and_return(request)
|
181
179
|
expect(@indirection.request(:funtest, "yayness")).to equal(request)
|
182
180
|
end
|
183
181
|
end
|
@@ -190,190 +188,204 @@ describe Puppet::Indirector::Indirection do
|
|
190
188
|
it_should_behave_like "Request validator"
|
191
189
|
|
192
190
|
it "should return the results of the delegation" do
|
193
|
-
@terminus.
|
191
|
+
expect(@terminus).to receive(:find).and_return(@instance)
|
194
192
|
expect(@indirection.find("me")).to equal(@instance)
|
195
193
|
end
|
196
194
|
|
197
195
|
it "should return false if the instance is false" do
|
198
|
-
@terminus.
|
196
|
+
expect(@terminus).to receive(:find).and_return(false)
|
199
197
|
expect(@indirection.find("me")).to equal(false)
|
200
198
|
end
|
201
199
|
|
202
200
|
it "should set the expiration date on any instances without one set" do
|
203
|
-
@terminus.
|
201
|
+
allow(@terminus).to receive(:find).and_return(@instance)
|
204
202
|
|
205
|
-
@indirection.
|
203
|
+
expect(@indirection).to receive(:expiration).and_return(:yay)
|
206
204
|
|
207
|
-
@instance.
|
208
|
-
@instance.
|
205
|
+
expect(@instance).to receive(:expiration).and_return(nil)
|
206
|
+
expect(@instance).to receive(:expiration=).with(:yay)
|
209
207
|
|
210
208
|
@indirection.find("/my/key")
|
211
209
|
end
|
212
210
|
|
213
211
|
it "should not override an already-set expiration date on returned instances" do
|
214
|
-
@terminus.
|
212
|
+
allow(@terminus).to receive(:find).and_return(@instance)
|
215
213
|
|
216
|
-
@indirection.
|
214
|
+
expect(@indirection).not_to receive(:expiration)
|
217
215
|
|
218
|
-
@instance.
|
219
|
-
@instance.
|
216
|
+
expect(@instance).to receive(:expiration).and_return(:yay)
|
217
|
+
expect(@instance).not_to receive(:expiration=)
|
220
218
|
|
221
219
|
@indirection.find("/my/key")
|
222
220
|
end
|
223
221
|
|
224
222
|
it "should filter the result instance if the terminus supports it" do
|
225
|
-
@terminus.
|
226
|
-
@terminus.
|
223
|
+
allow(@terminus).to receive(:find).and_return(@instance)
|
224
|
+
allow(@terminus).to receive(:respond_to?).with(:filter).and_return(true)
|
227
225
|
|
228
|
-
@terminus.
|
226
|
+
expect(@terminus).to receive(:filter).with(@instance)
|
229
227
|
|
230
228
|
@indirection.find("/my/key")
|
231
229
|
end
|
230
|
+
|
232
231
|
describe "when caching is enabled" do
|
233
232
|
before do
|
234
233
|
@indirection.cache_class = :cache_terminus
|
235
|
-
@cache_class.
|
234
|
+
allow(@cache_class).to receive(:new).and_return(@cache)
|
236
235
|
|
237
|
-
@instance.
|
236
|
+
allow(@instance).to receive(:expired?).and_return(false)
|
238
237
|
end
|
239
238
|
|
240
239
|
it "should first look in the cache for an instance" do
|
241
|
-
@terminus.
|
242
|
-
@cache.
|
240
|
+
expect(@terminus).not_to receive(:find)
|
241
|
+
expect(@cache).to receive(:find).and_return(@instance)
|
243
242
|
|
244
243
|
@indirection.find("/my/key")
|
245
244
|
end
|
246
245
|
|
247
246
|
it "should not look in the cache if the request specifies not to use the cache" do
|
248
|
-
@terminus.
|
249
|
-
@cache.
|
250
|
-
@cache.
|
247
|
+
expect(@terminus).to receive(:find).and_return(@instance)
|
248
|
+
expect(@cache).not_to receive(:find)
|
249
|
+
allow(@cache).to receive(:save)
|
251
250
|
|
252
251
|
@indirection.find("/my/key", :ignore_cache => true)
|
253
252
|
end
|
254
253
|
|
255
254
|
it "should still save to the cache even if the cache is being ignored during readin" do
|
256
|
-
@terminus.
|
257
|
-
@cache.
|
255
|
+
expect(@terminus).to receive(:find).and_return(@instance)
|
256
|
+
expect(@cache).to receive(:save)
|
258
257
|
|
259
258
|
@indirection.find("/my/key", :ignore_cache => true)
|
260
259
|
end
|
261
260
|
|
262
261
|
it "should not save to the cache if told to skip updating the cache" do
|
263
|
-
@terminus.
|
264
|
-
@cache.
|
265
|
-
@cache.
|
262
|
+
expect(@terminus).to receive(:find).and_return(@instance)
|
263
|
+
expect(@cache).to receive(:find).and_return(nil)
|
264
|
+
expect(@cache).not_to receive(:save)
|
266
265
|
|
267
266
|
@indirection.find("/my/key", :ignore_cache_save => true)
|
268
267
|
end
|
269
268
|
|
270
269
|
it "should only look in the cache if the request specifies not to use the terminus" do
|
271
|
-
@terminus.
|
272
|
-
@cache.
|
270
|
+
expect(@terminus).not_to receive(:find)
|
271
|
+
expect(@cache).to receive(:find)
|
273
272
|
|
274
273
|
@indirection.find("/my/key", :ignore_terminus => true)
|
275
274
|
end
|
276
275
|
|
277
276
|
it "should use a request to look in the cache for cached objects" do
|
278
|
-
@cache.
|
277
|
+
expect(@cache).to receive(:find) do |r|
|
278
|
+
expect(r.method).to eq(:find)
|
279
|
+
expect(r.key).to eq("/my/key")
|
280
|
+
|
281
|
+
@instance
|
282
|
+
end
|
279
283
|
|
280
|
-
@cache.
|
284
|
+
allow(@cache).to receive(:save)
|
281
285
|
|
282
286
|
@indirection.find("/my/key")
|
283
287
|
end
|
284
288
|
|
285
289
|
it "should return the cached object if it is not expired" do
|
286
|
-
@instance.
|
290
|
+
allow(@instance).to receive(:expired?).and_return(false)
|
287
291
|
|
288
|
-
@cache.
|
292
|
+
allow(@cache).to receive(:find).and_return(@instance)
|
289
293
|
expect(@indirection.find("/my/key")).to equal(@instance)
|
290
294
|
end
|
291
295
|
|
292
296
|
it "should not fail if the cache fails" do
|
293
|
-
@terminus.
|
297
|
+
allow(@terminus).to receive(:find).and_return(@instance)
|
294
298
|
|
295
|
-
@cache.
|
296
|
-
@cache.
|
299
|
+
expect(@cache).to receive(:find).and_raise(ArgumentError)
|
300
|
+
allow(@cache).to receive(:save)
|
297
301
|
expect { @indirection.find("/my/key") }.not_to raise_error
|
298
302
|
end
|
299
303
|
|
300
304
|
it "should look in the main terminus if the cache fails" do
|
301
|
-
@terminus.
|
302
|
-
@cache.
|
303
|
-
@cache.
|
305
|
+
expect(@terminus).to receive(:find).and_return(@instance)
|
306
|
+
expect(@cache).to receive(:find).and_raise(ArgumentError)
|
307
|
+
allow(@cache).to receive(:save)
|
304
308
|
expect(@indirection.find("/my/key")).to equal(@instance)
|
305
309
|
end
|
306
310
|
|
307
311
|
it "should send a debug log if it is using the cached object" do
|
308
|
-
Puppet.
|
309
|
-
@cache.
|
312
|
+
expect(Puppet).to receive(:debug)
|
313
|
+
allow(@cache).to receive(:find).and_return(@instance)
|
310
314
|
|
311
315
|
@indirection.find("/my/key")
|
312
316
|
end
|
313
317
|
|
314
318
|
it "should not return the cached object if it is expired" do
|
315
|
-
@instance.
|
319
|
+
allow(@instance).to receive(:expired?).and_return(true)
|
316
320
|
|
317
|
-
@cache.
|
318
|
-
@terminus.
|
321
|
+
allow(@cache).to receive(:find).and_return(@instance)
|
322
|
+
allow(@terminus).to receive(:find).and_return(nil)
|
319
323
|
expect(@indirection.find("/my/key")).to be_nil
|
320
324
|
end
|
321
325
|
|
322
326
|
it "should send an info log if it is using the cached object" do
|
323
|
-
Puppet.
|
324
|
-
@instance.
|
327
|
+
expect(Puppet).to receive(:info)
|
328
|
+
allow(@instance).to receive(:expired?).and_return(true)
|
325
329
|
|
326
|
-
@cache.
|
327
|
-
@terminus.
|
330
|
+
allow(@cache).to receive(:find).and_return(@instance)
|
331
|
+
allow(@terminus).to receive(:find).and_return(nil)
|
328
332
|
@indirection.find("/my/key")
|
329
333
|
end
|
330
334
|
|
331
335
|
it "should cache any objects not retrieved from the cache" do
|
332
|
-
@cache.
|
336
|
+
expect(@cache).to receive(:find).and_return(nil)
|
333
337
|
|
334
|
-
@terminus.
|
335
|
-
@cache.
|
338
|
+
expect(@terminus).to receive(:find).and_return(@instance)
|
339
|
+
expect(@cache).to receive(:save)
|
336
340
|
|
337
341
|
@indirection.find("/my/key")
|
338
342
|
end
|
339
343
|
|
340
344
|
it "should use a request to look in the cache for cached objects" do
|
341
|
-
@cache.
|
345
|
+
expect(@cache).to receive(:find) do |r|
|
346
|
+
expect(r.method).to eq(:find)
|
347
|
+
expect(r.key).to eq("/my/key")
|
342
348
|
|
343
|
-
|
344
|
-
|
349
|
+
nil
|
350
|
+
end
|
351
|
+
|
352
|
+
allow(@terminus).to receive(:find).and_return(@instance)
|
353
|
+
allow(@cache).to receive(:save)
|
345
354
|
|
346
355
|
@indirection.find("/my/key")
|
347
356
|
end
|
348
357
|
|
349
358
|
it "should cache the instance using a request with the instance set to the cached object" do
|
350
|
-
@cache.
|
359
|
+
allow(@cache).to receive(:find).and_return(nil)
|
351
360
|
|
352
|
-
@terminus.
|
361
|
+
allow(@terminus).to receive(:find).and_return(@instance)
|
353
362
|
|
354
|
-
@cache.
|
363
|
+
expect(@cache).to receive(:save) do |r|
|
364
|
+
expect(r.method).to eq(:save)
|
365
|
+
expect(r.instance).to eq(@instance)
|
366
|
+
end
|
355
367
|
|
356
368
|
@indirection.find("/my/key")
|
357
369
|
end
|
358
370
|
|
359
371
|
it "should send an info log that the object is being cached" do
|
360
|
-
@cache.
|
372
|
+
allow(@cache).to receive(:find).and_return(nil)
|
361
373
|
|
362
|
-
@terminus.
|
363
|
-
@cache.
|
374
|
+
allow(@terminus).to receive(:find).and_return(@instance)
|
375
|
+
allow(@cache).to receive(:save)
|
364
376
|
|
365
|
-
Puppet.
|
377
|
+
expect(Puppet).to receive(:info)
|
366
378
|
|
367
379
|
@indirection.find("/my/key")
|
368
380
|
end
|
369
381
|
|
370
382
|
it "should fail if saving to the cache fails but log the exception" do
|
371
|
-
@cache.
|
383
|
+
allow(@cache).to receive(:find).and_return(nil)
|
372
384
|
|
373
|
-
@terminus.
|
374
|
-
@cache.
|
385
|
+
allow(@terminus).to receive(:find).and_return(@instance)
|
386
|
+
allow(@cache).to receive(:save).and_raise(RuntimeError)
|
375
387
|
|
376
|
-
Puppet.
|
388
|
+
expect(Puppet).to receive(:log_exception)
|
377
389
|
|
378
390
|
expect { @indirection.find("/my/key") }.to raise_error RuntimeError
|
379
391
|
end
|
@@ -388,63 +400,63 @@ describe Puppet::Indirector::Indirection do
|
|
388
400
|
it_should_behave_like "Request validator"
|
389
401
|
|
390
402
|
it "should return true if the head method returned true" do
|
391
|
-
@terminus.
|
403
|
+
expect(@terminus).to receive(:head).and_return(true)
|
392
404
|
expect(@indirection.head("me")).to eq(true)
|
393
405
|
end
|
394
406
|
|
395
407
|
it "should return false if the head method returned false" do
|
396
|
-
@terminus.
|
408
|
+
expect(@terminus).to receive(:head).and_return(false)
|
397
409
|
expect(@indirection.head("me")).to eq(false)
|
398
410
|
end
|
399
411
|
|
400
412
|
describe "when caching is enabled" do
|
401
413
|
before do
|
402
414
|
@indirection.cache_class = :cache_terminus
|
403
|
-
@cache_class.
|
415
|
+
allow(@cache_class).to receive(:new).and_return(@cache)
|
404
416
|
|
405
|
-
@instance.
|
417
|
+
allow(@instance).to receive(:expired?).and_return(false)
|
406
418
|
end
|
407
419
|
|
408
420
|
it "should first look in the cache for an instance" do
|
409
|
-
@terminus.
|
410
|
-
@terminus.
|
411
|
-
@cache.
|
421
|
+
expect(@terminus).not_to receive(:find)
|
422
|
+
expect(@terminus).not_to receive(:head)
|
423
|
+
expect(@cache).to receive(:find).and_return(@instance)
|
412
424
|
|
413
425
|
expect(@indirection.head("/my/key")).to eq(true)
|
414
426
|
end
|
415
427
|
|
416
428
|
it "should not save to the cache" do
|
417
|
-
@cache.
|
418
|
-
@cache.
|
419
|
-
@terminus.
|
429
|
+
expect(@cache).to receive(:find).and_return(nil)
|
430
|
+
expect(@cache).not_to receive(:save)
|
431
|
+
expect(@terminus).to receive(:head).and_return(true)
|
420
432
|
expect(@indirection.head("/my/key")).to eq(true)
|
421
433
|
end
|
422
434
|
|
423
435
|
it "should not fail if the cache fails" do
|
424
|
-
@terminus.
|
436
|
+
allow(@terminus).to receive(:head).and_return(true)
|
425
437
|
|
426
|
-
@cache.
|
438
|
+
expect(@cache).to receive(:find).and_raise(ArgumentError)
|
427
439
|
expect { @indirection.head("/my/key") }.not_to raise_error
|
428
440
|
end
|
429
441
|
|
430
442
|
it "should look in the main terminus if the cache fails" do
|
431
|
-
@terminus.
|
432
|
-
@cache.
|
443
|
+
expect(@terminus).to receive(:head).and_return(true)
|
444
|
+
expect(@cache).to receive(:find).and_raise(ArgumentError)
|
433
445
|
expect(@indirection.head("/my/key")).to eq(true)
|
434
446
|
end
|
435
447
|
|
436
448
|
it "should send a debug log if it is using the cached object" do
|
437
|
-
Puppet.
|
438
|
-
@cache.
|
449
|
+
expect(Puppet).to receive(:debug)
|
450
|
+
allow(@cache).to receive(:find).and_return(@instance)
|
439
451
|
|
440
452
|
@indirection.head("/my/key")
|
441
453
|
end
|
442
454
|
|
443
455
|
it "should not accept the cached object if it is expired" do
|
444
|
-
@instance.
|
456
|
+
allow(@instance).to receive(:expired?).and_return(true)
|
445
457
|
|
446
|
-
@cache.
|
447
|
-
@terminus.
|
458
|
+
allow(@cache).to receive(:find).and_return(@instance)
|
459
|
+
allow(@terminus).to receive(:head).and_return(false)
|
448
460
|
expect(@indirection.head("/my/key")).to eq(false)
|
449
461
|
end
|
450
462
|
end
|
@@ -454,51 +466,51 @@ describe Puppet::Indirector::Indirection do
|
|
454
466
|
before { @method = :save }
|
455
467
|
|
456
468
|
it "should return the result of the save" do
|
457
|
-
@terminus.
|
469
|
+
allow(@terminus).to receive(:save).and_return("foo")
|
458
470
|
expect(@indirection.save(@instance)).to eq("foo")
|
459
471
|
end
|
460
472
|
|
461
473
|
describe "when caching is enabled" do
|
462
474
|
before do
|
463
475
|
@indirection.cache_class = :cache_terminus
|
464
|
-
@cache_class.
|
476
|
+
allow(@cache_class).to receive(:new).and_return(@cache)
|
465
477
|
|
466
|
-
@instance.
|
478
|
+
allow(@instance).to receive(:expired?).and_return(false)
|
467
479
|
end
|
468
480
|
|
469
481
|
it "should return the result of saving to the terminus" do
|
470
|
-
request =
|
482
|
+
request = double('request', :instance => @instance, :node => nil, :ignore_cache_save? => false)
|
471
483
|
|
472
|
-
@indirection.
|
484
|
+
expect(@indirection).to receive(:request).and_return(request)
|
473
485
|
|
474
|
-
@cache.
|
475
|
-
@terminus.
|
486
|
+
allow(@cache).to receive(:save)
|
487
|
+
allow(@terminus).to receive(:save).and_return(@instance)
|
476
488
|
expect(@indirection.save(@instance)).to equal(@instance)
|
477
489
|
end
|
478
490
|
|
479
491
|
it "should use a request to save the object to the cache" do
|
480
|
-
request =
|
492
|
+
request = double('request', :instance => @instance, :node => nil, :ignore_cache_save? => false)
|
481
493
|
|
482
|
-
@indirection.
|
494
|
+
expect(@indirection).to receive(:request).and_return(request)
|
483
495
|
|
484
|
-
@cache.
|
485
|
-
@terminus.
|
496
|
+
expect(@cache).to receive(:save).with(request)
|
497
|
+
allow(@terminus).to receive(:save)
|
486
498
|
@indirection.save(@instance)
|
487
499
|
end
|
488
500
|
|
489
501
|
it "should not save to the cache if the normal save fails" do
|
490
|
-
request =
|
502
|
+
request = double('request', :instance => @instance, :node => nil)
|
491
503
|
|
492
|
-
@indirection.
|
504
|
+
expect(@indirection).to receive(:request).and_return(request)
|
493
505
|
|
494
|
-
@cache.
|
495
|
-
@terminus.
|
506
|
+
expect(@cache).not_to receive(:save)
|
507
|
+
expect(@terminus).to receive(:save).and_raise("eh")
|
496
508
|
expect { @indirection.save(@instance) }.to raise_error(RuntimeError, /eh/)
|
497
509
|
end
|
498
510
|
|
499
511
|
it "should not save to the cache if told to ignore saving to the cache" do
|
500
|
-
@terminus.
|
501
|
-
@cache.
|
512
|
+
expect(@terminus).to receive(:save)
|
513
|
+
expect(@cache).not_to receive(:save)
|
502
514
|
|
503
515
|
@indirection.save(@instance, '/my/key', :ignore_cache_save => true)
|
504
516
|
end
|
@@ -513,31 +525,31 @@ describe Puppet::Indirector::Indirection do
|
|
513
525
|
it_should_behave_like "Request validator"
|
514
526
|
|
515
527
|
it "should return the result of removing the instance" do
|
516
|
-
@terminus.
|
528
|
+
allow(@terminus).to receive(:destroy).and_return("yayness")
|
517
529
|
expect(@indirection.destroy("/my/key")).to eq("yayness")
|
518
530
|
end
|
519
531
|
|
520
532
|
describe "when caching is enabled" do
|
521
533
|
before do
|
522
534
|
@indirection.cache_class = :cache_terminus
|
523
|
-
@cache_class.
|
535
|
+
expect(@cache_class).to receive(:new).and_return(@cache)
|
524
536
|
|
525
|
-
@instance.
|
537
|
+
allow(@instance).to receive(:expired?).and_return(false)
|
526
538
|
end
|
527
539
|
|
528
540
|
it "should use a request instance to search in and remove objects from the cache" do
|
529
|
-
destroy =
|
530
|
-
find =
|
541
|
+
destroy = double('destroy_request', :key => "/my/key", :node => nil)
|
542
|
+
find = double('destroy_request', :key => "/my/key", :node => nil)
|
531
543
|
|
532
|
-
@indirection.
|
533
|
-
@indirection.
|
544
|
+
expect(@indirection).to receive(:request).with(:destroy, "/my/key", nil, be_a(Hash).or(be_nil)).and_return(destroy)
|
545
|
+
expect(@indirection).to receive(:request).with(:find, "/my/key", nil, be_a(Hash).or(be_nil)).and_return(find)
|
534
546
|
|
535
|
-
cached =
|
547
|
+
cached = double('cache')
|
536
548
|
|
537
|
-
@cache.
|
538
|
-
@cache.
|
549
|
+
expect(@cache).to receive(:find).with(find).and_return(cached)
|
550
|
+
expect(@cache).to receive(:destroy).with(destroy)
|
539
551
|
|
540
|
-
@terminus.
|
552
|
+
allow(@terminus).to receive(:destroy)
|
541
553
|
|
542
554
|
@indirection.destroy("/my/key")
|
543
555
|
end
|
@@ -552,29 +564,29 @@ describe Puppet::Indirector::Indirection do
|
|
552
564
|
it_should_behave_like "Request validator"
|
553
565
|
|
554
566
|
it "should set the expiration date on any instances without one set" do
|
555
|
-
@terminus.
|
567
|
+
allow(@terminus).to receive(:search).and_return([@instance])
|
556
568
|
|
557
|
-
@indirection.
|
569
|
+
expect(@indirection).to receive(:expiration).and_return(:yay)
|
558
570
|
|
559
|
-
@instance.
|
560
|
-
@instance.
|
571
|
+
expect(@instance).to receive(:expiration).and_return(nil)
|
572
|
+
expect(@instance).to receive(:expiration=).with(:yay)
|
561
573
|
|
562
574
|
@indirection.search("/my/key")
|
563
575
|
end
|
564
576
|
|
565
577
|
it "should not override an already-set expiration date on returned instances" do
|
566
|
-
@terminus.
|
578
|
+
allow(@terminus).to receive(:search).and_return([@instance])
|
567
579
|
|
568
|
-
@indirection.
|
580
|
+
expect(@indirection).not_to receive(:expiration)
|
569
581
|
|
570
|
-
@instance.
|
571
|
-
@instance.
|
582
|
+
expect(@instance).to receive(:expiration).and_return(:yay)
|
583
|
+
expect(@instance).not_to receive(:expiration=)
|
572
584
|
|
573
585
|
@indirection.search("/my/key")
|
574
586
|
end
|
575
587
|
|
576
588
|
it "should return the results of searching in the terminus" do
|
577
|
-
@terminus.
|
589
|
+
expect(@terminus).to receive(:search).and_return([@instance])
|
578
590
|
expect(@indirection.search("/my/key")).to eq([@instance])
|
579
591
|
end
|
580
592
|
end
|
@@ -582,7 +594,7 @@ describe Puppet::Indirector::Indirection do
|
|
582
594
|
describe "and expiring a model instance" do
|
583
595
|
describe "when caching is not enabled" do
|
584
596
|
it "should do nothing" do
|
585
|
-
@cache_class.
|
597
|
+
expect(@cache_class).not_to receive(:new)
|
586
598
|
|
587
599
|
@indirection.expire("/my/key")
|
588
600
|
end
|
@@ -591,65 +603,75 @@ describe Puppet::Indirector::Indirection do
|
|
591
603
|
describe "when caching is enabled" do
|
592
604
|
before do
|
593
605
|
@indirection.cache_class = :cache_terminus
|
594
|
-
@cache_class.
|
606
|
+
expect(@cache_class).to receive(:new).and_return(@cache)
|
595
607
|
|
596
|
-
@instance.
|
608
|
+
allow(@instance).to receive(:expired?).and_return(false)
|
597
609
|
|
598
|
-
@cached =
|
610
|
+
@cached = double('cached', :expiration= => nil, :name => "/my/key")
|
599
611
|
end
|
600
612
|
|
601
613
|
it "should use a request to find within the cache" do
|
602
|
-
@cache.
|
614
|
+
expect(@cache).to receive(:find) do |r|
|
615
|
+
expect(r).to be_a(Puppet::Indirector::Request)
|
616
|
+
expect(r.method).to eq(:find)
|
617
|
+
nil
|
618
|
+
end
|
603
619
|
@indirection.expire("/my/key")
|
604
620
|
end
|
605
621
|
|
606
622
|
it "should do nothing if no such instance is cached" do
|
607
|
-
@cache.
|
623
|
+
expect(@cache).to receive(:find).and_return(nil)
|
608
624
|
|
609
625
|
@indirection.expire("/my/key")
|
610
626
|
end
|
611
627
|
|
612
628
|
it "should log when expiring a found instance" do
|
613
|
-
@cache.
|
614
|
-
@cache.
|
629
|
+
expect(@cache).to receive(:find).and_return(@cached)
|
630
|
+
allow(@cache).to receive(:save)
|
615
631
|
|
616
|
-
Puppet.
|
632
|
+
expect(Puppet).to receive(:info)
|
617
633
|
|
618
634
|
@indirection.expire("/my/key")
|
619
635
|
end
|
620
636
|
|
621
637
|
it "should set the cached instance's expiration to a time in the past" do
|
622
|
-
@cache.
|
623
|
-
@cache.
|
638
|
+
expect(@cache).to receive(:find).and_return(@cached)
|
639
|
+
allow(@cache).to receive(:save)
|
624
640
|
|
625
|
-
@cached.
|
641
|
+
expect(@cached).to receive(:expiration=).with(be < Time.now)
|
626
642
|
|
627
643
|
@indirection.expire("/my/key")
|
628
644
|
end
|
629
645
|
|
630
646
|
it "should save the now expired instance back into the cache" do
|
631
|
-
@cache.
|
647
|
+
expect(@cache).to receive(:find).and_return(@cached)
|
632
648
|
|
633
|
-
@cached.
|
649
|
+
expect(@cached).to receive(:expiration=).with(be < Time.now)
|
634
650
|
|
635
|
-
@cache.
|
651
|
+
expect(@cache).to receive(:save)
|
636
652
|
|
637
653
|
@indirection.expire("/my/key")
|
638
654
|
end
|
639
655
|
|
640
656
|
it "does not expire an instance if told to skip cache saving" do
|
641
|
-
@indirection.cache.
|
642
|
-
@indirection.cache.
|
657
|
+
expect(@indirection.cache).not_to receive(:find)
|
658
|
+
expect(@indirection.cache).not_to receive(:save)
|
643
659
|
|
644
660
|
@indirection.expire("/my/key", :ignore_cache_save => true)
|
645
661
|
end
|
646
662
|
|
647
663
|
it "should use a request to save the expired resource to the cache" do
|
648
|
-
@cache.
|
664
|
+
expect(@cache).to receive(:find).and_return(@cached)
|
665
|
+
|
666
|
+
expect(@cached).to receive(:expiration=).with(be < Time.now)
|
649
667
|
|
650
|
-
@
|
668
|
+
expect(@cache).to receive(:save) do |r|
|
669
|
+
expect(r).to be_a(Puppet::Indirector::Request)
|
670
|
+
expect(r.instance).to eq(@cached)
|
671
|
+
expect(r.method).to eq(:save)
|
651
672
|
|
652
|
-
|
673
|
+
@cached
|
674
|
+
end
|
653
675
|
|
654
676
|
@indirection.expire("/my/key")
|
655
677
|
end
|
@@ -664,7 +686,7 @@ describe Puppet::Indirector::Indirection do
|
|
664
686
|
|
665
687
|
describe "when managing indirection instances" do
|
666
688
|
it "should allow an indirection to be retrieved by name" do
|
667
|
-
@indirection = Puppet::Indirector::Indirection.new(
|
689
|
+
@indirection = Puppet::Indirector::Indirection.new(double('model'), :test)
|
668
690
|
expect(Puppet::Indirector::Indirection.instance(:test)).to equal(@indirection)
|
669
691
|
end
|
670
692
|
|
@@ -673,7 +695,7 @@ describe Puppet::Indirector::Indirection do
|
|
673
695
|
end
|
674
696
|
|
675
697
|
it "should allow an indirection's model to be retrieved by name" do
|
676
|
-
mock_model =
|
698
|
+
mock_model = double('model')
|
677
699
|
@indirection = Puppet::Indirector::Indirection.new(mock_model, :test)
|
678
700
|
expect(Puppet::Indirector::Indirection.model(:test)).to equal(mock_model)
|
679
701
|
end
|
@@ -689,10 +711,10 @@ describe Puppet::Indirector::Indirection do
|
|
689
711
|
|
690
712
|
describe "when routing to the correct the terminus class" do
|
691
713
|
before do
|
692
|
-
@indirection = Puppet::Indirector::Indirection.new(
|
693
|
-
@terminus =
|
694
|
-
@terminus_class =
|
695
|
-
Puppet::Indirector::Terminus.
|
714
|
+
@indirection = Puppet::Indirector::Indirection.new(double('model'), :test)
|
715
|
+
@terminus = double('terminus')
|
716
|
+
@terminus_class = double('terminus class', :new => @terminus)
|
717
|
+
allow(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :default).and_return(@terminus_class)
|
696
718
|
end
|
697
719
|
|
698
720
|
it "should fail if no terminus class can be picked" do
|
@@ -705,14 +727,14 @@ describe Puppet::Indirector::Indirection do
|
|
705
727
|
end
|
706
728
|
|
707
729
|
it "should use the provided Puppet setting if told to do so" do
|
708
|
-
Puppet::Indirector::Terminus.
|
730
|
+
allow(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :my_terminus).and_return(double("terminus_class2"))
|
709
731
|
Puppet[:node_terminus] = :my_terminus
|
710
732
|
@indirection.terminus_setting = :node_terminus
|
711
733
|
expect(@indirection.terminus_class).to equal(:my_terminus)
|
712
734
|
end
|
713
735
|
|
714
736
|
it "should fail if the provided terminus class is not valid" do
|
715
|
-
Puppet::Indirector::Terminus.
|
737
|
+
allow(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :nosuchclass).and_return(nil)
|
716
738
|
expect { @indirection.terminus_class = :nosuchclass }.to raise_error(ArgumentError)
|
717
739
|
end
|
718
740
|
|
@@ -723,10 +745,10 @@ describe Puppet::Indirector::Indirection do
|
|
723
745
|
|
724
746
|
describe "when specifying the terminus class to use" do
|
725
747
|
before do
|
726
|
-
@indirection = Puppet::Indirector::Indirection.new(
|
727
|
-
@terminus =
|
728
|
-
@terminus.
|
729
|
-
@terminus_class =
|
748
|
+
@indirection = Puppet::Indirector::Indirection.new(double('model'), :test)
|
749
|
+
@terminus = double('terminus')
|
750
|
+
allow(@terminus).to receive(:validate)
|
751
|
+
@terminus_class = double('terminus class', :new => @terminus)
|
730
752
|
end
|
731
753
|
|
732
754
|
it "should allow specification of a terminus type" do
|
@@ -746,17 +768,17 @@ describe Puppet::Indirector::Indirection do
|
|
746
768
|
end
|
747
769
|
|
748
770
|
it "should fail when the specified terminus class cannot be found" do
|
749
|
-
Puppet::Indirector::Terminus.
|
771
|
+
expect(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :foo).and_return(nil)
|
750
772
|
expect { @indirection.terminus_class = :foo }.to raise_error(ArgumentError)
|
751
773
|
end
|
752
774
|
|
753
775
|
it "should select the specified terminus class if a terminus class name is provided" do
|
754
|
-
Puppet::Indirector::Terminus.
|
776
|
+
expect(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :foo).and_return(@terminus_class)
|
755
777
|
expect(@indirection.terminus(:foo)).to equal(@terminus)
|
756
778
|
end
|
757
779
|
|
758
780
|
it "should use the configured terminus class if no terminus name is specified" do
|
759
|
-
Puppet::Indirector::Terminus.
|
781
|
+
allow(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :foo).and_return(@terminus_class)
|
760
782
|
@indirection.terminus_class = :foo
|
761
783
|
expect(@indirection.terminus).to equal(@terminus)
|
762
784
|
end
|
@@ -768,27 +790,27 @@ describe Puppet::Indirector::Indirection do
|
|
768
790
|
|
769
791
|
describe "when managing terminus instances" do
|
770
792
|
before do
|
771
|
-
@indirection = Puppet::Indirector::Indirection.new(
|
772
|
-
@terminus =
|
773
|
-
@terminus_class =
|
774
|
-
Puppet::Indirector::Terminus.
|
793
|
+
@indirection = Puppet::Indirector::Indirection.new(double('model'), :test)
|
794
|
+
@terminus = double('terminus')
|
795
|
+
@terminus_class = double('terminus class')
|
796
|
+
allow(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :foo).and_return(@terminus_class)
|
775
797
|
end
|
776
798
|
|
777
799
|
it "should create an instance of the chosen terminus class" do
|
778
|
-
@terminus_class.
|
800
|
+
allow(@terminus_class).to receive(:new).and_return(@terminus)
|
779
801
|
expect(@indirection.terminus(:foo)).to equal(@terminus)
|
780
802
|
end
|
781
803
|
|
782
804
|
# Make sure it caches the terminus.
|
783
805
|
it "should return the same terminus instance each time for a given name" do
|
784
|
-
@terminus_class.
|
806
|
+
allow(@terminus_class).to receive(:new).and_return(@terminus)
|
785
807
|
expect(@indirection.terminus(:foo)).to equal(@terminus)
|
786
808
|
expect(@indirection.terminus(:foo)).to equal(@terminus)
|
787
809
|
end
|
788
810
|
|
789
811
|
it "should not create a terminus instance until one is actually needed" do
|
790
|
-
Puppet::Indirector.
|
791
|
-
Puppet::Indirector::Indirection.new(
|
812
|
+
expect(Puppet::Indirector).not_to receive(:terminus)
|
813
|
+
Puppet::Indirector::Indirection.new(double('model'), :lazytest)
|
792
814
|
end
|
793
815
|
|
794
816
|
after do
|
@@ -798,11 +820,11 @@ describe Puppet::Indirector::Indirection do
|
|
798
820
|
|
799
821
|
describe "when deciding whether to cache" do
|
800
822
|
before do
|
801
|
-
@indirection = Puppet::Indirector::Indirection.new(
|
802
|
-
@terminus =
|
803
|
-
@terminus_class =
|
804
|
-
@terminus_class.
|
805
|
-
Puppet::Indirector::Terminus.
|
823
|
+
@indirection = Puppet::Indirector::Indirection.new(double('model'), :test)
|
824
|
+
@terminus = double('terminus')
|
825
|
+
@terminus_class = double('terminus class')
|
826
|
+
allow(@terminus_class).to receive(:new).and_return(@terminus)
|
827
|
+
allow(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :foo).and_return(@terminus_class)
|
806
828
|
@indirection.terminus_class = :foo
|
807
829
|
end
|
808
830
|
|
@@ -824,7 +846,7 @@ describe Puppet::Indirector::Indirection do
|
|
824
846
|
end
|
825
847
|
|
826
848
|
it "should fail to set the cache class when the specified cache class cannot be found" do
|
827
|
-
Puppet::Indirector::Terminus.
|
849
|
+
expect(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :foo).and_return(nil)
|
828
850
|
expect { @indirection.cache_class = :foo }.to raise_error(ArgumentError)
|
829
851
|
end
|
830
852
|
|
@@ -835,14 +857,14 @@ describe Puppet::Indirector::Indirection do
|
|
835
857
|
|
836
858
|
describe "when using a cache" do
|
837
859
|
before :each do
|
838
|
-
@terminus_class =
|
839
|
-
@terminus =
|
840
|
-
@terminus_class.
|
841
|
-
@cache =
|
842
|
-
@cache_class =
|
843
|
-
Puppet::Indirector::Terminus.
|
844
|
-
Puppet::Indirector::Terminus.
|
845
|
-
@indirection = Puppet::Indirector::Indirection.new(
|
860
|
+
@terminus_class = double('terminus_class')
|
861
|
+
@terminus = double('terminus')
|
862
|
+
allow(@terminus_class).to receive(:new).and_return(@terminus)
|
863
|
+
@cache = double('cache')
|
864
|
+
@cache_class = double('cache_class')
|
865
|
+
allow(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :cache_terminus).and_return(@cache_class)
|
866
|
+
allow(Puppet::Indirector::Terminus).to receive(:terminus_class).with(:test, :test_terminus).and_return(@terminus_class)
|
867
|
+
@indirection = Puppet::Indirector::Indirection.new(double('model'), :test)
|
846
868
|
@indirection.terminus_class = :test_terminus
|
847
869
|
end
|
848
870
|
|
@@ -853,19 +875,13 @@ describe Puppet::Indirector::Indirection do
|
|
853
875
|
end
|
854
876
|
|
855
877
|
it "should reuse the cache terminus" do
|
856
|
-
@cache_class.
|
878
|
+
expect(@cache_class).to receive(:new).and_return(@cache)
|
857
879
|
@indirection.cache_class = :cache_terminus
|
858
880
|
expect(@indirection.cache).to equal(@cache)
|
859
881
|
expect(@indirection.cache).to equal(@cache)
|
860
882
|
end
|
861
883
|
end
|
862
884
|
|
863
|
-
describe "and saving" do
|
864
|
-
end
|
865
|
-
|
866
|
-
describe "and finding" do
|
867
|
-
end
|
868
|
-
|
869
885
|
after :each do
|
870
886
|
@indirection.delete
|
871
887
|
end
|