puppet 6.0.10-x86-mingw32 → 6.1.0-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 +1 -0
- data/Gemfile.lock +31 -27
- data/Guardfile.example +76 -0
- data/LICENSE +189 -4
- data/MAINTAINERS +47 -0
- data/README.md +3 -3
- data/lib/hiera/scope.rb +0 -7
- data/lib/puppet.rb +6 -5
- data/lib/puppet/application.rb +3 -3
- data/lib/puppet/application/cert.rb +2 -2
- data/lib/puppet/application/device.rb +83 -109
- data/lib/puppet/application/filebucket.rb +1 -10
- data/lib/puppet/application/ssl.rb +0 -2
- data/lib/puppet/configurer.rb +9 -10
- data/lib/puppet/confine/false.rb +1 -7
- data/lib/puppet/confine/true.rb +1 -7
- data/lib/puppet/defaults.rb +39 -51
- data/lib/puppet/forge.rb +1 -4
- data/lib/puppet/functions/abs.rb +1 -1
- data/lib/puppet/functions/call.rb +1 -2
- data/lib/puppet/functions/new.rb +1 -1
- data/lib/puppet/indirector/request.rb +15 -26
- data/lib/puppet/network/http/connection.rb +12 -32
- data/lib/puppet/network/http/factory.rb +0 -5
- data/lib/puppet/pal/catalog_compiler.rb +96 -0
- data/lib/puppet/pal/compiler.rb +221 -0
- data/lib/puppet/pal/function_signature.rb +52 -0
- data/lib/puppet/pal/json_catalog_encoder.rb +67 -0
- data/lib/puppet/pal/pal_api.rb +15 -0
- data/lib/puppet/pal/pal_impl.rb +523 -0
- data/lib/puppet/pal/plan_signature.rb +71 -0
- data/lib/puppet/pal/script_compiler.rb +71 -0
- data/lib/puppet/pal/task_signature.rb +58 -0
- data/lib/puppet/parser/functions/generate.rb +7 -6
- data/lib/puppet/plugins/configuration.rb +5 -1
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +5 -1
- data/lib/puppet/pops/evaluator/external_syntax_support.rb +3 -3
- data/lib/puppet/pops/issues.rb +0 -4
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +4 -60
- data/lib/puppet/pops/model/factory.rb +4 -38
- data/lib/puppet/pops/model/pn_transformer.rb +0 -5
- data/lib/puppet/pops/parser/egrammar.ra +2 -2
- data/lib/puppet/pops/parser/heredoc_support.rb +7 -17
- data/lib/puppet/pops/parser/lexer2.rb +1 -6
- data/lib/puppet/pops/parser/locator.rb +86 -106
- data/lib/puppet/pops/parser/parser_support.rb +2 -11
- data/lib/puppet/pops/types/string_converter.rb +7 -2
- data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
- data/lib/puppet/pops/types/types.rb +3 -5
- data/lib/puppet/pops/validation/checker4_0.rb +13 -0
- data/lib/puppet/provider.rb +2 -1
- data/lib/puppet/provider/exec.rb +6 -1
- data/lib/puppet/provider/file/windows.rb +1 -49
- data/lib/puppet/provider/group/windows_adsi.rb +1 -4
- data/lib/puppet/provider/package.rb +0 -2
- data/lib/puppet/provider/package/dpkg.rb +2 -15
- data/lib/puppet/provider/package/gem.rb +42 -102
- data/lib/puppet/provider/package/pip.rb +111 -135
- data/lib/puppet/provider/package/pip3.rb +1 -1
- data/lib/puppet/provider/package/pkgng.rb +37 -21
- data/lib/puppet/provider/package/puppet_gem.rb +1 -1
- data/lib/puppet/provider/package/rpm.rb +16 -27
- data/lib/puppet/provider/package/windows.rb +1 -5
- data/lib/puppet/provider/package/yum.rb +1 -2
- data/lib/puppet/provider/service/systemd.rb +17 -0
- data/lib/puppet/provider/service/upstart.rb +5 -17
- data/lib/puppet/provider/service/windows.rb +8 -3
- data/lib/puppet/provider/user/directoryservice.rb +4 -16
- data/lib/puppet/provider/user/useradd.rb +13 -16
- data/lib/puppet/resource.rb +3 -1
- data/lib/puppet/rest/client.rb +83 -0
- data/lib/puppet/rest/route.rb +1 -1
- data/lib/puppet/settings.rb +5 -10
- data/lib/puppet/settings/server_list_setting.rb +0 -9
- data/lib/puppet/ssl/host.rb +11 -0
- data/lib/puppet/ssl/validator/default_validator.rb +0 -31
- data/lib/puppet/syntax_checkers/epp.rb +34 -0
- data/lib/puppet/syntax_checkers/pp.rb +34 -0
- data/lib/puppet/transaction.rb +7 -12
- data/lib/puppet/transaction/event_manager.rb +5 -1
- data/lib/puppet/transaction/resource_harness.rb +0 -1
- data/lib/puppet/type.rb +6 -0
- data/lib/puppet/type/exec.rb +5 -27
- data/lib/puppet/type/file/mode.rb +1 -6
- data/lib/puppet/type/file/source.rb +1 -0
- data/lib/puppet/type/filebucket.rb +8 -12
- data/lib/puppet/type/package.rb +11 -44
- data/lib/puppet/type/schedule.rb +0 -4
- data/lib/puppet/type/service.rb +12 -0
- data/lib/puppet/type/user.rb +1 -1
- data/lib/puppet/util/command_line.rb +1 -5
- data/lib/puppet/util/connection.rb +6 -15
- data/lib/puppet/util/http_proxy.rb +2 -3
- data/lib/puppet/util/log.rb +2 -7
- data/lib/puppet/util/pidlock.rb +1 -15
- data/lib/puppet/util/windows/process.rb +5 -73
- data/lib/puppet/util/windows/registry.rb +1 -7
- data/lib/puppet/util/windows/security.rb +8 -29
- data/lib/puppet/util/windows/service.rb +33 -27
- data/lib/puppet/util/windows/user.rb +4 -14
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet_pal.rb +5 -1132
- data/locales/ja/puppet.po +297 -363
- data/locales/puppet.pot +445 -517
- data/man/man5/puppet.conf.5 +12 -20
- data/man/man8/puppet-agent.8 +1 -1
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +1 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +1 -1
- data/man/man8/puppet-filebucket.8 +2 -6
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-key.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-man.8 +1 -1
- data/man/man8/puppet-module.8 +1 -1
- data/man/man8/puppet-node.8 +1 -1
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet-status.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- data/spec/fixtures/unit/provider/package/pkgng/pkg.query +7 -1
- data/spec/fixtures/unit/provider/package/pkgng/pkg.query.zsh +1 -0
- data/spec/integration/agent/logging_spec.rb +7 -5
- data/spec/integration/application/apply_spec.rb +16 -18
- data/spec/integration/application/doc_spec.rb +2 -1
- data/spec/integration/application/lookup_spec.rb +5 -5
- data/spec/integration/configurer_spec.rb +6 -5
- data/spec/integration/defaults_spec.rb +6 -5
- data/spec/integration/directory_environments_spec.rb +1 -1
- data/spec/integration/faces/config_spec.rb +4 -3
- data/spec/integration/faces/documentation_spec.rb +1 -0
- data/spec/integration/faces/plugin_spec.rb +1 -1
- data/spec/integration/file_bucket/file_spec.rb +4 -2
- data/spec/integration/file_serving/content_spec.rb +1 -0
- data/spec/integration/file_serving/fileset_spec.rb +1 -0
- data/spec/integration/file_serving/metadata_spec.rb +1 -0
- data/spec/integration/file_serving/terminus_helper_spec.rb +1 -0
- data/spec/integration/indirector/catalog/compiler_spec.rb +11 -10
- data/spec/integration/indirector/direct_file_server_spec.rb +1 -1
- data/spec/integration/indirector/facts/facter_spec.rb +5 -4
- data/spec/integration/indirector/file_content/file_server_spec.rb +8 -7
- data/spec/integration/indirector/file_metadata/file_server_spec.rb +8 -7
- data/spec/integration/network/authconfig_spec.rb +24 -23
- data/spec/integration/network/formats_spec.rb +1 -0
- data/spec/integration/node/environment_spec.rb +1 -0
- data/spec/integration/node/facts_spec.rb +10 -9
- data/spec/integration/node_spec.rb +7 -6
- data/spec/integration/parser/catalog_spec.rb +5 -1
- data/spec/integration/parser/collection_spec.rb +2 -1
- data/spec/integration/parser/compiler_spec.rb +6 -6
- data/spec/integration/parser/scope_spec.rb +1 -1
- data/spec/integration/parser/undef_param_spec.rb +1 -1
- data/spec/integration/provider/service/init_spec.rb +5 -4
- data/spec/integration/provider/service/systemd_spec.rb +2 -0
- data/spec/integration/provider/service/windows_spec.rb +2 -1
- data/spec/integration/reference/providers_spec.rb +2 -1
- data/spec/integration/reports_spec.rb +2 -1
- data/spec/integration/resource/catalog_spec.rb +17 -14
- data/spec/integration/resource/type_collection_spec.rb +5 -4
- data/spec/integration/ssl/certificate_request_spec.rb +1 -0
- data/spec/integration/ssl/host_spec.rb +2 -1
- data/spec/integration/ssl/key_spec.rb +1 -0
- data/spec/integration/test/test_helper_spec.rb +1 -0
- data/spec/integration/transaction/report_spec.rb +11 -6
- data/spec/integration/transaction_spec.rb +19 -18
- data/spec/integration/type/exec_spec.rb +1 -0
- data/spec/integration/type/file_spec.rb +33 -13
- data/spec/integration/type/package_spec.rb +24 -20
- data/spec/integration/type/tidy_spec.rb +2 -1
- data/spec/integration/type_spec.rb +1 -0
- data/spec/integration/util/autoload_spec.rb +2 -1
- data/spec/integration/util/rdoc/parser_spec.rb +1 -0
- data/spec/integration/util/settings_spec.rb +1 -0
- data/spec/integration/util/windows/adsi_spec.rb +5 -3
- data/spec/integration/util/windows/principal_spec.rb +1 -0
- data/spec/integration/util/windows/process_spec.rb +6 -4
- data/spec/integration/util/windows/registry_spec.rb +51 -93
- data/spec/integration/util/windows/security_spec.rb +4 -2
- data/spec/integration/util/windows/user_spec.rb +20 -37
- data/spec/integration/util_spec.rb +7 -4
- data/spec/lib/puppet_spec/compiler.rb +1 -1
- data/spec/lib/puppet_spec/files.rb +1 -0
- data/spec/lib/puppet_spec/module_tool/shared_functions.rb +1 -1
- data/spec/lib/puppet_spec/scope.rb +2 -1
- data/spec/shared_behaviours/all_parsedfile_providers.rb +1 -1
- data/spec/shared_behaviours/file_server_terminus.rb +9 -8
- data/spec/shared_behaviours/file_serving.rb +8 -6
- data/spec/shared_behaviours/file_serving_model.rb +5 -3
- data/spec/shared_behaviours/hiera_indirections.rb +4 -3
- data/spec/shared_behaviours/iterative_functions.rb +1 -0
- data/spec/shared_behaviours/memory_terminus.rb +2 -2
- data/spec/shared_examples/rhel_package_provider.rb +70 -112
- data/spec/spec_helper.rb +2 -11
- data/spec/unit/agent/disabler_spec.rb +5 -4
- data/spec/unit/agent/locker_spec.rb +13 -12
- data/spec/unit/agent_spec.rb +85 -80
- data/spec/unit/application/agent_spec.rb +93 -88
- data/spec/unit/application/apply_spec.rb +83 -82
- data/spec/unit/application/config_spec.rb +1 -0
- data/spec/unit/application/describe_spec.rb +7 -6
- data/spec/unit/application/device_spec.rb +419 -395
- data/spec/unit/application/doc_spec.rb +46 -44
- data/spec/unit/application/face_base_spec.rb +62 -61
- data/spec/unit/application/facts_spec.rb +4 -3
- data/spec/unit/application/filebucket_spec.rb +74 -66
- data/spec/unit/application/indirection_base_spec.rb +6 -8
- data/spec/unit/application/lookup_spec.rb +26 -26
- data/spec/unit/application/resource_spec.rb +48 -42
- data/spec/unit/application/ssl_spec.rb +3 -8
- data/spec/unit/application_spec.rb +98 -86
- data/spec/unit/capability_spec.rb +6 -6
- data/spec/unit/certificate_factory_spec.rb +5 -3
- data/spec/unit/configurer/downloader_spec.rb +21 -20
- data/spec/unit/configurer/fact_handler_spec.rb +3 -2
- data/spec/unit/configurer/plugin_handler_spec.rb +8 -41
- data/spec/unit/configurer_spec.rb +198 -194
- data/spec/unit/confine/exists_spec.rb +15 -17
- data/spec/unit/confine/false_spec.rb +6 -32
- data/spec/unit/confine/feature_spec.rb +5 -7
- data/spec/unit/confine/true_spec.rb +6 -32
- data/spec/unit/confine/variable_spec.rb +15 -14
- data/spec/unit/confine_collection_spec.rb +29 -28
- data/spec/unit/confine_spec.rb +14 -13
- data/spec/unit/confiner_spec.rb +11 -10
- data/spec/unit/context/trusted_information_spec.rb +1 -1
- data/spec/unit/daemon_spec.rb +36 -35
- data/spec/unit/data_providers/function_data_provider_spec.rb +1 -0
- data/spec/unit/data_providers/hiera_data_provider_spec.rb +1 -0
- data/spec/unit/datatypes_spec.rb +4 -3
- data/spec/unit/defaults_spec.rb +27 -18
- data/spec/unit/environments_spec.rb +7 -7
- data/spec/unit/etc_spec.rb +32 -30
- data/spec/unit/external/pson_spec.rb +1 -0
- data/spec/unit/face/catalog_spec.rb +1 -0
- data/spec/unit/face/config_spec.rb +35 -31
- data/spec/unit/face/epp_face_spec.rb +4 -3
- data/spec/unit/face/facts_spec.rb +6 -5
- data/spec/unit/face/generate_spec.rb +5 -4
- data/spec/unit/face/help_spec.rb +8 -7
- data/spec/unit/face/key_spec.rb +1 -0
- data/spec/unit/face/man_spec.rb +2 -1
- data/spec/unit/face/module/install_spec.rb +5 -3
- data/spec/unit/face/module/list_spec.rb +12 -2
- data/spec/unit/face/module/search_spec.rb +9 -11
- data/spec/unit/face/module/uninstall_spec.rb +8 -4
- data/spec/unit/face/node_spec.rb +24 -23
- data/spec/unit/face/parser_spec.rb +18 -3
- data/spec/unit/face/plugin_spec.rb +9 -36
- data/spec/unit/face/status_spec.rb +1 -0
- data/spec/unit/file_bucket/dipper_spec.rb +20 -24
- data/spec/unit/file_bucket/file_spec.rb +2 -0
- data/spec/unit/file_serving/base_spec.rb +15 -14
- data/spec/unit/file_serving/configuration/parser_spec.rb +28 -27
- data/spec/unit/file_serving/configuration_spec.rb +66 -63
- data/spec/unit/file_serving/content_spec.rb +11 -10
- data/spec/unit/file_serving/fileset_spec.rb +58 -63
- data/spec/unit/file_serving/http_metadata_spec.rb +7 -8
- data/spec/unit/file_serving/metadata_spec.rb +36 -36
- data/spec/unit/file_serving/mount/file_spec.rb +32 -31
- data/spec/unit/file_serving/mount/locales_spec.rb +24 -23
- data/spec/unit/file_serving/mount/modules_spec.rb +15 -14
- data/spec/unit/file_serving/mount/pluginfacts_spec.rb +24 -23
- data/spec/unit/file_serving/mount/plugins_spec.rb +24 -23
- data/spec/unit/file_serving/mount/tasks_spec.rb +15 -14
- data/spec/unit/file_serving/mount_spec.rb +1 -0
- data/spec/unit/file_serving/terminus_helper_spec.rb +42 -37
- data/spec/unit/file_serving/terminus_selector_spec.rb +13 -12
- 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 +16 -17
- data/spec/unit/forge/module_release_spec.rb +18 -18
- data/spec/unit/forge/repository_spec.rb +30 -29
- data/spec/unit/forge_spec.rb +11 -15
- data/spec/unit/functions/binary_file_spec.rb +3 -3
- data/spec/unit/functions/contain_spec.rb +2 -0
- data/spec/unit/functions/defined_spec.rb +1 -0
- 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 +4 -0
- data/spec/unit/functions/lookup_fixture_spec.rb +1 -0
- data/spec/unit/functions/lookup_spec.rb +2 -1
- data/spec/unit/functions/module_directory_spec.rb +12 -12
- data/spec/unit/functions/new_spec.rb +0 -15
- data/spec/unit/functions/require_spec.rb +3 -0
- data/spec/unit/functions/shared.rb +8 -5
- data/spec/unit/functions/versioncmp_spec.rb +2 -1
- data/spec/unit/functions4_spec.rb +10 -9
- 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 +2 -0
- data/spec/unit/graph/relationship_graph_spec.rb +2 -1
- data/spec/unit/graph/simple_graph_spec.rb +10 -9
- data/spec/unit/hiera/scope_spec.rb +0 -7
- data/spec/unit/hiera_puppet_spec.rb +20 -20
- data/spec/unit/indirector/catalog/compiler_spec.rb +149 -147
- data/spec/unit/indirector/catalog/json_spec.rb +2 -1
- data/spec/unit/indirector/catalog/msgpack_spec.rb +1 -0
- data/spec/unit/indirector/catalog/rest_spec.rb +1 -0
- data/spec/unit/indirector/catalog/store_configs_spec.rb +1 -0
- data/spec/unit/indirector/catalog/yaml_spec.rb +1 -0
- data/spec/unit/indirector/certificate/file_spec.rb +1 -0
- data/spec/unit/indirector/certificate/rest_spec.rb +10 -8
- data/spec/unit/indirector/certificate_request/file_spec.rb +1 -0
- data/spec/unit/indirector/certificate_request/rest_spec.rb +1 -0
- data/spec/unit/indirector/direct_file_server_spec.rb +18 -17
- data/spec/unit/indirector/envelope_spec.rb +2 -1
- data/spec/unit/indirector/exec_spec.rb +5 -4
- data/spec/unit/indirector/face_spec.rb +9 -9
- data/spec/unit/indirector/facts/facter_spec.rb +43 -37
- data/spec/unit/indirector/facts/network_device_spec.rb +9 -8
- data/spec/unit/indirector/facts/rest_spec.rb +8 -7
- data/spec/unit/indirector/facts/store_configs_spec.rb +1 -0
- data/spec/unit/indirector/facts/yaml_spec.rb +1 -0
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +4 -3
- data/spec/unit/indirector/file_bucket_file/rest_spec.rb +1 -0
- data/spec/unit/indirector/file_bucket_file/selector_spec.rb +5 -4
- data/spec/unit/indirector/file_content/file_server_spec.rb +1 -0
- data/spec/unit/indirector/file_content/file_spec.rb +1 -0
- data/spec/unit/indirector/file_content/rest_spec.rb +1 -0
- data/spec/unit/indirector/file_content/selector_spec.rb +1 -0
- data/spec/unit/indirector/file_metadata/file_server_spec.rb +1 -0
- data/spec/unit/indirector/file_metadata/file_spec.rb +13 -12
- data/spec/unit/indirector/file_metadata/rest_spec.rb +1 -0
- data/spec/unit/indirector/file_metadata/selector_spec.rb +1 -0
- data/spec/unit/indirector/file_server_spec.rb +87 -87
- data/spec/unit/indirector/indirection_spec.rb +226 -242
- data/spec/unit/indirector/json_spec.rb +9 -7
- data/spec/unit/indirector/key/file_spec.rb +22 -21
- data/spec/unit/indirector/memory_spec.rb +7 -6
- data/spec/unit/indirector/msgpack_spec.rb +9 -7
- data/spec/unit/indirector/node/exec_spec.rb +3 -2
- data/spec/unit/indirector/node/memory_spec.rb +4 -2
- data/spec/unit/indirector/node/msgpack_spec.rb +1 -0
- data/spec/unit/indirector/node/plain_spec.rb +4 -2
- data/spec/unit/indirector/node/rest_spec.rb +1 -0
- data/spec/unit/indirector/node/store_configs_spec.rb +1 -0
- data/spec/unit/indirector/node/yaml_spec.rb +1 -0
- data/spec/unit/indirector/none_spec.rb +5 -5
- data/spec/unit/indirector/plain_spec.rb +8 -7
- data/spec/unit/indirector/report/msgpack_spec.rb +1 -0
- data/spec/unit/indirector/report/processor_spec.rb +22 -21
- data/spec/unit/indirector/report/rest_spec.rb +12 -11
- data/spec/unit/indirector/report/yaml_spec.rb +1 -0
- data/spec/unit/indirector/request_spec.rb +12 -11
- data/spec/unit/indirector/resource/ral_spec.rb +54 -47
- data/spec/unit/indirector/resource/store_configs_spec.rb +1 -0
- data/spec/unit/indirector/rest_spec.rb +110 -113
- data/spec/unit/indirector/ssl_file_spec.rb +65 -64
- data/spec/unit/indirector/status/local_spec.rb +1 -0
- data/spec/unit/indirector/status/rest_spec.rb +1 -0
- data/spec/unit/indirector/store_configs_spec.rb +1 -0
- data/spec/unit/indirector/terminus_spec.rb +27 -27
- data/spec/unit/indirector/yaml_spec.rb +6 -5
- data/spec/unit/indirector_spec.rb +2 -1
- data/spec/unit/info_service_spec.rb +1 -1
- data/spec/unit/interface/action_builder_spec.rb +1 -0
- data/spec/unit/interface/action_manager_spec.rb +1 -0
- data/spec/unit/interface/action_spec.rb +3 -2
- data/spec/unit/interface/documentation_spec.rb +1 -0
- data/spec/unit/interface/face_collection_spec.rb +12 -19
- data/spec/unit/interface_spec.rb +3 -3
- data/spec/unit/man_spec.rb +4 -3
- data/spec/unit/module_spec.rb +51 -46
- data/spec/unit/module_tool/applications/installer_spec.rb +11 -10
- data/spec/unit/module_tool/applications/searcher_spec.rb +3 -3
- data/spec/unit/module_tool/applications/uninstaller_spec.rb +2 -1
- 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 +13 -12
- data/spec/unit/module_tool_spec.rb +12 -7
- data/spec/unit/network/auth_config_parser_spec.rb +13 -11
- data/spec/unit/network/authconfig_spec.rb +18 -17
- data/spec/unit/network/authorization_spec.rb +5 -4
- data/spec/unit/network/authstore_spec.rb +1 -0
- data/spec/unit/network/format_handler_spec.rb +1 -0
- data/spec/unit/network/format_spec.rb +10 -9
- data/spec/unit/network/format_support_spec.rb +29 -28
- data/spec/unit/network/formats_spec.rb +5 -4
- data/spec/unit/network/http/api/indirected_routes_spec.rb +29 -24
- 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 +7 -6
- data/spec/unit/network/http/api_spec.rb +2 -0
- data/spec/unit/network/http/compression_spec.rb +22 -21
- data/spec/unit/network/http/connection_spec.rb +121 -30
- data/spec/unit/network/http/factory_spec.rb +6 -11
- data/spec/unit/network/http/handler_spec.rb +18 -9
- data/spec/unit/network/http/nocache_pool_spec.rb +7 -6
- data/spec/unit/network/http/pool_spec.rb +29 -28
- data/spec/unit/network/http/request_spec.rb +2 -0
- data/spec/unit/network/http/response_spec.rb +13 -11
- data/spec/unit/network/http/route_spec.rb +1 -0
- data/spec/unit/network/http/session_spec.rb +2 -1
- data/spec/unit/network/http/site_spec.rb +1 -0
- data/spec/unit/network/http_pool_spec.rb +9 -18
- data/spec/unit/network/http_spec.rb +1 -0
- data/spec/unit/network/resolver_spec.rb +26 -25
- data/spec/unit/network/rights_spec.rb +53 -52
- data/spec/unit/node/environment_spec.rb +15 -14
- data/spec/unit/node/facts_spec.rb +7 -5
- data/spec/unit/node_spec.rb +10 -4
- data/spec/unit/other/selinux_spec.rb +1 -0
- data/spec/unit/parameter/boolean_spec.rb +2 -1
- data/spec/unit/parameter/package_options_spec.rb +2 -1
- data/spec/unit/parameter/path_spec.rb +1 -0
- data/spec/unit/parameter/value_collection_spec.rb +1 -0
- data/spec/unit/parameter/value_spec.rb +1 -0
- data/spec/unit/parameter_spec.rb +9 -9
- data/spec/unit/parser/ast/block_expression_spec.rb +8 -6
- data/spec/unit/parser/ast/leaf_spec.rb +21 -20
- data/spec/unit/parser/compiler_spec.rb +96 -84
- data/spec/unit/parser/environment_compiler_spec.rb +8 -7
- data/spec/unit/parser/files_spec.rb +1 -0
- data/spec/unit/parser/functions/create_resources_spec.rb +1 -1
- data/spec/unit/parser/functions/digest_spec.rb +1 -0
- data/spec/unit/parser/functions/fail_spec.rb +2 -1
- data/spec/unit/parser/functions/file_spec.rb +14 -13
- data/spec/unit/parser/functions/fqdn_rand_spec.rb +6 -5
- data/spec/unit/parser/functions/generate_spec.rb +8 -7
- data/spec/unit/parser/functions/inline_template_spec.rb +1 -0
- data/spec/unit/parser/functions/regsubst_spec.rb +1 -0
- data/spec/unit/parser/functions/scanf_spec.rb +1 -0
- data/spec/unit/parser/functions/shellquote_spec.rb +1 -0
- data/spec/unit/parser/functions/split_spec.rb +1 -0
- data/spec/unit/parser/functions/sprintf_spec.rb +1 -0
- data/spec/unit/parser/functions/tag_spec.rb +2 -1
- data/spec/unit/parser/functions/tagged_spec.rb +3 -2
- data/spec/unit/parser/functions/template_spec.rb +13 -13
- data/spec/unit/parser/functions/versioncmp_spec.rb +2 -1
- data/spec/unit/parser/functions_spec.rb +7 -6
- data/spec/unit/parser/relationship_spec.rb +1 -0
- data/spec/unit/parser/resource_spec.rb +42 -42
- data/spec/unit/parser/scope_spec.rb +35 -39
- data/spec/unit/parser/templatewrapper_spec.rb +12 -11
- data/spec/unit/parser/type_loader_spec.rb +19 -17
- data/spec/unit/pops/adaptable_spec.rb +1 -0
- data/spec/unit/pops/benchmark_spec.rb +1 -0
- data/spec/unit/pops/evaluator/access_ops_spec.rb +1 -0
- data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +1 -0
- data/spec/unit/pops/evaluator/basic_expressions_spec.rb +1 -0
- data/spec/unit/pops/evaluator/collections_ops_spec.rb +1 -0
- data/spec/unit/pops/evaluator/comparison_ops_spec.rb +1 -0
- data/spec/unit/pops/evaluator/conditionals_spec.rb +1 -0
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +47 -10
- data/spec/unit/pops/evaluator/logical_ops_spec.rb +1 -0
- data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +1 -0
- data/spec/unit/pops/evaluator/string_interpolation_spec.rb +1 -0
- data/spec/unit/pops/evaluator/variables_spec.rb +1 -0
- data/spec/unit/pops/factory_spec.rb +4 -3
- data/spec/unit/pops/issues_spec.rb +20 -19
- data/spec/unit/pops/loaders/loader_spec.rb +4 -8
- data/spec/unit/pops/loaders/loaders_spec.rb +31 -101
- data/spec/unit/pops/lookup/context_spec.rb +1 -0
- data/spec/unit/pops/lookup/interpolation_spec.rb +3 -2
- data/spec/unit/pops/merge_strategy_spec.rb +1 -0
- data/spec/unit/pops/migration_spec.rb +5 -3
- data/spec/unit/pops/model/model_spec.rb +1 -0
- data/spec/unit/pops/model/pn_transformer_spec.rb +1 -4
- data/spec/unit/pops/parser/locator_spec.rb +6 -48
- data/spec/unit/pops/parser/parse_application_spec.rb +1 -0
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +1 -0
- data/spec/unit/pops/parser/parse_calls_spec.rb +1 -0
- data/spec/unit/pops/parser/parse_capabilities_spec.rb +1 -0
- data/spec/unit/pops/parser/parse_conditionals_spec.rb +1 -0
- data/spec/unit/pops/parser/parse_containers_spec.rb +1 -0
- data/spec/unit/pops/parser/parse_heredoc_spec.rb +15 -111
- data/spec/unit/pops/parser/parse_plan_spec.rb +1 -0
- data/spec/unit/pops/parser/parse_resource_spec.rb +1 -0
- data/spec/unit/pops/parser/parse_site_spec.rb +1 -0
- data/spec/unit/pops/parser/pn_parser_spec.rb +1 -0
- data/spec/unit/pops/pn_spec.rb +1 -0
- data/spec/unit/pops/resource/resource_type_impl_spec.rb +1 -0
- 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/string_converter_spec.rb +5 -1
- data/spec/unit/pops/types/type_asserter_spec.rb +2 -2
- data/spec/unit/pops/types/type_calculator_spec.rb +30 -30
- data/spec/unit/pops/types/type_mismatch_describer_spec.rb +0 -9
- data/spec/unit/pops/types/type_parser_spec.rb +13 -13
- data/spec/unit/pops/validator/validator_spec.rb +2 -1
- data/spec/unit/pops/visitor_spec.rb +1 -0
- data/spec/unit/property/boolean_spec.rb +1 -1
- data/spec/unit/property/ensure_spec.rb +1 -0
- data/spec/unit/property/keyvalue_spec.rb +34 -32
- data/spec/unit/property/list_spec.rb +27 -26
- data/spec/unit/property/ordered_list_spec.rb +14 -10
- data/spec/unit/property_spec.rb +43 -42
- data/spec/unit/provider/aix_object_spec.rb +45 -47
- data/spec/unit/provider/command_spec.rb +9 -9
- data/spec/unit/provider/exec/posix_spec.rb +31 -6
- data/spec/unit/provider/exec/shell_spec.rb +1 -0
- data/spec/unit/provider/exec/windows_spec.rb +4 -2
- data/spec/unit/provider/exec_spec.rb +1 -0
- data/spec/unit/provider/file/posix_spec.rb +24 -22
- data/spec/unit/provider/file/windows_spec.rb +17 -15
- data/spec/unit/provider/group/aix_spec.rb +2 -3
- data/spec/unit/provider/group/groupadd_spec.rb +26 -30
- 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 +53 -59
- data/spec/unit/provider/ldap_spec.rb +62 -61
- data/spec/unit/provider/nameservice/directoryservice_spec.rb +36 -35
- data/spec/unit/provider/nameservice_spec.rb +40 -38
- 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 +27 -44
- data/spec/unit/provider/package/aptitude_spec.rb +7 -6
- data/spec/unit/provider/package/aptrpm_spec.rb +12 -7
- data/spec/unit/provider/package/base_spec.rb +4 -4
- data/spec/unit/provider/package/dnf_spec.rb +20 -18
- data/spec/unit/provider/package/dpkg_spec.rb +53 -70
- data/spec/unit/provider/package/freebsd_spec.rb +11 -11
- data/spec/unit/provider/package/gem_spec.rb +55 -132
- data/spec/unit/provider/package/hpux_spec.rb +8 -8
- data/spec/unit/provider/package/macports_spec.rb +42 -46
- data/spec/unit/provider/package/nim_spec.rb +39 -30
- data/spec/unit/provider/package/openbsd_spec.rb +39 -36
- data/spec/unit/provider/package/opkg_spec.rb +26 -23
- data/spec/unit/provider/package/pacman_spec.rb +118 -97
- data/spec/unit/provider/package/pip3_spec.rb +0 -17
- data/spec/unit/provider/package/pip_spec.rb +106 -95
- data/spec/unit/provider/package/pkg_spec.rb +109 -109
- data/spec/unit/provider/package/pkgdmg_spec.rb +63 -65
- data/spec/unit/provider/package/pkgin_spec.rb +8 -10
- data/spec/unit/provider/package/pkgng_spec.rb +31 -22
- data/spec/unit/provider/package/pkgutil_spec.rb +49 -45
- data/spec/unit/provider/package/portage_spec.rb +74 -70
- data/spec/unit/provider/package/puppet_gem_spec.rb +13 -37
- data/spec/unit/provider/package/rpm_spec.rb +76 -154
- data/spec/unit/provider/package/sun_spec.rb +18 -16
- data/spec/unit/provider/package/tdnf_spec.rb +2 -2
- data/spec/unit/provider/package/up2date_spec.rb +4 -2
- data/spec/unit/provider/package/urpmi_spec.rb +17 -15
- data/spec/unit/provider/package/windows/exe_package_spec.rb +15 -12
- data/spec/unit/provider/package/windows/msi_package_spec.rb +22 -19
- data/spec/unit/provider/package/windows/package_spec.rb +42 -37
- data/spec/unit/provider/package/windows_spec.rb +32 -47
- data/spec/unit/provider/package/yum_spec.rb +7 -7
- data/spec/unit/provider/package/zypper_spec.rb +87 -87
- data/spec/unit/provider/parsedfile_spec.rb +45 -44
- data/spec/unit/provider/service/base_spec.rb +5 -4
- data/spec/unit/provider/service/bsd_spec.rb +29 -27
- data/spec/unit/provider/service/daemontools_spec.rb +35 -35
- data/spec/unit/provider/service/debian_spec.rb +38 -38
- data/spec/unit/provider/service/freebsd_spec.rb +18 -18
- data/spec/unit/provider/service/gentoo_spec.rb +55 -50
- data/spec/unit/provider/service/init_spec.rb +52 -53
- data/spec/unit/provider/service/launchd_spec.rb +116 -138
- data/spec/unit/provider/service/openbsd_spec.rb +50 -50
- data/spec/unit/provider/service/openrc_spec.rb +45 -43
- data/spec/unit/provider/service/openwrt_spec.rb +31 -26
- data/spec/unit/provider/service/rcng_spec.rb +14 -14
- data/spec/unit/provider/service/redhat_spec.rb +43 -45
- data/spec/unit/provider/service/runit_spec.rb +27 -29
- data/spec/unit/provider/service/smf_spec.rb +66 -74
- data/spec/unit/provider/service/src_spec.rb +47 -46
- data/spec/unit/provider/service/systemd_spec.rb +136 -109
- data/spec/unit/provider/service/upstart_spec.rb +93 -77
- data/spec/unit/provider/service/windows_spec.rb +41 -33
- data/spec/unit/provider/user/aix_spec.rb +31 -31
- data/spec/unit/provider/user/directoryservice_spec.rb +114 -146
- data/spec/unit/provider/user/hpux_spec.rb +16 -16
- data/spec/unit/provider/user/ldap_spec.rb +57 -57
- data/spec/unit/provider/user/openbsd_spec.rb +12 -10
- data/spec/unit/provider/user/pw_spec.rb +35 -37
- data/spec/unit/provider/user/user_role_add_spec.rb +93 -93
- data/spec/unit/provider/user/useradd_spec.rb +92 -93
- data/spec/unit/provider/user/windows_adsi_spec.rb +60 -59
- data/spec/unit/provider_spec.rb +35 -35
- data/spec/unit/puppet_pal_2pec.rb +5 -4
- data/spec/unit/puppet_pal_spec.rb +1 -0
- data/spec/unit/puppet_spec.rb +7 -6
- data/spec/unit/relationship_spec.rb +1 -0
- data/spec/unit/reports/http_spec.rb +23 -21
- data/spec/unit/reports/store_spec.rb +4 -3
- data/spec/unit/reports_spec.rb +14 -12
- data/spec/unit/resource/capability_finder_spec.rb +17 -15
- data/spec/unit/resource/catalog_spec.rb +68 -72
- data/spec/unit/resource/status_spec.rb +8 -6
- data/spec/unit/resource/type_collection_spec.rb +18 -17
- data/spec/unit/resource/type_spec.rb +35 -34
- data/spec/unit/resource_spec.rb +63 -36
- data/spec/unit/rest/client_spec.rb +135 -0
- data/spec/unit/rest/route_spec.rb +6 -6
- data/spec/unit/scheduler/job_spec.rb +1 -0
- data/spec/unit/scheduler/scheduler_spec.rb +1 -0
- data/spec/unit/scheduler/splay_job_spec.rb +2 -1
- 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 +1 -0
- data/spec/unit/settings/directory_setting_spec.rb +7 -2
- data/spec/unit/settings/duration_setting_spec.rb +2 -1
- data/spec/unit/settings/enum_setting_spec.rb +1 -1
- data/spec/unit/settings/environment_conf_spec.rb +6 -4
- data/spec/unit/settings/file_setting_spec.rb +46 -44
- data/spec/unit/settings/path_setting_spec.rb +2 -1
- data/spec/unit/settings/priority_setting_spec.rb +2 -1
- data/spec/unit/settings/string_setting_spec.rb +15 -14
- data/spec/unit/settings/terminus_setting_spec.rb +2 -1
- data/spec/unit/settings/value_translator_spec.rb +1 -0
- data/spec/unit/settings_spec.rb +224 -253
- data/spec/unit/ssl/base_spec.rb +15 -14
- data/spec/unit/ssl/certificate_request_spec.rb +58 -62
- data/spec/unit/ssl/certificate_spec.rb +25 -23
- data/spec/unit/ssl/digest_spec.rb +1 -0
- data/spec/unit/ssl/host_spec.rb +149 -166
- data/spec/unit/ssl/key_spec.rb +31 -30
- data/spec/unit/ssl/validator_spec.rb +39 -40
- data/spec/unit/task_spec.rb +45 -44
- data/spec/unit/transaction/additional_resource_generator_spec.rb +5 -3
- data/spec/unit/transaction/event_manager_spec.rb +88 -87
- data/spec/unit/transaction/event_spec.rb +15 -16
- data/spec/unit/transaction/persistence_spec.rb +17 -16
- data/spec/unit/transaction/report_spec.rb +12 -11
- data/spec/unit/transaction/resource_harness_spec.rb +31 -52
- data/spec/unit/transaction_spec.rb +87 -140
- data/spec/unit/type/component_spec.rb +1 -0
- data/spec/unit/type/exec_spec.rb +50 -101
- data/spec/unit/type/file/checksum_spec.rb +10 -9
- data/spec/unit/type/file/checksum_value_spec.rb +32 -31
- data/spec/unit/type/file/content_spec.rb +61 -58
- data/spec/unit/type/file/ctime_spec.rb +1 -0
- data/spec/unit/type/file/ensure_spec.rb +13 -12
- data/spec/unit/type/file/group_spec.rb +7 -5
- data/spec/unit/type/file/mode_spec.rb +6 -4
- data/spec/unit/type/file/mtime_spec.rb +1 -0
- data/spec/unit/type/file/owner_spec.rb +8 -6
- data/spec/unit/type/file/selinux_spec.rb +19 -17
- data/spec/unit/type/file/source_spec.rb +101 -104
- data/spec/unit/type/file/type_spec.rb +1 -0
- data/spec/unit/type/file_spec.rb +185 -195
- data/spec/unit/type/filebucket_spec.rb +10 -11
- data/spec/unit/type/group_spec.rb +8 -6
- data/spec/unit/type/noop_metaparam_spec.rb +2 -1
- data/spec/unit/type/package/package_settings_spec.rb +23 -44
- data/spec/unit/type/package_spec.rb +57 -56
- data/spec/unit/type/resources_spec.rb +74 -72
- data/spec/unit/type/schedule_spec.rb +26 -24
- data/spec/unit/type/service_spec.rb +75 -49
- data/spec/unit/type/stage_spec.rb +1 -0
- data/spec/unit/type/tidy_spec.rb +62 -61
- data/spec/unit/type/user_spec.rb +25 -24
- data/spec/unit/type/whit_spec.rb +1 -0
- data/spec/unit/type_spec.rb +54 -55
- data/spec/unit/util/at_fork_spec.rb +19 -18
- data/spec/unit/util/autoload_spec.rb +56 -55
- data/spec/unit/util/backups_spec.rb +35 -34
- data/spec/unit/util/character_encoding_spec.rb +5 -5
- data/spec/unit/util/checksums_spec.rb +39 -38
- data/spec/unit/util/colors_spec.rb +2 -1
- data/spec/unit/util/command_line_spec.rb +20 -40
- data/spec/unit/util/constant_inflector_spec.rb +1 -0
- data/spec/unit/util/diff_spec.rb +8 -7
- data/spec/unit/util/errors_spec.rb +1 -0
- data/spec/unit/util/execution_spec.rb +163 -187
- data/spec/unit/util/execution_stub_spec.rb +1 -0
- data/spec/unit/util/feature_spec.rb +14 -21
- 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 +31 -26
- data/spec/unit/util/json_lockfile_spec.rb +5 -3
- data/spec/unit/util/ldap/connection_spec.rb +25 -26
- data/spec/unit/util/ldap/generator_spec.rb +1 -0
- data/spec/unit/util/ldap/manager_spec.rb +101 -102
- data/spec/unit/util/lockfile_spec.rb +1 -0
- data/spec/unit/util/log/destinations_spec.rb +33 -30
- data/spec/unit/util/log_spec.rb +34 -48
- data/spec/unit/util/logging_spec.rb +72 -58
- data/spec/unit/util/metric_spec.rb +1 -0
- data/spec/unit/util/monkey_patches_spec.rb +9 -7
- data/spec/unit/util/multi_match_spec.rb +1 -0
- data/spec/unit/util/network_device/config_spec.rb +1 -0
- data/spec/unit/util/network_device/transport/base_spec.rb +6 -5
- data/spec/unit/util/network_device_spec.rb +9 -7
- data/spec/unit/util/package_spec.rb +1 -0
- data/spec/unit/util/pidlock_spec.rb +15 -60
- data/spec/unit/util/plist_spec.rb +33 -40
- data/spec/unit/util/posix_spec.rb +51 -54
- data/spec/unit/util/rdoc_spec.rb +10 -9
- data/spec/unit/util/reference_spec.rb +1 -0
- data/spec/unit/util/resource_template_spec.rb +20 -20
- data/spec/unit/util/retry_action_spec.rb +8 -7
- data/spec/unit/util/rubygems_spec.rb +8 -7
- data/spec/unit/util/run_mode_spec.rb +4 -3
- data/spec/unit/util/selinux_spec.rb +72 -79
- data/spec/unit/util/splayer_spec.rb +9 -8
- data/spec/unit/util/ssl_spec.rb +1 -0
- data/spec/unit/util/storage_spec.rb +23 -22
- data/spec/unit/util/suidmanager_spec.rb +54 -45
- data/spec/unit/util/symbolic_file_mode_spec.rb +1 -0
- data/spec/unit/util/tag_set_spec.rb +1 -0
- data/spec/unit/util/tagging_spec.rb +1 -0
- data/spec/unit/util/terminal_spec.rb +10 -9
- data/spec/unit/util/user_attr_spec.rb +2 -1
- data/spec/unit/util/warnings_spec.rb +4 -3
- data/spec/unit/util/watcher/periodic_watcher_spec.rb +2 -2
- data/spec/unit/util/watcher_spec.rb +21 -51
- data/spec/unit/util/windows/access_control_entry_spec.rb +1 -0
- data/spec/unit/util/windows/access_control_list_spec.rb +1 -0
- data/spec/unit/util/windows/adsi_spec.rb +138 -136
- data/spec/unit/util/windows/api_types_spec.rb +1 -0
- data/spec/unit/util/windows/eventlog_spec.rb +12 -9
- data/spec/unit/util/windows/file_spec.rb +1 -0
- data/spec/unit/util/windows/root_certs_spec.rb +1 -0
- data/spec/unit/util/windows/security_descriptor_spec.rb +2 -0
- data/spec/unit/util/windows/service_spec.rb +103 -100
- data/spec/unit/util/windows/sid_spec.rb +13 -11
- data/spec/unit/util/windows/string_spec.rb +1 -0
- data/spec/unit/util_spec.rb +57 -55
- data/spec/unit/version_spec.rb +6 -6
- metadata +20 -32
- data/CODEOWNERS +0 -30
- data/ext/autotest/Rakefile +0 -8
- data/ext/autotest/config +0 -43
- data/ext/autotest/readme.rst +0 -16
- data/lib/puppet/confine/boolean.rb +0 -45
- data/lib/puppet/provider/package_targetable.rb +0 -68
- data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load2.rb +0 -11
- data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load3.rb +0 -11
- data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load4.rb +0 -11
- data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/bad_func_load5.rb +0 -12
- data/spec/fixtures/unit/pops/loaders/loaders/mix_4x_and_3x_functions/usee/lib/puppet/parser/functions/good_func_load.rb +0 -9
- data/spec/fixtures/unit/provider/package/pkgng/pkg.info +0 -7
- data/spec/fixtures/unit/provider/package/pkgng/pkg.query_absent +0 -1
- data/spec/integration/network/http_pool_spec.rb +0 -120
- data/spec/integration/provider/file/windows_spec.rb +0 -162
- data/spec/lib/puppet_spec/https.rb +0 -166
- data/spec/unit/settings/server_list_setting_spec.rb +0 -21
- data/spec/watchr.rb +0 -137
@@ -1,3 +1,4 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
1
2
|
require 'spec_helper'
|
2
3
|
|
3
4
|
require 'puppet/indirector/indirection'
|
@@ -6,23 +7,23 @@ shared_examples_for "Indirection Delegator" do
|
|
6
7
|
it "should create a request object with the appropriate method name and all of the passed arguments" do
|
7
8
|
request = Puppet::Indirector::Request.new(:indirection, :find, "me", nil)
|
8
9
|
|
9
|
-
|
10
|
+
@indirection.expects(:request).with(@method, "mystuff", nil, :one => :two).returns request
|
10
11
|
|
11
|
-
|
12
|
+
@terminus.stubs(@method)
|
12
13
|
|
13
14
|
@indirection.send(@method, "mystuff", :one => :two)
|
14
15
|
end
|
15
16
|
|
16
17
|
it "should choose the terminus returned by the :terminus_class" do
|
17
|
-
|
18
|
+
@indirection.expects(:terminus_class).returns :test_terminus
|
18
19
|
|
19
|
-
|
20
|
+
@terminus.expects(@method)
|
20
21
|
|
21
22
|
@indirection.send(@method, "me")
|
22
23
|
end
|
23
24
|
|
24
25
|
it "should let the appropriate terminus perform the lookup" do
|
25
|
-
|
26
|
+
@terminus.expects(@method).with { |r| r.is_a?(Puppet::Indirector::Request) }
|
26
27
|
@indirection.send(@method, "me")
|
27
28
|
end
|
28
29
|
end
|
@@ -37,38 +38,38 @@ shared_examples_for "Delegation Authorizer" do
|
|
37
38
|
end
|
38
39
|
|
39
40
|
it "should not check authorization if a node name is not provided" do
|
40
|
-
|
41
|
-
|
41
|
+
@terminus.expects(:authorized?).never
|
42
|
+
@terminus.stubs(@method)
|
42
43
|
|
43
|
-
# The
|
44
|
-
|
44
|
+
# The quotes are necessary here, else it looks like a block.
|
45
|
+
@request.stubs(:options).returns({})
|
45
46
|
@indirection.send(@method, "/my/key")
|
46
47
|
end
|
47
48
|
|
48
49
|
it "should pass the request to the terminus's authorization method" do
|
49
|
-
|
50
|
-
|
50
|
+
@terminus.expects(:authorized?).with { |r| r.is_a?(Puppet::Indirector::Request) }.returns(true)
|
51
|
+
@terminus.stubs(@method)
|
51
52
|
|
52
53
|
@indirection.send(@method, "/my/key", :node => "mynode")
|
53
54
|
end
|
54
55
|
|
55
56
|
it "should fail if authorization returns false" do
|
56
|
-
|
57
|
-
|
57
|
+
@terminus.expects(:authorized?).returns(false)
|
58
|
+
@terminus.stubs(@method)
|
58
59
|
expect { @indirection.send(@method, "/my/key", :node => "mynode") }.to raise_error(ArgumentError)
|
59
60
|
end
|
60
61
|
|
61
62
|
it "should continue if authorization returns true" do
|
62
|
-
|
63
|
-
|
63
|
+
@terminus.expects(:authorized?).returns(true)
|
64
|
+
@terminus.stubs(@method)
|
64
65
|
@indirection.send(@method, "/my/key", :node => "mynode")
|
65
66
|
end
|
66
67
|
end
|
67
68
|
|
68
69
|
shared_examples_for "Request validator" do
|
69
70
|
it "asks the terminus to validate the request" do
|
70
|
-
|
71
|
-
|
71
|
+
@terminus.expects(:validate).raises(Puppet::Indirector::ValidationError, "Invalid")
|
72
|
+
@terminus.expects(@method).never
|
72
73
|
expect {
|
73
74
|
@indirection.send(@method, "key")
|
74
75
|
}.to raise_error Puppet::Indirector::ValidationError
|
@@ -78,24 +79,24 @@ end
|
|
78
79
|
describe Puppet::Indirector::Indirection do
|
79
80
|
describe "when initializing" do
|
80
81
|
it "should keep a reference to the indirecting model" do
|
81
|
-
model =
|
82
|
+
model = mock 'model'
|
82
83
|
@indirection = Puppet::Indirector::Indirection.new(model, :myind)
|
83
84
|
expect(@indirection.model).to equal(model)
|
84
85
|
end
|
85
86
|
|
86
87
|
it "should set the name" do
|
87
|
-
@indirection = Puppet::Indirector::Indirection.new(
|
88
|
+
@indirection = Puppet::Indirector::Indirection.new(mock('model'), :myind)
|
88
89
|
expect(@indirection.name).to eq(:myind)
|
89
90
|
end
|
90
91
|
|
91
92
|
it "should require indirections to have unique names" do
|
92
|
-
@indirection = Puppet::Indirector::Indirection.new(
|
93
|
+
@indirection = Puppet::Indirector::Indirection.new(mock('model'), :test)
|
93
94
|
expect { Puppet::Indirector::Indirection.new(:test) }.to raise_error(ArgumentError)
|
94
95
|
end
|
95
96
|
|
96
97
|
it "should extend itself with any specified module" do
|
97
98
|
mod = Module.new
|
98
|
-
@indirection = Puppet::Indirector::Indirection.new(
|
99
|
+
@indirection = Puppet::Indirector::Indirection.new(mock('model'), :test, :extend => mod)
|
99
100
|
expect(@indirection.singleton_class.included_modules).to include(mod)
|
100
101
|
end
|
101
102
|
|
@@ -106,22 +107,23 @@ describe Puppet::Indirector::Indirection do
|
|
106
107
|
|
107
108
|
describe "when an instance" do
|
108
109
|
before :each do
|
109
|
-
@terminus_class =
|
110
|
-
@terminus =
|
111
|
-
|
112
|
-
|
113
|
-
@cache =
|
114
|
-
@cache_class =
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
@indirection = Puppet::Indirector::Indirection.new(
|
110
|
+
@terminus_class = mock 'terminus_class'
|
111
|
+
@terminus = mock 'terminus'
|
112
|
+
@terminus.stubs(:validate)
|
113
|
+
@terminus_class.stubs(:new).returns(@terminus)
|
114
|
+
@cache = stub 'cache', :name => "mycache"
|
115
|
+
@cache_class = mock 'cache_class'
|
116
|
+
Puppet::Indirector::Terminus.stubs(:terminus_class).with(:test, :cache_terminus).returns(@cache_class)
|
117
|
+
Puppet::Indirector::Terminus.stubs(:terminus_class).with(:test, :test_terminus).returns(@terminus_class)
|
118
|
+
|
119
|
+
@indirection = Puppet::Indirector::Indirection.new(mock('model'), :test)
|
119
120
|
@indirection.terminus_class = :test_terminus
|
120
121
|
|
121
|
-
@instance =
|
122
|
+
@instance = stub 'instance', :expiration => nil, :expiration= => nil, :name => "whatever"
|
122
123
|
@name = :mything
|
123
124
|
|
124
|
-
|
125
|
+
#@request = stub 'instance', :key => "/my/key", :instance => @instance, :options => {}
|
126
|
+
@request = mock 'instance'
|
125
127
|
end
|
126
128
|
|
127
129
|
it "should allow setting the ttl" do
|
@@ -135,9 +137,9 @@ describe Puppet::Indirector::Indirection do
|
|
135
137
|
end
|
136
138
|
|
137
139
|
it "should calculate the current expiration by adding the TTL to the current time" do
|
138
|
-
|
140
|
+
@indirection.stubs(:ttl).returns(100)
|
139
141
|
now = Time.now
|
140
|
-
|
142
|
+
Time.stubs(:now).returns now
|
141
143
|
expect(@indirection.expiration).to eq(Time.now + 100)
|
142
144
|
end
|
143
145
|
|
@@ -147,28 +149,28 @@ describe Puppet::Indirector::Indirection do
|
|
147
149
|
|
148
150
|
describe "creates a request" do
|
149
151
|
it "should create it with its name as the request's indirection name" do
|
150
|
-
|
152
|
+
Puppet::Indirector::Request.expects(:new).with { |name, *other| @indirection.name == name }
|
151
153
|
@indirection.request(:funtest, "yayness")
|
152
154
|
end
|
153
155
|
|
154
156
|
it "should require a method and key" do
|
155
|
-
|
157
|
+
Puppet::Indirector::Request.expects(:new).with { |name, method, key, *other| method == :funtest and key == "yayness" }
|
156
158
|
@indirection.request(:funtest, "yayness")
|
157
159
|
end
|
158
160
|
|
159
161
|
it "should support optional arguments" do
|
160
|
-
|
162
|
+
Puppet::Indirector::Request.expects(:new).with { |name, method, key, other| other == {:one => :two} }
|
161
163
|
@indirection.request(:funtest, "yayness", :one => :two)
|
162
164
|
end
|
163
165
|
|
164
166
|
it "should not pass options if none are supplied" do
|
165
|
-
|
167
|
+
Puppet::Indirector::Request.expects(:new).with { |*args| args.length < 4 }
|
166
168
|
@indirection.request(:funtest, "yayness")
|
167
169
|
end
|
168
170
|
|
169
171
|
it "should return the request" do
|
170
|
-
request =
|
171
|
-
|
172
|
+
request = mock 'request'
|
173
|
+
Puppet::Indirector::Request.expects(:new).returns request
|
172
174
|
expect(@indirection.request(:funtest, "yayness")).to equal(request)
|
173
175
|
end
|
174
176
|
end
|
@@ -181,204 +183,190 @@ describe Puppet::Indirector::Indirection do
|
|
181
183
|
it_should_behave_like "Request validator"
|
182
184
|
|
183
185
|
it "should return the results of the delegation" do
|
184
|
-
|
186
|
+
@terminus.expects(:find).returns(@instance)
|
185
187
|
expect(@indirection.find("me")).to equal(@instance)
|
186
188
|
end
|
187
189
|
|
188
190
|
it "should return false if the instance is false" do
|
189
|
-
|
191
|
+
@terminus.expects(:find).returns(false)
|
190
192
|
expect(@indirection.find("me")).to equal(false)
|
191
193
|
end
|
192
194
|
|
193
195
|
it "should set the expiration date on any instances without one set" do
|
194
|
-
|
196
|
+
@terminus.stubs(:find).returns(@instance)
|
195
197
|
|
196
|
-
|
198
|
+
@indirection.expects(:expiration).returns :yay
|
197
199
|
|
198
|
-
|
199
|
-
|
200
|
+
@instance.expects(:expiration).returns(nil)
|
201
|
+
@instance.expects(:expiration=).with(:yay)
|
200
202
|
|
201
203
|
@indirection.find("/my/key")
|
202
204
|
end
|
203
205
|
|
204
206
|
it "should not override an already-set expiration date on returned instances" do
|
205
|
-
|
207
|
+
@terminus.stubs(:find).returns(@instance)
|
206
208
|
|
207
|
-
|
209
|
+
@indirection.expects(:expiration).never
|
208
210
|
|
209
|
-
|
210
|
-
|
211
|
+
@instance.expects(:expiration).returns(:yay)
|
212
|
+
@instance.expects(:expiration=).never
|
211
213
|
|
212
214
|
@indirection.find("/my/key")
|
213
215
|
end
|
214
216
|
|
215
217
|
it "should filter the result instance if the terminus supports it" do
|
216
|
-
|
217
|
-
|
218
|
+
@terminus.stubs(:find).returns(@instance)
|
219
|
+
@terminus.stubs(:respond_to?).with(:filter).returns(true)
|
218
220
|
|
219
|
-
|
221
|
+
@terminus.expects(:filter).with(@instance)
|
220
222
|
|
221
223
|
@indirection.find("/my/key")
|
222
224
|
end
|
223
|
-
|
224
225
|
describe "when caching is enabled" do
|
225
226
|
before do
|
226
227
|
@indirection.cache_class = :cache_terminus
|
227
|
-
|
228
|
+
@cache_class.stubs(:new).returns(@cache)
|
228
229
|
|
229
|
-
|
230
|
+
@instance.stubs(:expired?).returns false
|
230
231
|
end
|
231
232
|
|
232
233
|
it "should first look in the cache for an instance" do
|
233
|
-
|
234
|
-
|
234
|
+
@terminus.stubs(:find).never
|
235
|
+
@cache.expects(:find).returns @instance
|
235
236
|
|
236
237
|
@indirection.find("/my/key")
|
237
238
|
end
|
238
239
|
|
239
240
|
it "should not look in the cache if the request specifies not to use the cache" do
|
240
|
-
|
241
|
-
|
242
|
-
|
241
|
+
@terminus.expects(:find).returns @instance
|
242
|
+
@cache.expects(:find).never
|
243
|
+
@cache.stubs(:save)
|
243
244
|
|
244
245
|
@indirection.find("/my/key", :ignore_cache => true)
|
245
246
|
end
|
246
247
|
|
247
248
|
it "should still save to the cache even if the cache is being ignored during readin" do
|
248
|
-
|
249
|
-
|
249
|
+
@terminus.expects(:find).returns @instance
|
250
|
+
@cache.expects(:save)
|
250
251
|
|
251
252
|
@indirection.find("/my/key", :ignore_cache => true)
|
252
253
|
end
|
253
254
|
|
254
255
|
it "should not save to the cache if told to skip updating the cache" do
|
255
|
-
|
256
|
-
|
257
|
-
|
256
|
+
@terminus.expects(:find).returns @instance
|
257
|
+
@cache.expects(:find).returns nil
|
258
|
+
@cache.expects(:save).never
|
258
259
|
|
259
260
|
@indirection.find("/my/key", :ignore_cache_save => true)
|
260
261
|
end
|
261
262
|
|
262
263
|
it "should only look in the cache if the request specifies not to use the terminus" do
|
263
|
-
|
264
|
-
|
264
|
+
@terminus.expects(:find).never
|
265
|
+
@cache.expects(:find)
|
265
266
|
|
266
267
|
@indirection.find("/my/key", :ignore_terminus => true)
|
267
268
|
end
|
268
269
|
|
269
270
|
it "should use a request to look in the cache for cached objects" do
|
270
|
-
|
271
|
-
expect(r.method).to eq(:find)
|
272
|
-
expect(r.key).to eq("/my/key")
|
273
|
-
|
274
|
-
@instance
|
275
|
-
end
|
271
|
+
@cache.expects(:find).with { |r| r.method == :find and r.key == "/my/key" }.returns @instance
|
276
272
|
|
277
|
-
|
273
|
+
@cache.stubs(:save)
|
278
274
|
|
279
275
|
@indirection.find("/my/key")
|
280
276
|
end
|
281
277
|
|
282
278
|
it "should return the cached object if it is not expired" do
|
283
|
-
|
279
|
+
@instance.stubs(:expired?).returns false
|
284
280
|
|
285
|
-
|
281
|
+
@cache.stubs(:find).returns @instance
|
286
282
|
expect(@indirection.find("/my/key")).to equal(@instance)
|
287
283
|
end
|
288
284
|
|
289
285
|
it "should not fail if the cache fails" do
|
290
|
-
|
286
|
+
@terminus.stubs(:find).returns @instance
|
291
287
|
|
292
|
-
|
293
|
-
|
288
|
+
@cache.expects(:find).raises ArgumentError
|
289
|
+
@cache.stubs(:save)
|
294
290
|
expect { @indirection.find("/my/key") }.not_to raise_error
|
295
291
|
end
|
296
292
|
|
297
293
|
it "should look in the main terminus if the cache fails" do
|
298
|
-
|
299
|
-
|
300
|
-
|
294
|
+
@terminus.expects(:find).returns @instance
|
295
|
+
@cache.expects(:find).raises ArgumentError
|
296
|
+
@cache.stubs(:save)
|
301
297
|
expect(@indirection.find("/my/key")).to equal(@instance)
|
302
298
|
end
|
303
299
|
|
304
300
|
it "should send a debug log if it is using the cached object" do
|
305
|
-
|
306
|
-
|
301
|
+
Puppet.expects(:debug)
|
302
|
+
@cache.stubs(:find).returns @instance
|
307
303
|
|
308
304
|
@indirection.find("/my/key")
|
309
305
|
end
|
310
306
|
|
311
307
|
it "should not return the cached object if it is expired" do
|
312
|
-
|
308
|
+
@instance.stubs(:expired?).returns true
|
313
309
|
|
314
|
-
|
315
|
-
|
310
|
+
@cache.stubs(:find).returns @instance
|
311
|
+
@terminus.stubs(:find).returns nil
|
316
312
|
expect(@indirection.find("/my/key")).to be_nil
|
317
313
|
end
|
318
314
|
|
319
315
|
it "should send an info log if it is using the cached object" do
|
320
|
-
|
321
|
-
|
316
|
+
Puppet.expects(:info)
|
317
|
+
@instance.stubs(:expired?).returns true
|
322
318
|
|
323
|
-
|
324
|
-
|
319
|
+
@cache.stubs(:find).returns @instance
|
320
|
+
@terminus.stubs(:find).returns nil
|
325
321
|
@indirection.find("/my/key")
|
326
322
|
end
|
327
323
|
|
328
324
|
it "should cache any objects not retrieved from the cache" do
|
329
|
-
|
325
|
+
@cache.expects(:find).returns nil
|
330
326
|
|
331
|
-
|
332
|
-
|
327
|
+
@terminus.expects(:find).returns(@instance)
|
328
|
+
@cache.expects(:save)
|
333
329
|
|
334
330
|
@indirection.find("/my/key")
|
335
331
|
end
|
336
332
|
|
337
333
|
it "should use a request to look in the cache for cached objects" do
|
338
|
-
|
339
|
-
expect(r.method).to eq(:find)
|
340
|
-
expect(r.key).to eq("/my/key")
|
334
|
+
@cache.expects(:find).with { |r| r.method == :find and r.key == "/my/key" }.returns nil
|
341
335
|
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
allow(@terminus).to receive(:find).and_return(@instance)
|
346
|
-
allow(@cache).to receive(:save)
|
336
|
+
@terminus.stubs(:find).returns(@instance)
|
337
|
+
@cache.stubs(:save)
|
347
338
|
|
348
339
|
@indirection.find("/my/key")
|
349
340
|
end
|
350
341
|
|
351
342
|
it "should cache the instance using a request with the instance set to the cached object" do
|
352
|
-
|
343
|
+
@cache.stubs(:find).returns nil
|
353
344
|
|
354
|
-
|
345
|
+
@terminus.stubs(:find).returns(@instance)
|
355
346
|
|
356
|
-
|
357
|
-
expect(r.method).to eq(:save)
|
358
|
-
expect(r.instance).to eq(@instance)
|
359
|
-
end
|
347
|
+
@cache.expects(:save).with { |r| r.method == :save and r.instance == @instance }
|
360
348
|
|
361
349
|
@indirection.find("/my/key")
|
362
350
|
end
|
363
351
|
|
364
352
|
it "should send an info log that the object is being cached" do
|
365
|
-
|
353
|
+
@cache.stubs(:find).returns nil
|
366
354
|
|
367
|
-
|
368
|
-
|
355
|
+
@terminus.stubs(:find).returns(@instance)
|
356
|
+
@cache.stubs(:save)
|
369
357
|
|
370
|
-
|
358
|
+
Puppet.expects(:info)
|
371
359
|
|
372
360
|
@indirection.find("/my/key")
|
373
361
|
end
|
374
362
|
|
375
363
|
it "should fail if saving to the cache fails but log the exception" do
|
376
|
-
|
364
|
+
@cache.stubs(:find).returns nil
|
377
365
|
|
378
|
-
|
379
|
-
|
366
|
+
@terminus.stubs(:find).returns(@instance)
|
367
|
+
@cache.stubs(:save).raises RuntimeError
|
380
368
|
|
381
|
-
|
369
|
+
Puppet.expects(:log_exception)
|
382
370
|
|
383
371
|
expect { @indirection.find("/my/key") }.to raise_error RuntimeError
|
384
372
|
end
|
@@ -393,63 +381,63 @@ describe Puppet::Indirector::Indirection do
|
|
393
381
|
it_should_behave_like "Request validator"
|
394
382
|
|
395
383
|
it "should return true if the head method returned true" do
|
396
|
-
|
384
|
+
@terminus.expects(:head).returns(true)
|
397
385
|
expect(@indirection.head("me")).to eq(true)
|
398
386
|
end
|
399
387
|
|
400
388
|
it "should return false if the head method returned false" do
|
401
|
-
|
389
|
+
@terminus.expects(:head).returns(false)
|
402
390
|
expect(@indirection.head("me")).to eq(false)
|
403
391
|
end
|
404
392
|
|
405
393
|
describe "when caching is enabled" do
|
406
394
|
before do
|
407
395
|
@indirection.cache_class = :cache_terminus
|
408
|
-
|
396
|
+
@cache_class.stubs(:new).returns(@cache)
|
409
397
|
|
410
|
-
|
398
|
+
@instance.stubs(:expired?).returns false
|
411
399
|
end
|
412
400
|
|
413
401
|
it "should first look in the cache for an instance" do
|
414
|
-
|
415
|
-
|
416
|
-
|
402
|
+
@terminus.stubs(:find).never
|
403
|
+
@terminus.stubs(:head).never
|
404
|
+
@cache.expects(:find).returns @instance
|
417
405
|
|
418
406
|
expect(@indirection.head("/my/key")).to eq(true)
|
419
407
|
end
|
420
408
|
|
421
409
|
it "should not save to the cache" do
|
422
|
-
|
423
|
-
|
424
|
-
|
410
|
+
@cache.expects(:find).returns nil
|
411
|
+
@cache.expects(:save).never
|
412
|
+
@terminus.expects(:head).returns true
|
425
413
|
expect(@indirection.head("/my/key")).to eq(true)
|
426
414
|
end
|
427
415
|
|
428
416
|
it "should not fail if the cache fails" do
|
429
|
-
|
417
|
+
@terminus.stubs(:head).returns true
|
430
418
|
|
431
|
-
|
419
|
+
@cache.expects(:find).raises ArgumentError
|
432
420
|
expect { @indirection.head("/my/key") }.not_to raise_error
|
433
421
|
end
|
434
422
|
|
435
423
|
it "should look in the main terminus if the cache fails" do
|
436
|
-
|
437
|
-
|
424
|
+
@terminus.expects(:head).returns true
|
425
|
+
@cache.expects(:find).raises ArgumentError
|
438
426
|
expect(@indirection.head("/my/key")).to eq(true)
|
439
427
|
end
|
440
428
|
|
441
429
|
it "should send a debug log if it is using the cached object" do
|
442
|
-
|
443
|
-
|
430
|
+
Puppet.expects(:debug)
|
431
|
+
@cache.stubs(:find).returns @instance
|
444
432
|
|
445
433
|
@indirection.head("/my/key")
|
446
434
|
end
|
447
435
|
|
448
436
|
it "should not accept the cached object if it is expired" do
|
449
|
-
|
437
|
+
@instance.stubs(:expired?).returns true
|
450
438
|
|
451
|
-
|
452
|
-
|
439
|
+
@cache.stubs(:find).returns @instance
|
440
|
+
@terminus.stubs(:head).returns false
|
453
441
|
expect(@indirection.head("/my/key")).to eq(false)
|
454
442
|
end
|
455
443
|
end
|
@@ -459,51 +447,51 @@ describe Puppet::Indirector::Indirection do
|
|
459
447
|
before { @method = :save }
|
460
448
|
|
461
449
|
it "should return the result of the save" do
|
462
|
-
|
450
|
+
@terminus.stubs(:save).returns "foo"
|
463
451
|
expect(@indirection.save(@instance)).to eq("foo")
|
464
452
|
end
|
465
453
|
|
466
454
|
describe "when caching is enabled" do
|
467
455
|
before do
|
468
456
|
@indirection.cache_class = :cache_terminus
|
469
|
-
|
457
|
+
@cache_class.stubs(:new).returns(@cache)
|
470
458
|
|
471
|
-
|
459
|
+
@instance.stubs(:expired?).returns false
|
472
460
|
end
|
473
461
|
|
474
462
|
it "should return the result of saving to the terminus" do
|
475
|
-
request =
|
463
|
+
request = stub 'request', :instance => @instance, :node => nil, :ignore_cache_save? => false
|
476
464
|
|
477
|
-
|
465
|
+
@indirection.expects(:request).returns request
|
478
466
|
|
479
|
-
|
480
|
-
|
467
|
+
@cache.stubs(:save)
|
468
|
+
@terminus.stubs(:save).returns @instance
|
481
469
|
expect(@indirection.save(@instance)).to equal(@instance)
|
482
470
|
end
|
483
471
|
|
484
472
|
it "should use a request to save the object to the cache" do
|
485
|
-
request =
|
473
|
+
request = stub 'request', :instance => @instance, :node => nil, :ignore_cache_save? => false
|
486
474
|
|
487
|
-
|
475
|
+
@indirection.expects(:request).returns request
|
488
476
|
|
489
|
-
|
490
|
-
|
477
|
+
@cache.expects(:save).with(request)
|
478
|
+
@terminus.stubs(:save)
|
491
479
|
@indirection.save(@instance)
|
492
480
|
end
|
493
481
|
|
494
482
|
it "should not save to the cache if the normal save fails" do
|
495
|
-
request =
|
483
|
+
request = stub 'request', :instance => @instance, :node => nil
|
496
484
|
|
497
|
-
|
485
|
+
@indirection.expects(:request).returns request
|
498
486
|
|
499
|
-
|
500
|
-
|
487
|
+
@cache.expects(:save).never
|
488
|
+
@terminus.expects(:save).raises "eh"
|
501
489
|
expect { @indirection.save(@instance) }.to raise_error(RuntimeError, /eh/)
|
502
490
|
end
|
503
491
|
|
504
492
|
it "should not save to the cache if told to ignore saving to the cache" do
|
505
|
-
|
506
|
-
|
493
|
+
@terminus.expects(:save)
|
494
|
+
@cache.expects(:save).never
|
507
495
|
|
508
496
|
@indirection.save(@instance, '/my/key', :ignore_cache_save => true)
|
509
497
|
end
|
@@ -518,31 +506,31 @@ describe Puppet::Indirector::Indirection do
|
|
518
506
|
it_should_behave_like "Request validator"
|
519
507
|
|
520
508
|
it "should return the result of removing the instance" do
|
521
|
-
|
509
|
+
@terminus.stubs(:destroy).returns "yayness"
|
522
510
|
expect(@indirection.destroy("/my/key")).to eq("yayness")
|
523
511
|
end
|
524
512
|
|
525
513
|
describe "when caching is enabled" do
|
526
514
|
before do
|
527
515
|
@indirection.cache_class = :cache_terminus
|
528
|
-
|
516
|
+
@cache_class.expects(:new).returns(@cache)
|
529
517
|
|
530
|
-
|
518
|
+
@instance.stubs(:expired?).returns false
|
531
519
|
end
|
532
520
|
|
533
521
|
it "should use a request instance to search in and remove objects from the cache" do
|
534
|
-
destroy =
|
535
|
-
find =
|
522
|
+
destroy = stub 'destroy_request', :key => "/my/key", :node => nil
|
523
|
+
find = stub 'destroy_request', :key => "/my/key", :node => nil
|
536
524
|
|
537
|
-
|
538
|
-
|
525
|
+
@indirection.expects(:request).with(:destroy, "/my/key", nil, optionally(instance_of(Hash))).returns destroy
|
526
|
+
@indirection.expects(:request).with(:find, "/my/key", nil, optionally(instance_of(Hash))).returns find
|
539
527
|
|
540
|
-
cached =
|
528
|
+
cached = mock 'cache'
|
541
529
|
|
542
|
-
|
543
|
-
|
530
|
+
@cache.expects(:find).with(find).returns cached
|
531
|
+
@cache.expects(:destroy).with(destroy)
|
544
532
|
|
545
|
-
|
533
|
+
@terminus.stubs(:destroy)
|
546
534
|
|
547
535
|
@indirection.destroy("/my/key")
|
548
536
|
end
|
@@ -557,29 +545,29 @@ describe Puppet::Indirector::Indirection do
|
|
557
545
|
it_should_behave_like "Request validator"
|
558
546
|
|
559
547
|
it "should set the expiration date on any instances without one set" do
|
560
|
-
|
548
|
+
@terminus.stubs(:search).returns([@instance])
|
561
549
|
|
562
|
-
|
550
|
+
@indirection.expects(:expiration).returns :yay
|
563
551
|
|
564
|
-
|
565
|
-
|
552
|
+
@instance.expects(:expiration).returns(nil)
|
553
|
+
@instance.expects(:expiration=).with(:yay)
|
566
554
|
|
567
555
|
@indirection.search("/my/key")
|
568
556
|
end
|
569
557
|
|
570
558
|
it "should not override an already-set expiration date on returned instances" do
|
571
|
-
|
559
|
+
@terminus.stubs(:search).returns([@instance])
|
572
560
|
|
573
|
-
|
561
|
+
@indirection.expects(:expiration).never
|
574
562
|
|
575
|
-
|
576
|
-
|
563
|
+
@instance.expects(:expiration).returns(:yay)
|
564
|
+
@instance.expects(:expiration=).never
|
577
565
|
|
578
566
|
@indirection.search("/my/key")
|
579
567
|
end
|
580
568
|
|
581
569
|
it "should return the results of searching in the terminus" do
|
582
|
-
|
570
|
+
@terminus.expects(:search).returns([@instance])
|
583
571
|
expect(@indirection.search("/my/key")).to eq([@instance])
|
584
572
|
end
|
585
573
|
end
|
@@ -587,7 +575,7 @@ describe Puppet::Indirector::Indirection do
|
|
587
575
|
describe "and expiring a model instance" do
|
588
576
|
describe "when caching is not enabled" do
|
589
577
|
it "should do nothing" do
|
590
|
-
|
578
|
+
@cache_class.expects(:new).never
|
591
579
|
|
592
580
|
@indirection.expire("/my/key")
|
593
581
|
end
|
@@ -596,75 +584,65 @@ describe Puppet::Indirector::Indirection do
|
|
596
584
|
describe "when caching is enabled" do
|
597
585
|
before do
|
598
586
|
@indirection.cache_class = :cache_terminus
|
599
|
-
|
587
|
+
@cache_class.expects(:new).returns(@cache)
|
600
588
|
|
601
|
-
|
589
|
+
@instance.stubs(:expired?).returns false
|
602
590
|
|
603
|
-
@cached =
|
591
|
+
@cached = stub 'cached', :expiration= => nil, :name => "/my/key"
|
604
592
|
end
|
605
593
|
|
606
594
|
it "should use a request to find within the cache" do
|
607
|
-
|
608
|
-
expect(r).to be_a(Puppet::Indirector::Request)
|
609
|
-
expect(r.method).to eq(:find)
|
610
|
-
nil
|
611
|
-
end
|
595
|
+
@cache.expects(:find).with { |r| r.is_a?(Puppet::Indirector::Request) and r.method == :find }
|
612
596
|
@indirection.expire("/my/key")
|
613
597
|
end
|
614
598
|
|
615
599
|
it "should do nothing if no such instance is cached" do
|
616
|
-
|
600
|
+
@cache.expects(:find).returns nil
|
617
601
|
|
618
602
|
@indirection.expire("/my/key")
|
619
603
|
end
|
620
604
|
|
621
605
|
it "should log when expiring a found instance" do
|
622
|
-
|
623
|
-
|
606
|
+
@cache.expects(:find).returns @cached
|
607
|
+
@cache.stubs(:save)
|
624
608
|
|
625
|
-
|
609
|
+
Puppet.expects(:info)
|
626
610
|
|
627
611
|
@indirection.expire("/my/key")
|
628
612
|
end
|
629
613
|
|
630
614
|
it "should set the cached instance's expiration to a time in the past" do
|
631
|
-
|
632
|
-
|
615
|
+
@cache.expects(:find).returns @cached
|
616
|
+
@cache.stubs(:save)
|
633
617
|
|
634
|
-
|
618
|
+
@cached.expects(:expiration=).with { |t| t < Time.now }
|
635
619
|
|
636
620
|
@indirection.expire("/my/key")
|
637
621
|
end
|
638
622
|
|
639
623
|
it "should save the now expired instance back into the cache" do
|
640
|
-
|
624
|
+
@cache.expects(:find).returns @cached
|
641
625
|
|
642
|
-
|
626
|
+
@cached.expects(:expiration=).with { |t| t < Time.now }
|
643
627
|
|
644
|
-
|
628
|
+
@cache.expects(:save)
|
645
629
|
|
646
630
|
@indirection.expire("/my/key")
|
647
631
|
end
|
648
632
|
|
649
633
|
it "does not expire an instance if told to skip cache saving" do
|
650
|
-
|
651
|
-
|
634
|
+
@indirection.cache.expects(:find).never
|
635
|
+
@indirection.cache.expects(:save).never
|
652
636
|
|
653
637
|
@indirection.expire("/my/key", :ignore_cache_save => true)
|
654
638
|
end
|
655
639
|
|
656
640
|
it "should use a request to save the expired resource to the cache" do
|
657
|
-
|
658
|
-
|
659
|
-
expect(@cached).to receive(:expiration=).with(be < Time.now)
|
641
|
+
@cache.expects(:find).returns @cached
|
660
642
|
|
661
|
-
|
662
|
-
expect(r).to be_a(Puppet::Indirector::Request)
|
663
|
-
expect(r.instance).to eq(@cached)
|
664
|
-
expect(r.method).to eq(:save)
|
643
|
+
@cached.expects(:expiration=).with { |t| t < Time.now }
|
665
644
|
|
666
|
-
|
667
|
-
end
|
645
|
+
@cache.expects(:save).with { |r| r.is_a?(Puppet::Indirector::Request) and r.instance == @cached and r.method == :save }.returns(@cached)
|
668
646
|
|
669
647
|
@indirection.expire("/my/key")
|
670
648
|
end
|
@@ -679,7 +657,7 @@ describe Puppet::Indirector::Indirection do
|
|
679
657
|
|
680
658
|
describe "when managing indirection instances" do
|
681
659
|
it "should allow an indirection to be retrieved by name" do
|
682
|
-
@indirection = Puppet::Indirector::Indirection.new(
|
660
|
+
@indirection = Puppet::Indirector::Indirection.new(mock('model'), :test)
|
683
661
|
expect(Puppet::Indirector::Indirection.instance(:test)).to equal(@indirection)
|
684
662
|
end
|
685
663
|
|
@@ -688,7 +666,7 @@ describe Puppet::Indirector::Indirection do
|
|
688
666
|
end
|
689
667
|
|
690
668
|
it "should allow an indirection's model to be retrieved by name" do
|
691
|
-
mock_model =
|
669
|
+
mock_model = mock('model')
|
692
670
|
@indirection = Puppet::Indirector::Indirection.new(mock_model, :test)
|
693
671
|
expect(Puppet::Indirector::Indirection.model(:test)).to equal(mock_model)
|
694
672
|
end
|
@@ -704,10 +682,10 @@ describe Puppet::Indirector::Indirection do
|
|
704
682
|
|
705
683
|
describe "when routing to the correct the terminus class" do
|
706
684
|
before do
|
707
|
-
@indirection = Puppet::Indirector::Indirection.new(
|
708
|
-
@terminus =
|
709
|
-
@terminus_class =
|
710
|
-
|
685
|
+
@indirection = Puppet::Indirector::Indirection.new(mock('model'), :test)
|
686
|
+
@terminus = mock 'terminus'
|
687
|
+
@terminus_class = stub 'terminus class', :new => @terminus
|
688
|
+
Puppet::Indirector::Terminus.stubs(:terminus_class).with(:test, :default).returns(@terminus_class)
|
711
689
|
end
|
712
690
|
|
713
691
|
it "should fail if no terminus class can be picked" do
|
@@ -720,14 +698,14 @@ describe Puppet::Indirector::Indirection do
|
|
720
698
|
end
|
721
699
|
|
722
700
|
it "should use the provided Puppet setting if told to do so" do
|
723
|
-
|
701
|
+
Puppet::Indirector::Terminus.stubs(:terminus_class).with(:test, :my_terminus).returns(mock("terminus_class2"))
|
724
702
|
Puppet[:node_terminus] = :my_terminus
|
725
703
|
@indirection.terminus_setting = :node_terminus
|
726
704
|
expect(@indirection.terminus_class).to equal(:my_terminus)
|
727
705
|
end
|
728
706
|
|
729
707
|
it "should fail if the provided terminus class is not valid" do
|
730
|
-
|
708
|
+
Puppet::Indirector::Terminus.stubs(:terminus_class).with(:test, :nosuchclass).returns(nil)
|
731
709
|
expect { @indirection.terminus_class = :nosuchclass }.to raise_error(ArgumentError)
|
732
710
|
end
|
733
711
|
|
@@ -738,10 +716,10 @@ describe Puppet::Indirector::Indirection do
|
|
738
716
|
|
739
717
|
describe "when specifying the terminus class to use" do
|
740
718
|
before do
|
741
|
-
@indirection = Puppet::Indirector::Indirection.new(
|
742
|
-
@terminus =
|
743
|
-
|
744
|
-
@terminus_class =
|
719
|
+
@indirection = Puppet::Indirector::Indirection.new(mock('model'), :test)
|
720
|
+
@terminus = mock 'terminus'
|
721
|
+
@terminus.stubs(:validate)
|
722
|
+
@terminus_class = stub 'terminus class', :new => @terminus
|
745
723
|
end
|
746
724
|
|
747
725
|
it "should allow specification of a terminus type" do
|
@@ -761,17 +739,17 @@ describe Puppet::Indirector::Indirection do
|
|
761
739
|
end
|
762
740
|
|
763
741
|
it "should fail when the specified terminus class cannot be found" do
|
764
|
-
|
742
|
+
Puppet::Indirector::Terminus.expects(:terminus_class).with(:test, :foo).returns(nil)
|
765
743
|
expect { @indirection.terminus_class = :foo }.to raise_error(ArgumentError)
|
766
744
|
end
|
767
745
|
|
768
746
|
it "should select the specified terminus class if a terminus class name is provided" do
|
769
|
-
|
747
|
+
Puppet::Indirector::Terminus.expects(:terminus_class).with(:test, :foo).returns(@terminus_class)
|
770
748
|
expect(@indirection.terminus(:foo)).to equal(@terminus)
|
771
749
|
end
|
772
750
|
|
773
751
|
it "should use the configured terminus class if no terminus name is specified" do
|
774
|
-
|
752
|
+
Puppet::Indirector::Terminus.stubs(:terminus_class).with(:test, :foo).returns(@terminus_class)
|
775
753
|
@indirection.terminus_class = :foo
|
776
754
|
expect(@indirection.terminus).to equal(@terminus)
|
777
755
|
end
|
@@ -783,27 +761,27 @@ describe Puppet::Indirector::Indirection do
|
|
783
761
|
|
784
762
|
describe "when managing terminus instances" do
|
785
763
|
before do
|
786
|
-
@indirection = Puppet::Indirector::Indirection.new(
|
787
|
-
@terminus =
|
788
|
-
@terminus_class =
|
789
|
-
|
764
|
+
@indirection = Puppet::Indirector::Indirection.new(mock('model'), :test)
|
765
|
+
@terminus = mock 'terminus'
|
766
|
+
@terminus_class = mock 'terminus class'
|
767
|
+
Puppet::Indirector::Terminus.stubs(:terminus_class).with(:test, :foo).returns(@terminus_class)
|
790
768
|
end
|
791
769
|
|
792
770
|
it "should create an instance of the chosen terminus class" do
|
793
|
-
|
771
|
+
@terminus_class.stubs(:new).returns(@terminus)
|
794
772
|
expect(@indirection.terminus(:foo)).to equal(@terminus)
|
795
773
|
end
|
796
774
|
|
797
775
|
# Make sure it caches the terminus.
|
798
776
|
it "should return the same terminus instance each time for a given name" do
|
799
|
-
|
777
|
+
@terminus_class.stubs(:new).returns(@terminus)
|
800
778
|
expect(@indirection.terminus(:foo)).to equal(@terminus)
|
801
779
|
expect(@indirection.terminus(:foo)).to equal(@terminus)
|
802
780
|
end
|
803
781
|
|
804
782
|
it "should not create a terminus instance until one is actually needed" do
|
805
|
-
|
806
|
-
Puppet::Indirector::Indirection.new(
|
783
|
+
Puppet::Indirector.expects(:terminus).never
|
784
|
+
Puppet::Indirector::Indirection.new(mock('model'), :lazytest)
|
807
785
|
end
|
808
786
|
|
809
787
|
after do
|
@@ -813,11 +791,11 @@ describe Puppet::Indirector::Indirection do
|
|
813
791
|
|
814
792
|
describe "when deciding whether to cache" do
|
815
793
|
before do
|
816
|
-
@indirection = Puppet::Indirector::Indirection.new(
|
817
|
-
@terminus =
|
818
|
-
@terminus_class =
|
819
|
-
|
820
|
-
|
794
|
+
@indirection = Puppet::Indirector::Indirection.new(mock('model'), :test)
|
795
|
+
@terminus = mock 'terminus'
|
796
|
+
@terminus_class = mock 'terminus class'
|
797
|
+
@terminus_class.stubs(:new).returns(@terminus)
|
798
|
+
Puppet::Indirector::Terminus.stubs(:terminus_class).with(:test, :foo).returns(@terminus_class)
|
821
799
|
@indirection.terminus_class = :foo
|
822
800
|
end
|
823
801
|
|
@@ -839,7 +817,7 @@ describe Puppet::Indirector::Indirection do
|
|
839
817
|
end
|
840
818
|
|
841
819
|
it "should fail to set the cache class when the specified cache class cannot be found" do
|
842
|
-
|
820
|
+
Puppet::Indirector::Terminus.expects(:terminus_class).with(:test, :foo).returns(nil)
|
843
821
|
expect { @indirection.cache_class = :foo }.to raise_error(ArgumentError)
|
844
822
|
end
|
845
823
|
|
@@ -850,14 +828,14 @@ describe Puppet::Indirector::Indirection do
|
|
850
828
|
|
851
829
|
describe "when using a cache" do
|
852
830
|
before :each do
|
853
|
-
@terminus_class =
|
854
|
-
@terminus =
|
855
|
-
|
856
|
-
@cache =
|
857
|
-
@cache_class =
|
858
|
-
|
859
|
-
|
860
|
-
@indirection = Puppet::Indirector::Indirection.new(
|
831
|
+
@terminus_class = mock 'terminus_class'
|
832
|
+
@terminus = mock 'terminus'
|
833
|
+
@terminus_class.stubs(:new).returns(@terminus)
|
834
|
+
@cache = mock 'cache'
|
835
|
+
@cache_class = mock 'cache_class'
|
836
|
+
Puppet::Indirector::Terminus.stubs(:terminus_class).with(:test, :cache_terminus).returns(@cache_class)
|
837
|
+
Puppet::Indirector::Terminus.stubs(:terminus_class).with(:test, :test_terminus).returns(@terminus_class)
|
838
|
+
@indirection = Puppet::Indirector::Indirection.new(mock('model'), :test)
|
861
839
|
@indirection.terminus_class = :test_terminus
|
862
840
|
end
|
863
841
|
|
@@ -868,13 +846,19 @@ describe Puppet::Indirector::Indirection do
|
|
868
846
|
end
|
869
847
|
|
870
848
|
it "should reuse the cache terminus" do
|
871
|
-
|
849
|
+
@cache_class.expects(:new).returns(@cache)
|
872
850
|
@indirection.cache_class = :cache_terminus
|
873
851
|
expect(@indirection.cache).to equal(@cache)
|
874
852
|
expect(@indirection.cache).to equal(@cache)
|
875
853
|
end
|
876
854
|
end
|
877
855
|
|
856
|
+
describe "and saving" do
|
857
|
+
end
|
858
|
+
|
859
|
+
describe "and finding" do
|
860
|
+
end
|
861
|
+
|
878
862
|
after :each do
|
879
863
|
@indirection.delete
|
880
864
|
end
|