puppet 6.4.0-x64-mingw32 → 6.4.1-x64-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 -1
- data/Gemfile.lock +7 -11
- data/lib/puppet/application/device.rb +97 -82
- data/lib/puppet/application/filebucket.rb +4 -0
- data/lib/puppet/application/ssl.rb +2 -2
- data/lib/puppet/configurer.rb +5 -4
- data/lib/puppet/defaults.rb +33 -11
- data/lib/puppet/indirector/request.rb +28 -15
- data/lib/puppet/ssl.rb +1 -1
- data/lib/puppet/ssl/certificate.rb +1 -1
- data/lib/puppet/ssl/error.rb +1 -1
- data/lib/puppet/ssl/host.rb +0 -47
- data/lib/puppet/ssl/ssl_provider.rb +2 -2
- data/lib/puppet/ssl/state_machine.rb +16 -17
- data/lib/puppet/ssl/validator/default_validator.rb +4 -4
- data/lib/puppet/ssl/verifier.rb +1 -1
- data/lib/puppet/transaction/event_manager.rb +1 -5
- data/lib/puppet/util/connection.rb +15 -8
- data/lib/puppet/util/monkey_patches.rb +20 -1
- data/lib/puppet/version.rb +1 -1
- data/locales/puppet.pot +135 -68
- data/man/man5/puppet.conf.5 +9 -9
- data/man/man8/puppet-agent.8 +1 -1
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +1 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +1 -1
- data/man/man8/puppet-filebucket.8 +1 -1
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-key.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-man.8 +1 -1
- data/man/man8/puppet-module.8 +1 -1
- data/man/man8/puppet-node.8 +1 -1
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet-status.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- data/spec/integration/agent/logging_spec.rb +5 -7
- data/spec/integration/application/apply_spec.rb +18 -16
- data/spec/integration/application/doc_spec.rb +1 -2
- data/spec/integration/application/lookup_spec.rb +5 -5
- data/spec/integration/configurer_spec.rb +5 -6
- data/spec/integration/defaults_spec.rb +5 -6
- data/spec/integration/directory_environments_spec.rb +1 -1
- data/spec/integration/faces/config_spec.rb +3 -4
- data/spec/integration/faces/documentation_spec.rb +0 -1
- data/spec/integration/faces/plugin_spec.rb +1 -1
- data/spec/integration/file_bucket/file_spec.rb +2 -4
- data/spec/integration/file_serving/content_spec.rb +0 -1
- data/spec/integration/file_serving/fileset_spec.rb +0 -1
- data/spec/integration/file_serving/metadata_spec.rb +0 -1
- data/spec/integration/file_serving/terminus_helper_spec.rb +0 -1
- data/spec/integration/indirector/catalog/compiler_spec.rb +10 -11
- data/spec/integration/indirector/direct_file_server_spec.rb +1 -1
- data/spec/integration/indirector/facts/facter_spec.rb +4 -5
- data/spec/integration/indirector/file_content/file_server_spec.rb +7 -8
- data/spec/integration/indirector/file_metadata/file_server_spec.rb +7 -8
- data/spec/integration/network/authconfig_spec.rb +23 -24
- data/spec/integration/network/formats_spec.rb +0 -1
- data/spec/integration/network/http_pool_spec.rb +3 -3
- data/spec/integration/node/environment_spec.rb +0 -1
- data/spec/integration/node/facts_spec.rb +9 -10
- data/spec/integration/node_spec.rb +6 -7
- data/spec/integration/parser/catalog_spec.rb +1 -5
- data/spec/integration/parser/collection_spec.rb +1 -2
- data/spec/integration/parser/compiler_spec.rb +6 -6
- data/spec/integration/parser/scope_spec.rb +1 -1
- data/spec/integration/parser/undef_param_spec.rb +1 -1
- data/spec/integration/provider/service/init_spec.rb +4 -5
- data/spec/integration/provider/service/systemd_spec.rb +0 -2
- data/spec/integration/provider/service/windows_spec.rb +1 -2
- data/spec/integration/reference/providers_spec.rb +1 -2
- data/spec/integration/reports_spec.rb +1 -2
- data/spec/integration/resource/catalog_spec.rb +14 -17
- data/spec/integration/resource/type_collection_spec.rb +4 -5
- data/spec/integration/rest/client_spec.rb +1 -1
- data/spec/integration/ssl/certificate_request_spec.rb +0 -1
- data/spec/integration/ssl/host_spec.rb +1 -2
- data/spec/integration/ssl/key_spec.rb +0 -1
- data/spec/integration/test/test_helper_spec.rb +0 -1
- data/spec/integration/transaction/report_spec.rb +6 -11
- data/spec/integration/transaction_spec.rb +18 -19
- data/spec/integration/type/exec_spec.rb +0 -1
- data/spec/integration/type/file_spec.rb +13 -14
- data/spec/integration/type/package_spec.rb +19 -23
- data/spec/integration/type/tidy_spec.rb +1 -2
- data/spec/integration/type_spec.rb +0 -1
- data/spec/integration/util/autoload_spec.rb +1 -2
- data/spec/integration/util/rdoc/parser_spec.rb +0 -1
- data/spec/integration/util/settings_spec.rb +0 -1
- data/spec/integration/util/windows/adsi_spec.rb +3 -5
- data/spec/integration/util/windows/principal_spec.rb +0 -1
- data/spec/integration/util/windows/process_spec.rb +4 -6
- data/spec/integration/util/windows/registry_spec.rb +41 -51
- data/spec/integration/util/windows/security_spec.rb +2 -4
- data/spec/integration/util/windows/user_spec.rb +18 -20
- data/spec/integration/util_spec.rb +4 -7
- data/spec/lib/puppet_spec/compiler.rb +1 -1
- data/spec/lib/puppet_spec/files.rb +0 -1
- data/spec/lib/puppet_spec/module_tool/shared_functions.rb +1 -1
- data/spec/lib/puppet_spec/scope.rb +1 -2
- data/spec/shared_behaviours/all_parsedfile_providers.rb +1 -1
- data/spec/shared_behaviours/file_server_terminus.rb +8 -9
- data/spec/shared_behaviours/file_serving.rb +6 -8
- data/spec/shared_behaviours/file_serving_model.rb +3 -5
- data/spec/shared_behaviours/hiera_indirections.rb +3 -4
- data/spec/shared_behaviours/iterative_functions.rb +0 -1
- data/spec/shared_behaviours/memory_terminus.rb +2 -2
- data/spec/shared_examples/rhel_package_provider.rb +112 -70
- data/spec/spec_helper.rb +10 -1
- data/spec/unit/agent/disabler_spec.rb +4 -5
- data/spec/unit/agent/locker_spec.rb +12 -13
- data/spec/unit/agent_spec.rb +80 -85
- data/spec/unit/application/agent_spec.rb +88 -94
- data/spec/unit/application/apply_spec.rb +82 -83
- data/spec/unit/application/config_spec.rb +0 -1
- data/spec/unit/application/describe_spec.rb +6 -7
- data/spec/unit/application/device_spec.rb +379 -384
- data/spec/unit/application/doc_spec.rb +44 -46
- data/spec/unit/application/face_base_spec.rb +61 -62
- data/spec/unit/application/facts_spec.rb +3 -4
- data/spec/unit/application/filebucket_spec.rb +66 -74
- data/spec/unit/application/indirection_base_spec.rb +8 -6
- data/spec/unit/application/lookup_spec.rb +26 -26
- data/spec/unit/application/resource_spec.rb +42 -48
- data/spec/unit/application/ssl_spec.rb +9 -9
- data/spec/unit/application_spec.rb +82 -92
- data/spec/unit/capability_spec.rb +6 -6
- data/spec/unit/certificate_factory_spec.rb +3 -5
- data/spec/unit/configurer/downloader_spec.rb +20 -21
- data/spec/unit/configurer/fact_handler_spec.rb +2 -3
- data/spec/unit/configurer/plugin_handler_spec.rb +41 -8
- data/spec/unit/configurer_spec.rb +189 -192
- data/spec/unit/confine/exists_spec.rb +17 -15
- data/spec/unit/confine/false_spec.rb +5 -6
- data/spec/unit/confine/feature_spec.rb +7 -5
- data/spec/unit/confine/true_spec.rb +5 -6
- data/spec/unit/confine/variable_spec.rb +14 -15
- data/spec/unit/confine_collection_spec.rb +28 -29
- data/spec/unit/confine_spec.rb +13 -14
- data/spec/unit/confiner_spec.rb +10 -11
- data/spec/unit/context/trusted_information_spec.rb +1 -1
- data/spec/unit/daemon_spec.rb +35 -36
- data/spec/unit/data_providers/function_data_provider_spec.rb +0 -1
- data/spec/unit/data_providers/hiera_data_provider_spec.rb +0 -1
- data/spec/unit/datatypes_spec.rb +3 -4
- data/spec/unit/defaults_spec.rb +18 -13
- data/spec/unit/environments_spec.rb +7 -7
- data/spec/unit/etc_spec.rb +30 -32
- data/spec/unit/external/pson_spec.rb +0 -1
- data/spec/unit/face/catalog_spec.rb +0 -1
- data/spec/unit/face/config_spec.rb +31 -35
- data/spec/unit/face/epp_face_spec.rb +3 -4
- data/spec/unit/face/facts_spec.rb +5 -6
- data/spec/unit/face/generate_spec.rb +4 -5
- data/spec/unit/face/help_spec.rb +7 -8
- data/spec/unit/face/key_spec.rb +0 -1
- data/spec/unit/face/man_spec.rb +1 -2
- data/spec/unit/face/module/install_spec.rb +3 -5
- data/spec/unit/face/module/list_spec.rb +2 -12
- data/spec/unit/face/module/search_spec.rb +11 -9
- data/spec/unit/face/module/uninstall_spec.rb +4 -8
- data/spec/unit/face/node_spec.rb +23 -24
- data/spec/unit/face/parser_spec.rb +3 -3
- data/spec/unit/face/plugin_spec.rb +36 -9
- data/spec/unit/face/status_spec.rb +0 -1
- data/spec/unit/file_bucket/dipper_spec.rb +24 -20
- data/spec/unit/file_bucket/file_spec.rb +0 -2
- data/spec/unit/file_serving/base_spec.rb +14 -15
- data/spec/unit/file_serving/configuration/parser_spec.rb +27 -28
- data/spec/unit/file_serving/configuration_spec.rb +63 -66
- data/spec/unit/file_serving/content_spec.rb +10 -11
- data/spec/unit/file_serving/fileset_spec.rb +63 -58
- data/spec/unit/file_serving/http_metadata_spec.rb +8 -7
- data/spec/unit/file_serving/metadata_spec.rb +36 -36
- data/spec/unit/file_serving/mount/file_spec.rb +31 -32
- data/spec/unit/file_serving/mount/locales_spec.rb +23 -24
- data/spec/unit/file_serving/mount/modules_spec.rb +14 -15
- data/spec/unit/file_serving/mount/pluginfacts_spec.rb +23 -24
- data/spec/unit/file_serving/mount/plugins_spec.rb +23 -24
- data/spec/unit/file_serving/mount/tasks_spec.rb +14 -15
- data/spec/unit/file_serving/mount_spec.rb +0 -1
- data/spec/unit/file_serving/terminus_helper_spec.rb +37 -42
- data/spec/unit/file_serving/terminus_selector_spec.rb +12 -13
- data/spec/unit/file_system/uniquefile_spec.rb +4 -4
- data/spec/unit/file_system_spec.rb +4 -4
- data/spec/unit/forge/errors_spec.rb +1 -1
- data/spec/unit/forge/forge_spec.rb +13 -14
- data/spec/unit/forge/module_release_spec.rb +18 -18
- data/spec/unit/forge/repository_spec.rb +29 -30
- data/spec/unit/forge_spec.rb +15 -11
- data/spec/unit/functions/binary_file_spec.rb +3 -3
- data/spec/unit/functions/contain_spec.rb +0 -2
- data/spec/unit/functions/defined_spec.rb +0 -1
- data/spec/unit/functions/epp_spec.rb +2 -2
- data/spec/unit/functions/find_file_spec.rb +7 -7
- data/spec/unit/functions/include_spec.rb +0 -4
- data/spec/unit/functions/lookup_fixture_spec.rb +0 -1
- data/spec/unit/functions/lookup_spec.rb +1 -2
- data/spec/unit/functions/module_directory_spec.rb +12 -12
- data/spec/unit/functions/require_spec.rb +0 -3
- data/spec/unit/functions/shared.rb +5 -8
- data/spec/unit/functions/versioncmp_spec.rb +1 -2
- data/spec/unit/functions4_spec.rb +9 -10
- data/spec/unit/gettext/config_spec.rb +4 -4
- data/spec/unit/gettext/module_loading_spec.rb +7 -7
- data/spec/unit/graph/rb_tree_map_spec.rb +0 -2
- data/spec/unit/graph/relationship_graph_spec.rb +1 -2
- data/spec/unit/graph/simple_graph_spec.rb +9 -10
- data/spec/unit/hiera_puppet_spec.rb +20 -20
- data/spec/unit/indirector/catalog/compiler_spec.rb +147 -149
- data/spec/unit/indirector/catalog/json_spec.rb +1 -2
- data/spec/unit/indirector/catalog/msgpack_spec.rb +0 -1
- data/spec/unit/indirector/catalog/rest_spec.rb +0 -1
- data/spec/unit/indirector/catalog/store_configs_spec.rb +0 -1
- data/spec/unit/indirector/catalog/yaml_spec.rb +0 -1
- data/spec/unit/indirector/certificate/file_spec.rb +0 -1
- data/spec/unit/indirector/certificate/rest_spec.rb +8 -10
- data/spec/unit/indirector/certificate_request/file_spec.rb +0 -1
- data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -1
- data/spec/unit/indirector/direct_file_server_spec.rb +17 -18
- data/spec/unit/indirector/envelope_spec.rb +1 -2
- data/spec/unit/indirector/exec_spec.rb +4 -5
- data/spec/unit/indirector/face_spec.rb +9 -9
- data/spec/unit/indirector/facts/facter_spec.rb +37 -43
- data/spec/unit/indirector/facts/network_device_spec.rb +8 -9
- data/spec/unit/indirector/facts/rest_spec.rb +7 -8
- data/spec/unit/indirector/facts/store_configs_spec.rb +0 -1
- data/spec/unit/indirector/facts/yaml_spec.rb +0 -1
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +3 -4
- data/spec/unit/indirector/file_bucket_file/rest_spec.rb +0 -1
- data/spec/unit/indirector/file_bucket_file/selector_spec.rb +4 -5
- data/spec/unit/indirector/file_content/file_server_spec.rb +0 -1
- data/spec/unit/indirector/file_content/file_spec.rb +0 -1
- data/spec/unit/indirector/file_content/rest_spec.rb +0 -1
- data/spec/unit/indirector/file_content/selector_spec.rb +0 -1
- data/spec/unit/indirector/file_metadata/file_server_spec.rb +0 -1
- data/spec/unit/indirector/file_metadata/file_spec.rb +12 -13
- data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -1
- data/spec/unit/indirector/file_metadata/selector_spec.rb +0 -1
- data/spec/unit/indirector/file_server_spec.rb +87 -87
- data/spec/unit/indirector/indirection_spec.rb +242 -226
- data/spec/unit/indirector/json_spec.rb +7 -9
- data/spec/unit/indirector/key/file_spec.rb +21 -22
- data/spec/unit/indirector/memory_spec.rb +6 -7
- data/spec/unit/indirector/msgpack_spec.rb +7 -9
- data/spec/unit/indirector/node/exec_spec.rb +2 -3
- data/spec/unit/indirector/node/memory_spec.rb +2 -4
- data/spec/unit/indirector/node/msgpack_spec.rb +0 -1
- data/spec/unit/indirector/node/plain_spec.rb +2 -4
- data/spec/unit/indirector/node/rest_spec.rb +0 -1
- data/spec/unit/indirector/node/store_configs_spec.rb +0 -1
- data/spec/unit/indirector/node/yaml_spec.rb +0 -1
- data/spec/unit/indirector/none_spec.rb +5 -5
- data/spec/unit/indirector/plain_spec.rb +7 -8
- data/spec/unit/indirector/report/msgpack_spec.rb +0 -1
- data/spec/unit/indirector/report/processor_spec.rb +21 -22
- data/spec/unit/indirector/report/rest_spec.rb +11 -12
- data/spec/unit/indirector/report/yaml_spec.rb +0 -1
- data/spec/unit/indirector/request_spec.rb +11 -12
- data/spec/unit/indirector/resource/ral_spec.rb +47 -54
- data/spec/unit/indirector/resource/store_configs_spec.rb +0 -1
- data/spec/unit/indirector/rest_spec.rb +113 -110
- data/spec/unit/indirector/ssl_file_spec.rb +64 -65
- data/spec/unit/indirector/status/local_spec.rb +0 -1
- data/spec/unit/indirector/status/rest_spec.rb +0 -1
- data/spec/unit/indirector/store_configs_spec.rb +0 -1
- data/spec/unit/indirector/terminus_spec.rb +27 -27
- data/spec/unit/indirector/yaml_spec.rb +5 -6
- data/spec/unit/indirector_spec.rb +1 -2
- data/spec/unit/info_service_spec.rb +1 -1
- data/spec/unit/interface/action_builder_spec.rb +0 -1
- data/spec/unit/interface/action_manager_spec.rb +0 -1
- data/spec/unit/interface/action_spec.rb +2 -3
- data/spec/unit/interface/documentation_spec.rb +0 -1
- data/spec/unit/interface/face_collection_spec.rb +19 -12
- data/spec/unit/interface_spec.rb +3 -3
- data/spec/unit/man_spec.rb +3 -4
- data/spec/unit/module_spec.rb +46 -51
- data/spec/unit/module_tool/applications/installer_spec.rb +10 -11
- data/spec/unit/module_tool/applications/searcher_spec.rb +3 -3
- data/spec/unit/module_tool/applications/uninstaller_spec.rb +1 -2
- data/spec/unit/module_tool/applications/unpacker_spec.rb +13 -13
- data/spec/unit/module_tool/applications/upgrader_spec.rb +5 -5
- data/spec/unit/module_tool/install_directory_spec.rb +8 -8
- data/spec/unit/module_tool/installed_modules_spec.rb +3 -3
- data/spec/unit/module_tool/tar/gnu_spec.rb +6 -6
- data/spec/unit/module_tool/tar/mini_spec.rb +12 -12
- data/spec/unit/module_tool/tar_spec.rb +12 -13
- data/spec/unit/module_tool_spec.rb +7 -12
- data/spec/unit/network/auth_config_parser_spec.rb +11 -13
- data/spec/unit/network/authconfig_spec.rb +17 -18
- data/spec/unit/network/authorization_spec.rb +4 -5
- data/spec/unit/network/authstore_spec.rb +0 -1
- data/spec/unit/network/format_handler_spec.rb +0 -1
- data/spec/unit/network/format_spec.rb +9 -10
- data/spec/unit/network/format_support_spec.rb +28 -29
- data/spec/unit/network/formats_spec.rb +4 -5
- data/spec/unit/network/http/api/indirected_routes_spec.rb +24 -29
- data/spec/unit/network/http/api/master/v3/authorization_spec.rb +2 -2
- data/spec/unit/network/http/api/master/v3/environment_spec.rb +1 -1
- data/spec/unit/network/http/api/master/v3/environments_spec.rb +6 -7
- data/spec/unit/network/http/api_spec.rb +0 -2
- data/spec/unit/network/http/compression_spec.rb +21 -22
- data/spec/unit/network/http/connection_spec.rb +35 -35
- data/spec/unit/network/http/factory_spec.rb +5 -6
- data/spec/unit/network/http/handler_spec.rb +9 -18
- data/spec/unit/network/http/nocache_pool_spec.rb +6 -7
- data/spec/unit/network/http/pool_spec.rb +33 -34
- data/spec/unit/network/http/request_spec.rb +0 -2
- data/spec/unit/network/http/response_spec.rb +11 -13
- data/spec/unit/network/http/route_spec.rb +0 -1
- data/spec/unit/network/http/session_spec.rb +2 -3
- data/spec/unit/network/http/site_spec.rb +0 -1
- data/spec/unit/network/http_pool_spec.rb +19 -10
- data/spec/unit/network/http_spec.rb +0 -1
- data/spec/unit/network/resolver_spec.rb +25 -26
- data/spec/unit/network/rights_spec.rb +52 -53
- data/spec/unit/node/environment_spec.rb +14 -15
- data/spec/unit/node/facts_spec.rb +5 -7
- data/spec/unit/node_spec.rb +4 -10
- data/spec/unit/other/selinux_spec.rb +0 -1
- data/spec/unit/parameter/boolean_spec.rb +1 -2
- data/spec/unit/parameter/package_options_spec.rb +1 -2
- data/spec/unit/parameter/path_spec.rb +0 -1
- data/spec/unit/parameter/value_collection_spec.rb +0 -1
- data/spec/unit/parameter/value_spec.rb +0 -1
- data/spec/unit/parameter_spec.rb +9 -9
- data/spec/unit/parser/ast/block_expression_spec.rb +6 -8
- data/spec/unit/parser/ast/leaf_spec.rb +20 -21
- data/spec/unit/parser/compiler_spec.rb +84 -96
- data/spec/unit/parser/environment_compiler_spec.rb +7 -8
- data/spec/unit/parser/files_spec.rb +0 -1
- data/spec/unit/parser/functions/create_resources_spec.rb +1 -1
- data/spec/unit/parser/functions/digest_spec.rb +0 -1
- data/spec/unit/parser/functions/fail_spec.rb +1 -2
- data/spec/unit/parser/functions/file_spec.rb +13 -14
- data/spec/unit/parser/functions/fqdn_rand_spec.rb +5 -6
- data/spec/unit/parser/functions/generate_spec.rb +7 -8
- data/spec/unit/parser/functions/inline_template_spec.rb +0 -1
- data/spec/unit/parser/functions/regsubst_spec.rb +0 -1
- data/spec/unit/parser/functions/scanf_spec.rb +0 -1
- data/spec/unit/parser/functions/shellquote_spec.rb +0 -1
- data/spec/unit/parser/functions/split_spec.rb +0 -1
- data/spec/unit/parser/functions/sprintf_spec.rb +0 -1
- data/spec/unit/parser/functions/tag_spec.rb +1 -2
- data/spec/unit/parser/functions/tagged_spec.rb +2 -3
- data/spec/unit/parser/functions/template_spec.rb +13 -13
- data/spec/unit/parser/functions/versioncmp_spec.rb +1 -2
- data/spec/unit/parser/functions_spec.rb +6 -7
- data/spec/unit/parser/relationship_spec.rb +0 -1
- data/spec/unit/parser/resource_spec.rb +42 -42
- data/spec/unit/parser/scope_spec.rb +39 -35
- data/spec/unit/parser/templatewrapper_spec.rb +11 -12
- data/spec/unit/parser/type_loader_spec.rb +17 -19
- data/spec/unit/pops/adaptable_spec.rb +0 -1
- data/spec/unit/pops/benchmark_spec.rb +0 -1
- data/spec/unit/pops/evaluator/access_ops_spec.rb +0 -1
- data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +0 -1
- data/spec/unit/pops/evaluator/basic_expressions_spec.rb +0 -1
- data/spec/unit/pops/evaluator/collections_ops_spec.rb +0 -1
- data/spec/unit/pops/evaluator/comparison_ops_spec.rb +0 -1
- data/spec/unit/pops/evaluator/conditionals_spec.rb +0 -1
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +10 -11
- data/spec/unit/pops/evaluator/logical_ops_spec.rb +0 -1
- data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +0 -1
- data/spec/unit/pops/evaluator/string_interpolation_spec.rb +0 -1
- data/spec/unit/pops/evaluator/variables_spec.rb +0 -1
- data/spec/unit/pops/factory_spec.rb +3 -4
- data/spec/unit/pops/issues_spec.rb +19 -20
- data/spec/unit/pops/loaders/loader_spec.rb +9 -5
- data/spec/unit/pops/loaders/loaders_spec.rb +31 -28
- data/spec/unit/pops/lookup/context_spec.rb +0 -1
- data/spec/unit/pops/lookup/interpolation_spec.rb +2 -3
- data/spec/unit/pops/merge_strategy_spec.rb +0 -1
- data/spec/unit/pops/migration_spec.rb +3 -5
- data/spec/unit/pops/model/model_spec.rb +0 -1
- data/spec/unit/pops/model/pn_transformer_spec.rb +0 -1
- data/spec/unit/pops/parser/locator_spec.rb +3 -6
- data/spec/unit/pops/parser/parse_application_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_calls_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_capabilities_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_conditionals_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_containers_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_plan_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_resource_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_site_spec.rb +0 -1
- data/spec/unit/pops/parser/pn_parser_spec.rb +0 -1
- data/spec/unit/pops/pn_spec.rb +0 -1
- data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -1
- data/spec/unit/pops/serialization/serialization_spec.rb +1 -1
- data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
- data/spec/unit/pops/types/recursion_guard_spec.rb +10 -10
- data/spec/unit/pops/types/ruby_generator_spec.rb +2 -2
- data/spec/unit/pops/types/type_asserter_spec.rb +2 -2
- data/spec/unit/pops/types/type_calculator_spec.rb +30 -30
- data/spec/unit/pops/types/type_parser_spec.rb +13 -13
- data/spec/unit/pops/validator/validator_spec.rb +1 -2
- data/spec/unit/pops/visitor_spec.rb +0 -1
- data/spec/unit/property/boolean_spec.rb +1 -1
- data/spec/unit/property/ensure_spec.rb +0 -1
- data/spec/unit/property/keyvalue_spec.rb +32 -34
- data/spec/unit/property/list_spec.rb +26 -27
- data/spec/unit/property/ordered_list_spec.rb +10 -14
- data/spec/unit/property_spec.rb +42 -43
- data/spec/unit/provider/aix_object_spec.rb +47 -45
- data/spec/unit/provider/command_spec.rb +9 -9
- data/spec/unit/provider/exec/posix_spec.rb +8 -9
- data/spec/unit/provider/exec/shell_spec.rb +0 -1
- data/spec/unit/provider/exec/windows_spec.rb +2 -4
- data/spec/unit/provider/exec_spec.rb +0 -1
- data/spec/unit/provider/file/posix_spec.rb +22 -24
- data/spec/unit/provider/file/windows_spec.rb +15 -17
- data/spec/unit/provider/group/aix_spec.rb +3 -2
- data/spec/unit/provider/group/groupadd_spec.rb +30 -26
- data/spec/unit/provider/group/ldap_spec.rb +18 -18
- data/spec/unit/provider/group/pw_spec.rb +11 -11
- data/spec/unit/provider/group/windows_adsi_spec.rb +54 -54
- data/spec/unit/provider/ldap_spec.rb +61 -62
- data/spec/unit/provider/nameservice/directoryservice_spec.rb +35 -36
- data/spec/unit/provider/nameservice_spec.rb +38 -40
- data/spec/unit/provider/package/aix_spec.rb +15 -15
- data/spec/unit/provider/package/appdmg_spec.rb +13 -13
- data/spec/unit/provider/package/apt_spec.rb +44 -27
- data/spec/unit/provider/package/aptitude_spec.rb +6 -7
- data/spec/unit/provider/package/aptrpm_spec.rb +7 -12
- data/spec/unit/provider/package/base_spec.rb +4 -4
- data/spec/unit/provider/package/dnf_spec.rb +18 -20
- data/spec/unit/provider/package/dpkg_spec.rb +52 -52
- data/spec/unit/provider/package/freebsd_spec.rb +11 -11
- data/spec/unit/provider/package/gem_spec.rb +51 -43
- data/spec/unit/provider/package/hpux_spec.rb +8 -8
- data/spec/unit/provider/package/macports_spec.rb +46 -42
- data/spec/unit/provider/package/nim_spec.rb +30 -39
- data/spec/unit/provider/package/openbsd_spec.rb +36 -39
- data/spec/unit/provider/package/opkg_spec.rb +23 -26
- data/spec/unit/provider/package/pacman_spec.rb +97 -118
- data/spec/unit/provider/package/pip_spec.rb +71 -72
- data/spec/unit/provider/package/pkg_spec.rb +113 -114
- data/spec/unit/provider/package/pkgdmg_spec.rb +65 -63
- data/spec/unit/provider/package/pkgin_spec.rb +10 -8
- data/spec/unit/provider/package/pkgng_spec.rb +21 -22
- data/spec/unit/provider/package/pkgutil_spec.rb +45 -49
- data/spec/unit/provider/package/portage_spec.rb +71 -75
- data/spec/unit/provider/package/puppet_gem_spec.rb +28 -8
- data/spec/unit/provider/package/rpm_spec.rb +53 -64
- data/spec/unit/provider/package/sun_spec.rb +16 -18
- data/spec/unit/provider/package/tdnf_spec.rb +2 -2
- data/spec/unit/provider/package/up2date_spec.rb +2 -4
- data/spec/unit/provider/package/urpmi_spec.rb +15 -17
- data/spec/unit/provider/package/windows/exe_package_spec.rb +12 -15
- data/spec/unit/provider/package/windows/msi_package_spec.rb +19 -22
- data/spec/unit/provider/package/windows/package_spec.rb +37 -42
- data/spec/unit/provider/package/windows_spec.rb +36 -32
- data/spec/unit/provider/package/yum_spec.rb +7 -7
- data/spec/unit/provider/package/zypper_spec.rb +87 -87
- data/spec/unit/provider/parsedfile_spec.rb +44 -45
- data/spec/unit/provider/service/base_spec.rb +4 -5
- data/spec/unit/provider/service/bsd_spec.rb +27 -29
- data/spec/unit/provider/service/daemontools_spec.rb +35 -35
- data/spec/unit/provider/service/debian_spec.rb +38 -38
- data/spec/unit/provider/service/freebsd_spec.rb +18 -18
- data/spec/unit/provider/service/gentoo_spec.rb +50 -55
- data/spec/unit/provider/service/init_spec.rb +53 -52
- data/spec/unit/provider/service/launchd_spec.rb +138 -116
- data/spec/unit/provider/service/openbsd_spec.rb +50 -50
- data/spec/unit/provider/service/openrc_spec.rb +43 -45
- data/spec/unit/provider/service/openwrt_spec.rb +26 -31
- data/spec/unit/provider/service/rcng_spec.rb +14 -14
- data/spec/unit/provider/service/redhat_spec.rb +45 -43
- data/spec/unit/provider/service/runit_spec.rb +29 -27
- data/spec/unit/provider/service/smf_spec.rb +74 -66
- data/spec/unit/provider/service/src_spec.rb +46 -47
- data/spec/unit/provider/service/systemd_spec.rb +113 -122
- data/spec/unit/provider/service/upstart_spec.rb +74 -71
- data/spec/unit/provider/service/windows_spec.rb +33 -41
- data/spec/unit/provider/user/aix_spec.rb +31 -31
- data/spec/unit/provider/user/directoryservice_spec.rb +109 -114
- data/spec/unit/provider/user/hpux_spec.rb +16 -16
- data/spec/unit/provider/user/ldap_spec.rb +57 -57
- data/spec/unit/provider/user/openbsd_spec.rb +10 -12
- data/spec/unit/provider/user/pw_spec.rb +37 -35
- data/spec/unit/provider/user/user_role_add_spec.rb +93 -93
- data/spec/unit/provider/user/useradd_spec.rb +93 -92
- data/spec/unit/provider/user/windows_adsi_spec.rb +59 -60
- data/spec/unit/provider_spec.rb +35 -35
- data/spec/unit/puppet_pal_2pec.rb +4 -5
- data/spec/unit/puppet_pal_spec.rb +0 -1
- data/spec/unit/puppet_spec.rb +6 -7
- data/spec/unit/relationship_spec.rb +0 -1
- data/spec/unit/reports/http_spec.rb +22 -24
- data/spec/unit/reports/store_spec.rb +3 -4
- data/spec/unit/reports_spec.rb +12 -14
- data/spec/unit/resource/capability_finder_spec.rb +15 -17
- data/spec/unit/resource/catalog_spec.rb +72 -68
- data/spec/unit/resource/status_spec.rb +6 -8
- data/spec/unit/resource/type_collection_spec.rb +17 -18
- data/spec/unit/resource/type_spec.rb +34 -35
- data/spec/unit/resource_spec.rb +36 -32
- data/spec/unit/rest/client_spec.rb +56 -25
- data/spec/unit/rest/route_spec.rb +5 -5
- data/spec/unit/scheduler/job_spec.rb +0 -1
- data/spec/unit/scheduler/scheduler_spec.rb +0 -1
- data/spec/unit/scheduler/splay_job_spec.rb +1 -2
- data/spec/unit/settings/array_setting_spec.rb +1 -1
- data/spec/unit/settings/autosign_setting_spec.rb +9 -9
- data/spec/unit/settings/certificate_revocation_setting_spec.rb +1 -1
- data/spec/unit/settings/config_file_spec.rb +0 -1
- data/spec/unit/settings/directory_setting_spec.rb +2 -7
- data/spec/unit/settings/duration_setting_spec.rb +1 -2
- data/spec/unit/settings/enum_setting_spec.rb +1 -1
- data/spec/unit/settings/environment_conf_spec.rb +4 -6
- data/spec/unit/settings/file_setting_spec.rb +44 -46
- data/spec/unit/settings/path_setting_spec.rb +1 -2
- data/spec/unit/settings/priority_setting_spec.rb +1 -2
- data/spec/unit/settings/string_setting_spec.rb +14 -15
- data/spec/unit/settings/terminus_setting_spec.rb +1 -2
- data/spec/unit/settings/value_translator_spec.rb +0 -1
- data/spec/unit/settings_spec.rb +228 -235
- data/spec/unit/ssl/base_spec.rb +14 -15
- data/spec/unit/ssl/certificate_request_spec.rb +62 -58
- data/spec/unit/ssl/certificate_spec.rb +23 -25
- data/spec/unit/ssl/digest_spec.rb +0 -1
- data/spec/unit/ssl/host_spec.rb +147 -130
- data/spec/unit/ssl/key_spec.rb +30 -31
- data/spec/unit/ssl/ssl_provider_spec.rb +24 -24
- data/spec/unit/ssl/state_machine_spec.rb +50 -58
- data/spec/unit/ssl/validator_spec.rb +43 -54
- data/spec/unit/ssl/verifier_spec.rb +10 -10
- data/spec/unit/task_spec.rb +44 -45
- data/spec/unit/transaction/additional_resource_generator_spec.rb +3 -5
- data/spec/unit/transaction/event_manager_spec.rb +87 -88
- data/spec/unit/transaction/event_spec.rb +16 -15
- data/spec/unit/transaction/persistence_spec.rb +16 -17
- data/spec/unit/transaction/report_spec.rb +11 -12
- data/spec/unit/transaction/resource_harness_spec.rb +28 -33
- data/spec/unit/transaction_spec.rb +100 -101
- data/spec/unit/type/component_spec.rb +0 -1
- data/spec/unit/type/exec_spec.rb +60 -56
- data/spec/unit/type/file/checksum_spec.rb +9 -10
- data/spec/unit/type/file/checksum_value_spec.rb +31 -32
- data/spec/unit/type/file/content_spec.rb +58 -61
- data/spec/unit/type/file/ctime_spec.rb +0 -1
- data/spec/unit/type/file/ensure_spec.rb +12 -13
- data/spec/unit/type/file/group_spec.rb +5 -7
- data/spec/unit/type/file/mode_spec.rb +4 -6
- data/spec/unit/type/file/mtime_spec.rb +0 -1
- data/spec/unit/type/file/owner_spec.rb +6 -8
- data/spec/unit/type/file/selinux_spec.rb +17 -19
- data/spec/unit/type/file/source_spec.rb +104 -101
- data/spec/unit/type/file/type_spec.rb +0 -1
- data/spec/unit/type/file_spec.rb +195 -185
- data/spec/unit/type/filebucket_spec.rb +4 -5
- data/spec/unit/type/group_spec.rb +6 -8
- data/spec/unit/type/noop_metaparam_spec.rb +1 -2
- data/spec/unit/type/package/package_settings_spec.rb +44 -23
- data/spec/unit/type/package_spec.rb +56 -57
- data/spec/unit/type/resources_spec.rb +72 -74
- data/spec/unit/type/schedule_spec.rb +24 -26
- data/spec/unit/type/service_spec.rb +49 -49
- data/spec/unit/type/stage_spec.rb +0 -1
- data/spec/unit/type/tidy_spec.rb +61 -62
- data/spec/unit/type/user_spec.rb +24 -25
- data/spec/unit/type/whit_spec.rb +0 -1
- data/spec/unit/type_spec.rb +55 -54
- data/spec/unit/util/at_fork_spec.rb +18 -19
- data/spec/unit/util/autoload_spec.rb +55 -56
- data/spec/unit/util/backups_spec.rb +34 -35
- data/spec/unit/util/character_encoding_spec.rb +5 -5
- data/spec/unit/util/checksums_spec.rb +38 -39
- data/spec/unit/util/colors_spec.rb +1 -2
- data/spec/unit/util/command_line_spec.rb +24 -25
- data/spec/unit/util/constant_inflector_spec.rb +0 -1
- data/spec/unit/util/diff_spec.rb +7 -8
- data/spec/unit/util/errors_spec.rb +0 -1
- data/spec/unit/util/execution_spec.rb +185 -161
- data/spec/unit/util/execution_stub_spec.rb +0 -1
- data/spec/unit/util/feature_spec.rb +23 -14
- data/spec/unit/util/filetype_spec.rb +49 -49
- data/spec/unit/util/http_proxy_spec.rb +12 -12
- data/spec/unit/util/inifile_spec.rb +26 -31
- data/spec/unit/util/json_lockfile_spec.rb +3 -5
- data/spec/unit/util/ldap/connection_spec.rb +26 -25
- data/spec/unit/util/ldap/generator_spec.rb +0 -1
- data/spec/unit/util/ldap/manager_spec.rb +102 -101
- data/spec/unit/util/lockfile_spec.rb +0 -1
- data/spec/unit/util/log/destinations_spec.rb +30 -33
- data/spec/unit/util/log_spec.rb +35 -36
- data/spec/unit/util/logging_spec.rb +58 -72
- data/spec/unit/util/metric_spec.rb +0 -1
- data/spec/unit/util/monkey_patches_spec.rb +7 -9
- data/spec/unit/util/multi_match_spec.rb +0 -1
- data/spec/unit/util/network_device/config_spec.rb +0 -1
- data/spec/unit/util/network_device/transport/base_spec.rb +5 -6
- data/spec/unit/util/network_device_spec.rb +7 -9
- data/spec/unit/util/package_spec.rb +0 -1
- data/spec/unit/util/pidlock_spec.rb +21 -22
- data/spec/unit/util/plist_spec.rb +40 -33
- data/spec/unit/util/posix_spec.rb +54 -51
- data/spec/unit/util/rdoc_spec.rb +9 -10
- data/spec/unit/util/reference_spec.rb +0 -1
- data/spec/unit/util/resource_template_spec.rb +20 -20
- data/spec/unit/util/retry_action_spec.rb +7 -8
- data/spec/unit/util/rubygems_spec.rb +7 -8
- data/spec/unit/util/run_mode_spec.rb +3 -4
- data/spec/unit/util/selinux_spec.rb +79 -72
- data/spec/unit/util/splayer_spec.rb +8 -9
- data/spec/unit/util/ssl_spec.rb +0 -1
- data/spec/unit/util/storage_spec.rb +3 -4
- data/spec/unit/util/suidmanager_spec.rb +45 -54
- data/spec/unit/util/symbolic_file_mode_spec.rb +0 -1
- data/spec/unit/util/tag_set_spec.rb +0 -1
- data/spec/unit/util/tagging_spec.rb +0 -1
- data/spec/unit/util/terminal_spec.rb +9 -10
- data/spec/unit/util/user_attr_spec.rb +1 -2
- data/spec/unit/util/warnings_spec.rb +3 -4
- data/spec/unit/util/watcher/periodic_watcher_spec.rb +2 -2
- data/spec/unit/util/watcher_spec.rb +51 -21
- data/spec/unit/util/windows/access_control_entry_spec.rb +0 -1
- data/spec/unit/util/windows/access_control_list_spec.rb +0 -1
- data/spec/unit/util/windows/adsi_spec.rb +136 -138
- data/spec/unit/util/windows/api_types_spec.rb +0 -1
- data/spec/unit/util/windows/eventlog_spec.rb +9 -12
- data/spec/unit/util/windows/file_spec.rb +0 -1
- data/spec/unit/util/windows/root_certs_spec.rb +1 -2
- data/spec/unit/util/windows/security_descriptor_spec.rb +0 -2
- data/spec/unit/util/windows/service_spec.rb +66 -68
- data/spec/unit/util/windows/sid_spec.rb +11 -13
- data/spec/unit/util/windows/string_spec.rb +0 -1
- data/spec/unit/util_spec.rb +55 -57
- data/spec/unit/version_spec.rb +6 -6
- data/spec/unit/x509/cert_provider_spec.rb +14 -14
- data/spec/unit/x509/pem_store_spec.rb +5 -5
- metadata +2 -2
@@ -1,4 +1,3 @@
|
|
1
|
-
#! /usr/bin/env ruby
|
2
1
|
require 'spec_helper'
|
3
2
|
|
4
3
|
require 'puppet/indirector/report/rest'
|
@@ -33,10 +32,10 @@ describe Puppet::Transaction::Report::Rest do
|
|
33
32
|
end
|
34
33
|
|
35
34
|
def mock_response(code, body, content_type='text/plain', encoding=nil)
|
36
|
-
obj =
|
37
|
-
obj.
|
38
|
-
obj.
|
39
|
-
obj.
|
35
|
+
obj = double('http 200 ok', :code => code.to_s, :body => body)
|
36
|
+
allow(obj).to receive(:[]).with('content-type').and_return(content_type)
|
37
|
+
allow(obj).to receive(:[]).with('content-encoding').and_return(encoding)
|
38
|
+
allow(obj).to receive(:[]).with(Puppet::Network::HTTP::HEADER_PUPPET_VERSION).and_return(Puppet.version)
|
40
39
|
obj
|
41
40
|
end
|
42
41
|
|
@@ -46,18 +45,18 @@ describe Puppet::Transaction::Report::Rest do
|
|
46
45
|
|
47
46
|
describe "#save" do
|
48
47
|
let(:response) { mock_response(200, 'body') }
|
49
|
-
let(:connection) {
|
48
|
+
let(:connection) { double('mock http connection', :put => response, :verify_callback= => nil) }
|
50
49
|
let(:instance) { model.new('the thing', 'some contents') }
|
51
50
|
let(:request) { save_request(instance.name, instance) }
|
52
51
|
let(:body) { ["store", "http"].to_pson }
|
53
52
|
|
54
53
|
before :each do
|
55
|
-
terminus.
|
54
|
+
allow(terminus).to receive(:network).and_return(connection)
|
56
55
|
end
|
57
56
|
|
58
57
|
it "deserializes the response as an array of report processor names" do
|
59
58
|
response = mock_response('200', body, 'text/pson')
|
60
|
-
connection.
|
59
|
+
expect(connection).to receive(:put).and_return(response)
|
61
60
|
|
62
61
|
expect(terminus.save(request)).to eq(["store", "http"])
|
63
62
|
end
|
@@ -68,8 +67,8 @@ describe Puppet::Transaction::Report::Rest do
|
|
68
67
|
Puppet[:preferred_serialization_format] = "json"
|
69
68
|
|
70
69
|
response = mock_response('500', '{}', 'text/pson')
|
71
|
-
response.
|
72
|
-
connection.
|
70
|
+
allow(response).to receive(:[]).with(Puppet::Network::HTTP::HEADER_PUPPET_VERSION).and_return("4.10.1")
|
71
|
+
expect(connection).to receive(:put).and_return(response)
|
73
72
|
|
74
73
|
expect {
|
75
74
|
terminus.save(request)
|
@@ -80,8 +79,8 @@ describe Puppet::Transaction::Report::Rest do
|
|
80
79
|
Puppet[:preferred_serialization_format] = "pson"
|
81
80
|
|
82
81
|
response = mock_response('500', '{}', 'text/pson')
|
83
|
-
response.
|
84
|
-
connection.
|
82
|
+
allow(response).to receive(:[]).with(Puppet::Network::HTTP::HEADER_PUPPET_VERSION).and_return("4.10.1")
|
83
|
+
expect(connection).to receive(:put).and_return(response)
|
85
84
|
|
86
85
|
expect {
|
87
86
|
terminus.save(request)
|
@@ -1,4 +1,3 @@
|
|
1
|
-
#! /usr/bin/env ruby
|
2
1
|
require 'spec_helper'
|
3
2
|
require 'matchers/json'
|
4
3
|
require 'puppet/indirector/request'
|
@@ -20,7 +19,7 @@ describe Puppet::Indirector::Request do
|
|
20
19
|
end
|
21
20
|
|
22
21
|
it "should use the name of the provided instance as its key if an instance is provided as the key instead of a string" do
|
23
|
-
instance =
|
22
|
+
instance = double('instance', :name => "mykey")
|
24
23
|
request = Puppet::Indirector::Request.new(:ind, :method, nil, instance)
|
25
24
|
expect(request.key).to eq("mykey")
|
26
25
|
expect(request.instance).to equal(instance)
|
@@ -195,25 +194,25 @@ describe Puppet::Indirector::Request do
|
|
195
194
|
end
|
196
195
|
|
197
196
|
it "should look use the Indirection class to return the appropriate indirection" do
|
198
|
-
ind =
|
199
|
-
Puppet::Indirector::Indirection.
|
197
|
+
ind = double('indirection')
|
198
|
+
expect(Puppet::Indirector::Indirection).to receive(:instance).with(:myind).and_return(ind)
|
200
199
|
request = Puppet::Indirector::Request.new(:myind, :method, :key, nil)
|
201
200
|
|
202
201
|
expect(request.indirection).to equal(ind)
|
203
202
|
end
|
204
203
|
|
205
204
|
it "should use its indirection to look up the appropriate model" do
|
206
|
-
ind =
|
207
|
-
Puppet::Indirector::Indirection.
|
205
|
+
ind = double('indirection')
|
206
|
+
expect(Puppet::Indirector::Indirection).to receive(:instance).with(:myind).and_return(ind)
|
208
207
|
request = Puppet::Indirector::Request.new(:myind, :method, :key, nil)
|
209
208
|
|
210
|
-
ind.
|
209
|
+
expect(ind).to receive(:model).and_return("mymodel")
|
211
210
|
|
212
211
|
expect(request.model).to eq("mymodel")
|
213
212
|
end
|
214
213
|
|
215
214
|
it "should fail intelligently when asked to find a model but the indirection cannot be found" do
|
216
|
-
Puppet::Indirector::Indirection.
|
215
|
+
expect(Puppet::Indirector::Indirection).to receive(:instance).with(:myind).and_return(nil)
|
217
216
|
request = Puppet::Indirector::Request.new(:myind, :method, :key, nil)
|
218
217
|
|
219
218
|
expect { request.model }.to raise_error(ArgumentError)
|
@@ -442,8 +441,8 @@ describe Puppet::Indirector::Request do
|
|
442
441
|
|
443
442
|
context "when SRV returns servers" do
|
444
443
|
before :each do
|
445
|
-
@dns_mock =
|
446
|
-
Resolv::DNS.
|
444
|
+
@dns_mock = double('dns')
|
445
|
+
expect(Resolv::DNS).to receive(:new).and_return(@dns_mock)
|
447
446
|
|
448
447
|
@port = 7205
|
449
448
|
@target = 'example.com'
|
@@ -451,9 +450,9 @@ describe Puppet::Indirector::Request do
|
|
451
450
|
record.instance_variable_set(:@ttl, 10)
|
452
451
|
@srv_records = [record]
|
453
452
|
|
454
|
-
@dns_mock.
|
453
|
+
expect(@dns_mock).to receive(:getresources).
|
455
454
|
with("_x-puppet._tcp.#{Puppet.settings[:srv_domain]}", Resolv::DNS::Resource::IN::SRV).
|
456
|
-
|
455
|
+
and_return(@srv_records)
|
457
456
|
end
|
458
457
|
|
459
458
|
it "yields a request using the server and port from the SRV record" do
|
@@ -1,43 +1,40 @@
|
|
1
|
-
#! /usr/bin/env ruby
|
2
1
|
require 'spec_helper'
|
2
|
+
require 'puppet/type/user'
|
3
3
|
require 'puppet/indirector/resource/ral'
|
4
4
|
|
5
5
|
describe "Puppet::Resource::Ral" do
|
6
|
-
|
7
6
|
it "disallows remote requests" do
|
8
7
|
expect(Puppet::Resource::Ral.new.allow_remote_requests?).to eq(false)
|
9
8
|
end
|
10
9
|
|
11
10
|
describe "find" do
|
12
11
|
before do
|
13
|
-
@request =
|
12
|
+
@request = double('request', :key => "user/root")
|
14
13
|
end
|
15
14
|
|
16
15
|
it "should find an existing instance" do
|
17
|
-
my_resource =
|
16
|
+
my_resource = double("my user resource")
|
18
17
|
|
19
|
-
wrong_instance =
|
20
|
-
my_instance =
|
18
|
+
wrong_instance = double("wrong user", :name => "bob")
|
19
|
+
my_instance = double("my user", :name => "root", :to_resource => my_resource)
|
21
20
|
|
22
|
-
|
23
|
-
Puppet::Type::User.expects(:instances).returns([ wrong_instance, my_instance, wrong_instance ])
|
21
|
+
expect(Puppet::Type::User).to receive(:instances).and_return([ wrong_instance, my_instance, wrong_instance ])
|
24
22
|
expect(Puppet::Resource::Ral.new.find(@request)).to eq(my_resource)
|
25
23
|
end
|
26
24
|
|
27
25
|
it "should produce Puppet::Error instead of ArgumentError" do
|
28
|
-
@bad_request =
|
26
|
+
@bad_request = double('thiswillcauseanerror', :key => "thiswill/causeanerror")
|
29
27
|
expect{Puppet::Resource::Ral.new.find(@bad_request)}.to raise_error(Puppet::Error)
|
30
28
|
end
|
31
29
|
|
32
30
|
it "if there is no instance, it should create one" do
|
33
|
-
wrong_instance =
|
34
|
-
root =
|
35
|
-
root_resource =
|
31
|
+
wrong_instance = double("wrong user", :name => "bob")
|
32
|
+
root = double("Root User")
|
33
|
+
root_resource = double("Root Resource")
|
36
34
|
|
37
|
-
|
38
|
-
Puppet::Type::User.
|
39
|
-
|
40
|
-
root.expects(:to_resource).returns(root_resource)
|
35
|
+
expect(Puppet::Type::User).to receive(:instances).and_return([ wrong_instance, wrong_instance ])
|
36
|
+
expect(Puppet::Type::User).to receive(:new).with(hash_including(name: "root")).and_return(root)
|
37
|
+
expect(root).to receive(:to_resource).and_return(root_resource)
|
41
38
|
|
42
39
|
result = Puppet::Resource::Ral.new.find(@request)
|
43
40
|
|
@@ -47,72 +44,68 @@ describe "Puppet::Resource::Ral" do
|
|
47
44
|
|
48
45
|
describe "search" do
|
49
46
|
before do
|
50
|
-
@request =
|
47
|
+
@request = double('request', :key => "user/", :options => {})
|
51
48
|
end
|
52
49
|
|
53
50
|
it "should convert ral resources into regular resources" do
|
54
|
-
my_resource =
|
55
|
-
my_instance =
|
51
|
+
my_resource = double("my user resource")
|
52
|
+
my_instance = double("my user", :name => "root", :to_resource => my_resource)
|
56
53
|
|
57
|
-
|
58
|
-
Puppet::Type::User.expects(:instances).returns([ my_instance ])
|
54
|
+
expect(Puppet::Type::User).to receive(:instances).and_return([ my_instance ])
|
59
55
|
expect(Puppet::Resource::Ral.new.search(@request)).to eq([my_resource])
|
60
56
|
end
|
61
57
|
|
62
58
|
it "should filter results by name if there's a name in the key" do
|
63
|
-
my_resource
|
64
|
-
my_resource.
|
65
|
-
my_resource.
|
59
|
+
my_resource = double("my user resource")
|
60
|
+
allow(my_resource).to receive(:to_resource).and_return(my_resource)
|
61
|
+
allow(my_resource).to receive(:[]).with(:name).and_return("root")
|
66
62
|
|
67
|
-
wrong_resource =
|
68
|
-
wrong_resource.
|
69
|
-
wrong_resource.
|
63
|
+
wrong_resource = double("wrong resource")
|
64
|
+
allow(wrong_resource).to receive(:to_resource).and_return(wrong_resource)
|
65
|
+
allow(wrong_resource).to receive(:[]).with(:name).and_return("bad")
|
70
66
|
|
71
|
-
my_instance =
|
72
|
-
wrong_instance =
|
67
|
+
my_instance = double("my user", :to_resource => my_resource)
|
68
|
+
wrong_instance = double("wrong user", :to_resource => wrong_resource)
|
73
69
|
|
74
|
-
@request =
|
70
|
+
@request = double('request', :key => "user/root", :options => {})
|
75
71
|
|
76
|
-
|
77
|
-
Puppet::Type::User.expects(:instances).returns([ my_instance, wrong_instance ])
|
72
|
+
expect(Puppet::Type::User).to receive(:instances).and_return([ my_instance, wrong_instance ])
|
78
73
|
expect(Puppet::Resource::Ral.new.search(@request)).to eq([my_resource])
|
79
74
|
end
|
80
75
|
|
81
76
|
it "should filter results by query parameters" do
|
82
|
-
wrong_resource =
|
83
|
-
wrong_resource.
|
84
|
-
wrong_resource.
|
77
|
+
wrong_resource = double("my user resource")
|
78
|
+
allow(wrong_resource).to receive(:to_resource).and_return(wrong_resource)
|
79
|
+
allow(wrong_resource).to receive(:[]).with(:name).and_return("root")
|
85
80
|
|
86
|
-
my_resource =
|
87
|
-
my_resource.
|
88
|
-
my_resource.
|
81
|
+
my_resource = double("wrong resource")
|
82
|
+
allow(my_resource).to receive(:to_resource).and_return(my_resource)
|
83
|
+
allow(my_resource).to receive(:[]).with(:name).and_return("bob")
|
89
84
|
|
90
|
-
my_instance =
|
91
|
-
wrong_instance =
|
85
|
+
my_instance = double("my user", :to_resource => my_resource)
|
86
|
+
wrong_instance = double("wrong user", :to_resource => wrong_resource)
|
92
87
|
|
93
|
-
@request =
|
88
|
+
@request = double('request', :key => "user/", :options => {:name => "bob"})
|
94
89
|
|
95
|
-
|
96
|
-
Puppet::Type::User.expects(:instances).returns([ my_instance, wrong_instance ])
|
90
|
+
expect(Puppet::Type::User).to receive(:instances).and_return([ my_instance, wrong_instance ])
|
97
91
|
expect(Puppet::Resource::Ral.new.search(@request)).to eq([my_resource])
|
98
92
|
end
|
99
93
|
|
100
94
|
it "should return sorted results" do
|
101
|
-
a_resource =
|
102
|
-
a_resource.
|
103
|
-
a_resource.
|
95
|
+
a_resource = double("alice resource")
|
96
|
+
allow(a_resource).to receive(:to_resource).and_return(a_resource)
|
97
|
+
allow(a_resource).to receive(:title).and_return("alice")
|
104
98
|
|
105
|
-
b_resource =
|
106
|
-
b_resource.
|
107
|
-
b_resource.
|
99
|
+
b_resource = double("bob resource")
|
100
|
+
allow(b_resource).to receive(:to_resource).and_return(b_resource)
|
101
|
+
allow(b_resource).to receive(:title).and_return("bob")
|
108
102
|
|
109
|
-
a_instance =
|
110
|
-
b_instance =
|
103
|
+
a_instance = double("alice user", :to_resource => a_resource)
|
104
|
+
b_instance = double("bob user", :to_resource => b_resource)
|
111
105
|
|
112
|
-
@request =
|
106
|
+
@request = double('request', :key => "user/", :options => {})
|
113
107
|
|
114
|
-
|
115
|
-
Puppet::Type::User.expects(:instances).returns([ b_instance, a_instance ])
|
108
|
+
expect(Puppet::Type::User).to receive(:instances).and_return([ b_instance, a_instance ])
|
116
109
|
expect(Puppet::Resource::Ral.new.search(@request)).to eq([a_resource, b_resource])
|
117
110
|
end
|
118
111
|
end
|
@@ -1,4 +1,3 @@
|
|
1
|
-
#! /usr/bin/env ruby
|
2
1
|
require 'spec_helper'
|
3
2
|
require 'puppet/util/json'
|
4
3
|
require 'puppet/indirector'
|
@@ -17,14 +16,14 @@ shared_examples_for "a REST terminus method" do |terminus_method|
|
|
17
16
|
end
|
18
17
|
|
19
18
|
it "falls back to pson for future requests" do
|
20
|
-
response.
|
19
|
+
allow(response).to receive(:[]).with(Puppet::Network::HTTP::HEADER_PUPPET_VERSION).and_return("4.10.1")
|
21
20
|
terminus.send(terminus_method, request)
|
22
21
|
|
23
22
|
expect(Puppet[:preferred_serialization_format]).to eq("pson")
|
24
23
|
end
|
25
24
|
|
26
25
|
it "doesn't change the serialization format if the X-Puppet-Version header is missing" do
|
27
|
-
response.
|
26
|
+
allow(response).to receive(:[]).with(Puppet::Network::HTTP::HEADER_PUPPET_VERSION).and_return(nil)
|
28
27
|
|
29
28
|
terminus.send(terminus_method, request)
|
30
29
|
|
@@ -32,7 +31,7 @@ shared_examples_for "a REST terminus method" do |terminus_method|
|
|
32
31
|
end
|
33
32
|
|
34
33
|
it "doesn't change the serialization format if the server major version is 5" do
|
35
|
-
response.
|
34
|
+
allow(response).to receive(:[]).with(Puppet::Network::HTTP::HEADER_PUPPET_VERSION).and_return("5.0.3")
|
36
35
|
|
37
36
|
terminus.send(terminus_method, request)
|
38
37
|
|
@@ -40,7 +39,7 @@ shared_examples_for "a REST terminus method" do |terminus_method|
|
|
40
39
|
end
|
41
40
|
|
42
41
|
it "doesn't change the serialization format if the current format is already pson" do
|
43
|
-
response.
|
42
|
+
allow(response).to receive(:[]).with(Puppet::Network::HTTP::HEADER_PUPPET_VERSION).and_return("4.10.1")
|
44
43
|
Puppet[:preferred_serialization_format] = "pson"
|
45
44
|
terminus.send(terminus_method, request)
|
46
45
|
|
@@ -77,7 +76,7 @@ shared_examples_for "a REST terminus method" do |terminus_method|
|
|
77
76
|
end
|
78
77
|
|
79
78
|
it "does not attempt to deserialize the response into a model" do
|
80
|
-
model.
|
79
|
+
expect(model).not_to receive(:convert_from)
|
81
80
|
|
82
81
|
expect {
|
83
82
|
terminus.send(terminus_method, request)
|
@@ -86,8 +85,8 @@ shared_examples_for "a REST terminus method" do |terminus_method|
|
|
86
85
|
|
87
86
|
# I'm not sure what this means or if it's used
|
88
87
|
it "if the body is empty raises an http error with the response header" do
|
89
|
-
response.
|
90
|
-
response.
|
88
|
+
allow(response).to receive(:body).and_return("")
|
89
|
+
allow(response).to receive(:message).and_return("fhqwhgads")
|
91
90
|
|
92
91
|
expect {
|
93
92
|
terminus.send(terminus_method, request)
|
@@ -99,7 +98,7 @@ shared_examples_for "a REST terminus method" do |terminus_method|
|
|
99
98
|
compressed_body = Zlib::Deflate.deflate(body)
|
100
99
|
|
101
100
|
compressed_response = mock_response(code, compressed_body, 'application/json', 'deflate')
|
102
|
-
connection.
|
101
|
+
expect(connection).to receive(http_method).and_return(compressed_response)
|
103
102
|
|
104
103
|
expect {
|
105
104
|
terminus.send(terminus_method, request)
|
@@ -121,7 +120,7 @@ shared_examples_for "a deserializing terminus method" do |terminus_method|
|
|
121
120
|
end
|
122
121
|
|
123
122
|
it "doesn't catch errors in deserialization" do
|
124
|
-
model.
|
123
|
+
expect(model).to receive(:convert_from).and_raise(Puppet::Error, "Whoa there")
|
125
124
|
|
126
125
|
expect { terminus.send(terminus_method, request) }.to raise_error(Puppet::Error, "Whoa there")
|
127
126
|
end
|
@@ -182,10 +181,10 @@ describe Puppet::Indirector::REST do
|
|
182
181
|
end
|
183
182
|
|
184
183
|
def mock_response(code, body, content_type='text/plain', encoding=nil)
|
185
|
-
obj =
|
186
|
-
obj.
|
187
|
-
obj.
|
188
|
-
obj.
|
184
|
+
obj = double('http 200 ok', :code => code.to_s, :body => body)
|
185
|
+
allow(obj).to receive(:[]).with('content-type').and_return(content_type)
|
186
|
+
allow(obj).to receive(:[]).with('content-encoding').and_return(encoding)
|
187
|
+
allow(obj).to receive(:[]).with(Puppet::Network::HTTP::HEADER_PUPPET_VERSION).and_return(Puppet.version)
|
189
188
|
obj
|
190
189
|
end
|
191
190
|
|
@@ -214,13 +213,13 @@ describe Puppet::Indirector::REST do
|
|
214
213
|
end
|
215
214
|
|
216
215
|
it "should use any specified setting to pick the server" do
|
217
|
-
terminus_class.
|
216
|
+
expect(terminus_class).to receive(:server_setting).and_return(:ca_server)
|
218
217
|
Puppet[:ca_server] = "myserver"
|
219
218
|
expect(terminus_class.server).to eq("myserver")
|
220
219
|
end
|
221
220
|
|
222
221
|
it "should default to :server for the server setting" do
|
223
|
-
terminus_class.
|
222
|
+
expect(terminus_class).to receive(:server_setting).and_return(nil)
|
224
223
|
Puppet[:server] = "myserver"
|
225
224
|
expect(terminus_class.server).to eq("myserver")
|
226
225
|
end
|
@@ -230,39 +229,39 @@ describe Puppet::Indirector::REST do
|
|
230
229
|
end
|
231
230
|
|
232
231
|
it "should use any specified setting to pick the port" do
|
233
|
-
terminus_class.
|
232
|
+
expect(terminus_class).to receive(:port_setting).and_return(:ca_port)
|
234
233
|
Puppet[:ca_port] = "321"
|
235
234
|
expect(terminus_class.port).to eq(321)
|
236
235
|
end
|
237
236
|
|
238
237
|
it "should default to :port for the port setting" do
|
239
|
-
terminus_class.
|
238
|
+
expect(terminus_class).to receive(:port_setting).and_return(nil)
|
240
239
|
Puppet[:masterport] = "543"
|
241
240
|
expect(terminus_class.port).to eq(543)
|
242
241
|
end
|
243
242
|
|
244
243
|
it "should use a failover-selected server if set" do
|
245
|
-
terminus_class.
|
244
|
+
expect(terminus_class).to receive(:server_setting).and_return(nil)
|
246
245
|
Puppet.override(:server => "myserver") do
|
247
246
|
expect(terminus_class.server).to eq("myserver")
|
248
247
|
end
|
249
248
|
end
|
250
249
|
|
251
250
|
it "should use a failover-selected port if set" do
|
252
|
-
terminus_class.
|
251
|
+
expect(terminus_class).to receive(:port_setting).and_return(nil)
|
253
252
|
Puppet.override(:serverport => 321) do
|
254
253
|
expect(terminus_class.port).to eq(321)
|
255
254
|
end
|
256
255
|
end
|
257
256
|
|
258
257
|
it "should use server_list for server when available" do
|
259
|
-
terminus_class.
|
258
|
+
expect(terminus_class).to receive(:server_setting).and_return(nil)
|
260
259
|
Puppet[:server_list] = [["foo", "123"]]
|
261
260
|
expect(terminus_class.server).to eq("foo")
|
262
261
|
end
|
263
262
|
|
264
263
|
it "should prefer failover-selected server from server list" do
|
265
|
-
terminus_class.
|
264
|
+
expect(terminus_class).to receive(:server_setting).and_return(nil)
|
266
265
|
Puppet[:server_list] = [["foo", "123"],["bar", "321"]]
|
267
266
|
Puppet.override(:server => "bar") do
|
268
267
|
expect(terminus_class.server).to eq("bar")
|
@@ -270,13 +269,13 @@ describe Puppet::Indirector::REST do
|
|
270
269
|
end
|
271
270
|
|
272
271
|
it "should use server_list for port when available" do
|
273
|
-
terminus_class.
|
272
|
+
expect(terminus_class).to receive(:port_setting).and_return(nil)
|
274
273
|
Puppet[:server_list] = [["foo", "123"]]
|
275
274
|
expect(terminus_class.port).to eq(123)
|
276
275
|
end
|
277
276
|
|
278
277
|
it "should prefer failover-selected port from server list" do
|
279
|
-
terminus_class.
|
278
|
+
expect(terminus_class).to receive(:port_setting).and_return(nil)
|
280
279
|
Puppet[:server_list] = [["foo", "123"],["bar", "321"]]
|
281
280
|
Puppet.override(:serverport => "321") do
|
282
281
|
expect(terminus_class.port).to eq(321)
|
@@ -284,7 +283,7 @@ describe Puppet::Indirector::REST do
|
|
284
283
|
end
|
285
284
|
|
286
285
|
it "should use an explicitly specified more-speciic server when failover is active" do
|
287
|
-
terminus_class.
|
286
|
+
expect(terminus_class).to receive(:server_setting).and_return(:ca_server)
|
288
287
|
Puppet[:ca_server] = "myserver"
|
289
288
|
Puppet.override(:server => "anotherserver") do
|
290
289
|
expect(terminus_class.server).to eq("myserver")
|
@@ -292,7 +291,7 @@ describe Puppet::Indirector::REST do
|
|
292
291
|
end
|
293
292
|
|
294
293
|
it "should use an explicitly specified more-specific port when failover is active" do
|
295
|
-
terminus_class.
|
294
|
+
expect(terminus_class).to receive(:port_setting).and_return(:ca_port)
|
296
295
|
Puppet[:ca_port] = 321
|
297
296
|
Puppet.override(:serverport => 543) do
|
298
297
|
expect(terminus_class.port).to eq(321)
|
@@ -300,8 +299,8 @@ describe Puppet::Indirector::REST do
|
|
300
299
|
end
|
301
300
|
|
302
301
|
it "should use a default port when a more-specific server is set" do
|
303
|
-
terminus_class.
|
304
|
-
terminus_class.
|
302
|
+
expect(terminus_class).to receive(:server_setting).and_return(:ca_server)
|
303
|
+
expect(terminus_class).to receive(:port_setting).and_return(:ca_port)
|
305
304
|
Puppet[:ca_server] = "myserver"
|
306
305
|
Puppet.override(:server => "anotherserver", :port => 666) do
|
307
306
|
expect(terminus_class.port).to eq(8140)
|
@@ -313,43 +312,43 @@ describe Puppet::Indirector::REST do
|
|
313
312
|
end
|
314
313
|
|
315
314
|
it 'excludes yaml from the Accept header' do
|
316
|
-
model.
|
315
|
+
expect(model).to receive(:supported_formats).and_return([:json, :pson, :yaml, :binary])
|
317
316
|
|
318
317
|
expect(terminus.headers['Accept']).to eq('application/json, text/pson, application/octet-stream')
|
319
318
|
end
|
320
319
|
|
321
320
|
it 'excludes b64_zlib_yaml from the Accept header' do
|
322
|
-
model.
|
321
|
+
expect(model).to receive(:supported_formats).and_return([:json, :pson, :b64_zlib_yaml])
|
323
322
|
|
324
323
|
expect(terminus.headers['Accept']).to eq('application/json, text/pson')
|
325
324
|
end
|
326
325
|
|
327
326
|
it 'excludes dot from the Accept header' do
|
328
|
-
model.
|
327
|
+
expect(model).to receive(:supported_formats).and_return([:json, :dot])
|
329
328
|
|
330
329
|
expect(terminus.headers['Accept']).to eq('application/json')
|
331
330
|
end
|
332
331
|
|
333
332
|
describe "when creating an HTTP client" do
|
334
333
|
it "should use the class's server and port if the indirection request provides neither" do
|
335
|
-
@request =
|
336
|
-
terminus.class.
|
337
|
-
terminus.class.
|
338
|
-
Puppet::Network::HttpPool.
|
334
|
+
@request = double('request', :key => "foo", :server => nil, :port => nil)
|
335
|
+
expect(terminus.class).to receive(:port).and_return(321)
|
336
|
+
expect(terminus.class).to receive(:server).and_return("myserver")
|
337
|
+
expect(Puppet::Network::HttpPool).to receive(:connection).with('myserver', 321, anything).and_return("myconn")
|
339
338
|
expect(terminus.network(@request)).to eq("myconn")
|
340
339
|
end
|
341
340
|
|
342
341
|
it "should use the server from the indirection request if one is present" do
|
343
|
-
@request =
|
344
|
-
terminus.class.
|
345
|
-
Puppet::Network::HttpPool.
|
342
|
+
@request = double('request', :key => "foo", :server => "myserver", :port => nil)
|
343
|
+
allow(terminus.class).to receive(:port).and_return(321)
|
344
|
+
expect(Puppet::Network::HttpPool).to receive(:connection).with('myserver', 321, anything).and_return("myconn")
|
346
345
|
expect(terminus.network(@request)).to eq("myconn")
|
347
346
|
end
|
348
347
|
|
349
348
|
it "should use the port from the indirection request if one is present" do
|
350
|
-
@request =
|
351
|
-
terminus.class.
|
352
|
-
Puppet::Network::HttpPool.
|
349
|
+
@request = double('request', :key => "foo", :server => nil, :port => 321)
|
350
|
+
allow(terminus.class).to receive(:server).and_return("myserver")
|
351
|
+
expect(Puppet::Network::HttpPool).to receive(:connection).with('myserver', 321, anything).and_return("myconn")
|
353
352
|
expect(terminus.network(@request)).to eq("myconn")
|
354
353
|
end
|
355
354
|
end
|
@@ -357,11 +356,11 @@ describe Puppet::Indirector::REST do
|
|
357
356
|
describe "#find" do
|
358
357
|
let(:http_method) { :get }
|
359
358
|
let(:response) { mock_response(200, 'body') }
|
360
|
-
let(:connection) {
|
359
|
+
let(:connection) { double('mock http connection', :get => response, :verify_callback= => nil) }
|
361
360
|
let(:request) { find_request('foo') }
|
362
361
|
|
363
362
|
before :each do
|
364
|
-
terminus.
|
363
|
+
allow(terminus).to receive(:network).and_return(connection)
|
365
364
|
end
|
366
365
|
|
367
366
|
it_behaves_like 'a REST terminus method', :find
|
@@ -383,9 +382,11 @@ describe Puppet::Indirector::REST do
|
|
383
382
|
|
384
383
|
request = find_request('whoa', params)
|
385
384
|
|
386
|
-
connection.
|
387
|
-
|
388
|
-
|
385
|
+
expect(connection).to receive(:post) do |_,req,_|
|
386
|
+
expect(req.split("&").flatten).to match_array(params.map {|key,value| "#{key}=#{value}"})
|
387
|
+
|
388
|
+
mock_response(200, 'body')
|
389
|
+
end
|
389
390
|
|
390
391
|
terminus.find(request)
|
391
392
|
end
|
@@ -395,7 +396,7 @@ describe Puppet::Indirector::REST do
|
|
395
396
|
it "calls get on the connection" do
|
396
397
|
request = find_request('foo bar')
|
397
398
|
|
398
|
-
connection.
|
399
|
+
expect(connection).to receive(:get).with("#{url_prefix}/test_model/foo%20bar?environment=production&", anything).and_return(mock_response('200', 'response body'))
|
399
400
|
|
400
401
|
expect(terminus.find(request)).to eq(model.new('foo bar', 'response body'))
|
401
402
|
end
|
@@ -404,14 +405,14 @@ describe Puppet::Indirector::REST do
|
|
404
405
|
it "returns nil on 404" do
|
405
406
|
response = mock_response('404', nil)
|
406
407
|
|
407
|
-
connection.
|
408
|
+
expect(connection).to receive(:get).and_return(response)
|
408
409
|
|
409
410
|
expect(terminus.find(request)).to eq(nil)
|
410
411
|
end
|
411
412
|
|
412
413
|
it 'raises no warning for a 404 (when not asked to do so)' do
|
413
414
|
response = mock_response('404', 'this is the notfound you are looking for')
|
414
|
-
connection.
|
415
|
+
expect(connection).to receive(:get).and_return(response)
|
415
416
|
expect{terminus.find(request)}.to_not raise_error()
|
416
417
|
end
|
417
418
|
|
@@ -419,7 +420,7 @@ describe Puppet::Indirector::REST do
|
|
419
420
|
it 'raises an error for a 404 when asked to do so' do
|
420
421
|
request = find_request('foo', :fail_on_404 => true)
|
421
422
|
response = mock_response('404', 'this is the notfound you are looking for')
|
422
|
-
connection.
|
423
|
+
expect(connection).to receive(:get).and_return(response)
|
423
424
|
|
424
425
|
expect do
|
425
426
|
terminus.find(request)
|
@@ -431,7 +432,7 @@ describe Puppet::Indirector::REST do
|
|
431
432
|
it 'truncates the URI when it is very long' do
|
432
433
|
request = find_request('foo', :fail_on_404 => true, :long_param => ('A' * 100) + 'B')
|
433
434
|
response = mock_response('404', 'this is the notfound you are looking for')
|
434
|
-
connection.
|
435
|
+
expect(connection).to receive(:get).and_return(response)
|
435
436
|
|
436
437
|
expect do
|
437
438
|
terminus.find(request)
|
@@ -444,7 +445,7 @@ describe Puppet::Indirector::REST do
|
|
444
445
|
Puppet.debug = true
|
445
446
|
request = find_request('foo', :fail_on_404 => true, :long_param => ('A' * 100) + 'B')
|
446
447
|
response = mock_response('404', 'this is the notfound you are looking for')
|
447
|
-
connection.
|
448
|
+
expect(connection).to receive(:get).and_return(response)
|
448
449
|
|
449
450
|
expect do
|
450
451
|
terminus.find(request)
|
@@ -455,9 +456,9 @@ describe Puppet::Indirector::REST do
|
|
455
456
|
end
|
456
457
|
|
457
458
|
it "asks the model to deserialize the response body and sets the name on the resulting object to the find key" do
|
458
|
-
connection.
|
459
|
+
expect(connection).to receive(:get).and_return(response)
|
459
460
|
|
460
|
-
model.
|
461
|
+
expect(model).to receive(:convert_from).with(response['content-type'], response.body).and_return(
|
461
462
|
model.new('overwritten', 'decoded body')
|
462
463
|
)
|
463
464
|
|
@@ -465,42 +466,44 @@ describe Puppet::Indirector::REST do
|
|
465
466
|
end
|
466
467
|
|
467
468
|
it "doesn't require the model to support name=" do
|
468
|
-
|
469
|
-
|
469
|
+
class Puppet::TestModel2 < Puppet::TestModel
|
470
|
+
undef_method :name=
|
471
|
+
end
|
472
|
+
|
473
|
+
expect(connection).to receive(:get).and_return(response)
|
474
|
+
instance = Puppet::TestModel2.new('name', 'decoded body')
|
470
475
|
|
471
|
-
model.
|
472
|
-
instance.expects(:respond_to?).with(:name=).returns(false)
|
473
|
-
instance.expects(:name=).never
|
476
|
+
expect(model).to receive(:convert_from).with(response['content-type'], response.body).and_return(instance)
|
474
477
|
|
475
478
|
expect(terminus.find(request)).to eq(model.new('name', 'decoded body'))
|
476
479
|
end
|
477
480
|
|
478
481
|
it "provides an Accept header containing the list of supported mime types joined with commas" do
|
479
|
-
connection.
|
482
|
+
expect(connection).to receive(:get).with(anything, hash_including("Accept" => "application/json, text/pson")).and_return(response)
|
480
483
|
|
481
|
-
terminus.model.
|
484
|
+
expect(terminus.model).to receive(:supported_formats).and_return([:json, :pson])
|
482
485
|
terminus.find(request)
|
483
486
|
end
|
484
487
|
|
485
488
|
it "provides a version header with the current puppet version" do
|
486
|
-
connection.
|
489
|
+
expect(connection).to receive(:get).with(anything, hash_including(Puppet::Network::HTTP::HEADER_PUPPET_VERSION => Puppet.version)).and_return(response)
|
487
490
|
|
488
491
|
terminus.find(request)
|
489
492
|
end
|
490
493
|
|
491
494
|
it "adds an Accept-Encoding header" do
|
492
|
-
terminus.
|
495
|
+
expect(terminus).to receive(:add_accept_encoding).and_return({"accept-encoding" => "gzip"})
|
493
496
|
|
494
|
-
connection.
|
497
|
+
expect(connection).to receive(:get).with(anything, hash_including("accept-encoding" => "gzip")).and_return(response)
|
495
498
|
|
496
499
|
terminus.find(request)
|
497
500
|
end
|
498
501
|
|
499
502
|
it "uses only the mime-type from the content-type header when asking the model to deserialize" do
|
500
503
|
response = mock_response('200', 'mydata', "text/plain; charset=utf-8")
|
501
|
-
connection.
|
504
|
+
expect(connection).to receive(:get).and_return(response)
|
502
505
|
|
503
|
-
model.
|
506
|
+
expect(model).to receive(:convert_from).with("text/plain", "mydata").and_return("myobject")
|
504
507
|
|
505
508
|
expect(terminus.find(request)).to eq("myobject")
|
506
509
|
end
|
@@ -510,9 +513,9 @@ describe Puppet::Indirector::REST do
|
|
510
513
|
compressed_body = Zlib::Deflate.deflate(uncompressed_body)
|
511
514
|
|
512
515
|
response = mock_response('200', compressed_body, 'text/plain', 'deflate')
|
513
|
-
connection.
|
516
|
+
expect(connection).to receive(:get).and_return(response)
|
514
517
|
|
515
|
-
model.
|
518
|
+
expect(model).to receive(:convert_from).with("text/plain", uncompressed_body).and_return("myobject")
|
516
519
|
|
517
520
|
expect(terminus.find(request)).to eq("myobject")
|
518
521
|
end
|
@@ -521,29 +524,29 @@ describe Puppet::Indirector::REST do
|
|
521
524
|
describe "#head" do
|
522
525
|
let(:http_method) { :head }
|
523
526
|
let(:response) { mock_response(200, nil) }
|
524
|
-
let(:connection) {
|
527
|
+
let(:connection) { double('mock http connection', :head => response, :verify_callback= => nil) }
|
525
528
|
let(:request) { head_request('foo') }
|
526
529
|
|
527
530
|
before :each do
|
528
|
-
terminus.
|
531
|
+
allow(terminus).to receive(:network).and_return(connection)
|
529
532
|
end
|
530
533
|
|
531
534
|
it_behaves_like 'a REST terminus method', :head
|
532
535
|
|
533
536
|
it "returns true if there was a successful http response" do
|
534
|
-
connection.
|
537
|
+
expect(connection).to receive(:head).and_return(mock_response('200', nil))
|
535
538
|
|
536
539
|
expect(terminus.head(request)).to eq(true)
|
537
540
|
end
|
538
541
|
|
539
542
|
it "returns false on a 404 response" do
|
540
|
-
connection.
|
543
|
+
expect(connection).to receive(:head).and_return(mock_response('404', nil))
|
541
544
|
|
542
545
|
expect(terminus.head(request)).to eq(false)
|
543
546
|
end
|
544
547
|
|
545
548
|
it "provides a version header with the current puppet version" do
|
546
|
-
connection.
|
549
|
+
expect(connection).to receive(:head).with(anything, hash_including(Puppet::Network::HTTP::HEADER_PUPPET_VERSION => Puppet.version)).and_return(response)
|
547
550
|
|
548
551
|
terminus.head(request)
|
549
552
|
end
|
@@ -552,18 +555,18 @@ describe Puppet::Indirector::REST do
|
|
552
555
|
describe "#search" do
|
553
556
|
let(:http_method) { :get }
|
554
557
|
let(:response) { mock_response(200, 'data1,data2,data3') }
|
555
|
-
let(:connection) {
|
558
|
+
let(:connection) { double('mock http connection', :get => response, :verify_callback= => nil) }
|
556
559
|
let(:request) { search_request('foo') }
|
557
560
|
|
558
561
|
before :each do
|
559
|
-
terminus.
|
562
|
+
allow(terminus).to receive(:network).and_return(connection)
|
560
563
|
end
|
561
564
|
|
562
565
|
it_behaves_like 'a REST terminus method', :search
|
563
566
|
it_behaves_like 'a deserializing terminus method', :search
|
564
567
|
|
565
568
|
it "should call the GET http method on a network connection" do
|
566
|
-
connection.
|
569
|
+
expect(connection).to receive(:get).with("#{url_prefix}/test_models/foo?environment=production&", hash_including('Accept' => anything)).and_return(mock_response(200, 'data3, data4'))
|
567
570
|
|
568
571
|
terminus.search(request)
|
569
572
|
end
|
@@ -571,7 +574,7 @@ describe Puppet::Indirector::REST do
|
|
571
574
|
it "returns an empty list on 404" do
|
572
575
|
response = mock_response('404', nil)
|
573
576
|
|
574
|
-
connection.
|
577
|
+
expect(connection).to receive(:get).and_return(response)
|
575
578
|
|
576
579
|
expect(terminus.search(request)).to eq([])
|
577
580
|
end
|
@@ -581,20 +584,20 @@ describe Puppet::Indirector::REST do
|
|
581
584
|
end
|
582
585
|
|
583
586
|
it "should provide an Accept header containing the list of supported formats joined with commas" do
|
584
|
-
connection.
|
587
|
+
expect(connection).to receive(:get).with(anything, hash_including("Accept" => "application/json, text/pson")).and_return(mock_response(200, ''))
|
585
588
|
|
586
|
-
terminus.model.
|
589
|
+
expect(terminus.model).to receive(:supported_formats).and_return([:json, :pson])
|
587
590
|
terminus.search(request)
|
588
591
|
end
|
589
592
|
|
590
593
|
it "provides a version header with the current puppet version" do
|
591
|
-
connection.
|
594
|
+
expect(connection).to receive(:get).with(anything, hash_including(Puppet::Network::HTTP::HEADER_PUPPET_VERSION => Puppet.version)).and_return(mock_response(200, ''))
|
592
595
|
|
593
596
|
terminus.search(request)
|
594
597
|
end
|
595
598
|
|
596
599
|
it "should return an empty array if serialization returns nil" do
|
597
|
-
model.
|
600
|
+
allow(model).to receive(:convert_from_multiple).and_return(nil)
|
598
601
|
|
599
602
|
expect(terminus.search(request)).to eq([])
|
600
603
|
end
|
@@ -603,18 +606,18 @@ describe Puppet::Indirector::REST do
|
|
603
606
|
describe "#destroy" do
|
604
607
|
let(:http_method) { :delete }
|
605
608
|
let(:response) { mock_response(200, 'body') }
|
606
|
-
let(:connection) {
|
609
|
+
let(:connection) { double('mock http connection', :delete => response, :verify_callback= => nil) }
|
607
610
|
let(:request) { delete_request('foo') }
|
608
611
|
|
609
612
|
before :each do
|
610
|
-
terminus.
|
613
|
+
allow(terminus).to receive(:network).and_return(connection)
|
611
614
|
end
|
612
615
|
|
613
616
|
it_behaves_like 'a REST terminus method', :destroy
|
614
617
|
it_behaves_like 'a deserializing terminus method', :destroy
|
615
618
|
|
616
619
|
it "should call the DELETE http method on a network connection" do
|
617
|
-
connection.
|
620
|
+
expect(connection).to receive(:delete).with("#{url_prefix}/test_model/foo?environment=production&", hash_including('Accept' => anything)).and_return(response)
|
618
621
|
|
619
622
|
terminus.destroy(request)
|
620
623
|
end
|
@@ -626,7 +629,7 @@ describe Puppet::Indirector::REST do
|
|
626
629
|
end
|
627
630
|
|
628
631
|
it "should deserialize and return the http response" do
|
629
|
-
connection.
|
632
|
+
expect(connection).to receive(:delete).and_return(response)
|
630
633
|
|
631
634
|
expect(terminus.destroy(request)).to eq(model.new('', 'body'))
|
632
635
|
end
|
@@ -634,20 +637,20 @@ describe Puppet::Indirector::REST do
|
|
634
637
|
it "returns nil on 404" do
|
635
638
|
response = mock_response('404', nil)
|
636
639
|
|
637
|
-
connection.
|
640
|
+
expect(connection).to receive(:delete).and_return(response)
|
638
641
|
|
639
642
|
expect(terminus.destroy(request)).to eq(nil)
|
640
643
|
end
|
641
644
|
|
642
645
|
it "should provide an Accept header containing the list of supported formats joined with commas" do
|
643
|
-
connection.
|
646
|
+
expect(connection).to receive(:delete).with(anything, hash_including("Accept" => "application/json, text/pson")).and_return(response)
|
644
647
|
|
645
|
-
terminus.model.
|
648
|
+
expect(terminus.model).to receive(:supported_formats).and_return([:json, :pson])
|
646
649
|
terminus.destroy(request)
|
647
650
|
end
|
648
651
|
|
649
652
|
it "provides a version header with the current puppet version" do
|
650
|
-
connection.
|
653
|
+
expect(connection).to receive(:delete).with(anything, hash_including(Puppet::Network::HTTP::HEADER_PUPPET_VERSION => Puppet.version)).and_return(response)
|
651
654
|
|
652
655
|
terminus.destroy(request)
|
653
656
|
end
|
@@ -656,18 +659,18 @@ describe Puppet::Indirector::REST do
|
|
656
659
|
describe "#save" do
|
657
660
|
let(:http_method) { :put }
|
658
661
|
let(:response) { mock_response(200, 'body') }
|
659
|
-
let(:connection) {
|
662
|
+
let(:connection) { double('mock http connection', :put => response, :verify_callback= => nil) }
|
660
663
|
let(:instance) { model.new('the thing', 'some contents') }
|
661
664
|
let(:request) { save_request(instance.name, instance) }
|
662
665
|
|
663
666
|
before :each do
|
664
|
-
terminus.
|
667
|
+
allow(terminus).to receive(:network).and_return(connection)
|
665
668
|
end
|
666
669
|
|
667
670
|
it_behaves_like 'a REST terminus method', :save
|
668
671
|
|
669
672
|
it "should call the PUT http method on a network connection" do
|
670
|
-
connection.
|
673
|
+
expect(connection).to receive(:put).with("#{url_prefix}/test_model/the%20thing?environment=production&", anything, hash_including("Content-Type")).and_return(response)
|
671
674
|
|
672
675
|
terminus.save(request)
|
673
676
|
end
|
@@ -679,8 +682,8 @@ describe Puppet::Indirector::REST do
|
|
679
682
|
end
|
680
683
|
|
681
684
|
it "should serialize the instance using the default format and pass the result as the body of the request" do
|
682
|
-
instance.
|
683
|
-
connection.
|
685
|
+
expect(instance).to receive(:render).and_return("serial_instance")
|
686
|
+
expect(connection).to receive(:put).with(anything, "serial_instance", anything).and_return(response)
|
684
687
|
|
685
688
|
terminus.save(request)
|
686
689
|
end
|
@@ -688,36 +691,36 @@ describe Puppet::Indirector::REST do
|
|
688
691
|
it "returns nil on 404" do
|
689
692
|
response = mock_response('404', nil)
|
690
693
|
|
691
|
-
connection.
|
694
|
+
expect(connection).to receive(:put).and_return(response)
|
692
695
|
|
693
696
|
expect(terminus.save(request)).to eq(nil)
|
694
697
|
end
|
695
698
|
|
696
699
|
it "returns nil" do
|
697
|
-
connection.
|
700
|
+
expect(connection).to receive(:put).and_return(response)
|
698
701
|
|
699
702
|
expect(terminus.save(request)).to be_nil
|
700
703
|
end
|
701
704
|
|
702
705
|
it "should provide an Accept header containing the list of supported formats joined with commas" do
|
703
|
-
connection.
|
706
|
+
expect(connection).to receive(:put).with(anything, anything, hash_including("Accept" => "application/json, text/pson")).and_return(response)
|
704
707
|
|
705
|
-
instance.
|
706
|
-
model.
|
707
|
-
instance.
|
708
|
+
expect(instance).to receive(:render).and_return('')
|
709
|
+
expect(model).to receive(:supported_formats).and_return([:json, :pson])
|
710
|
+
expect(instance).to receive(:mime).and_return("supported")
|
708
711
|
|
709
712
|
terminus.save(request)
|
710
713
|
end
|
711
714
|
|
712
715
|
it "provides a version header with the current puppet version" do
|
713
|
-
connection.
|
716
|
+
expect(connection).to receive(:put).with(anything, anything, hash_including(Puppet::Network::HTTP::HEADER_PUPPET_VERSION => Puppet.version)).and_return(response)
|
714
717
|
|
715
718
|
terminus.save(request)
|
716
719
|
end
|
717
720
|
|
718
721
|
it "should provide a Content-Type header containing the mime-type of the sent object" do
|
719
|
-
instance.
|
720
|
-
connection.
|
722
|
+
expect(instance).to receive(:mime).and_return("mime")
|
723
|
+
expect(connection).to receive(:put).with(anything, anything, hash_including('Content-Type' => "mime")).and_return(response)
|
721
724
|
|
722
725
|
terminus.save(request)
|
723
726
|
end
|
@@ -726,31 +729,31 @@ describe Puppet::Indirector::REST do
|
|
726
729
|
describe '#handle_response' do
|
727
730
|
# There are multiple request types to choose from, this may not be the one I want for this situation
|
728
731
|
let(:response) { mock_response(200, 'body') }
|
729
|
-
let(:connection) {
|
732
|
+
let(:connection) { double('mock http connection', :put => response, :verify_callback= => nil) }
|
730
733
|
let(:instance) { model.new('the thing', 'some contents') }
|
731
734
|
let(:request) { save_request(instance.name, instance) }
|
732
735
|
|
733
736
|
before :each do
|
734
|
-
terminus.
|
737
|
+
allow(terminus).to receive(:network).and_return(connection)
|
735
738
|
end
|
736
739
|
|
737
740
|
it 'adds server_agent_version to the context if not already set' do
|
738
|
-
Puppet.
|
741
|
+
expect(Puppet).to receive(:push_context).with(:server_agent_version => Puppet.version)
|
739
742
|
terminus.handle_response(request, response)
|
740
743
|
end
|
741
744
|
|
742
745
|
it 'does not add server_agent_version to the context if it is already set' do
|
743
746
|
Puppet.override(:server_agent_version => "5.3.4") do
|
744
|
-
Puppet.
|
747
|
+
expect(Puppet).not_to receive(:push_context)
|
745
748
|
terminus.handle_response(request, response)
|
746
749
|
end
|
747
750
|
end
|
748
751
|
|
749
752
|
it 'downgrades to pson and emits a warning' do
|
750
|
-
response.
|
753
|
+
allow(response).to receive(:[]).with(Puppet::Network::HTTP::HEADER_PUPPET_VERSION).and_return('4.2.8')
|
751
754
|
Puppet[:preferred_serialization_format] = 'other'
|
752
755
|
|
753
|
-
Puppet.
|
756
|
+
expect(Puppet).to receive(:warning).with('Downgrading to PSON for future requests')
|
754
757
|
|
755
758
|
terminus.handle_response(request, response)
|
756
759
|
|
@@ -778,7 +781,7 @@ describe Puppet::Indirector::REST do
|
|
778
781
|
request = Puppet::Indirector::Request.new(:indirection, method, 'key', nil)
|
779
782
|
stub_response = mock_response('200', 'body')
|
780
783
|
|
781
|
-
request.
|
784
|
+
expect(request).to receive(:do_request).with(terminus.class.srv_service, terminus.class.server, terminus.class.port).and_return(stub_response)
|
782
785
|
|
783
786
|
terminus.send(method, request)
|
784
787
|
end
|