puppet 6.4.0-universal-darwin → 6.4.1-universal-darwin
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Gemfile +0 -1
- data/Gemfile.lock +7 -11
- data/lib/puppet/application/device.rb +97 -82
- data/lib/puppet/application/filebucket.rb +4 -0
- data/lib/puppet/application/ssl.rb +2 -2
- data/lib/puppet/configurer.rb +5 -4
- data/lib/puppet/defaults.rb +33 -11
- data/lib/puppet/indirector/request.rb +28 -15
- data/lib/puppet/ssl.rb +1 -1
- data/lib/puppet/ssl/certificate.rb +1 -1
- data/lib/puppet/ssl/error.rb +1 -1
- data/lib/puppet/ssl/host.rb +0 -47
- data/lib/puppet/ssl/ssl_provider.rb +2 -2
- data/lib/puppet/ssl/state_machine.rb +16 -17
- data/lib/puppet/ssl/validator/default_validator.rb +4 -4
- data/lib/puppet/ssl/verifier.rb +1 -1
- data/lib/puppet/transaction/event_manager.rb +1 -5
- data/lib/puppet/util/connection.rb +15 -8
- data/lib/puppet/util/monkey_patches.rb +20 -1
- data/lib/puppet/version.rb +1 -1
- data/locales/puppet.pot +135 -68
- data/man/man5/puppet.conf.5 +9 -9
- data/man/man8/puppet-agent.8 +1 -1
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-config.8 +1 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +1 -1
- data/man/man8/puppet-filebucket.8 +1 -1
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-key.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-man.8 +1 -1
- data/man/man8/puppet-module.8 +1 -1
- data/man/man8/puppet-node.8 +1 -1
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-ssl.8 +1 -1
- data/man/man8/puppet-status.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- data/spec/integration/agent/logging_spec.rb +5 -7
- data/spec/integration/application/apply_spec.rb +18 -16
- data/spec/integration/application/doc_spec.rb +1 -2
- data/spec/integration/application/lookup_spec.rb +5 -5
- data/spec/integration/configurer_spec.rb +5 -6
- data/spec/integration/defaults_spec.rb +5 -6
- data/spec/integration/directory_environments_spec.rb +1 -1
- data/spec/integration/faces/config_spec.rb +3 -4
- data/spec/integration/faces/documentation_spec.rb +0 -1
- data/spec/integration/faces/plugin_spec.rb +1 -1
- data/spec/integration/file_bucket/file_spec.rb +2 -4
- data/spec/integration/file_serving/content_spec.rb +0 -1
- data/spec/integration/file_serving/fileset_spec.rb +0 -1
- data/spec/integration/file_serving/metadata_spec.rb +0 -1
- data/spec/integration/file_serving/terminus_helper_spec.rb +0 -1
- data/spec/integration/indirector/catalog/compiler_spec.rb +10 -11
- data/spec/integration/indirector/direct_file_server_spec.rb +1 -1
- data/spec/integration/indirector/facts/facter_spec.rb +4 -5
- data/spec/integration/indirector/file_content/file_server_spec.rb +7 -8
- data/spec/integration/indirector/file_metadata/file_server_spec.rb +7 -8
- data/spec/integration/network/authconfig_spec.rb +23 -24
- data/spec/integration/network/formats_spec.rb +0 -1
- data/spec/integration/network/http_pool_spec.rb +3 -3
- data/spec/integration/node/environment_spec.rb +0 -1
- data/spec/integration/node/facts_spec.rb +9 -10
- data/spec/integration/node_spec.rb +6 -7
- data/spec/integration/parser/catalog_spec.rb +1 -5
- data/spec/integration/parser/collection_spec.rb +1 -2
- data/spec/integration/parser/compiler_spec.rb +6 -6
- data/spec/integration/parser/scope_spec.rb +1 -1
- data/spec/integration/parser/undef_param_spec.rb +1 -1
- data/spec/integration/provider/service/init_spec.rb +4 -5
- data/spec/integration/provider/service/systemd_spec.rb +0 -2
- data/spec/integration/provider/service/windows_spec.rb +1 -2
- data/spec/integration/reference/providers_spec.rb +1 -2
- data/spec/integration/reports_spec.rb +1 -2
- data/spec/integration/resource/catalog_spec.rb +14 -17
- data/spec/integration/resource/type_collection_spec.rb +4 -5
- data/spec/integration/rest/client_spec.rb +1 -1
- data/spec/integration/ssl/certificate_request_spec.rb +0 -1
- data/spec/integration/ssl/host_spec.rb +1 -2
- data/spec/integration/ssl/key_spec.rb +0 -1
- data/spec/integration/test/test_helper_spec.rb +0 -1
- data/spec/integration/transaction/report_spec.rb +6 -11
- data/spec/integration/transaction_spec.rb +18 -19
- data/spec/integration/type/exec_spec.rb +0 -1
- data/spec/integration/type/file_spec.rb +13 -14
- data/spec/integration/type/package_spec.rb +19 -23
- data/spec/integration/type/tidy_spec.rb +1 -2
- data/spec/integration/type_spec.rb +0 -1
- data/spec/integration/util/autoload_spec.rb +1 -2
- data/spec/integration/util/rdoc/parser_spec.rb +0 -1
- data/spec/integration/util/settings_spec.rb +0 -1
- data/spec/integration/util/windows/adsi_spec.rb +3 -5
- data/spec/integration/util/windows/principal_spec.rb +0 -1
- data/spec/integration/util/windows/process_spec.rb +4 -6
- data/spec/integration/util/windows/registry_spec.rb +41 -51
- data/spec/integration/util/windows/security_spec.rb +2 -4
- data/spec/integration/util/windows/user_spec.rb +18 -20
- data/spec/integration/util_spec.rb +4 -7
- data/spec/lib/puppet_spec/compiler.rb +1 -1
- data/spec/lib/puppet_spec/files.rb +0 -1
- data/spec/lib/puppet_spec/module_tool/shared_functions.rb +1 -1
- data/spec/lib/puppet_spec/scope.rb +1 -2
- data/spec/shared_behaviours/all_parsedfile_providers.rb +1 -1
- data/spec/shared_behaviours/file_server_terminus.rb +8 -9
- data/spec/shared_behaviours/file_serving.rb +6 -8
- data/spec/shared_behaviours/file_serving_model.rb +3 -5
- data/spec/shared_behaviours/hiera_indirections.rb +3 -4
- data/spec/shared_behaviours/iterative_functions.rb +0 -1
- data/spec/shared_behaviours/memory_terminus.rb +2 -2
- data/spec/shared_examples/rhel_package_provider.rb +112 -70
- data/spec/spec_helper.rb +10 -1
- data/spec/unit/agent/disabler_spec.rb +4 -5
- data/spec/unit/agent/locker_spec.rb +12 -13
- data/spec/unit/agent_spec.rb +80 -85
- data/spec/unit/application/agent_spec.rb +88 -94
- data/spec/unit/application/apply_spec.rb +82 -83
- data/spec/unit/application/config_spec.rb +0 -1
- data/spec/unit/application/describe_spec.rb +6 -7
- data/spec/unit/application/device_spec.rb +379 -384
- data/spec/unit/application/doc_spec.rb +44 -46
- data/spec/unit/application/face_base_spec.rb +61 -62
- data/spec/unit/application/facts_spec.rb +3 -4
- data/spec/unit/application/filebucket_spec.rb +66 -74
- data/spec/unit/application/indirection_base_spec.rb +8 -6
- data/spec/unit/application/lookup_spec.rb +26 -26
- data/spec/unit/application/resource_spec.rb +42 -48
- data/spec/unit/application/ssl_spec.rb +9 -9
- data/spec/unit/application_spec.rb +82 -92
- data/spec/unit/capability_spec.rb +6 -6
- data/spec/unit/certificate_factory_spec.rb +3 -5
- data/spec/unit/configurer/downloader_spec.rb +20 -21
- data/spec/unit/configurer/fact_handler_spec.rb +2 -3
- data/spec/unit/configurer/plugin_handler_spec.rb +41 -8
- data/spec/unit/configurer_spec.rb +189 -192
- data/spec/unit/confine/exists_spec.rb +17 -15
- data/spec/unit/confine/false_spec.rb +5 -6
- data/spec/unit/confine/feature_spec.rb +7 -5
- data/spec/unit/confine/true_spec.rb +5 -6
- data/spec/unit/confine/variable_spec.rb +14 -15
- data/spec/unit/confine_collection_spec.rb +28 -29
- data/spec/unit/confine_spec.rb +13 -14
- data/spec/unit/confiner_spec.rb +10 -11
- data/spec/unit/context/trusted_information_spec.rb +1 -1
- data/spec/unit/daemon_spec.rb +35 -36
- data/spec/unit/data_providers/function_data_provider_spec.rb +0 -1
- data/spec/unit/data_providers/hiera_data_provider_spec.rb +0 -1
- data/spec/unit/datatypes_spec.rb +3 -4
- data/spec/unit/defaults_spec.rb +18 -13
- data/spec/unit/environments_spec.rb +7 -7
- data/spec/unit/etc_spec.rb +30 -32
- data/spec/unit/external/pson_spec.rb +0 -1
- data/spec/unit/face/catalog_spec.rb +0 -1
- data/spec/unit/face/config_spec.rb +31 -35
- data/spec/unit/face/epp_face_spec.rb +3 -4
- data/spec/unit/face/facts_spec.rb +5 -6
- data/spec/unit/face/generate_spec.rb +4 -5
- data/spec/unit/face/help_spec.rb +7 -8
- data/spec/unit/face/key_spec.rb +0 -1
- data/spec/unit/face/man_spec.rb +1 -2
- data/spec/unit/face/module/install_spec.rb +3 -5
- data/spec/unit/face/module/list_spec.rb +2 -12
- data/spec/unit/face/module/search_spec.rb +11 -9
- data/spec/unit/face/module/uninstall_spec.rb +4 -8
- data/spec/unit/face/node_spec.rb +23 -24
- data/spec/unit/face/parser_spec.rb +3 -3
- data/spec/unit/face/plugin_spec.rb +36 -9
- data/spec/unit/face/status_spec.rb +0 -1
- data/spec/unit/file_bucket/dipper_spec.rb +24 -20
- data/spec/unit/file_bucket/file_spec.rb +0 -2
- data/spec/unit/file_serving/base_spec.rb +14 -15
- data/spec/unit/file_serving/configuration/parser_spec.rb +27 -28
- data/spec/unit/file_serving/configuration_spec.rb +63 -66
- data/spec/unit/file_serving/content_spec.rb +10 -11
- data/spec/unit/file_serving/fileset_spec.rb +63 -58
- data/spec/unit/file_serving/http_metadata_spec.rb +8 -7
- data/spec/unit/file_serving/metadata_spec.rb +36 -36
- data/spec/unit/file_serving/mount/file_spec.rb +31 -32
- data/spec/unit/file_serving/mount/locales_spec.rb +23 -24
- data/spec/unit/file_serving/mount/modules_spec.rb +14 -15
- data/spec/unit/file_serving/mount/pluginfacts_spec.rb +23 -24
- data/spec/unit/file_serving/mount/plugins_spec.rb +23 -24
- data/spec/unit/file_serving/mount/tasks_spec.rb +14 -15
- data/spec/unit/file_serving/mount_spec.rb +0 -1
- data/spec/unit/file_serving/terminus_helper_spec.rb +37 -42
- data/spec/unit/file_serving/terminus_selector_spec.rb +12 -13
- data/spec/unit/file_system/uniquefile_spec.rb +4 -4
- data/spec/unit/file_system_spec.rb +4 -4
- data/spec/unit/forge/errors_spec.rb +1 -1
- data/spec/unit/forge/forge_spec.rb +13 -14
- data/spec/unit/forge/module_release_spec.rb +18 -18
- data/spec/unit/forge/repository_spec.rb +29 -30
- data/spec/unit/forge_spec.rb +15 -11
- data/spec/unit/functions/binary_file_spec.rb +3 -3
- data/spec/unit/functions/contain_spec.rb +0 -2
- data/spec/unit/functions/defined_spec.rb +0 -1
- data/spec/unit/functions/epp_spec.rb +2 -2
- data/spec/unit/functions/find_file_spec.rb +7 -7
- data/spec/unit/functions/include_spec.rb +0 -4
- data/spec/unit/functions/lookup_fixture_spec.rb +0 -1
- data/spec/unit/functions/lookup_spec.rb +1 -2
- data/spec/unit/functions/module_directory_spec.rb +12 -12
- data/spec/unit/functions/require_spec.rb +0 -3
- data/spec/unit/functions/shared.rb +5 -8
- data/spec/unit/functions/versioncmp_spec.rb +1 -2
- data/spec/unit/functions4_spec.rb +9 -10
- data/spec/unit/gettext/config_spec.rb +4 -4
- data/spec/unit/gettext/module_loading_spec.rb +7 -7
- data/spec/unit/graph/rb_tree_map_spec.rb +0 -2
- data/spec/unit/graph/relationship_graph_spec.rb +1 -2
- data/spec/unit/graph/simple_graph_spec.rb +9 -10
- data/spec/unit/hiera_puppet_spec.rb +20 -20
- data/spec/unit/indirector/catalog/compiler_spec.rb +147 -149
- data/spec/unit/indirector/catalog/json_spec.rb +1 -2
- data/spec/unit/indirector/catalog/msgpack_spec.rb +0 -1
- data/spec/unit/indirector/catalog/rest_spec.rb +0 -1
- data/spec/unit/indirector/catalog/store_configs_spec.rb +0 -1
- data/spec/unit/indirector/catalog/yaml_spec.rb +0 -1
- data/spec/unit/indirector/certificate/file_spec.rb +0 -1
- data/spec/unit/indirector/certificate/rest_spec.rb +8 -10
- data/spec/unit/indirector/certificate_request/file_spec.rb +0 -1
- data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -1
- data/spec/unit/indirector/direct_file_server_spec.rb +17 -18
- data/spec/unit/indirector/envelope_spec.rb +1 -2
- data/spec/unit/indirector/exec_spec.rb +4 -5
- data/spec/unit/indirector/face_spec.rb +9 -9
- data/spec/unit/indirector/facts/facter_spec.rb +37 -43
- data/spec/unit/indirector/facts/network_device_spec.rb +8 -9
- data/spec/unit/indirector/facts/rest_spec.rb +7 -8
- data/spec/unit/indirector/facts/store_configs_spec.rb +0 -1
- data/spec/unit/indirector/facts/yaml_spec.rb +0 -1
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +3 -4
- data/spec/unit/indirector/file_bucket_file/rest_spec.rb +0 -1
- data/spec/unit/indirector/file_bucket_file/selector_spec.rb +4 -5
- data/spec/unit/indirector/file_content/file_server_spec.rb +0 -1
- data/spec/unit/indirector/file_content/file_spec.rb +0 -1
- data/spec/unit/indirector/file_content/rest_spec.rb +0 -1
- data/spec/unit/indirector/file_content/selector_spec.rb +0 -1
- data/spec/unit/indirector/file_metadata/file_server_spec.rb +0 -1
- data/spec/unit/indirector/file_metadata/file_spec.rb +12 -13
- data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -1
- data/spec/unit/indirector/file_metadata/selector_spec.rb +0 -1
- data/spec/unit/indirector/file_server_spec.rb +87 -87
- data/spec/unit/indirector/indirection_spec.rb +242 -226
- data/spec/unit/indirector/json_spec.rb +7 -9
- data/spec/unit/indirector/key/file_spec.rb +21 -22
- data/spec/unit/indirector/memory_spec.rb +6 -7
- data/spec/unit/indirector/msgpack_spec.rb +7 -9
- data/spec/unit/indirector/node/exec_spec.rb +2 -3
- data/spec/unit/indirector/node/memory_spec.rb +2 -4
- data/spec/unit/indirector/node/msgpack_spec.rb +0 -1
- data/spec/unit/indirector/node/plain_spec.rb +2 -4
- data/spec/unit/indirector/node/rest_spec.rb +0 -1
- data/spec/unit/indirector/node/store_configs_spec.rb +0 -1
- data/spec/unit/indirector/node/yaml_spec.rb +0 -1
- data/spec/unit/indirector/none_spec.rb +5 -5
- data/spec/unit/indirector/plain_spec.rb +7 -8
- data/spec/unit/indirector/report/msgpack_spec.rb +0 -1
- data/spec/unit/indirector/report/processor_spec.rb +21 -22
- data/spec/unit/indirector/report/rest_spec.rb +11 -12
- data/spec/unit/indirector/report/yaml_spec.rb +0 -1
- data/spec/unit/indirector/request_spec.rb +11 -12
- data/spec/unit/indirector/resource/ral_spec.rb +47 -54
- data/spec/unit/indirector/resource/store_configs_spec.rb +0 -1
- data/spec/unit/indirector/rest_spec.rb +113 -110
- data/spec/unit/indirector/ssl_file_spec.rb +64 -65
- data/spec/unit/indirector/status/local_spec.rb +0 -1
- data/spec/unit/indirector/status/rest_spec.rb +0 -1
- data/spec/unit/indirector/store_configs_spec.rb +0 -1
- data/spec/unit/indirector/terminus_spec.rb +27 -27
- data/spec/unit/indirector/yaml_spec.rb +5 -6
- data/spec/unit/indirector_spec.rb +1 -2
- data/spec/unit/info_service_spec.rb +1 -1
- data/spec/unit/interface/action_builder_spec.rb +0 -1
- data/spec/unit/interface/action_manager_spec.rb +0 -1
- data/spec/unit/interface/action_spec.rb +2 -3
- data/spec/unit/interface/documentation_spec.rb +0 -1
- data/spec/unit/interface/face_collection_spec.rb +19 -12
- data/spec/unit/interface_spec.rb +3 -3
- data/spec/unit/man_spec.rb +3 -4
- data/spec/unit/module_spec.rb +46 -51
- data/spec/unit/module_tool/applications/installer_spec.rb +10 -11
- data/spec/unit/module_tool/applications/searcher_spec.rb +3 -3
- data/spec/unit/module_tool/applications/uninstaller_spec.rb +1 -2
- data/spec/unit/module_tool/applications/unpacker_spec.rb +13 -13
- data/spec/unit/module_tool/applications/upgrader_spec.rb +5 -5
- data/spec/unit/module_tool/install_directory_spec.rb +8 -8
- data/spec/unit/module_tool/installed_modules_spec.rb +3 -3
- data/spec/unit/module_tool/tar/gnu_spec.rb +6 -6
- data/spec/unit/module_tool/tar/mini_spec.rb +12 -12
- data/spec/unit/module_tool/tar_spec.rb +12 -13
- data/spec/unit/module_tool_spec.rb +7 -12
- data/spec/unit/network/auth_config_parser_spec.rb +11 -13
- data/spec/unit/network/authconfig_spec.rb +17 -18
- data/spec/unit/network/authorization_spec.rb +4 -5
- data/spec/unit/network/authstore_spec.rb +0 -1
- data/spec/unit/network/format_handler_spec.rb +0 -1
- data/spec/unit/network/format_spec.rb +9 -10
- data/spec/unit/network/format_support_spec.rb +28 -29
- data/spec/unit/network/formats_spec.rb +4 -5
- data/spec/unit/network/http/api/indirected_routes_spec.rb +24 -29
- data/spec/unit/network/http/api/master/v3/authorization_spec.rb +2 -2
- data/spec/unit/network/http/api/master/v3/environment_spec.rb +1 -1
- data/spec/unit/network/http/api/master/v3/environments_spec.rb +6 -7
- data/spec/unit/network/http/api_spec.rb +0 -2
- data/spec/unit/network/http/compression_spec.rb +21 -22
- data/spec/unit/network/http/connection_spec.rb +35 -35
- data/spec/unit/network/http/factory_spec.rb +5 -6
- data/spec/unit/network/http/handler_spec.rb +9 -18
- data/spec/unit/network/http/nocache_pool_spec.rb +6 -7
- data/spec/unit/network/http/pool_spec.rb +33 -34
- data/spec/unit/network/http/request_spec.rb +0 -2
- data/spec/unit/network/http/response_spec.rb +11 -13
- data/spec/unit/network/http/route_spec.rb +0 -1
- data/spec/unit/network/http/session_spec.rb +2 -3
- data/spec/unit/network/http/site_spec.rb +0 -1
- data/spec/unit/network/http_pool_spec.rb +19 -10
- data/spec/unit/network/http_spec.rb +0 -1
- data/spec/unit/network/resolver_spec.rb +25 -26
- data/spec/unit/network/rights_spec.rb +52 -53
- data/spec/unit/node/environment_spec.rb +14 -15
- data/spec/unit/node/facts_spec.rb +5 -7
- data/spec/unit/node_spec.rb +4 -10
- data/spec/unit/other/selinux_spec.rb +0 -1
- data/spec/unit/parameter/boolean_spec.rb +1 -2
- data/spec/unit/parameter/package_options_spec.rb +1 -2
- data/spec/unit/parameter/path_spec.rb +0 -1
- data/spec/unit/parameter/value_collection_spec.rb +0 -1
- data/spec/unit/parameter/value_spec.rb +0 -1
- data/spec/unit/parameter_spec.rb +9 -9
- data/spec/unit/parser/ast/block_expression_spec.rb +6 -8
- data/spec/unit/parser/ast/leaf_spec.rb +20 -21
- data/spec/unit/parser/compiler_spec.rb +84 -96
- data/spec/unit/parser/environment_compiler_spec.rb +7 -8
- data/spec/unit/parser/files_spec.rb +0 -1
- data/spec/unit/parser/functions/create_resources_spec.rb +1 -1
- data/spec/unit/parser/functions/digest_spec.rb +0 -1
- data/spec/unit/parser/functions/fail_spec.rb +1 -2
- data/spec/unit/parser/functions/file_spec.rb +13 -14
- data/spec/unit/parser/functions/fqdn_rand_spec.rb +5 -6
- data/spec/unit/parser/functions/generate_spec.rb +7 -8
- data/spec/unit/parser/functions/inline_template_spec.rb +0 -1
- data/spec/unit/parser/functions/regsubst_spec.rb +0 -1
- data/spec/unit/parser/functions/scanf_spec.rb +0 -1
- data/spec/unit/parser/functions/shellquote_spec.rb +0 -1
- data/spec/unit/parser/functions/split_spec.rb +0 -1
- data/spec/unit/parser/functions/sprintf_spec.rb +0 -1
- data/spec/unit/parser/functions/tag_spec.rb +1 -2
- data/spec/unit/parser/functions/tagged_spec.rb +2 -3
- data/spec/unit/parser/functions/template_spec.rb +13 -13
- data/spec/unit/parser/functions/versioncmp_spec.rb +1 -2
- data/spec/unit/parser/functions_spec.rb +6 -7
- data/spec/unit/parser/relationship_spec.rb +0 -1
- data/spec/unit/parser/resource_spec.rb +42 -42
- data/spec/unit/parser/scope_spec.rb +39 -35
- data/spec/unit/parser/templatewrapper_spec.rb +11 -12
- data/spec/unit/parser/type_loader_spec.rb +17 -19
- data/spec/unit/pops/adaptable_spec.rb +0 -1
- data/spec/unit/pops/benchmark_spec.rb +0 -1
- data/spec/unit/pops/evaluator/access_ops_spec.rb +0 -1
- data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +0 -1
- data/spec/unit/pops/evaluator/basic_expressions_spec.rb +0 -1
- data/spec/unit/pops/evaluator/collections_ops_spec.rb +0 -1
- data/spec/unit/pops/evaluator/comparison_ops_spec.rb +0 -1
- data/spec/unit/pops/evaluator/conditionals_spec.rb +0 -1
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +10 -11
- data/spec/unit/pops/evaluator/logical_ops_spec.rb +0 -1
- data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +0 -1
- data/spec/unit/pops/evaluator/string_interpolation_spec.rb +0 -1
- data/spec/unit/pops/evaluator/variables_spec.rb +0 -1
- data/spec/unit/pops/factory_spec.rb +3 -4
- data/spec/unit/pops/issues_spec.rb +19 -20
- data/spec/unit/pops/loaders/loader_spec.rb +9 -5
- data/spec/unit/pops/loaders/loaders_spec.rb +31 -28
- data/spec/unit/pops/lookup/context_spec.rb +0 -1
- data/spec/unit/pops/lookup/interpolation_spec.rb +2 -3
- data/spec/unit/pops/merge_strategy_spec.rb +0 -1
- data/spec/unit/pops/migration_spec.rb +3 -5
- data/spec/unit/pops/model/model_spec.rb +0 -1
- data/spec/unit/pops/model/pn_transformer_spec.rb +0 -1
- data/spec/unit/pops/parser/locator_spec.rb +3 -6
- data/spec/unit/pops/parser/parse_application_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_calls_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_capabilities_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_conditionals_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_containers_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_plan_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_resource_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_site_spec.rb +0 -1
- data/spec/unit/pops/parser/pn_parser_spec.rb +0 -1
- data/spec/unit/pops/pn_spec.rb +0 -1
- data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -1
- data/spec/unit/pops/serialization/serialization_spec.rb +1 -1
- data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
- data/spec/unit/pops/types/recursion_guard_spec.rb +10 -10
- data/spec/unit/pops/types/ruby_generator_spec.rb +2 -2
- data/spec/unit/pops/types/type_asserter_spec.rb +2 -2
- data/spec/unit/pops/types/type_calculator_spec.rb +30 -30
- data/spec/unit/pops/types/type_parser_spec.rb +13 -13
- data/spec/unit/pops/validator/validator_spec.rb +1 -2
- data/spec/unit/pops/visitor_spec.rb +0 -1
- data/spec/unit/property/boolean_spec.rb +1 -1
- data/spec/unit/property/ensure_spec.rb +0 -1
- data/spec/unit/property/keyvalue_spec.rb +32 -34
- data/spec/unit/property/list_spec.rb +26 -27
- data/spec/unit/property/ordered_list_spec.rb +10 -14
- data/spec/unit/property_spec.rb +42 -43
- data/spec/unit/provider/aix_object_spec.rb +47 -45
- data/spec/unit/provider/command_spec.rb +9 -9
- data/spec/unit/provider/exec/posix_spec.rb +8 -9
- data/spec/unit/provider/exec/shell_spec.rb +0 -1
- data/spec/unit/provider/exec/windows_spec.rb +2 -4
- data/spec/unit/provider/exec_spec.rb +0 -1
- data/spec/unit/provider/file/posix_spec.rb +22 -24
- data/spec/unit/provider/file/windows_spec.rb +15 -17
- data/spec/unit/provider/group/aix_spec.rb +3 -2
- data/spec/unit/provider/group/groupadd_spec.rb +30 -26
- data/spec/unit/provider/group/ldap_spec.rb +18 -18
- data/spec/unit/provider/group/pw_spec.rb +11 -11
- data/spec/unit/provider/group/windows_adsi_spec.rb +54 -54
- data/spec/unit/provider/ldap_spec.rb +61 -62
- data/spec/unit/provider/nameservice/directoryservice_spec.rb +35 -36
- data/spec/unit/provider/nameservice_spec.rb +38 -40
- data/spec/unit/provider/package/aix_spec.rb +15 -15
- data/spec/unit/provider/package/appdmg_spec.rb +13 -13
- data/spec/unit/provider/package/apt_spec.rb +44 -27
- data/spec/unit/provider/package/aptitude_spec.rb +6 -7
- data/spec/unit/provider/package/aptrpm_spec.rb +7 -12
- data/spec/unit/provider/package/base_spec.rb +4 -4
- data/spec/unit/provider/package/dnf_spec.rb +18 -20
- data/spec/unit/provider/package/dpkg_spec.rb +52 -52
- data/spec/unit/provider/package/freebsd_spec.rb +11 -11
- data/spec/unit/provider/package/gem_spec.rb +51 -43
- data/spec/unit/provider/package/hpux_spec.rb +8 -8
- data/spec/unit/provider/package/macports_spec.rb +46 -42
- data/spec/unit/provider/package/nim_spec.rb +30 -39
- data/spec/unit/provider/package/openbsd_spec.rb +36 -39
- data/spec/unit/provider/package/opkg_spec.rb +23 -26
- data/spec/unit/provider/package/pacman_spec.rb +97 -118
- data/spec/unit/provider/package/pip_spec.rb +71 -72
- data/spec/unit/provider/package/pkg_spec.rb +113 -114
- data/spec/unit/provider/package/pkgdmg_spec.rb +65 -63
- data/spec/unit/provider/package/pkgin_spec.rb +10 -8
- data/spec/unit/provider/package/pkgng_spec.rb +21 -22
- data/spec/unit/provider/package/pkgutil_spec.rb +45 -49
- data/spec/unit/provider/package/portage_spec.rb +71 -75
- data/spec/unit/provider/package/puppet_gem_spec.rb +28 -8
- data/spec/unit/provider/package/rpm_spec.rb +53 -64
- data/spec/unit/provider/package/sun_spec.rb +16 -18
- data/spec/unit/provider/package/tdnf_spec.rb +2 -2
- data/spec/unit/provider/package/up2date_spec.rb +2 -4
- data/spec/unit/provider/package/urpmi_spec.rb +15 -17
- data/spec/unit/provider/package/windows/exe_package_spec.rb +12 -15
- data/spec/unit/provider/package/windows/msi_package_spec.rb +19 -22
- data/spec/unit/provider/package/windows/package_spec.rb +37 -42
- data/spec/unit/provider/package/windows_spec.rb +36 -32
- data/spec/unit/provider/package/yum_spec.rb +7 -7
- data/spec/unit/provider/package/zypper_spec.rb +87 -87
- data/spec/unit/provider/parsedfile_spec.rb +44 -45
- data/spec/unit/provider/service/base_spec.rb +4 -5
- data/spec/unit/provider/service/bsd_spec.rb +27 -29
- data/spec/unit/provider/service/daemontools_spec.rb +35 -35
- data/spec/unit/provider/service/debian_spec.rb +38 -38
- data/spec/unit/provider/service/freebsd_spec.rb +18 -18
- data/spec/unit/provider/service/gentoo_spec.rb +50 -55
- data/spec/unit/provider/service/init_spec.rb +53 -52
- data/spec/unit/provider/service/launchd_spec.rb +138 -116
- data/spec/unit/provider/service/openbsd_spec.rb +50 -50
- data/spec/unit/provider/service/openrc_spec.rb +43 -45
- data/spec/unit/provider/service/openwrt_spec.rb +26 -31
- data/spec/unit/provider/service/rcng_spec.rb +14 -14
- data/spec/unit/provider/service/redhat_spec.rb +45 -43
- data/spec/unit/provider/service/runit_spec.rb +29 -27
- data/spec/unit/provider/service/smf_spec.rb +74 -66
- data/spec/unit/provider/service/src_spec.rb +46 -47
- data/spec/unit/provider/service/systemd_spec.rb +113 -122
- data/spec/unit/provider/service/upstart_spec.rb +74 -71
- data/spec/unit/provider/service/windows_spec.rb +33 -41
- data/spec/unit/provider/user/aix_spec.rb +31 -31
- data/spec/unit/provider/user/directoryservice_spec.rb +109 -114
- data/spec/unit/provider/user/hpux_spec.rb +16 -16
- data/spec/unit/provider/user/ldap_spec.rb +57 -57
- data/spec/unit/provider/user/openbsd_spec.rb +10 -12
- data/spec/unit/provider/user/pw_spec.rb +37 -35
- data/spec/unit/provider/user/user_role_add_spec.rb +93 -93
- data/spec/unit/provider/user/useradd_spec.rb +93 -92
- data/spec/unit/provider/user/windows_adsi_spec.rb +59 -60
- data/spec/unit/provider_spec.rb +35 -35
- data/spec/unit/puppet_pal_2pec.rb +4 -5
- data/spec/unit/puppet_pal_spec.rb +0 -1
- data/spec/unit/puppet_spec.rb +6 -7
- data/spec/unit/relationship_spec.rb +0 -1
- data/spec/unit/reports/http_spec.rb +22 -24
- data/spec/unit/reports/store_spec.rb +3 -4
- data/spec/unit/reports_spec.rb +12 -14
- data/spec/unit/resource/capability_finder_spec.rb +15 -17
- data/spec/unit/resource/catalog_spec.rb +72 -68
- data/spec/unit/resource/status_spec.rb +6 -8
- data/spec/unit/resource/type_collection_spec.rb +17 -18
- data/spec/unit/resource/type_spec.rb +34 -35
- data/spec/unit/resource_spec.rb +36 -32
- data/spec/unit/rest/client_spec.rb +56 -25
- data/spec/unit/rest/route_spec.rb +5 -5
- data/spec/unit/scheduler/job_spec.rb +0 -1
- data/spec/unit/scheduler/scheduler_spec.rb +0 -1
- data/spec/unit/scheduler/splay_job_spec.rb +1 -2
- data/spec/unit/settings/array_setting_spec.rb +1 -1
- data/spec/unit/settings/autosign_setting_spec.rb +9 -9
- data/spec/unit/settings/certificate_revocation_setting_spec.rb +1 -1
- data/spec/unit/settings/config_file_spec.rb +0 -1
- data/spec/unit/settings/directory_setting_spec.rb +2 -7
- data/spec/unit/settings/duration_setting_spec.rb +1 -2
- data/spec/unit/settings/enum_setting_spec.rb +1 -1
- data/spec/unit/settings/environment_conf_spec.rb +4 -6
- data/spec/unit/settings/file_setting_spec.rb +44 -46
- data/spec/unit/settings/path_setting_spec.rb +1 -2
- data/spec/unit/settings/priority_setting_spec.rb +1 -2
- data/spec/unit/settings/string_setting_spec.rb +14 -15
- data/spec/unit/settings/terminus_setting_spec.rb +1 -2
- data/spec/unit/settings/value_translator_spec.rb +0 -1
- data/spec/unit/settings_spec.rb +228 -235
- data/spec/unit/ssl/base_spec.rb +14 -15
- data/spec/unit/ssl/certificate_request_spec.rb +62 -58
- data/spec/unit/ssl/certificate_spec.rb +23 -25
- data/spec/unit/ssl/digest_spec.rb +0 -1
- data/spec/unit/ssl/host_spec.rb +147 -130
- data/spec/unit/ssl/key_spec.rb +30 -31
- data/spec/unit/ssl/ssl_provider_spec.rb +24 -24
- data/spec/unit/ssl/state_machine_spec.rb +50 -58
- data/spec/unit/ssl/validator_spec.rb +43 -54
- data/spec/unit/ssl/verifier_spec.rb +10 -10
- data/spec/unit/task_spec.rb +44 -45
- data/spec/unit/transaction/additional_resource_generator_spec.rb +3 -5
- data/spec/unit/transaction/event_manager_spec.rb +87 -88
- data/spec/unit/transaction/event_spec.rb +16 -15
- data/spec/unit/transaction/persistence_spec.rb +16 -17
- data/spec/unit/transaction/report_spec.rb +11 -12
- data/spec/unit/transaction/resource_harness_spec.rb +28 -33
- data/spec/unit/transaction_spec.rb +100 -101
- data/spec/unit/type/component_spec.rb +0 -1
- data/spec/unit/type/exec_spec.rb +60 -56
- data/spec/unit/type/file/checksum_spec.rb +9 -10
- data/spec/unit/type/file/checksum_value_spec.rb +31 -32
- data/spec/unit/type/file/content_spec.rb +58 -61
- data/spec/unit/type/file/ctime_spec.rb +0 -1
- data/spec/unit/type/file/ensure_spec.rb +12 -13
- data/spec/unit/type/file/group_spec.rb +5 -7
- data/spec/unit/type/file/mode_spec.rb +4 -6
- data/spec/unit/type/file/mtime_spec.rb +0 -1
- data/spec/unit/type/file/owner_spec.rb +6 -8
- data/spec/unit/type/file/selinux_spec.rb +17 -19
- data/spec/unit/type/file/source_spec.rb +104 -101
- data/spec/unit/type/file/type_spec.rb +0 -1
- data/spec/unit/type/file_spec.rb +195 -185
- data/spec/unit/type/filebucket_spec.rb +4 -5
- data/spec/unit/type/group_spec.rb +6 -8
- data/spec/unit/type/noop_metaparam_spec.rb +1 -2
- data/spec/unit/type/package/package_settings_spec.rb +44 -23
- data/spec/unit/type/package_spec.rb +56 -57
- data/spec/unit/type/resources_spec.rb +72 -74
- data/spec/unit/type/schedule_spec.rb +24 -26
- data/spec/unit/type/service_spec.rb +49 -49
- data/spec/unit/type/stage_spec.rb +0 -1
- data/spec/unit/type/tidy_spec.rb +61 -62
- data/spec/unit/type/user_spec.rb +24 -25
- data/spec/unit/type/whit_spec.rb +0 -1
- data/spec/unit/type_spec.rb +55 -54
- data/spec/unit/util/at_fork_spec.rb +18 -19
- data/spec/unit/util/autoload_spec.rb +55 -56
- data/spec/unit/util/backups_spec.rb +34 -35
- data/spec/unit/util/character_encoding_spec.rb +5 -5
- data/spec/unit/util/checksums_spec.rb +38 -39
- data/spec/unit/util/colors_spec.rb +1 -2
- data/spec/unit/util/command_line_spec.rb +24 -25
- data/spec/unit/util/constant_inflector_spec.rb +0 -1
- data/spec/unit/util/diff_spec.rb +7 -8
- data/spec/unit/util/errors_spec.rb +0 -1
- data/spec/unit/util/execution_spec.rb +185 -161
- data/spec/unit/util/execution_stub_spec.rb +0 -1
- data/spec/unit/util/feature_spec.rb +23 -14
- data/spec/unit/util/filetype_spec.rb +49 -49
- data/spec/unit/util/http_proxy_spec.rb +12 -12
- data/spec/unit/util/inifile_spec.rb +26 -31
- data/spec/unit/util/json_lockfile_spec.rb +3 -5
- data/spec/unit/util/ldap/connection_spec.rb +26 -25
- data/spec/unit/util/ldap/generator_spec.rb +0 -1
- data/spec/unit/util/ldap/manager_spec.rb +102 -101
- data/spec/unit/util/lockfile_spec.rb +0 -1
- data/spec/unit/util/log/destinations_spec.rb +30 -33
- data/spec/unit/util/log_spec.rb +35 -36
- data/spec/unit/util/logging_spec.rb +58 -72
- data/spec/unit/util/metric_spec.rb +0 -1
- data/spec/unit/util/monkey_patches_spec.rb +7 -9
- data/spec/unit/util/multi_match_spec.rb +0 -1
- data/spec/unit/util/network_device/config_spec.rb +0 -1
- data/spec/unit/util/network_device/transport/base_spec.rb +5 -6
- data/spec/unit/util/network_device_spec.rb +7 -9
- data/spec/unit/util/package_spec.rb +0 -1
- data/spec/unit/util/pidlock_spec.rb +21 -22
- data/spec/unit/util/plist_spec.rb +40 -33
- data/spec/unit/util/posix_spec.rb +54 -51
- data/spec/unit/util/rdoc_spec.rb +9 -10
- data/spec/unit/util/reference_spec.rb +0 -1
- data/spec/unit/util/resource_template_spec.rb +20 -20
- data/spec/unit/util/retry_action_spec.rb +7 -8
- data/spec/unit/util/rubygems_spec.rb +7 -8
- data/spec/unit/util/run_mode_spec.rb +3 -4
- data/spec/unit/util/selinux_spec.rb +79 -72
- data/spec/unit/util/splayer_spec.rb +8 -9
- data/spec/unit/util/ssl_spec.rb +0 -1
- data/spec/unit/util/storage_spec.rb +3 -4
- data/spec/unit/util/suidmanager_spec.rb +45 -54
- data/spec/unit/util/symbolic_file_mode_spec.rb +0 -1
- data/spec/unit/util/tag_set_spec.rb +0 -1
- data/spec/unit/util/tagging_spec.rb +0 -1
- data/spec/unit/util/terminal_spec.rb +9 -10
- data/spec/unit/util/user_attr_spec.rb +1 -2
- data/spec/unit/util/warnings_spec.rb +3 -4
- data/spec/unit/util/watcher/periodic_watcher_spec.rb +2 -2
- data/spec/unit/util/watcher_spec.rb +51 -21
- data/spec/unit/util/windows/access_control_entry_spec.rb +0 -1
- data/spec/unit/util/windows/access_control_list_spec.rb +0 -1
- data/spec/unit/util/windows/adsi_spec.rb +136 -138
- data/spec/unit/util/windows/api_types_spec.rb +0 -1
- data/spec/unit/util/windows/eventlog_spec.rb +9 -12
- data/spec/unit/util/windows/file_spec.rb +0 -1
- data/spec/unit/util/windows/root_certs_spec.rb +1 -2
- data/spec/unit/util/windows/security_descriptor_spec.rb +0 -2
- data/spec/unit/util/windows/service_spec.rb +66 -68
- data/spec/unit/util/windows/sid_spec.rb +11 -13
- data/spec/unit/util/windows/string_spec.rb +0 -1
- data/spec/unit/util_spec.rb +55 -57
- data/spec/unit/version_spec.rb +6 -6
- data/spec/unit/x509/cert_provider_spec.rb +14 -14
- data/spec/unit/x509/pem_store_spec.rb +5 -5
- metadata +2 -2
@@ -1,4 +1,3 @@
|
|
1
|
-
#! /usr/bin/env ruby
|
2
1
|
require 'spec_helper'
|
3
2
|
require 'puppet_spec/compiler'
|
4
3
|
|
@@ -9,7 +8,7 @@ describe 'Capability types' do
|
|
9
8
|
let(:loaders) { Puppet::Pops::Loaders.new(env) }
|
10
9
|
|
11
10
|
before(:each) do
|
12
|
-
Puppet::Parser::Compiler.
|
11
|
+
allow_any_instance_of(Puppet::Parser::Compiler).to receive(:loaders).and_return(loaders)
|
13
12
|
Puppet.push_context({:loaders => loaders, :current_environment => env})
|
14
13
|
Puppet::Type.newtype :cap, :is_capability => true do
|
15
14
|
newparam :name
|
@@ -86,7 +85,7 @@ describe 'Capability types' do
|
|
86
85
|
parse_results << parser.parse
|
87
86
|
|
88
87
|
main = Puppet::Parser::AST::Hostclass.new('', :code => Puppet::Parser::ParserFactory.code_merger.concatenate(parse_results))
|
89
|
-
Puppet::Node::Environment.
|
88
|
+
allow_any_instance_of(Puppet::Node::Environment).to receive(:perform_initial_import).and_return(main)
|
90
89
|
|
91
90
|
type = compile_to_catalog(nil).environment_instance.known_resource_types.definition(:test)
|
92
91
|
expect(type.produces).to be_instance_of(Array)
|
@@ -120,7 +119,7 @@ describe 'Capability types' do
|
|
120
119
|
parse_results << parser.parse
|
121
120
|
|
122
121
|
main = Puppet::Parser::AST::Hostclass.new('', :code => Puppet::Parser::ParserFactory.code_merger.concatenate(parse_results))
|
123
|
-
|
122
|
+
allow_any_instance_of(Puppet::Node::Environment).to receive(:perform_initial_import).and_return(main)
|
124
123
|
|
125
124
|
type = compile_to_catalog(nil).environment_instance.known_resource_types.definition('Mod::Test')
|
126
125
|
expect(type.produces).to be_instance_of(Array)
|
@@ -131,6 +130,7 @@ describe 'Capability types' do
|
|
131
130
|
expect(cns[:mappings]).to be_instance_of(Hash)
|
132
131
|
expect(cns[:mappings]['host']).to be_instance_of(Puppet::Parser::AST::PopsBridge::Expression)
|
133
132
|
end
|
133
|
+
|
134
134
|
it "does not allow operator '+>' in a mapping" do
|
135
135
|
expect do
|
136
136
|
compile_to_catalog(<<-MANIFEST, node)
|
@@ -256,12 +256,12 @@ test { one: hostname => "ahost", export => Cap[two] }
|
|
256
256
|
def mock_cap_finding
|
257
257
|
cap = Puppet::Resource.new("Cap", "two")
|
258
258
|
cap["host"] = "ahost"
|
259
|
-
Puppet::Resource::CapabilityFinder.
|
259
|
+
expect(Puppet::Resource::CapabilityFinder).to receive(:find).and_return(cap)
|
260
260
|
cap
|
261
261
|
end
|
262
262
|
|
263
263
|
it "does not fetch a consumed resource when consume metaparam not set" do
|
264
|
-
Puppet::Resource::CapabilityFinder.
|
264
|
+
expect(Puppet::Resource::CapabilityFinder).not_to receive(:find)
|
265
265
|
catalog = make_catalog("test { one: }")
|
266
266
|
expect(catalog.resource_keys.find { |type, _| type == "Cap" }).to be_nil
|
267
267
|
expect(catalog.resource("Test", "one")["hostname"]).to eq("nohost")
|
@@ -1,4 +1,3 @@
|
|
1
|
-
#! /usr/bin/env ruby
|
2
1
|
require 'spec_helper'
|
3
2
|
require 'puppet/test_ca'
|
4
3
|
|
@@ -20,7 +19,7 @@ describe Puppet::CertificateFactory, :unless => RUBY_PLATFORM == 'java' do
|
|
20
19
|
it "should return a new X509 certificate" do
|
21
20
|
a = subject.build(:server, csr, issuer, serial)
|
22
21
|
b = subject.build(:server, csr, issuer, serial)
|
23
|
-
# The two instances are equal in every aspect except that they are
|
22
|
+
# The two instances are equal in every aspect except that they are
|
24
23
|
# different instances - they are `==`, but not hash `eql?`
|
25
24
|
expect(a).not_to eql(b)
|
26
25
|
end
|
@@ -63,7 +62,7 @@ describe Puppet::CertificateFactory, :unless => RUBY_PLATFORM == 'java' do
|
|
63
62
|
|
64
63
|
it "should respect a custom TTL for the CA" do
|
65
64
|
now = Time.now.utc
|
66
|
-
Time.
|
65
|
+
expect(Time).to receive(:now).at_least(:once).and_return(now)
|
67
66
|
cert = subject.build(:server, csr, issuer, serial, 12)
|
68
67
|
expect(cert.not_after.to_i).to eq(now.to_i + 12)
|
69
68
|
end
|
@@ -87,7 +86,6 @@ describe Puppet::CertificateFactory, :unless => RUBY_PLATFORM == 'java' do
|
|
87
86
|
)
|
88
87
|
end
|
89
88
|
|
90
|
-
|
91
89
|
it "should add an extension for the authorityKeyIdentifer" do
|
92
90
|
cert = subject.build(:server, csr, issuer, serial)
|
93
91
|
ef = OpenSSL::X509::ExtensionFactory.new(issuer, cert)
|
@@ -131,7 +129,7 @@ describe Puppet::CertificateFactory, :unless => RUBY_PLATFORM == 'java' do
|
|
131
129
|
csr = Puppet::SSL::CertificateRequest.new(name)
|
132
130
|
csr.generate(key)
|
133
131
|
|
134
|
-
csr.
|
132
|
+
allow(csr).to receive(:request_extensions).and_return([
|
135
133
|
{'oid' => '1.3.6.1.4.1.34380.1.2.1', 'value' => 'some-value'},
|
136
134
|
{'oid' => 'pp_uuid', 'value' => 'some-uuid'},
|
137
135
|
])
|
@@ -1,4 +1,3 @@
|
|
1
|
-
#! /usr/bin/env ruby
|
2
1
|
require 'spec_helper'
|
3
2
|
|
4
3
|
require 'puppet/configurer/downloader'
|
@@ -90,14 +89,14 @@ describe Puppet::Configurer::Downloader do
|
|
90
89
|
end
|
91
90
|
|
92
91
|
it "should always set the owner to the current UID" do
|
93
|
-
Process.
|
92
|
+
expect(Process).to receive(:uid).and_return(51)
|
94
93
|
|
95
94
|
file = generate_file_resource(:path => '/path')
|
96
95
|
expect(file[:owner]).to eq(51)
|
97
96
|
end
|
98
97
|
|
99
98
|
it "should always set the group to the current GID" do
|
100
|
-
Process.
|
99
|
+
expect(Process).to receive(:gid).and_return(61)
|
101
100
|
|
102
101
|
file = generate_file_resource(:path => '/path')
|
103
102
|
expect(file[:group]).to eq(61)
|
@@ -161,7 +160,7 @@ describe Puppet::Configurer::Downloader do
|
|
161
160
|
end
|
162
161
|
|
163
162
|
it "should not issue a deprecation warning for source_permissions" do
|
164
|
-
Puppet.
|
163
|
+
expect(Puppet).not_to receive(:puppet_deprecation_warning)
|
165
164
|
catalog = @dler.catalog
|
166
165
|
expect(catalog.resources.size).to eq(1) # Must consume catalog to fix warnings
|
167
166
|
end
|
@@ -184,37 +183,37 @@ describe Puppet::Configurer::Downloader do
|
|
184
183
|
end
|
185
184
|
|
186
185
|
it "should log that it is downloading" do
|
187
|
-
Puppet.
|
186
|
+
expect(Puppet).to receive(:info)
|
188
187
|
|
189
188
|
@dler.evaluate
|
190
189
|
end
|
191
190
|
|
192
191
|
it "should return all changed file paths" do
|
193
|
-
trans =
|
192
|
+
trans = double('transaction')
|
194
193
|
|
195
|
-
catalog =
|
196
|
-
@dler.
|
197
|
-
catalog.
|
194
|
+
catalog = double('catalog')
|
195
|
+
expect(@dler).to receive(:catalog).and_return(catalog)
|
196
|
+
expect(catalog).to receive(:apply).and_yield(trans)
|
198
197
|
|
199
|
-
resource =
|
200
|
-
resource.
|
198
|
+
resource = double('resource')
|
199
|
+
expect(resource).to receive(:[]).with(:path).and_return("/changed/file")
|
201
200
|
|
202
|
-
trans.
|
201
|
+
expect(trans).to receive(:changed?).and_return([resource])
|
203
202
|
|
204
203
|
expect(@dler.evaluate).to eq(%w{/changed/file})
|
205
204
|
end
|
206
205
|
|
207
206
|
it "should yield the resources if a block is given" do
|
208
|
-
trans =
|
207
|
+
trans = double('transaction')
|
209
208
|
|
210
|
-
catalog =
|
211
|
-
@dler.
|
212
|
-
catalog.
|
209
|
+
catalog = double('catalog')
|
210
|
+
expect(@dler).to receive(:catalog).and_return(catalog)
|
211
|
+
expect(catalog).to receive(:apply).and_yield(trans)
|
213
212
|
|
214
|
-
resource =
|
215
|
-
resource.
|
213
|
+
resource = double('resource')
|
214
|
+
expect(resource).to receive(:[]).with(:path).and_return("/changed/file")
|
216
215
|
|
217
|
-
trans.
|
216
|
+
expect(trans).to receive(:changed?).and_return([resource])
|
218
217
|
|
219
218
|
yielded = nil
|
220
219
|
@dler.evaluate { |r| yielded = r }
|
@@ -222,10 +221,10 @@ describe Puppet::Configurer::Downloader do
|
|
222
221
|
end
|
223
222
|
|
224
223
|
it "should catch and log exceptions" do
|
225
|
-
Puppet.
|
224
|
+
expect(Puppet).to receive(:log_exception)
|
226
225
|
# The downloader creates a new catalog for each apply, and really the only object
|
227
226
|
# that it is possible to stub for the purpose of generating a puppet error
|
228
|
-
Puppet::Resource::Catalog.
|
227
|
+
allow_any_instance_of(Puppet::Resource::Catalog).to receive(:apply).and_raise(Puppet::Error, "testing")
|
229
228
|
|
230
229
|
expect { @dler.evaluate }.not_to raise_error
|
231
230
|
end
|
@@ -1,4 +1,3 @@
|
|
1
|
-
#! /usr/bin/env ruby
|
2
1
|
require 'spec_helper'
|
3
2
|
require 'puppet/configurer'
|
4
3
|
require 'puppet/configurer/fact_handler'
|
@@ -58,13 +57,13 @@ describe Puppet::Configurer::FactHandler do
|
|
58
57
|
end
|
59
58
|
|
60
59
|
it "should fail if finding facts fails" do
|
61
|
-
Puppet::Node::Facts.indirection.
|
60
|
+
expect(Puppet::Node::Facts.indirection).to receive(:find).and_raise(RuntimeError)
|
62
61
|
|
63
62
|
expect { facthandler.find_facts }.to raise_error(Puppet::Error, /Could not retrieve local facts/)
|
64
63
|
end
|
65
64
|
|
66
65
|
it "should only load fact plugins once" do
|
67
|
-
Puppet::Node::Facts.indirection.
|
66
|
+
expect(Puppet::Node::Facts.indirection).to receive(:find).once
|
68
67
|
facthandler.find_facts
|
69
68
|
end
|
70
69
|
end
|
@@ -1,4 +1,3 @@
|
|
1
|
-
#! /usr/bin/env ruby
|
2
1
|
require 'spec_helper'
|
3
2
|
require 'puppet/configurer'
|
4
3
|
require 'puppet/configurer/plugin_handler'
|
@@ -11,21 +10,35 @@ describe Puppet::Configurer::PluginHandler do
|
|
11
10
|
before :each do
|
12
11
|
# PluginHandler#load_plugin has an extra-strong rescue clause
|
13
12
|
# this mock is to make sure that we don't silently ignore errors
|
14
|
-
Puppet.
|
13
|
+
expect(Puppet).not_to receive(:err)
|
15
14
|
# Server_agent version needs to be at 5.3.4 in order to mount locales
|
16
15
|
Puppet.push_context({:server_agent_version => "5.3.4"})
|
17
16
|
end
|
18
17
|
|
19
18
|
it "downloads plugins, facts, and locales" do
|
20
|
-
|
19
|
+
times_called = 0
|
20
|
+
allow_any_instance_of(Puppet::Configurer::Downloader).to receive(:evaluate) { times_called += 1 }.and_return([])
|
21
21
|
|
22
22
|
pluginhandler.download_plugins(environment)
|
23
|
+
expect(times_called).to eq(3)
|
23
24
|
end
|
24
25
|
|
25
26
|
it "returns downloaded plugin, fact, and locale filenames" do
|
26
|
-
|
27
|
+
times_called = 0
|
28
|
+
allow_any_instance_of(Puppet::Configurer::Downloader).to receive(:evaluate) do
|
29
|
+
times_called += 1
|
30
|
+
|
31
|
+
if times_called == 1
|
32
|
+
%w[/a]
|
33
|
+
elsif times_called == 2
|
34
|
+
%w[/b]
|
35
|
+
else
|
36
|
+
%w[/c]
|
37
|
+
end
|
38
|
+
end
|
27
39
|
|
28
40
|
expect(pluginhandler.download_plugins(environment)).to match_array(%w[/a /b /c])
|
41
|
+
expect(times_called).to eq(3)
|
29
42
|
end
|
30
43
|
end
|
31
44
|
|
@@ -33,15 +46,25 @@ describe Puppet::Configurer::PluginHandler do
|
|
33
46
|
before :each do
|
34
47
|
# PluginHandler#load_plugin has an extra-strong rescue clause
|
35
48
|
# this mock is to make sure that we don't silently ignore errors
|
36
|
-
Puppet.
|
49
|
+
expect(Puppet).not_to receive(:err)
|
37
50
|
# Server_agent version needs to be at 5.3.4 in order to mount locales
|
38
51
|
Puppet.push_context({:server_agent_version => "5.3.3"})
|
39
52
|
end
|
40
53
|
|
41
54
|
it "returns downloaded plugin, fact, but not locale filenames" do
|
42
|
-
|
55
|
+
times_called = 0
|
56
|
+
allow_any_instance_of(Puppet::Configurer::Downloader).to receive(:evaluate) do
|
57
|
+
times_called += 1
|
58
|
+
|
59
|
+
if times_called == 1
|
60
|
+
%w[/a]
|
61
|
+
else
|
62
|
+
%w[/b]
|
63
|
+
end
|
64
|
+
end
|
43
65
|
|
44
66
|
expect(pluginhandler.download_plugins(environment)).to match_array(%w[/a /b])
|
67
|
+
expect(times_called).to eq(2)
|
45
68
|
end
|
46
69
|
end
|
47
70
|
|
@@ -49,16 +72,26 @@ describe Puppet::Configurer::PluginHandler do
|
|
49
72
|
before :each do
|
50
73
|
# PluginHandler#load_plugin has an extra-strong rescue clause
|
51
74
|
# this mock is to make sure that we don't silently ignore errors
|
52
|
-
Puppet.
|
75
|
+
expect(Puppet).not_to receive(:err)
|
53
76
|
# Server_agent version needs to be at 5.3.4 in order to mount locales
|
54
77
|
# A blank version will default to 0.0
|
55
78
|
Puppet.push_context({:server_agent_version => ""})
|
56
79
|
end
|
57
80
|
|
58
81
|
it "returns downloaded plugin, fact, but not locale filenames" do
|
59
|
-
|
82
|
+
times_called = 0
|
83
|
+
allow_any_instance_of(Puppet::Configurer::Downloader).to receive(:evaluate) do
|
84
|
+
times_called += 1
|
85
|
+
|
86
|
+
if times_called == 1
|
87
|
+
%w[/a]
|
88
|
+
else
|
89
|
+
%w[/b]
|
90
|
+
end
|
91
|
+
end
|
60
92
|
|
61
93
|
expect(pluginhandler.download_plugins(environment)).to match_array(%w[/a /b])
|
94
|
+
expect(times_called).to eq(2)
|
62
95
|
end
|
63
96
|
end
|
64
97
|
end
|
@@ -1,13 +1,12 @@
|
|
1
|
-
#! /usr/bin/env ruby
|
2
1
|
require 'spec_helper'
|
3
2
|
require 'puppet/configurer'
|
4
3
|
|
5
4
|
describe Puppet::Configurer do
|
6
5
|
before do
|
7
|
-
Puppet.settings.
|
6
|
+
allow(Puppet.settings).to receive(:use).and_return(true)
|
8
7
|
@agent = Puppet::Configurer.new
|
9
|
-
@agent.
|
10
|
-
Puppet::Util::Storage.
|
8
|
+
allow(@agent).to receive(:init_storage)
|
9
|
+
allow(Puppet::Util::Storage).to receive(:store)
|
11
10
|
Puppet[:server] = "puppetmaster"
|
12
11
|
Puppet[:report] = true
|
13
12
|
end
|
@@ -19,21 +18,21 @@ describe Puppet::Configurer do
|
|
19
18
|
describe "when executing a pre-run hook" do
|
20
19
|
it "should do nothing if the hook is set to an empty string" do
|
21
20
|
Puppet.settings[:prerun_command] = ""
|
22
|
-
Puppet::Util.
|
21
|
+
expect(Puppet::Util).not_to receive(:exec)
|
23
22
|
|
24
23
|
@agent.execute_prerun_command
|
25
24
|
end
|
26
25
|
|
27
26
|
it "should execute any pre-run command provided via the 'prerun_command' setting" do
|
28
27
|
Puppet.settings[:prerun_command] = "/my/command"
|
29
|
-
Puppet::Util::Execution.
|
28
|
+
expect(Puppet::Util::Execution).to receive(:execute).with(["/my/command"]).and_raise(Puppet::ExecutionFailure, "Failed")
|
30
29
|
|
31
30
|
@agent.execute_prerun_command
|
32
31
|
end
|
33
32
|
|
34
33
|
it "should fail if the command fails" do
|
35
34
|
Puppet.settings[:prerun_command] = "/my/command"
|
36
|
-
Puppet::Util::Execution.
|
35
|
+
expect(Puppet::Util::Execution).to receive(:execute).with(["/my/command"]).and_raise(Puppet::ExecutionFailure, "Failed")
|
37
36
|
|
38
37
|
expect(@agent.execute_prerun_command).to be_falsey
|
39
38
|
end
|
@@ -42,21 +41,21 @@ describe Puppet::Configurer do
|
|
42
41
|
describe "when executing a post-run hook" do
|
43
42
|
it "should do nothing if the hook is set to an empty string" do
|
44
43
|
Puppet.settings[:postrun_command] = ""
|
45
|
-
Puppet::Util.
|
44
|
+
expect(Puppet::Util).not_to receive(:exec)
|
46
45
|
|
47
46
|
@agent.execute_postrun_command
|
48
47
|
end
|
49
48
|
|
50
49
|
it "should execute any post-run command provided via the 'postrun_command' setting" do
|
51
50
|
Puppet.settings[:postrun_command] = "/my/command"
|
52
|
-
Puppet::Util::Execution.
|
51
|
+
expect(Puppet::Util::Execution).to receive(:execute).with(["/my/command"]).and_raise(Puppet::ExecutionFailure, "Failed")
|
53
52
|
|
54
53
|
@agent.execute_postrun_command
|
55
54
|
end
|
56
55
|
|
57
56
|
it "should fail if the command fails" do
|
58
57
|
Puppet.settings[:postrun_command] = "/my/command"
|
59
|
-
Puppet::Util::Execution.
|
58
|
+
expect(Puppet::Util::Execution).to receive(:execute).with(["/my/command"]).and_raise(Puppet::ExecutionFailure, "Failed")
|
60
59
|
|
61
60
|
expect(@agent.execute_postrun_command).to be_falsey
|
62
61
|
end
|
@@ -64,20 +63,20 @@ describe Puppet::Configurer do
|
|
64
63
|
|
65
64
|
describe "when executing a catalog run" do
|
66
65
|
before do
|
67
|
-
Puppet.settings.
|
68
|
-
@agent.
|
66
|
+
allow(Puppet.settings).to receive(:use).and_return(true)
|
67
|
+
allow(@agent).to receive(:download_plugins)
|
69
68
|
Puppet::Node::Facts.indirection.terminus_class = :memory
|
70
69
|
@facts = Puppet::Node::Facts.new(Puppet[:node_name_value])
|
71
70
|
Puppet::Node::Facts.indirection.save(@facts)
|
72
71
|
|
73
72
|
@catalog = Puppet::Resource::Catalog.new("tester", Puppet::Node::Environment.remote(Puppet[:environment].to_sym))
|
74
|
-
@catalog.
|
73
|
+
allow(@catalog).to receive(:to_ral).and_return(@catalog)
|
75
74
|
Puppet::Resource::Catalog.indirection.terminus_class = :rest
|
76
|
-
Puppet::Resource::Catalog.indirection.
|
77
|
-
@agent.
|
78
|
-
@agent.
|
75
|
+
allow(Puppet::Resource::Catalog.indirection).to receive(:find).and_return(@catalog)
|
76
|
+
allow(@agent).to receive(:send_report)
|
77
|
+
allow(@agent).to receive(:save_last_run_summary)
|
79
78
|
|
80
|
-
Puppet::Util::Log.
|
79
|
+
allow(Puppet::Util::Log).to receive(:close_all)
|
81
80
|
end
|
82
81
|
|
83
82
|
after :all do
|
@@ -86,39 +85,39 @@ describe Puppet::Configurer do
|
|
86
85
|
end
|
87
86
|
|
88
87
|
it "should initialize storage" do
|
89
|
-
Puppet::Util::Storage.
|
88
|
+
expect(Puppet::Util::Storage).to receive(:load)
|
90
89
|
@agent.run
|
91
90
|
end
|
92
91
|
|
93
92
|
it "downloads plugins when told" do
|
94
|
-
@agent.
|
93
|
+
expect(@agent).to receive(:download_plugins)
|
95
94
|
@agent.run(:pluginsync => true)
|
96
95
|
end
|
97
96
|
|
98
97
|
it "does not download plugins when told" do
|
99
|
-
@agent.
|
98
|
+
expect(@agent).not_to receive(:download_plugins)
|
100
99
|
@agent.run(:pluginsync => false)
|
101
100
|
end
|
102
101
|
|
103
102
|
it "should carry on when it can't fetch its node definition" do
|
104
103
|
error = Net::HTTPError.new(400, 'dummy server communication error')
|
105
|
-
Puppet::Node.indirection.
|
104
|
+
expect(Puppet::Node.indirection).to receive(:find).and_raise(error)
|
106
105
|
expect(@agent.run).to eq(0)
|
107
106
|
end
|
108
107
|
|
109
108
|
it "applies a cached catalog when it can't connect to the master" do
|
110
109
|
error = Errno::ECONNREFUSED.new('Connection refused - connect(2)')
|
111
110
|
|
112
|
-
Puppet::Node.indirection.
|
113
|
-
Puppet::Resource::Catalog.indirection.
|
114
|
-
Puppet::Resource::Catalog.indirection.
|
111
|
+
expect(Puppet::Node.indirection).to receive(:find).and_raise(error)
|
112
|
+
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(:ignore_cache => true)).and_raise(error)
|
113
|
+
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(:ignore_terminus => true)).and_return(@catalog)
|
115
114
|
|
116
115
|
expect(@agent.run).to eq(0)
|
117
116
|
end
|
118
117
|
|
119
118
|
it "should initialize a transaction report if one is not provided" do
|
120
119
|
report = Puppet::Transaction::Report.new
|
121
|
-
Puppet::Transaction::Report.
|
120
|
+
expect(Puppet::Transaction::Report).to receive(:new).and_return(report)
|
122
121
|
|
123
122
|
@agent.run
|
124
123
|
end
|
@@ -135,15 +134,15 @@ describe Puppet::Configurer do
|
|
135
134
|
|
136
135
|
it "should pass the new report to the catalog" do
|
137
136
|
report = Puppet::Transaction::Report.new
|
138
|
-
Puppet::Transaction::Report.
|
139
|
-
@catalog.
|
137
|
+
allow(Puppet::Transaction::Report).to receive(:new).and_return(report)
|
138
|
+
expect(@catalog).to receive(:apply).with(hash_including(report: report))
|
140
139
|
|
141
140
|
@agent.run
|
142
141
|
end
|
143
142
|
|
144
143
|
it "should use the provided report if it was passed one" do
|
145
144
|
report = Puppet::Transaction::Report.new
|
146
|
-
@catalog.
|
145
|
+
expect(@catalog).to receive(:apply).with(hash_including(report: report))
|
147
146
|
|
148
147
|
@agent.run(:report => report)
|
149
148
|
end
|
@@ -151,69 +150,69 @@ describe Puppet::Configurer do
|
|
151
150
|
it "should set the report as a log destination" do
|
152
151
|
report = Puppet::Transaction::Report.new
|
153
152
|
|
154
|
-
report.
|
153
|
+
expect(report).to receive(:<<).with(instance_of(Puppet::Util::Log)).at_least(:once)
|
155
154
|
|
156
155
|
@agent.run(:report => report)
|
157
156
|
end
|
158
157
|
|
159
158
|
it "should retrieve the catalog" do
|
160
|
-
@agent.
|
159
|
+
expect(@agent).to receive(:retrieve_catalog)
|
161
160
|
|
162
161
|
@agent.run
|
163
162
|
end
|
164
163
|
|
165
164
|
it "should log a failure and do nothing if no catalog can be retrieved" do
|
166
|
-
@agent.
|
165
|
+
expect(@agent).to receive(:retrieve_catalog).and_return(nil)
|
167
166
|
|
168
|
-
Puppet.
|
167
|
+
expect(Puppet).to receive(:err).with("Could not retrieve catalog; skipping run")
|
169
168
|
|
170
169
|
@agent.run
|
171
170
|
end
|
172
171
|
|
173
172
|
it "should apply the catalog with all options to :run" do
|
174
|
-
@agent.
|
173
|
+
expect(@agent).to receive(:retrieve_catalog).and_return(@catalog)
|
175
174
|
|
176
|
-
@catalog.
|
175
|
+
expect(@catalog).to receive(:apply).with(hash_including(one: true))
|
177
176
|
@agent.run :one => true
|
178
177
|
end
|
179
178
|
|
180
179
|
it "should accept a catalog and use it instead of retrieving a different one" do
|
181
|
-
@agent.
|
180
|
+
expect(@agent).not_to receive(:retrieve_catalog)
|
182
181
|
|
183
|
-
@catalog.
|
182
|
+
expect(@catalog).to receive(:apply)
|
184
183
|
@agent.run :one => true, :catalog => @catalog
|
185
184
|
end
|
186
185
|
|
187
186
|
it "should benchmark how long it takes to apply the catalog" do
|
188
|
-
@agent.
|
187
|
+
expect(@agent).to receive(:benchmark).with(:notice, instance_of(String))
|
189
188
|
|
190
|
-
@agent.
|
189
|
+
expect(@agent).to receive(:retrieve_catalog).and_return(@catalog)
|
191
190
|
|
192
|
-
@catalog.
|
191
|
+
expect(@catalog).not_to receive(:apply) # because we're not yielding
|
193
192
|
@agent.run
|
194
193
|
end
|
195
194
|
|
196
195
|
it "should execute post-run hooks after the run" do
|
197
|
-
@agent.
|
196
|
+
expect(@agent).to receive(:execute_postrun_command)
|
198
197
|
|
199
198
|
@agent.run
|
200
199
|
end
|
201
200
|
|
202
201
|
it "should create report with passed transaction_uuid and job_id" do
|
203
202
|
@agent = Puppet::Configurer.new("test_tuuid", "test_jid")
|
204
|
-
@agent.
|
203
|
+
allow(@agent).to receive(:init_storage)
|
205
204
|
|
206
205
|
report = Puppet::Transaction::Report.new(nil, "test", "aaaa")
|
207
|
-
Puppet::Transaction::Report.
|
208
|
-
@agent.
|
206
|
+
expect(Puppet::Transaction::Report).to receive(:new).with(anything, anything, 'test_tuuid', 'test_jid').and_return(report)
|
207
|
+
expect(@agent).to receive(:send_report).with(report)
|
209
208
|
|
210
209
|
@agent.run
|
211
210
|
end
|
212
211
|
|
213
212
|
it "should send the report" do
|
214
213
|
report = Puppet::Transaction::Report.new(nil, "test", "aaaa")
|
215
|
-
Puppet::Transaction::Report.
|
216
|
-
@agent.
|
214
|
+
expect(Puppet::Transaction::Report).to receive(:new).and_return(report)
|
215
|
+
expect(@agent).to receive(:send_report).with(report)
|
217
216
|
|
218
217
|
expect(report.environment).to eq("test")
|
219
218
|
expect(report.transaction_uuid).to eq("aaaa")
|
@@ -222,11 +221,11 @@ describe Puppet::Configurer do
|
|
222
221
|
end
|
223
222
|
|
224
223
|
it "should send the transaction report even if the catalog could not be retrieved" do
|
225
|
-
@agent.
|
224
|
+
expect(@agent).to receive(:retrieve_catalog).and_return(nil)
|
226
225
|
|
227
226
|
report = Puppet::Transaction::Report.new(nil, "test", "aaaa")
|
228
|
-
Puppet::Transaction::Report.
|
229
|
-
@agent.
|
227
|
+
expect(Puppet::Transaction::Report).to receive(:new).and_return(report)
|
228
|
+
expect(@agent).to receive(:send_report).with(report)
|
230
229
|
|
231
230
|
expect(report.environment).to eq("test")
|
232
231
|
expect(report.transaction_uuid).to eq("aaaa")
|
@@ -235,11 +234,11 @@ describe Puppet::Configurer do
|
|
235
234
|
end
|
236
235
|
|
237
236
|
it "should send the transaction report even if there is a failure" do
|
238
|
-
@agent.
|
237
|
+
expect(@agent).to receive(:retrieve_catalog).and_raise("whatever")
|
239
238
|
|
240
239
|
report = Puppet::Transaction::Report.new(nil, "test", "aaaa")
|
241
|
-
Puppet::Transaction::Report.
|
242
|
-
@agent.
|
240
|
+
expect(Puppet::Transaction::Report).to receive(:new).and_return(report)
|
241
|
+
expect(@agent).to receive(:send_report).with(report)
|
243
242
|
|
244
243
|
expect(report.environment).to eq("test")
|
245
244
|
expect(report.transaction_uuid).to eq("aaaa")
|
@@ -249,7 +248,7 @@ describe Puppet::Configurer do
|
|
249
248
|
|
250
249
|
it "should remove the report as a log destination when the run is finished" do
|
251
250
|
report = Puppet::Transaction::Report.new
|
252
|
-
Puppet::Transaction::Report.
|
251
|
+
expect(Puppet::Transaction::Report).to receive(:new).and_return(report)
|
253
252
|
|
254
253
|
@agent.run
|
255
254
|
|
@@ -258,35 +257,35 @@ describe Puppet::Configurer do
|
|
258
257
|
|
259
258
|
it "should return the report exit_status as the result of the run" do
|
260
259
|
report = Puppet::Transaction::Report.new
|
261
|
-
Puppet::Transaction::Report.
|
262
|
-
report.
|
260
|
+
expect(Puppet::Transaction::Report).to receive(:new).and_return(report)
|
261
|
+
expect(report).to receive(:exit_status).and_return(1234)
|
263
262
|
|
264
263
|
expect(@agent.run).to eq(1234)
|
265
264
|
end
|
266
265
|
|
267
266
|
it "should return nil if catalog application fails" do
|
268
|
-
@catalog.
|
267
|
+
expect(@catalog).to receive(:apply).and_raise(Puppet::Error, 'One or more resource dependency cycles detected in graph')
|
269
268
|
report = Puppet::Transaction::Report.new
|
270
269
|
expect(@agent.run(catalog: @catalog, report: report)).to be_nil
|
271
270
|
end
|
272
271
|
|
273
272
|
it "should send the transaction report even if the pre-run command fails" do
|
274
273
|
report = Puppet::Transaction::Report.new
|
275
|
-
Puppet::Transaction::Report.
|
274
|
+
expect(Puppet::Transaction::Report).to receive(:new).and_return(report)
|
276
275
|
|
277
276
|
Puppet.settings[:prerun_command] = "/my/command"
|
278
|
-
Puppet::Util::Execution.
|
279
|
-
@agent.
|
277
|
+
expect(Puppet::Util::Execution).to receive(:execute).with(["/my/command"]).and_raise(Puppet::ExecutionFailure, "Failed")
|
278
|
+
expect(@agent).to receive(:send_report).with(report)
|
280
279
|
|
281
280
|
expect(@agent.run).to be_nil
|
282
281
|
end
|
283
282
|
|
284
283
|
it "should include the pre-run command failure in the report" do
|
285
284
|
report = Puppet::Transaction::Report.new
|
286
|
-
Puppet::Transaction::Report.
|
285
|
+
expect(Puppet::Transaction::Report).to receive(:new).and_return(report)
|
287
286
|
|
288
287
|
Puppet.settings[:prerun_command] = "/my/command"
|
289
|
-
Puppet::Util::Execution.
|
288
|
+
expect(Puppet::Util::Execution).to receive(:execute).with(["/my/command"]).and_raise(Puppet::ExecutionFailure, "Failed")
|
290
289
|
|
291
290
|
expect(@agent.run).to be_nil
|
292
291
|
expect(report.logs.find { |x| x.message =~ /Could not run command from prerun_command/ }).to be
|
@@ -294,23 +293,23 @@ describe Puppet::Configurer do
|
|
294
293
|
|
295
294
|
it "should send the transaction report even if the post-run command fails" do
|
296
295
|
report = Puppet::Transaction::Report.new
|
297
|
-
Puppet::Transaction::Report.
|
296
|
+
expect(Puppet::Transaction::Report).to receive(:new).and_return(report)
|
298
297
|
|
299
298
|
Puppet.settings[:postrun_command] = "/my/command"
|
300
|
-
Puppet::Util::Execution.
|
301
|
-
@agent.
|
299
|
+
expect(Puppet::Util::Execution).to receive(:execute).with(["/my/command"]).and_raise(Puppet::ExecutionFailure, "Failed")
|
300
|
+
expect(@agent).to receive(:send_report).with(report)
|
302
301
|
|
303
302
|
expect(@agent.run).to be_nil
|
304
303
|
end
|
305
304
|
|
306
305
|
it "should include the post-run command failure in the report" do
|
307
306
|
report = Puppet::Transaction::Report.new
|
308
|
-
Puppet::Transaction::Report.
|
307
|
+
expect(Puppet::Transaction::Report).to receive(:new).and_return(report)
|
309
308
|
|
310
309
|
Puppet.settings[:postrun_command] = "/my/command"
|
311
|
-
Puppet::Util::Execution.
|
310
|
+
expect(Puppet::Util::Execution).to receive(:execute).with(["/my/command"]).and_raise(Puppet::ExecutionFailure, "Failed")
|
312
311
|
|
313
|
-
report.
|
312
|
+
expect(report).to receive(:<<) { |log, _| expect(log.message).to match(/Could not run command from postrun_command/) }.at_least(:once)
|
314
313
|
|
315
314
|
expect(@agent.run).to be_nil
|
316
315
|
end
|
@@ -318,49 +317,49 @@ describe Puppet::Configurer do
|
|
318
317
|
it "should execute post-run command even if the pre-run command fails" do
|
319
318
|
Puppet.settings[:prerun_command] = "/my/precommand"
|
320
319
|
Puppet.settings[:postrun_command] = "/my/postcommand"
|
321
|
-
Puppet::Util::Execution.
|
322
|
-
Puppet::Util::Execution.
|
320
|
+
expect(Puppet::Util::Execution).to receive(:execute).with(["/my/precommand"]).and_raise(Puppet::ExecutionFailure, "Failed")
|
321
|
+
expect(Puppet::Util::Execution).to receive(:execute).with(["/my/postcommand"])
|
323
322
|
|
324
323
|
expect(@agent.run).to be_nil
|
325
324
|
end
|
326
325
|
|
327
326
|
it "should finalize the report" do
|
328
327
|
report = Puppet::Transaction::Report.new
|
329
|
-
Puppet::Transaction::Report.
|
328
|
+
expect(Puppet::Transaction::Report).to receive(:new).and_return(report)
|
330
329
|
|
331
|
-
report.
|
330
|
+
expect(report).to receive(:finalize_report)
|
332
331
|
@agent.run
|
333
332
|
end
|
334
333
|
|
335
334
|
it "should not apply the catalog if the pre-run command fails" do
|
336
335
|
report = Puppet::Transaction::Report.new
|
337
|
-
Puppet::Transaction::Report.
|
336
|
+
expect(Puppet::Transaction::Report).to receive(:new).and_return(report)
|
338
337
|
|
339
338
|
Puppet.settings[:prerun_command] = "/my/command"
|
340
|
-
Puppet::Util::Execution.
|
339
|
+
expect(Puppet::Util::Execution).to receive(:execute).with(["/my/command"]).and_raise(Puppet::ExecutionFailure, "Failed")
|
341
340
|
|
342
|
-
@catalog.
|
343
|
-
@agent.
|
341
|
+
expect(@catalog).not_to receive(:apply)
|
342
|
+
expect(@agent).to receive(:send_report)
|
344
343
|
|
345
344
|
expect(@agent.run).to be_nil
|
346
345
|
end
|
347
346
|
|
348
347
|
it "should apply the catalog, send the report, and return nil if the post-run command fails" do
|
349
348
|
report = Puppet::Transaction::Report.new
|
350
|
-
Puppet::Transaction::Report.
|
349
|
+
expect(Puppet::Transaction::Report).to receive(:new).and_return(report)
|
351
350
|
|
352
351
|
Puppet.settings[:postrun_command] = "/my/command"
|
353
|
-
Puppet::Util::Execution.
|
352
|
+
expect(Puppet::Util::Execution).to receive(:execute).with(["/my/command"]).and_raise(Puppet::ExecutionFailure, "Failed")
|
354
353
|
|
355
|
-
@catalog.
|
356
|
-
@agent.
|
354
|
+
expect(@catalog).to receive(:apply)
|
355
|
+
expect(@agent).to receive(:send_report)
|
357
356
|
|
358
357
|
expect(@agent.run).to be_nil
|
359
358
|
end
|
360
359
|
|
361
360
|
it 'includes total time metrics in the report after successfully applying the catalog' do
|
362
361
|
report = Puppet::Transaction::Report.new
|
363
|
-
@catalog.
|
362
|
+
allow(@catalog).to receive(:apply).with(hash_including(report: report))
|
364
363
|
@agent.run(report: report)
|
365
364
|
|
366
365
|
expect(report.metrics['time']).to be
|
@@ -369,7 +368,7 @@ describe Puppet::Configurer do
|
|
369
368
|
|
370
369
|
it 'includes total time metrics in the report even if prerun fails' do
|
371
370
|
Puppet.settings[:prerun_command] = "/my/command"
|
372
|
-
Puppet::Util::Execution.
|
371
|
+
expect(Puppet::Util::Execution).to receive(:execute).with(["/my/command"]).and_raise(Puppet::ExecutionFailure, "Failed")
|
373
372
|
|
374
373
|
report = Puppet::Transaction::Report.new
|
375
374
|
@agent.run(report: report)
|
@@ -380,7 +379,7 @@ describe Puppet::Configurer do
|
|
380
379
|
|
381
380
|
it 'includes total time metrics in the report even if catalog retrieval fails' do
|
382
381
|
report = Puppet::Transaction::Report.new
|
383
|
-
@agent.
|
382
|
+
allow(@agent).to receive(:prepare_and_retrieve_catalog_from_cache).and_raise
|
384
383
|
@agent.run(:report => report)
|
385
384
|
|
386
385
|
expect(report.metrics['time']).to be
|
@@ -389,13 +388,13 @@ describe Puppet::Configurer do
|
|
389
388
|
|
390
389
|
it "should refetch the catalog if the server specifies a new environment in the catalog" do
|
391
390
|
catalog = Puppet::Resource::Catalog.new("tester", Puppet::Node::Environment.remote('second_env'))
|
392
|
-
@agent.
|
391
|
+
expect(@agent).to receive(:retrieve_catalog).and_return(catalog).twice
|
393
392
|
|
394
393
|
@agent.run
|
395
394
|
end
|
396
395
|
|
397
396
|
it "should change the environment setting if the server specifies a new environment in the catalog" do
|
398
|
-
@catalog.
|
397
|
+
allow(@catalog).to receive(:environment).and_return("second_env")
|
399
398
|
|
400
399
|
@agent.run
|
401
400
|
|
@@ -404,11 +403,11 @@ describe Puppet::Configurer do
|
|
404
403
|
|
405
404
|
it "should fix the report if the server specifies a new environment in the catalog" do
|
406
405
|
report = Puppet::Transaction::Report.new(nil, "test", "aaaa")
|
407
|
-
Puppet::Transaction::Report.
|
408
|
-
@agent.
|
406
|
+
expect(Puppet::Transaction::Report).to receive(:new).and_return(report)
|
407
|
+
expect(@agent).to receive(:send_report).with(report)
|
409
408
|
|
410
|
-
@catalog.
|
411
|
-
@agent.
|
409
|
+
allow(@catalog).to receive(:environment).and_return("second_env")
|
410
|
+
allow(@agent).to receive(:retrieve_catalog).and_return(@catalog)
|
412
411
|
|
413
412
|
@agent.run
|
414
413
|
|
@@ -417,24 +416,24 @@ describe Puppet::Configurer do
|
|
417
416
|
|
418
417
|
it "sends the transaction uuid in a catalog request" do
|
419
418
|
@agent.instance_variable_set(:@transaction_uuid, 'aaa')
|
420
|
-
Puppet::Resource::Catalog.indirection.
|
419
|
+
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(transaction_uuid: 'aaa'))
|
421
420
|
@agent.run
|
422
421
|
end
|
423
422
|
|
424
423
|
it "sends the transaction uuid in a catalog request" do
|
425
424
|
@agent.instance_variable_set(:@job_id, 'aaa')
|
426
|
-
Puppet::Resource::Catalog.indirection.
|
425
|
+
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(job_id: 'aaa'))
|
427
426
|
@agent.run
|
428
427
|
end
|
429
428
|
|
430
429
|
it "sets the static_catalog query param to true in a catalog request" do
|
431
|
-
Puppet::Resource::Catalog.indirection.
|
430
|
+
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(static_catalog: true))
|
432
431
|
@agent.run
|
433
432
|
end
|
434
433
|
|
435
434
|
it "sets the checksum_type query param to the default supported_checksum_types in a catalog request" do
|
436
|
-
Puppet::Resource::Catalog.indirection.
|
437
|
-
|
435
|
+
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything,
|
436
|
+
hash_including(checksum_type: 'md5.sha256.sha384.sha512.sha224'))
|
438
437
|
@agent.run
|
439
438
|
end
|
440
439
|
|
@@ -442,22 +441,22 @@ describe Puppet::Configurer do
|
|
442
441
|
# Regenerate the agent to pick up the new setting
|
443
442
|
Puppet[:supported_checksum_types] = ['sha256']
|
444
443
|
@agent = Puppet::Configurer.new
|
445
|
-
@agent.
|
446
|
-
@agent.
|
447
|
-
@agent.
|
448
|
-
@agent.
|
444
|
+
allow(@agent).to receive(:init_storage)
|
445
|
+
allow(@agent).to receive(:download_plugins)
|
446
|
+
allow(@agent).to receive(:send_report)
|
447
|
+
allow(@agent).to receive(:save_last_run_summary)
|
449
448
|
|
450
|
-
Puppet::Resource::Catalog.indirection.
|
449
|
+
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(checksum_type: 'sha256'))
|
451
450
|
@agent.run
|
452
451
|
end
|
453
452
|
|
454
453
|
describe "when not using a REST terminus for catalogs" do
|
455
454
|
it "should not pass any facts when retrieving the catalog" do
|
456
455
|
Puppet::Resource::Catalog.indirection.terminus_class = :compiler
|
457
|
-
@agent.
|
458
|
-
Puppet::Resource::Catalog.indirection.
|
456
|
+
expect(@agent).not_to receive(:facts_for_uploading)
|
457
|
+
expect(Puppet::Resource::Catalog.indirection).to receive(:find) do |name, options|
|
459
458
|
options[:facts].nil?
|
460
|
-
|
459
|
+
end.and_return(@catalog)
|
461
460
|
|
462
461
|
@agent.run
|
463
462
|
end
|
@@ -471,11 +470,9 @@ describe Puppet::Configurer do
|
|
471
470
|
# call to "encode" - the encode in turn returns mocked data that is asserted as being
|
472
471
|
# presented to the catalog terminus as options.
|
473
472
|
#
|
474
|
-
@agent.
|
475
|
-
@agent.
|
476
|
-
Puppet::Resource::Catalog.indirection.
|
477
|
-
options[:facts] == "myfacts" and options[:facts_format] == :foo
|
478
|
-
}.returns @catalog
|
473
|
+
expect(@agent).to receive(:find_facts).and_return(12345)
|
474
|
+
expect(@agent).to receive(:encode_facts).with(12345).and_return(:facts => "myfacts", :facts_format => :foo)
|
475
|
+
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(facts: "myfacts", facts_format: :foo)).and_return(@catalog)
|
479
476
|
|
480
477
|
@agent.run
|
481
478
|
end
|
@@ -484,7 +481,7 @@ describe Puppet::Configurer do
|
|
484
481
|
|
485
482
|
describe "when initialized with a transaction_uuid" do
|
486
483
|
it "stores it" do
|
487
|
-
SecureRandom.
|
484
|
+
expect(SecureRandom).not_to receive(:uuid)
|
488
485
|
configurer = Puppet::Configurer.new('foo')
|
489
486
|
expect(configurer.instance_variable_get(:@transaction_uuid) == 'foo')
|
490
487
|
end
|
@@ -494,7 +491,7 @@ describe Puppet::Configurer do
|
|
494
491
|
include PuppetSpec::Files
|
495
492
|
|
496
493
|
before do
|
497
|
-
Puppet.settings.
|
494
|
+
allow(Puppet.settings).to receive(:use).and_return(true)
|
498
495
|
@configurer = Puppet::Configurer.new
|
499
496
|
Puppet[:lastrunfile] = tmpfile('last_run_file')
|
500
497
|
|
@@ -505,53 +502,53 @@ describe Puppet::Configurer do
|
|
505
502
|
it "should print a report summary if configured to do so" do
|
506
503
|
Puppet.settings[:summarize] = true
|
507
504
|
|
508
|
-
@report.
|
505
|
+
expect(@report).to receive(:summary).and_return("stuff")
|
509
506
|
|
510
|
-
@configurer.
|
507
|
+
expect(@configurer).to receive(:puts).with("stuff")
|
511
508
|
@configurer.send_report(@report)
|
512
509
|
end
|
513
510
|
|
514
511
|
it "should not print a report summary if not configured to do so" do
|
515
512
|
Puppet.settings[:summarize] = false
|
516
513
|
|
517
|
-
@configurer.
|
514
|
+
expect(@configurer).not_to receive(:puts)
|
518
515
|
@configurer.send_report(@report)
|
519
516
|
end
|
520
517
|
|
521
518
|
it "should save the report if reporting is enabled" do
|
522
519
|
Puppet.settings[:report] = true
|
523
520
|
|
524
|
-
Puppet::Transaction::Report.indirection.
|
521
|
+
expect(Puppet::Transaction::Report.indirection).to receive(:save).with(@report, nil, instance_of(Hash))
|
525
522
|
@configurer.send_report(@report)
|
526
523
|
end
|
527
524
|
|
528
525
|
it "should not save the report if reporting is disabled" do
|
529
526
|
Puppet.settings[:report] = false
|
530
527
|
|
531
|
-
Puppet::Transaction::Report.indirection.
|
528
|
+
expect(Puppet::Transaction::Report.indirection).not_to receive(:save).with(@report, nil, instance_of(Hash))
|
532
529
|
@configurer.send_report(@report)
|
533
530
|
end
|
534
531
|
|
535
532
|
it "should save the last run summary if reporting is enabled" do
|
536
533
|
Puppet.settings[:report] = true
|
537
534
|
|
538
|
-
@configurer.
|
535
|
+
expect(@configurer).to receive(:save_last_run_summary).with(@report)
|
539
536
|
@configurer.send_report(@report)
|
540
537
|
end
|
541
538
|
|
542
539
|
it "should save the last run summary if reporting is disabled" do
|
543
540
|
Puppet.settings[:report] = false
|
544
541
|
|
545
|
-
@configurer.
|
542
|
+
expect(@configurer).to receive(:save_last_run_summary).with(@report)
|
546
543
|
@configurer.send_report(@report)
|
547
544
|
end
|
548
545
|
|
549
546
|
it "should log but not fail if saving the report fails" do
|
550
547
|
Puppet.settings[:report] = true
|
551
548
|
|
552
|
-
Puppet::Transaction::Report.indirection.
|
549
|
+
expect(Puppet::Transaction::Report.indirection).to receive(:save).and_raise("whatever")
|
553
550
|
|
554
|
-
Puppet.
|
551
|
+
expect(Puppet).to receive(:send_log).with(:err, 'Could not send report: whatever')
|
555
552
|
@configurer.send_report(@report)
|
556
553
|
end
|
557
554
|
end
|
@@ -560,10 +557,10 @@ describe Puppet::Configurer do
|
|
560
557
|
include PuppetSpec::Files
|
561
558
|
|
562
559
|
before do
|
563
|
-
Puppet.settings.
|
560
|
+
allow(Puppet.settings).to receive(:use).and_return(true)
|
564
561
|
@configurer = Puppet::Configurer.new
|
565
562
|
|
566
|
-
@report =
|
563
|
+
@report = double('report', :raw_summary => {})
|
567
564
|
|
568
565
|
Puppet[:lastrunfile] = tmpfile('last_run_file')
|
569
566
|
end
|
@@ -574,7 +571,7 @@ describe Puppet::Configurer do
|
|
574
571
|
end
|
575
572
|
|
576
573
|
it "should write the raw summary as yaml" do
|
577
|
-
@report.
|
574
|
+
expect(@report).to receive(:raw_summary).and_return("summary")
|
578
575
|
@configurer.save_last_run_summary(@report)
|
579
576
|
expect(File.read(Puppet[:lastrunfile])).to eq(YAML.dump("summary"))
|
580
577
|
end
|
@@ -588,14 +585,14 @@ describe Puppet::Configurer do
|
|
588
585
|
end
|
589
586
|
end.new
|
590
587
|
|
591
|
-
Puppet::Util.
|
588
|
+
expect(Puppet::Util).to receive(:replace_file).and_yield(fh)
|
592
589
|
|
593
|
-
Puppet.
|
590
|
+
expect(Puppet).to receive(:send_log).with(:err, 'Could not save last run local report: failed to do print')
|
594
591
|
@configurer.save_last_run_summary(@report)
|
595
592
|
end
|
596
593
|
|
597
594
|
it "should create the last run file with the correct mode" do
|
598
|
-
Puppet.settings.setting(:lastrunfile).
|
595
|
+
expect(Puppet.settings.setting(:lastrunfile)).to receive(:mode).and_return('664')
|
599
596
|
@configurer.save_last_run_summary(@report)
|
600
597
|
|
601
598
|
if Puppet::Util::Platform.windows?
|
@@ -608,66 +605,66 @@ describe Puppet::Configurer do
|
|
608
605
|
end
|
609
606
|
|
610
607
|
it "should report invalid last run file permissions" do
|
611
|
-
Puppet.settings.setting(:lastrunfile).
|
612
|
-
Puppet.
|
608
|
+
expect(Puppet.settings.setting(:lastrunfile)).to receive(:mode).and_return('892')
|
609
|
+
expect(Puppet).to receive(:send_log).with(:err, /Could not save last run local report.*892 is invalid/)
|
613
610
|
@configurer.save_last_run_summary(@report)
|
614
611
|
end
|
615
612
|
end
|
616
613
|
|
617
614
|
describe "when requesting a node" do
|
618
615
|
it "uses the transaction uuid in the request" do
|
619
|
-
Puppet::Node.indirection.
|
616
|
+
expect(Puppet::Node.indirection).to receive(:find).with(anything, hash_including(transaction_uuid: anything)).twice
|
620
617
|
@agent.run
|
621
618
|
end
|
622
619
|
|
623
620
|
it "sends an explicitly configured environment request" do
|
624
|
-
Puppet.settings.
|
625
|
-
Puppet::Node.indirection.
|
621
|
+
expect(Puppet.settings).to receive(:set_by_config?).with(:environment).and_return(true)
|
622
|
+
expect(Puppet::Node.indirection).to receive(:find).with(anything, hash_including(configured_environment: Puppet[:environment])).twice
|
626
623
|
@agent.run
|
627
624
|
end
|
628
625
|
|
629
626
|
it "does not send a configured_environment when using the default" do
|
630
|
-
Puppet::Node.indirection.
|
627
|
+
expect(Puppet::Node.indirection).to receive(:find).with(anything, hash_including(configured_environment: nil)).twice
|
631
628
|
@agent.run
|
632
629
|
end
|
633
630
|
end
|
634
631
|
|
635
632
|
def expects_new_catalog_only(catalog)
|
636
|
-
Puppet::Resource::Catalog.indirection.
|
637
|
-
Puppet::Resource::Catalog.indirection.
|
633
|
+
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(ignore_cache: true)).and_return(catalog)
|
634
|
+
expect(Puppet::Resource::Catalog.indirection).not_to receive(:find).with(anything, hash_including(ignore_terminus: true))
|
638
635
|
end
|
639
636
|
|
640
637
|
def expects_cached_catalog_only(catalog)
|
641
|
-
Puppet::Resource::Catalog.indirection.
|
642
|
-
Puppet::Resource::Catalog.indirection.
|
638
|
+
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(ignore_terminus: true)).and_return(catalog)
|
639
|
+
expect(Puppet::Resource::Catalog.indirection).not_to receive(:find).with(anything, hash_including(ignore_cache: true))
|
643
640
|
end
|
644
641
|
|
645
642
|
def expects_fallback_to_cached_catalog(catalog)
|
646
|
-
Puppet::Resource::Catalog.indirection.
|
647
|
-
Puppet::Resource::Catalog.indirection.
|
643
|
+
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(ignore_cache: true)).and_return(nil)
|
644
|
+
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(ignore_terminus: true)).and_return(catalog)
|
648
645
|
end
|
649
646
|
|
650
647
|
def expects_fallback_to_new_catalog(catalog)
|
651
|
-
Puppet::Resource::Catalog.indirection.
|
652
|
-
Puppet::Resource::Catalog.indirection.
|
648
|
+
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(ignore_terminus: true)).and_return(nil)
|
649
|
+
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(ignore_cache: true)).and_return(catalog)
|
653
650
|
end
|
654
651
|
|
655
652
|
def expects_neither_new_or_cached_catalog
|
656
|
-
Puppet::Resource::Catalog.indirection.
|
657
|
-
Puppet::Resource::Catalog.indirection.
|
653
|
+
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(ignore_cache: true)).and_return(nil)
|
654
|
+
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(ignore_terminus: true)).and_return(nil)
|
658
655
|
end
|
659
656
|
|
660
657
|
describe "when retrieving a catalog" do
|
661
658
|
before do
|
662
|
-
Puppet.settings.
|
663
|
-
@agent.
|
664
|
-
@agent.
|
659
|
+
allow(Puppet.settings).to receive(:use).and_return(true)
|
660
|
+
allow(@agent).to receive(:facts_for_uploading).and_return({})
|
661
|
+
allow(@agent).to receive(:download_plugins)
|
665
662
|
|
666
663
|
# retrieve a catalog in the current environment, so we don't try to converge unexpectedly
|
667
664
|
@catalog = Puppet::Resource::Catalog.new("tester", Puppet::Node::Environment.remote(Puppet[:environment].to_sym))
|
668
665
|
|
669
666
|
# this is the default when using a Configurer instance
|
670
|
-
Puppet::Resource::Catalog.indirection.
|
667
|
+
allow(Puppet::Resource::Catalog.indirection).to receive(:terminus_class).and_return(:rest)
|
671
668
|
end
|
672
669
|
|
673
670
|
describe "and configured to only retrieve a catalog from the cache" do
|
@@ -682,17 +679,17 @@ describe Puppet::Configurer do
|
|
682
679
|
end
|
683
680
|
|
684
681
|
it "should not make a node request or pluginsync when a cached catalog is successfully retrieved" do
|
685
|
-
Puppet::Node.indirection.
|
682
|
+
expect(Puppet::Node.indirection).not_to receive(:find)
|
686
683
|
expects_cached_catalog_only(@catalog)
|
687
|
-
@agent.
|
684
|
+
expect(@agent).not_to receive(:download_plugins)
|
688
685
|
|
689
686
|
@agent.run
|
690
687
|
end
|
691
688
|
|
692
689
|
it "should make a node request and pluginsync when a cached catalog cannot be retrieved" do
|
693
|
-
Puppet::Node.indirection.
|
690
|
+
expect(Puppet::Node.indirection).to receive(:find).and_return(nil)
|
694
691
|
expects_fallback_to_new_catalog(@catalog)
|
695
|
-
@agent.
|
692
|
+
expect(@agent).to receive(:download_plugins)
|
696
693
|
|
697
694
|
@agent.run
|
698
695
|
end
|
@@ -726,7 +723,7 @@ describe Puppet::Configurer do
|
|
726
723
|
end
|
727
724
|
|
728
725
|
it "should not attempt to retrieve a cached catalog again if the first attempt failed" do
|
729
|
-
Puppet::Node.indirection.
|
726
|
+
expect(Puppet::Node.indirection).to receive(:find).and_return(nil)
|
730
727
|
expects_neither_new_or_cached_catalog
|
731
728
|
|
732
729
|
@agent.run
|
@@ -736,23 +733,23 @@ describe Puppet::Configurer do
|
|
736
733
|
cached_catalog = Puppet::Resource::Catalog.new("tester", Puppet::Node::Environment.remote('second_env'))
|
737
734
|
expects_cached_catalog_only(cached_catalog)
|
738
735
|
|
739
|
-
Puppet.
|
736
|
+
expect(Puppet).to receive(:info).with("Using cached catalog from environment 'second_env'")
|
740
737
|
expect(@agent.retrieve_catalog({})).to eq(cached_catalog)
|
741
738
|
end
|
742
739
|
end
|
743
740
|
|
744
741
|
describe "and strict environment mode is set" do
|
745
742
|
before do
|
746
|
-
@catalog.
|
747
|
-
@catalog.
|
748
|
-
@catalog.
|
749
|
-
@agent.
|
750
|
-
@agent.
|
743
|
+
allow(@catalog).to receive(:to_ral).and_return(@catalog)
|
744
|
+
allow(@catalog).to receive(:write_class_file)
|
745
|
+
allow(@catalog).to receive(:write_resource_file)
|
746
|
+
allow(@agent).to receive(:send_report)
|
747
|
+
allow(@agent).to receive(:save_last_run_summary)
|
751
748
|
Puppet.settings[:strict_environment_mode] = true
|
752
749
|
end
|
753
750
|
|
754
751
|
it "should not make a node request" do
|
755
|
-
Puppet::Node.indirection.
|
752
|
+
expect(Puppet::Node.indirection).not_to receive(:find)
|
756
753
|
|
757
754
|
@agent.run
|
758
755
|
end
|
@@ -761,7 +758,7 @@ describe Puppet::Configurer do
|
|
761
758
|
@agent.instance_variable_set(:@environment, 'second_env')
|
762
759
|
expects_new_catalog_only(@catalog)
|
763
760
|
|
764
|
-
Puppet.
|
761
|
+
expect(Puppet).to receive(:err).with("Not using catalog because its environment 'production' does not match agent specified environment 'second_env' and strict_environment_mode is set")
|
765
762
|
expect(@agent.run).to be_nil
|
766
763
|
end
|
767
764
|
|
@@ -781,7 +778,7 @@ describe Puppet::Configurer do
|
|
781
778
|
@agent.instance_variable_set(:@environment, 'second_env')
|
782
779
|
expects_cached_catalog_only(@catalog)
|
783
780
|
|
784
|
-
Puppet.
|
781
|
+
expect(Puppet).to receive(:err).with("Not using catalog because its environment 'production' does not match agent specified environment 'second_env' and strict_environment_mode is set")
|
785
782
|
expect(@agent.run).to be_nil
|
786
783
|
end
|
787
784
|
|
@@ -796,28 +793,28 @@ describe Puppet::Configurer do
|
|
796
793
|
end
|
797
794
|
|
798
795
|
it "should use the Catalog class to get its catalog" do
|
799
|
-
Puppet::Resource::Catalog.indirection.
|
796
|
+
expect(Puppet::Resource::Catalog.indirection).to receive(:find).and_return(@catalog)
|
800
797
|
|
801
798
|
@agent.retrieve_catalog({})
|
802
799
|
end
|
803
800
|
|
804
801
|
it "should set its cached_catalog_status to 'not_used' when downloading a new catalog" do
|
805
|
-
Puppet::Resource::Catalog.indirection.
|
802
|
+
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(ignore_cache: true)).and_return(@catalog)
|
806
803
|
|
807
804
|
@agent.retrieve_catalog({})
|
808
805
|
expect(@agent.instance_variable_get(:@cached_catalog_status)).to eq('not_used')
|
809
806
|
end
|
810
807
|
|
811
808
|
it "should use its node_name_value to retrieve the catalog" do
|
812
|
-
Facter.
|
809
|
+
allow(Facter).to receive(:value).and_return("eh")
|
813
810
|
Puppet.settings[:node_name_value] = "myhost.domain.com"
|
814
|
-
Puppet::Resource::Catalog.indirection.
|
811
|
+
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with("myhost.domain.com", anything).and_return(@catalog)
|
815
812
|
|
816
813
|
@agent.retrieve_catalog({})
|
817
814
|
end
|
818
815
|
|
819
816
|
it "should default to returning a catalog retrieved directly from the server, skipping the cache" do
|
820
|
-
Puppet::Resource::Catalog.indirection.
|
817
|
+
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(ignore_cache: true)).and_return(@catalog)
|
821
818
|
|
822
819
|
expect(@agent.retrieve_catalog({})).to eq(@catalog)
|
823
820
|
end
|
@@ -825,7 +822,7 @@ describe Puppet::Configurer do
|
|
825
822
|
it "should log and return the cached catalog when no catalog can be retrieved from the server" do
|
826
823
|
expects_fallback_to_cached_catalog(@catalog)
|
827
824
|
|
828
|
-
Puppet.
|
825
|
+
expect(Puppet).to receive(:info).with("Using cached catalog from environment 'production'")
|
829
826
|
expect(@agent.retrieve_catalog({})).to eq(@catalog)
|
830
827
|
end
|
831
828
|
|
@@ -843,15 +840,15 @@ describe Puppet::Configurer do
|
|
843
840
|
end
|
844
841
|
|
845
842
|
it "should return the cached catalog when retrieving the remote catalog throws an exception" do
|
846
|
-
Puppet::Resource::Catalog.indirection.
|
847
|
-
Puppet::Resource::Catalog.indirection.
|
843
|
+
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(ignore_cache: true)).and_raise("eh")
|
844
|
+
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(ignore_terminus: true)).and_return(@catalog)
|
848
845
|
|
849
846
|
expect(@agent.retrieve_catalog({})).to eq(@catalog)
|
850
847
|
end
|
851
848
|
|
852
849
|
it "should set its cached_catalog_status to 'on_failure' when retrieving the remote catalog throws an exception" do
|
853
|
-
Puppet::Resource::Catalog.indirection.
|
854
|
-
Puppet::Resource::Catalog.indirection.
|
850
|
+
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(ignore_cache: true)).and_raise("eh")
|
851
|
+
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(ignore_terminus: true)).and_return(@catalog)
|
855
852
|
|
856
853
|
@agent.retrieve_catalog({})
|
857
854
|
expect(@agent.instance_variable_get(:@cached_catalog_status)).to eq('on_failure')
|
@@ -859,16 +856,16 @@ describe Puppet::Configurer do
|
|
859
856
|
|
860
857
|
it "should log and return nil if no catalog can be retrieved from the server and :usecacheonfailure is disabled" do
|
861
858
|
Puppet[:usecacheonfailure] = false
|
862
|
-
Puppet::Resource::Catalog.indirection.
|
859
|
+
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(ignore_cache: true)).and_return(nil)
|
863
860
|
|
864
|
-
Puppet.
|
861
|
+
expect(Puppet).to receive(:warning).with('Not using cache on failed catalog')
|
865
862
|
|
866
863
|
expect(@agent.retrieve_catalog({})).to be_nil
|
867
864
|
end
|
868
865
|
|
869
866
|
it "should set its cached_catalog_status to 'not_used' if no catalog can be retrieved from the server and :usecacheonfailure is disabled or fails to retrieve a catalog" do
|
870
867
|
Puppet[:usecacheonfailure] = false
|
871
|
-
Puppet::Resource::Catalog.indirection.
|
868
|
+
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(ignore_cache: true)).and_return(nil)
|
872
869
|
|
873
870
|
@agent.retrieve_catalog({})
|
874
871
|
expect(@agent.instance_variable_get(:@cached_catalog_status)).to eq('not_used')
|
@@ -886,7 +883,7 @@ describe Puppet::Configurer do
|
|
886
883
|
|
887
884
|
expects_fallback_to_cached_catalog(cached_catalog)
|
888
885
|
|
889
|
-
Puppet.
|
886
|
+
expect(Puppet).to receive(:err).with("Not using cached catalog because its environment 'second_env' does not match 'production'")
|
890
887
|
expect(@agent.retrieve_catalog({})).to be_nil
|
891
888
|
end
|
892
889
|
|
@@ -921,14 +918,14 @@ describe Puppet::Configurer do
|
|
921
918
|
|
922
919
|
it "should not update the cached catalog in noop mode" do
|
923
920
|
Puppet[:noop] = true
|
924
|
-
Puppet::Resource::Catalog.indirection.
|
921
|
+
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(ignore_cache: true, ignore_cache_save: true)).and_return(@catalog)
|
925
922
|
|
926
923
|
@agent.retrieve_catalog({})
|
927
924
|
end
|
928
925
|
|
929
926
|
it "should update the cached catalog when not in noop mode" do
|
930
927
|
Puppet[:noop] = false
|
931
|
-
Puppet::Resource::Catalog.indirection.
|
928
|
+
expect(Puppet::Resource::Catalog.indirection).to receive(:find).with(anything, hash_including(ignore_cache: true, ignore_cache_save: false)).and_return(@catalog)
|
932
929
|
|
933
930
|
@agent.retrieve_catalog({})
|
934
931
|
end
|
@@ -936,9 +933,9 @@ describe Puppet::Configurer do
|
|
936
933
|
|
937
934
|
describe "when converting the catalog" do
|
938
935
|
before do
|
939
|
-
Puppet.settings.
|
936
|
+
allow(Puppet.settings).to receive(:use).and_return(true)
|
940
937
|
|
941
|
-
catalog.
|
938
|
+
allow(catalog).to receive(:to_ral).and_return(ral_catalog)
|
942
939
|
end
|
943
940
|
|
944
941
|
let (:catalog) { Puppet::Resource::Catalog.new('tester', Puppet::Node::Environment.remote(Puppet[:environment].to_sym)) }
|
@@ -949,25 +946,25 @@ describe Puppet::Configurer do
|
|
949
946
|
end
|
950
947
|
|
951
948
|
it "should finalize the catalog" do
|
952
|
-
ral_catalog.
|
949
|
+
expect(ral_catalog).to receive(:finalize)
|
953
950
|
|
954
951
|
@agent.convert_catalog(catalog, 10)
|
955
952
|
end
|
956
953
|
|
957
954
|
it "should record the passed retrieval time with the RAL catalog" do
|
958
|
-
ral_catalog.
|
955
|
+
expect(ral_catalog).to receive(:retrieval_duration=).with(10)
|
959
956
|
|
960
957
|
@agent.convert_catalog(catalog, 10)
|
961
958
|
end
|
962
959
|
|
963
960
|
it "should write the RAL catalog's class file" do
|
964
|
-
ral_catalog.
|
961
|
+
expect(ral_catalog).to receive(:write_class_file)
|
965
962
|
|
966
963
|
@agent.convert_catalog(catalog, 10)
|
967
964
|
end
|
968
965
|
|
969
966
|
it "should write the RAL catalog's resource file" do
|
970
|
-
ral_catalog.
|
967
|
+
expect(ral_catalog).to receive(:write_resource_file)
|
971
968
|
|
972
969
|
@agent.convert_catalog(catalog, 10)
|
973
970
|
end
|
@@ -975,7 +972,7 @@ describe Puppet::Configurer do
|
|
975
972
|
it "should set catalog conversion time on the report" do
|
976
973
|
report = Puppet::Transaction::Report.new
|
977
974
|
|
978
|
-
report.
|
975
|
+
expect(report).to receive(:add_times).with(:convert_catalog, kind_of(Numeric))
|
979
976
|
@agent.convert_catalog(catalog, 10, {:report => report})
|
980
977
|
end
|
981
978
|
end
|
@@ -997,13 +994,13 @@ describe Puppet::Configurer do
|
|
997
994
|
describe "when attempting failover" do
|
998
995
|
it "should not failover if server_list is not set" do
|
999
996
|
Puppet.settings[:server_list] = []
|
1000
|
-
@agent.
|
997
|
+
expect(@agent).not_to receive(:find_functional_server)
|
1001
998
|
@agent.run
|
1002
999
|
end
|
1003
1000
|
|
1004
1001
|
it "should not failover during an apply run" do
|
1005
1002
|
Puppet.settings[:server_list] = ["myserver:123"]
|
1006
|
-
@agent.
|
1003
|
+
expect(@agent).not_to receive(:find_functional_server)
|
1007
1004
|
catalog = Puppet::Resource::Catalog.new("tester", Puppet::Node::Environment.remote(Puppet[:environment].to_sym))
|
1008
1005
|
@agent.run :catalog => catalog
|
1009
1006
|
end
|
@@ -1011,8 +1008,8 @@ describe Puppet::Configurer do
|
|
1011
1008
|
it "should select a server when provided" do
|
1012
1009
|
Puppet.settings[:server_list] = ["myserver:123"]
|
1013
1010
|
response = Net::HTTPOK.new(nil, 200, 'OK')
|
1014
|
-
Puppet::Network::HttpPool.
|
1015
|
-
@agent.
|
1011
|
+
allow(Puppet::Network::HttpPool).to receive(:connection).with('myserver', 123, anything).and_return(double('request', get: response))
|
1012
|
+
allow(@agent).to receive(:run_internal)
|
1016
1013
|
|
1017
1014
|
options = {}
|
1018
1015
|
@agent.run(options)
|
@@ -1022,10 +1019,10 @@ describe Puppet::Configurer do
|
|
1022
1019
|
it "queries the simple status for the 'master' service" do
|
1023
1020
|
Puppet.settings[:server_list] = ["myserver:123"]
|
1024
1021
|
response = Net::HTTPOK.new(nil, 200, 'OK')
|
1025
|
-
http =
|
1026
|
-
http.
|
1027
|
-
Puppet::Network::HttpPool.
|
1028
|
-
@agent.
|
1022
|
+
http = double('request')
|
1023
|
+
expect(http).to receive(:get).with('/status/v1/simple/master').and_return(response)
|
1024
|
+
allow(Puppet::Network::HttpPool).to receive(:connection).with('myserver', 123, anything).and_return(http)
|
1025
|
+
allow(@agent).to receive(:run_internal)
|
1029
1026
|
|
1030
1027
|
@agent.run
|
1031
1028
|
end
|
@@ -1033,16 +1030,16 @@ describe Puppet::Configurer do
|
|
1033
1030
|
it "should report when a server is unavailable" do
|
1034
1031
|
Puppet.settings[:server_list] = ["myserver:123"]
|
1035
1032
|
response = Net::HTTPInternalServerError.new(nil, 500, 'Internal Server Error')
|
1036
|
-
Puppet::Network::HttpPool.
|
1033
|
+
allow(Puppet::Network::HttpPool).to receive(:connection).with('myserver', 123, anything).and_return(double('request', get: response))
|
1037
1034
|
|
1038
|
-
Puppet.
|
1035
|
+
expect(Puppet).to receive(:debug).with("Puppet server myserver:123 is unavailable: 500 Internal Server Error")
|
1039
1036
|
expect{ @agent.run }.to raise_error(Puppet::Error, /Could not select a functional puppet master from server_list/)
|
1040
1037
|
end
|
1041
1038
|
|
1042
1039
|
it "should error when no servers in 'server_list' are reachable" do
|
1043
1040
|
Puppet.settings[:server_list] = ["myserver:123"]
|
1044
1041
|
error = Net::HTTPError.new(400, 'dummy server communication error')
|
1045
|
-
Puppet::Network::HttpPool.
|
1042
|
+
allow(Puppet::Network::HttpPool).to receive(:connection).with('myserver', 123, anything).and_return(double('request', get: error))
|
1046
1043
|
|
1047
1044
|
options = {}
|
1048
1045
|
expect{ @agent.run(options) }.to raise_error(Puppet::Error, /Could not select a functional puppet master from server_list/)
|
@@ -1053,8 +1050,8 @@ describe Puppet::Configurer do
|
|
1053
1050
|
Puppet.settings[:server_list] = ["myserver:123"]
|
1054
1051
|
response = Net::HTTPOK.new(nil, 200, 'OK')
|
1055
1052
|
|
1056
|
-
Puppet::Network::HttpPool.
|
1057
|
-
@agent.
|
1053
|
+
expect(Puppet::Network::HttpPool).to receive(:connection).with('myserver', 123, anything).and_return(double('request', get: response))
|
1054
|
+
allow(@agent).to receive(:run_internal)
|
1058
1055
|
|
1059
1056
|
@agent.run
|
1060
1057
|
end
|