puppet 6.21.1-x64-mingw32 → 7.4.1-x64-mingw32
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Gemfile +1 -4
- data/Gemfile.lock +5 -5
- data/README.md +1 -1
- data/conf/fileserver.conf +5 -10
- data/ext/build_defaults.yaml +1 -2
- data/ext/osx/file_mapping.yaml +0 -5
- data/ext/project_data.yaml +2 -14
- data/ext/redhat/puppet.spec.erb +0 -1
- data/ext/windows/service/daemon.rb +6 -5
- data/install.rb +21 -17
- data/lib/puppet.rb +11 -20
- data/lib/puppet/application.rb +172 -98
- data/lib/puppet/application/device.rb +100 -104
- data/lib/puppet/application/filebucket.rb +13 -9
- data/lib/puppet/application/ssl.rb +1 -1
- data/lib/puppet/configurer.rb +27 -29
- data/lib/puppet/configurer/plugin_handler.rb +21 -19
- data/lib/puppet/defaults.rb +57 -162
- data/lib/puppet/environments.rb +8 -23
- data/lib/puppet/face/facts.rb +73 -49
- data/lib/puppet/face/help.rb +1 -1
- data/lib/puppet/face/node/clean.rb +8 -0
- data/lib/puppet/face/plugin.rb +5 -8
- data/lib/puppet/ffi/windows.rb +12 -0
- data/lib/puppet/ffi/windows/api_types.rb +311 -0
- data/lib/puppet/ffi/windows/constants.rb +404 -0
- data/lib/puppet/ffi/windows/functions.rb +628 -0
- data/lib/puppet/ffi/windows/structs.rb +338 -0
- data/lib/puppet/file_serving/configuration.rb +0 -5
- data/lib/puppet/file_serving/configuration/parser.rb +6 -32
- data/lib/puppet/file_serving/http_metadata.rb +1 -1
- data/lib/puppet/file_serving/mount.rb +1 -2
- data/lib/puppet/forge/repository.rb +0 -1
- data/lib/puppet/generate/models/type/type.rb +4 -1
- data/lib/puppet/http.rb +22 -13
- data/lib/puppet/http/client.rb +164 -114
- data/lib/puppet/{network/resolver.rb → http/dns.rb} +2 -2
- data/lib/puppet/http/errors.rb +16 -0
- data/lib/puppet/http/external_client.rb +5 -7
- data/lib/puppet/{network/http → http}/factory.rb +8 -11
- data/lib/puppet/{network/http → http}/pool.rb +61 -26
- data/lib/puppet/{network/http/session.rb → http/pool_entry.rb} +2 -3
- data/lib/puppet/http/proxy.rb +137 -0
- data/lib/puppet/http/redirector.rb +4 -12
- data/lib/puppet/http/resolver.rb +5 -15
- data/lib/puppet/http/resolver/server_list.rb +6 -10
- data/lib/puppet/http/resolver/settings.rb +4 -7
- data/lib/puppet/http/resolver/srv.rb +7 -11
- data/lib/puppet/http/response.rb +36 -54
- data/lib/puppet/http/response_converter.rb +24 -0
- data/lib/puppet/http/response_net_http.rb +42 -0
- data/lib/puppet/http/retry_after_handler.rb +4 -13
- data/lib/puppet/http/service.rb +12 -26
- data/lib/puppet/http/service/ca.rb +11 -22
- data/lib/puppet/http/service/compiler.rb +22 -69
- data/lib/puppet/http/service/file_server.rb +18 -27
- data/lib/puppet/http/service/puppetserver.rb +26 -12
- data/lib/puppet/http/service/report.rb +8 -10
- data/lib/puppet/http/session.rb +11 -20
- data/lib/puppet/{network/http → http}/site.rb +1 -2
- data/lib/puppet/indirector/catalog/rest.rb +2 -4
- data/lib/puppet/indirector/facts/facter.rb +25 -3
- data/lib/puppet/indirector/facts/rest.rb +3 -22
- data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -9
- data/lib/puppet/indirector/file_content/rest.rb +2 -6
- data/lib/puppet/indirector/file_metadata/rest.rb +3 -9
- data/lib/puppet/indirector/file_server.rb +1 -8
- data/lib/puppet/indirector/generic_http.rb +0 -11
- data/lib/puppet/indirector/node/rest.rb +2 -4
- data/lib/puppet/indirector/report/rest.rb +3 -8
- data/lib/puppet/indirector/request.rb +0 -101
- data/lib/puppet/indirector/rest.rb +12 -263
- data/lib/puppet/module_tool/applications.rb +0 -1
- data/lib/puppet/network/authconfig.rb +2 -96
- data/lib/puppet/network/authorization.rb +13 -35
- data/lib/puppet/network/formats.rb +67 -0
- data/lib/puppet/network/http.rb +3 -3
- data/lib/puppet/network/http/api/indirected_routes.rb +2 -20
- data/lib/puppet/network/http/api/master/v3.rb +11 -13
- data/lib/puppet/network/http/connection.rb +247 -316
- data/lib/puppet/network/http/handler.rb +0 -1
- data/lib/puppet/network/http_pool.rb +16 -34
- data/lib/puppet/node.rb +1 -30
- data/lib/puppet/pal/json_catalog_encoder.rb +4 -0
- data/lib/puppet/pal/pal_impl.rb +3 -1
- data/lib/puppet/parser/ast/pops_bridge.rb +0 -38
- data/lib/puppet/parser/compiler.rb +0 -198
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +14 -39
- data/lib/puppet/parser/resource.rb +0 -69
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +0 -5
- data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +3 -3
- data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
- data/lib/puppet/pops/issues.rb +0 -5
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +6 -8
- data/lib/puppet/pops/model/ast.pp +0 -42
- data/lib/puppet/pops/model/ast.rb +0 -290
- data/lib/puppet/pops/model/factory.rb +0 -45
- data/lib/puppet/pops/model/model_label_provider.rb +0 -5
- data/lib/puppet/pops/model/model_tree_dumper.rb +0 -22
- data/lib/puppet/pops/model/pn_transformer.rb +0 -16
- data/lib/puppet/pops/parser/egrammar.ra +0 -56
- data/lib/puppet/pops/parser/eparser.rb +1520 -1712
- data/lib/puppet/pops/parser/lexer2.rb +4 -4
- data/lib/puppet/pops/parser/parser_support.rb +0 -5
- data/lib/puppet/pops/resource/resource_type_impl.rb +2 -24
- data/lib/puppet/pops/types/type_calculator.rb +0 -7
- data/lib/puppet/pops/types/type_parser.rb +0 -4
- data/lib/puppet/pops/types/types.rb +0 -1
- data/lib/puppet/pops/validation/checker4_0.rb +9 -37
- data/lib/puppet/pops/validation/tasks_checker.rb +0 -12
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -2
- data/lib/puppet/provider.rb +0 -13
- data/lib/puppet/provider/nameservice.rb +0 -18
- data/lib/puppet/provider/package/dpkg.rb +0 -10
- data/lib/puppet/provider/package/gem.rb +23 -3
- data/lib/puppet/provider/package/pip.rb +0 -1
- data/lib/puppet/provider/package/pkg.rb +0 -4
- data/lib/puppet/provider/package/portage.rb +1 -1
- data/lib/puppet/provider/package/puppet_gem.rb +1 -4
- data/lib/puppet/provider/service/smf.rb +191 -73
- data/lib/puppet/provider/user/directoryservice.rb +0 -10
- data/lib/puppet/reference/configuration.rb +7 -5
- data/lib/puppet/reference/indirection.rb +1 -1
- data/lib/puppet/resource.rb +1 -89
- data/lib/puppet/resource/catalog.rb +1 -14
- data/lib/puppet/resource/type.rb +3 -119
- data/lib/puppet/resource/type_collection.rb +3 -48
- data/lib/puppet/runtime.rb +1 -2
- data/lib/puppet/settings.rb +45 -33
- data/lib/puppet/settings/integer_setting.rb +17 -0
- data/lib/puppet/settings/port_setting.rb +15 -0
- data/lib/puppet/settings/priority_setting.rb +5 -4
- data/lib/puppet/ssl.rb +10 -6
- data/lib/puppet/ssl/base.rb +3 -5
- data/lib/puppet/ssl/certificate.rb +0 -6
- data/lib/puppet/ssl/certificate_request.rb +1 -12
- data/lib/puppet/ssl/certificate_signer.rb +6 -0
- data/lib/puppet/ssl/oids.rb +3 -1
- data/lib/puppet/ssl/ssl_provider.rb +17 -0
- data/lib/puppet/ssl/state_machine.rb +3 -1
- data/lib/puppet/ssl/verifier.rb +2 -0
- data/lib/puppet/test/test_helper.rb +1 -3
- data/lib/puppet/transaction.rb +1 -7
- data/lib/puppet/transaction/report.rb +2 -4
- data/lib/puppet/type.rb +0 -76
- data/lib/puppet/type/file.rb +5 -7
- data/lib/puppet/type/file/checksum.rb +1 -1
- data/lib/puppet/type/file/source.rb +1 -1
- data/lib/puppet/type/filebucket.rb +3 -3
- data/lib/puppet/type/package.rb +5 -13
- data/lib/puppet/type/user.rb +1 -1
- data/lib/puppet/util/execution.rb +0 -11
- data/lib/puppet/util/http_proxy.rb +2 -215
- data/lib/puppet/util/monkey_patches.rb +0 -46
- data/lib/puppet/util/rdoc.rb +0 -7
- data/lib/puppet/util/retry_action.rb +1 -1
- data/lib/puppet/util/run_mode.rb +9 -1
- data/lib/puppet/util/windows.rb +3 -8
- data/lib/puppet/util/windows/daemon.rb +360 -0
- data/lib/puppet/util/windows/error.rb +1 -0
- data/lib/puppet/util/windows/eventlog.rb +4 -9
- data/lib/puppet/util/windows/file.rb +8 -242
- data/lib/puppet/util/windows/monkey_patches/process.rb +414 -0
- data/lib/puppet/util/windows/process.rb +4 -226
- data/lib/puppet/util/windows/service.rb +9 -460
- data/lib/puppet/util/windows/string.rb +12 -13
- data/lib/puppet/util/yaml.rb +0 -22
- data/lib/puppet/vendor/require_vendored.rb +0 -1
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet/x509.rb +5 -1
- data/lib/puppet/x509/cert_provider.rb +29 -1
- data/locales/puppet.pot +521 -1226
- data/man/man5/puppet.conf.5 +34 -94
- data/man/man8/puppet-facts.8 +56 -35
- data/man/man8/puppet-filebucket.8 +3 -3
- data/man/man8/puppet-module.8 +0 -57
- data/man/man8/puppet.8 +1 -1
- data/spec/fixtures/unit/provider/service/smf/{svcs.out → svcs_instances.out} +0 -0
- data/spec/integration/application/agent_spec.rb +24 -11
- data/spec/integration/application/apply_spec.rb +1 -1
- data/spec/integration/application/filebucket_spec.rb +16 -16
- data/spec/integration/application/help_spec.rb +2 -0
- data/spec/integration/application/plugin_spec.rb +23 -1
- data/spec/integration/defaults_spec.rb +7 -3
- data/spec/integration/indirector/file_content/file_server_spec.rb +0 -2
- data/spec/integration/indirector/file_metadata/file_server_spec.rb +0 -2
- data/spec/integration/network/http_pool_spec.rb +3 -21
- data/spec/integration/parser/catalog_spec.rb +0 -38
- data/spec/integration/parser/node_spec.rb +0 -9
- data/spec/integration/parser/pcore_resource_spec.rb +0 -37
- data/spec/integration/type/file_spec.rb +5 -4
- data/spec/integration/util/windows/monkey_patches/process_spec.rb +231 -0
- data/spec/integration/util/windows/security_spec.rb +1 -1
- data/spec/lib/puppet_spec/puppetserver.rb +1 -1
- data/spec/lib/puppet_spec/settings.rb +1 -0
- data/spec/spec_helper.rb +2 -0
- data/spec/unit/agent_spec.rb +0 -2
- data/spec/unit/application/facts_spec.rb +86 -0
- data/spec/unit/application/filebucket_spec.rb +41 -39
- data/spec/unit/application/ssl_spec.rb +2 -2
- data/spec/unit/certificate_factory_spec.rb +1 -1
- data/spec/unit/configurer/downloader_spec.rb +6 -2
- data/spec/unit/configurer/plugin_handler_spec.rb +56 -18
- data/spec/unit/configurer_spec.rb +12 -9
- data/spec/unit/context/trusted_information_spec.rb +2 -6
- data/spec/unit/defaults_spec.rb +22 -47
- data/spec/unit/environments_spec.rb +0 -3
- data/spec/unit/face/facts_spec.rb +4 -0
- data/spec/unit/face/node_spec.rb +14 -2
- data/spec/unit/face/plugin_spec.rb +73 -33
- data/spec/unit/file_bucket/file_spec.rb +1 -1
- data/spec/unit/file_serving/configuration/parser_spec.rb +22 -18
- data/spec/unit/file_serving/configuration_spec.rb +6 -12
- data/spec/unit/functions/camelcase_spec.rb +1 -1
- data/spec/unit/functions/capitalize_spec.rb +1 -1
- data/spec/unit/functions/downcase_spec.rb +1 -1
- data/spec/unit/functions/upcase_spec.rb +1 -1
- data/spec/unit/http/client_spec.rb +7 -8
- data/spec/unit/{network/resolver_spec.rb → http/dns_spec.rb} +3 -3
- data/spec/unit/http/external_client_spec.rb +4 -4
- data/spec/unit/{network/http → http}/factory_spec.rb +5 -11
- data/spec/unit/{network/http/session_spec.rb → http/pool_entry_spec.rb} +3 -3
- data/spec/unit/{network/http → http}/pool_spec.rb +12 -17
- data/spec/unit/{util/http_proxy_spec.rb → http/proxy_spec.rb} +2 -69
- data/spec/unit/http/resolver_spec.rb +13 -13
- data/spec/unit/http/service/compiler_spec.rb +0 -62
- data/spec/unit/http/service/file_server_spec.rb +3 -3
- data/spec/unit/http/service/puppetserver_spec.rb +34 -4
- data/spec/unit/http/service_spec.rb +0 -1
- data/spec/unit/http/session_spec.rb +16 -14
- data/spec/unit/{network/http → http}/site_spec.rb +3 -3
- data/spec/unit/indirector/facts/facter_spec.rb +113 -0
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +5 -3
- data/spec/unit/indirector/file_content/rest_spec.rb +0 -4
- data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -4
- data/spec/unit/indirector/file_server_spec.rb +1 -15
- data/spec/unit/indirector/report/rest_spec.rb +2 -17
- data/spec/unit/indirector/request_spec.rb +0 -264
- data/spec/unit/indirector/rest_spec.rb +98 -752
- data/spec/unit/network/authconfig_spec.rb +2 -129
- data/spec/unit/network/authorization_spec.rb +2 -55
- data/spec/unit/network/formats_spec.rb +45 -4
- data/spec/unit/network/http/api/indirected_routes_spec.rb +1 -92
- data/spec/unit/network/http/api/master/v3_spec.rb +28 -7
- data/spec/unit/network/http/api_spec.rb +10 -0
- data/spec/unit/network/http/connection_spec.rb +19 -41
- data/spec/unit/network/http/handler_spec.rb +0 -1
- data/spec/unit/network/http_pool_spec.rb +0 -4
- data/spec/unit/node/environment_spec.rb +33 -21
- data/spec/unit/node_spec.rb +2 -54
- data/spec/unit/parser/functions/create_resources_spec.rb +2 -20
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +4 -7
- data/spec/unit/pops/loaders/loaders_spec.rb +6 -21
- data/spec/unit/pops/parser/parse_application_spec.rb +4 -22
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_capabilities_spec.rb +8 -21
- data/spec/unit/pops/parser/parse_site_spec.rb +20 -24
- data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -71
- data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
- data/spec/unit/pops/types/type_calculator_spec.rb +6 -6
- data/spec/unit/pops/types/type_factory_spec.rb +1 -1
- data/spec/unit/pops/validator/validator_spec.rb +61 -46
- data/spec/unit/pops/visitor_spec.rb +1 -1
- data/spec/unit/provider/nameservice_spec.rb +0 -57
- data/spec/unit/provider/package/dpkg_spec.rb +0 -48
- data/spec/unit/provider/package/gem_spec.rb +32 -0
- data/spec/unit/provider/package/puppet_gem_spec.rb +3 -2
- data/spec/unit/provider/service/smf_spec.rb +401 -165
- data/spec/unit/provider/service/windows_spec.rb +0 -1
- data/spec/unit/provider_spec.rb +0 -12
- data/spec/unit/resource/type_collection_spec.rb +2 -22
- data/spec/unit/resource_spec.rb +0 -56
- data/spec/unit/settings/http_extra_headers_spec.rb +2 -4
- data/spec/unit/settings/integer_setting_spec.rb +42 -0
- data/spec/unit/settings/port_setting_spec.rb +31 -0
- data/spec/unit/settings/priority_setting_spec.rb +4 -4
- data/spec/unit/settings_spec.rb +17 -0
- data/spec/unit/ssl/base_spec.rb +36 -3
- data/spec/unit/ssl/certificate_request_spec.rb +19 -55
- data/spec/unit/ssl/certificate_spec.rb +2 -11
- data/spec/unit/ssl/state_machine_spec.rb +0 -1
- data/spec/unit/ssl/verifier_spec.rb +0 -21
- data/spec/unit/transaction/report_spec.rb +0 -2
- data/spec/unit/transaction/resource_harness_spec.rb +2 -2
- data/spec/unit/transaction_spec.rb +45 -79
- data/spec/unit/type/file/checksum_spec.rb +6 -6
- data/spec/unit/type/file/content_spec.rb +1 -1
- data/spec/unit/type/file/ensure_spec.rb +1 -1
- data/spec/unit/type/file/mode_spec.rb +1 -1
- data/spec/unit/type/file/source_spec.rb +0 -1
- data/spec/unit/type/file_spec.rb +12 -6
- data/spec/unit/type/package_spec.rb +1 -1
- data/spec/unit/type_spec.rb +20 -0
- data/spec/unit/util/backups_spec.rb +0 -2
- data/spec/unit/util/execution_spec.rb +0 -29
- data/spec/unit/util/monkey_patches_spec.rb +0 -6
- data/spec/unit/util/run_mode_spec.rb +21 -121
- data/spec/unit/util/windows/string_spec.rb +1 -3
- data/spec/unit/util/yaml_spec.rb +0 -54
- data/spec/unit/util_spec.rb +0 -18
- metadata +47 -218
- data/conf/auth.conf +0 -150
- data/lib/puppet/application/cert.rb +0 -76
- data/lib/puppet/application/key.rb +0 -4
- data/lib/puppet/application/man.rb +0 -4
- data/lib/puppet/application/status.rb +0 -4
- data/lib/puppet/face/key.rb +0 -16
- data/lib/puppet/face/man.rb +0 -145
- data/lib/puppet/face/module/build.rb +0 -14
- data/lib/puppet/face/module/generate.rb +0 -14
- data/lib/puppet/face/module/search.rb +0 -103
- data/lib/puppet/face/status.rb +0 -51
- data/lib/puppet/indirector/certificate/file.rb +0 -9
- data/lib/puppet/indirector/certificate/rest.rb +0 -18
- data/lib/puppet/indirector/certificate_request/file.rb +0 -9
- data/lib/puppet/indirector/certificate_request/memory.rb +0 -7
- data/lib/puppet/indirector/certificate_request/rest.rb +0 -11
- data/lib/puppet/indirector/file_content/http.rb +0 -22
- data/lib/puppet/indirector/key/file.rb +0 -46
- data/lib/puppet/indirector/key/memory.rb +0 -7
- data/lib/puppet/indirector/ssl_file.rb +0 -162
- data/lib/puppet/indirector/status.rb +0 -3
- data/lib/puppet/indirector/status/local.rb +0 -12
- data/lib/puppet/indirector/status/rest.rb +0 -27
- data/lib/puppet/module_tool/applications/searcher.rb +0 -29
- data/lib/puppet/network/auth_config_parser.rb +0 -90
- data/lib/puppet/network/authstore.rb +0 -283
- data/lib/puppet/network/http/api/master/v3/authorization.rb +0 -18
- data/lib/puppet/network/http/api/master/v3/environment.rb +0 -88
- data/lib/puppet/network/http/base_pool.rb +0 -36
- data/lib/puppet/network/http/compression.rb +0 -127
- data/lib/puppet/network/http/connection_adapter.rb +0 -184
- data/lib/puppet/network/http/nocache_pool.rb +0 -28
- data/lib/puppet/network/rest_controller.rb +0 -2
- data/lib/puppet/network/rights.rb +0 -210
- data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +0 -66
- data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +0 -22
- data/lib/puppet/parser/environment_compiler.rb +0 -202
- data/lib/puppet/pops/types/enumeration.rb +0 -16
- data/lib/puppet/resource/capability_finder.rb +0 -154
- data/lib/puppet/rest/errors.rb +0 -15
- data/lib/puppet/rest/response.rb +0 -35
- data/lib/puppet/rest/route.rb +0 -85
- data/lib/puppet/rest/routes.rb +0 -135
- data/lib/puppet/ssl/host.rb +0 -505
- data/lib/puppet/ssl/key.rb +0 -61
- data/lib/puppet/ssl/validator.rb +0 -61
- data/lib/puppet/ssl/validator/default_validator.rb +0 -209
- data/lib/puppet/ssl/validator/no_validator.rb +0 -22
- data/lib/puppet/ssl/verifier_adapter.rb +0 -58
- data/lib/puppet/status.rb +0 -40
- data/lib/puppet/util/connection.rb +0 -88
- data/lib/puppet/util/fact_dif.rb +0 -62
- data/lib/puppet/util/ssl.rb +0 -83
- data/lib/puppet/util/windows/api_types.rb +0 -309
- data/lib/puppet/util/windows/monkey_patches/dir.rb +0 -40
- data/lib/puppet/vendor/load_pathspec.rb +0 -1
- data/lib/puppet/vendor/pathspec/CHANGELOG.md +0 -2
- data/lib/puppet/vendor/pathspec/LICENSE +0 -201
- data/lib/puppet/vendor/pathspec/PUPPET_README.md +0 -6
- data/lib/puppet/vendor/pathspec/README.md +0 -53
- data/lib/puppet/vendor/pathspec/lib/pathspec.rb +0 -122
- data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +0 -275
- data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +0 -17
- data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +0 -14
- data/man/man8/puppet-key.8 +0 -126
- data/man/man8/puppet-man.8 +0 -76
- data/man/man8/puppet-status.8 +0 -108
- data/spec/integration/network/authconfig_spec.rb +0 -256
- data/spec/integration/util/windows/monkey_patches/dir_spec.rb +0 -11
- data/spec/unit/application/man_spec.rb +0 -52
- data/spec/unit/capability_spec.rb +0 -414
- data/spec/unit/face/key_spec.rb +0 -9
- data/spec/unit/face/module/search_spec.rb +0 -231
- data/spec/unit/face/status_spec.rb +0 -9
- data/spec/unit/indirector/certificate/file_spec.rb +0 -14
- data/spec/unit/indirector/certificate/rest_spec.rb +0 -61
- data/spec/unit/indirector/certificate_request/file_spec.rb +0 -14
- data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -25
- data/spec/unit/indirector/key/file_spec.rb +0 -78
- data/spec/unit/indirector/ssl_file_spec.rb +0 -305
- data/spec/unit/indirector/status/local_spec.rb +0 -10
- data/spec/unit/indirector/status/rest_spec.rb +0 -50
- data/spec/unit/module_tool/applications/searcher_spec.rb +0 -38
- data/spec/unit/network/auth_config_parser_spec.rb +0 -115
- data/spec/unit/network/authstore_spec.rb +0 -422
- data/spec/unit/network/http/api/master/v3/authorization_spec.rb +0 -57
- data/spec/unit/network/http/api/master/v3/environment_spec.rb +0 -185
- data/spec/unit/network/http/compression_spec.rb +0 -240
- data/spec/unit/network/http/nocache_pool_spec.rb +0 -64
- data/spec/unit/network/http_spec.rb +0 -9
- data/spec/unit/network/rights_spec.rb +0 -439
- data/spec/unit/parser/environment_compiler_spec.rb +0 -730
- data/spec/unit/pops/types/enumeration_spec.rb +0 -51
- data/spec/unit/resource/capability_finder_spec.rb +0 -148
- data/spec/unit/rest/route_spec.rb +0 -132
- data/spec/unit/ssl/host_spec.rb +0 -645
- data/spec/unit/ssl/key_spec.rb +0 -173
- data/spec/unit/ssl/validator_spec.rb +0 -278
- data/spec/unit/status_spec.rb +0 -45
- data/spec/unit/util/ssl_spec.rb +0 -91
@@ -1,3 +1,4 @@
|
|
1
|
+
# coding: utf-8
|
1
2
|
require 'spec_helper'
|
2
3
|
|
3
4
|
require 'puppet_spec/files'
|
@@ -657,9 +658,9 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
|
|
657
658
|
|
658
659
|
CHECKSUM_TYPES_TO_TRY.each do |checksum_type, checksum|
|
659
660
|
describe "when checksum_type is #{checksum_type}" do
|
660
|
-
# FileBucket uses the globally configured default for lookup by digest, which right now is
|
661
|
+
# FileBucket uses the globally configured default for lookup by digest, which right now is SHA256.
|
661
662
|
it_should_behave_like "files are backed up", {:checksum => checksum_type} do
|
662
|
-
let(:filebucket_digest) { Proc.new {|x| Puppet::Util::Checksums.
|
663
|
+
let(:filebucket_digest) { Proc.new {|x| Puppet::Util::Checksums.sha256(x)} }
|
663
664
|
end
|
664
665
|
end
|
665
666
|
end
|
@@ -1727,7 +1728,7 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
|
|
1727
1728
|
#{test_cmd} "644" == "$(#{stat_cmd} ^)"
|
1728
1729
|
}))
|
1729
1730
|
report = catalog.apply.report
|
1730
|
-
expect(report.resource_statuses["File[#{path}]"].events.first.message).to match(/defined content as '{
|
1731
|
+
expect(report.resource_statuses["File[#{path}]"].events.first.message).to match(/defined content as '{sha256}/)
|
1731
1732
|
expect(report.resource_statuses["File[#{path}]"]).not_to be_failed
|
1732
1733
|
expect(Puppet::FileSystem.exist?(path)).to be_truthy
|
1733
1734
|
end
|
@@ -1741,7 +1742,7 @@ describe Puppet::Type.type(:file), :uses_checksums => true do
|
|
1741
1742
|
#{test_cmd} "555" == "$(#{stat_cmd} ^)"
|
1742
1743
|
}))
|
1743
1744
|
report = catalog.apply.report
|
1744
|
-
expect(report.resource_statuses["File[#{path}]"].events.first.message).to match(/defined content as '{
|
1745
|
+
expect(report.resource_statuses["File[#{path}]"].events.first.message).to match(/defined content as '{sha256}/)
|
1745
1746
|
expect(report.resource_statuses["File[#{path}]"]).not_to be_failed
|
1746
1747
|
expect(Puppet::FileSystem.exist?(path)).to be_truthy
|
1747
1748
|
end
|
@@ -0,0 +1,231 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe 'Process', if: Puppet::Util::Platform.windows? do
|
6
|
+
describe '.create' do
|
7
|
+
context 'with common flags' do
|
8
|
+
it do
|
9
|
+
Process.create(
|
10
|
+
app_name: 'cmd.exe /c echo 123',
|
11
|
+
creation_flags: 0x00000008,
|
12
|
+
process_inherit: false,
|
13
|
+
thread_inherit: false,
|
14
|
+
cwd: 'C:\\'
|
15
|
+
)
|
16
|
+
end
|
17
|
+
|
18
|
+
context 'when FFI call fails' do
|
19
|
+
before do
|
20
|
+
allow(Process).to receive(:CreateProcessW).and_return(false)
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'raises SystemCallError' do
|
24
|
+
expect do
|
25
|
+
Process.create(
|
26
|
+
app_name: 'cmd.exe /c echo 123',
|
27
|
+
creation_flags: 0x00000008
|
28
|
+
)
|
29
|
+
end.to raise_error(SystemCallError)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
context 'with logon' do
|
35
|
+
context 'without password' do
|
36
|
+
it 'raises error' do
|
37
|
+
expect do
|
38
|
+
Process.create(
|
39
|
+
app_name: 'cmd.exe /c echo 123',
|
40
|
+
creation_flags: 0x00000008,
|
41
|
+
with_logon: 'test'
|
42
|
+
)
|
43
|
+
end.to raise_error(ArgumentError, 'password must be specified if with_logon is used')
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
context 'with common flags' do
|
48
|
+
before do
|
49
|
+
allow(Process).to receive(:CreateProcessWithLogonW).and_return(true)
|
50
|
+
end
|
51
|
+
|
52
|
+
it do
|
53
|
+
Process.create(
|
54
|
+
app_name: 'cmd.exe /c echo 123',
|
55
|
+
creation_flags: 0x00000008,
|
56
|
+
process_inherit: false,
|
57
|
+
thread_inherit: false,
|
58
|
+
with_logon: 'test',
|
59
|
+
password: 'password',
|
60
|
+
cwd: 'C:\\'
|
61
|
+
)
|
62
|
+
end
|
63
|
+
|
64
|
+
context 'when FFI call fails' do
|
65
|
+
before do
|
66
|
+
allow(Process).to receive(:CreateProcessWithLogonW).and_return(false)
|
67
|
+
end
|
68
|
+
|
69
|
+
it 'raises SystemCallError' do
|
70
|
+
expect do
|
71
|
+
Process.create(
|
72
|
+
app_name: 'cmd.exe /c echo 123',
|
73
|
+
creation_flags: 0x00000008,
|
74
|
+
with_logon: 'test',
|
75
|
+
password: 'password'
|
76
|
+
)
|
77
|
+
end.to raise_error(SystemCallError)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
describe 'validations' do
|
84
|
+
context 'when args is not a hash' do
|
85
|
+
it 'raises TypeError' do
|
86
|
+
expect do
|
87
|
+
Process.create('test')
|
88
|
+
end.to raise_error(TypeError, 'hash keyword arguments expected')
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
context 'when args key is invalid' do
|
93
|
+
it 'raises ArgumentError' do
|
94
|
+
expect do
|
95
|
+
Process.create(invalid_key: 'test')
|
96
|
+
end.to raise_error(ArgumentError, "invalid key 'invalid_key'")
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
context 'when startup_info is invalid' do
|
101
|
+
it 'raises ArgumentError' do
|
102
|
+
expect do
|
103
|
+
Process.create(startup_info: { invalid_key: 'test' })
|
104
|
+
end.to raise_error(ArgumentError, "invalid startup_info key 'invalid_key'")
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
context 'when app_name and command_line are missing' do
|
109
|
+
it 'raises ArgumentError' do
|
110
|
+
expect do
|
111
|
+
Process.create(creation_flags: 0)
|
112
|
+
end.to raise_error(ArgumentError, 'command_line or app_name must be specified')
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
context 'when executable is not found' do
|
117
|
+
it 'raises Errno::ENOENT' do
|
118
|
+
expect do
|
119
|
+
Process.create(app_name: 'non_existent')
|
120
|
+
end.to raise_error(Errno::ENOENT)
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
context 'when environment is not specified' do
|
126
|
+
it 'passes local environment' do
|
127
|
+
stdout_read, stdout_write = IO.pipe
|
128
|
+
ENV['TEST_ENV'] = 'B'
|
129
|
+
|
130
|
+
Process.create(
|
131
|
+
app_name: 'cmd.exe /c echo %TEST_ENV%',
|
132
|
+
creation_flags: 0x00000008,
|
133
|
+
startup_info: { stdout: stdout_write }
|
134
|
+
)
|
135
|
+
|
136
|
+
stdout_write.close
|
137
|
+
expect(stdout_read.read.chomp).to eql('B')
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
context 'when environment is specified' do
|
142
|
+
it 'does not pass local environment' do
|
143
|
+
stdout_read, stdout_write = IO.pipe
|
144
|
+
ENV['TEST_ENV'] = 'B'
|
145
|
+
|
146
|
+
Process.create(
|
147
|
+
app_name: 'cmd.exe /c echo %TEST_ENV%',
|
148
|
+
creation_flags: 0x00000008,
|
149
|
+
environment: '',
|
150
|
+
startup_info: { stdout: stdout_write }
|
151
|
+
)
|
152
|
+
|
153
|
+
stdout_write.close
|
154
|
+
expect(stdout_read.read.chomp).to eql('%TEST_ENV%')
|
155
|
+
end
|
156
|
+
|
157
|
+
it 'supports :environment as a string' do
|
158
|
+
stdout_read, stdout_write = IO.pipe
|
159
|
+
|
160
|
+
Process.create(
|
161
|
+
app_name: 'cmd.exe /c echo %A% %B%',
|
162
|
+
creation_flags: 0x00000008,
|
163
|
+
environment: 'A=C;B=D',
|
164
|
+
startup_info: { stdout: stdout_write }
|
165
|
+
)
|
166
|
+
|
167
|
+
stdout_write.close
|
168
|
+
expect(stdout_read.read.chomp).to eql('C D')
|
169
|
+
end
|
170
|
+
|
171
|
+
it 'supports :environment as a string' do
|
172
|
+
stdout_read, stdout_write = IO.pipe
|
173
|
+
|
174
|
+
Process.create(
|
175
|
+
app_name: 'cmd.exe /c echo %A% %C%',
|
176
|
+
creation_flags: 0x00000008,
|
177
|
+
environment: ['A=B;X;', 'C=;D;Y'],
|
178
|
+
startup_info: { stdout: stdout_write }
|
179
|
+
)
|
180
|
+
|
181
|
+
stdout_write.close
|
182
|
+
expect(stdout_read.read.chomp).to eql('B;X; ;D;Y')
|
183
|
+
end
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
187
|
+
describe '.setpriority' do
|
188
|
+
let(:priority) { Process::BELOW_NORMAL_PRIORITY_CLASS }
|
189
|
+
|
190
|
+
context 'when success' do
|
191
|
+
it 'returns 0' do
|
192
|
+
expect(Process.setpriority(0, Process.pid, priority)).to eql(0)
|
193
|
+
end
|
194
|
+
|
195
|
+
it 'treats an int argument of zero as the current process' do
|
196
|
+
expect(Process.setpriority(0, 0, priority)).to eql(0)
|
197
|
+
end
|
198
|
+
end
|
199
|
+
|
200
|
+
context 'when invalid arguments are sent' do
|
201
|
+
it 'raises TypeError' do
|
202
|
+
expect {
|
203
|
+
Process.setpriority('test', 0, priority)
|
204
|
+
}.to raise_error(TypeError)
|
205
|
+
end
|
206
|
+
end
|
207
|
+
|
208
|
+
context 'when process is not found' do
|
209
|
+
before do
|
210
|
+
allow(Process).to receive(:OpenProcess).and_return(0)
|
211
|
+
end
|
212
|
+
it 'raises SystemCallError' do
|
213
|
+
expect {
|
214
|
+
Process.setpriority(0, 0, priority)
|
215
|
+
}.to raise_error(SystemCallError)
|
216
|
+
end
|
217
|
+
end
|
218
|
+
|
219
|
+
context 'when priority is not set' do
|
220
|
+
before do
|
221
|
+
allow(Process).to receive(:SetPriorityClass).and_return(false)
|
222
|
+
end
|
223
|
+
|
224
|
+
it 'raises SystemCallError' do
|
225
|
+
expect {
|
226
|
+
Process.setpriority(0, 0, priority)
|
227
|
+
}.to raise_error(SystemCallError)
|
228
|
+
end
|
229
|
+
end
|
230
|
+
end
|
231
|
+
end
|
@@ -822,7 +822,7 @@ describe "Puppet::Util::Windows::Security", :if => Puppet::Util::Platform.window
|
|
822
822
|
end
|
823
823
|
|
824
824
|
describe "locked files" do
|
825
|
-
let (:explorer) { File.join(
|
825
|
+
let (:explorer) { File.join(ENV['SystemRoot'], "explorer.exe") }
|
826
826
|
|
827
827
|
it "should get the owner" do
|
828
828
|
expect(winsec.get_owner(explorer)).to match(/^S-1-5-/)
|
@@ -103,7 +103,7 @@ class PuppetSpec::Puppetserver
|
|
103
103
|
end
|
104
104
|
|
105
105
|
def register_mounts(mounts: {})
|
106
|
-
register_mount('/status/v1/simple/
|
106
|
+
register_mount('/status/v1/simple/server', proc { |req, res| }, nil)
|
107
107
|
register_mount('/puppet/v3/node', mounts[:node], NodeServlet)
|
108
108
|
register_mount('/puppet/v3/catalog', mounts[:catalog], CatalogServlet)
|
109
109
|
register_mount('/puppet/v3/file_metadatas', mounts[:file_metadatas], FileMetadatasServlet)
|
@@ -11,6 +11,7 @@ module PuppetSpec::Settings
|
|
11
11
|
:confdir => { :type => :directory, :default => "test", :desc => "confdir" },
|
12
12
|
:codedir => { :type => :directory, :default => "test", :desc => "codedir" },
|
13
13
|
:vardir => { :type => :directory, :default => "test", :desc => "vardir" },
|
14
|
+
:publicdir => { :type => :directory, :default => "test", :desc => "publicdir" },
|
14
15
|
:rundir => { :type => :directory, :default => "test", :desc => "rundir" },
|
15
16
|
}.freeze
|
16
17
|
|
data/spec/spec_helper.rb
CHANGED
@@ -145,6 +145,7 @@ RSpec.configure do |config|
|
|
145
145
|
|
146
146
|
base = PuppetSpec::Files.tmpdir('tmp_settings')
|
147
147
|
Puppet[:vardir] = File.join(base, 'var')
|
148
|
+
Puppet[:publicdir] = File.join(base, 'public')
|
148
149
|
Puppet[:confdir] = File.join(base, 'etc')
|
149
150
|
Puppet[:codedir] = File.join(base, 'code')
|
150
151
|
Puppet[:logdir] = "$vardir/log"
|
@@ -152,6 +153,7 @@ RSpec.configure do |config|
|
|
152
153
|
Puppet[:hiera_config] = File.join(base, 'hiera')
|
153
154
|
|
154
155
|
FileUtils.mkdir_p Puppet[:statedir]
|
156
|
+
FileUtils.mkdir_p Puppet[:publicdir]
|
155
157
|
|
156
158
|
Puppet::Test::TestHelper.before_each_test()
|
157
159
|
end
|
data/spec/unit/agent_spec.rb
CHANGED
@@ -24,8 +24,6 @@ end
|
|
24
24
|
|
25
25
|
describe Puppet::Agent do
|
26
26
|
before do
|
27
|
-
allow(Puppet::Status.indirection).to receive(:find).and_return(Puppet::Status.new("version" => Puppet.version))
|
28
|
-
|
29
27
|
@agent = Puppet::Agent.new(AgentTestClient, false)
|
30
28
|
|
31
29
|
# make Puppet::Application safe for stubbing; restore in an :after block; silence warnings for this.
|
@@ -50,4 +50,90 @@ describe Puppet::Application::Facts do
|
|
50
50
|
}.to exit_with(0)
|
51
51
|
.and output(expected).to_stdout
|
52
52
|
end
|
53
|
+
|
54
|
+
context 'when show action is called' do
|
55
|
+
let(:expected) { <<~END }
|
56
|
+
{
|
57
|
+
"filesystems": "apfs,autofs,devfs",
|
58
|
+
"macaddress": "64:52:11:22:03:25"
|
59
|
+
}
|
60
|
+
END
|
61
|
+
|
62
|
+
before :each do
|
63
|
+
Puppet::Node::Facts.indirection.terminus_class = :facter
|
64
|
+
allow(Facter).to receive(:resolve).and_return(values)
|
65
|
+
app.command_line.args = %w{show}
|
66
|
+
end
|
67
|
+
|
68
|
+
it 'correctly displays facts with default formatting' do
|
69
|
+
expect {
|
70
|
+
app.run
|
71
|
+
}.to exit_with(0)
|
72
|
+
.and output(expected).to_stdout
|
73
|
+
end
|
74
|
+
|
75
|
+
it 'displays a single fact value' do
|
76
|
+
app.command_line.args << 'filesystems' << '--value-only'
|
77
|
+
expect {
|
78
|
+
app.run
|
79
|
+
}.to exit_with(0)
|
80
|
+
.and output("apfs,autofs,devfs\n").to_stdout
|
81
|
+
end
|
82
|
+
|
83
|
+
it "warns and ignores value-only when multiple fact names are specified" do
|
84
|
+
app.command_line.args << 'filesystems' << 'macaddress' << '--value-only'
|
85
|
+
expect {
|
86
|
+
app.run
|
87
|
+
}.to exit_with(0)
|
88
|
+
.and output(expected).to_stdout
|
89
|
+
.and output(/it can only be used when querying for a single fact/).to_stderr
|
90
|
+
end
|
91
|
+
|
92
|
+
{
|
93
|
+
"type_hash" => [{'a' => 2}, "{\n \"a\": 2\n}"],
|
94
|
+
"type_array" => [[], "[\n\n]"],
|
95
|
+
"type_string" => ["str", "str"],
|
96
|
+
"type_int" => [1, "1"],
|
97
|
+
"type_float" => [1.0, "1.0"],
|
98
|
+
"type_true" => [true, "true"],
|
99
|
+
"type_false" => [false, "false"],
|
100
|
+
"type_nil" => [nil, ""],
|
101
|
+
"type_sym" => [:sym, "sym"]
|
102
|
+
}.each_pair do |name, values|
|
103
|
+
it "renders '#{name}' as '#{values.last}'" do
|
104
|
+
fact_value = values.first
|
105
|
+
fact_output = values.last
|
106
|
+
|
107
|
+
allow(Facter).to receive(:resolve).and_return({name => fact_value})
|
108
|
+
|
109
|
+
app.command_line.args << name << '--value-only'
|
110
|
+
expect {
|
111
|
+
app.run
|
112
|
+
}.to exit_with(0)
|
113
|
+
.and output("#{fact_output}\n").to_stdout
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
context 'when default action is called' do
|
119
|
+
let(:expected) { <<~END }
|
120
|
+
---
|
121
|
+
filesystems: apfs,autofs,devfs
|
122
|
+
macaddress: 64:52:11:22:03:25
|
123
|
+
END
|
124
|
+
|
125
|
+
before :each do
|
126
|
+
Puppet::Node::Facts.indirection.terminus_class = :facter
|
127
|
+
allow(Facter).to receive(:resolve).and_return(values)
|
128
|
+
app.command_line.args = %w{--render-as yaml}
|
129
|
+
end
|
130
|
+
|
131
|
+
it 'calls show action' do
|
132
|
+
expect {
|
133
|
+
app.run
|
134
|
+
}.to exit_with(0)
|
135
|
+
.and output(expected).to_stdout
|
136
|
+
expect(app.action.name).to eq(:show)
|
137
|
+
end
|
138
|
+
end
|
53
139
|
end
|
@@ -114,15 +114,15 @@ describe Puppet::Application::Filebucket do
|
|
114
114
|
end
|
115
115
|
|
116
116
|
it "should default to the first good server_list entry if server_list is set" do
|
117
|
-
stub_request(:get, "https://foo:8140/status/v1/simple/
|
117
|
+
stub_request(:get, "https://foo:8140/status/v1/simple/server").to_return(status: 200)
|
118
118
|
Puppet[:server_list] = "foo,bar,baz"
|
119
119
|
expect(Puppet::FileBucket::Dipper).to receive(:new).with(hash_including(Server: "foo"))
|
120
120
|
@filebucket.setup
|
121
121
|
end
|
122
122
|
|
123
123
|
it "should walk server_list until it finds a good entry" do
|
124
|
-
stub_request(:get, "https://foo:8140/status/v1/simple/
|
125
|
-
stub_request(:get, "https://bar:8140/status/v1/simple/
|
124
|
+
stub_request(:get, "https://foo:8140/status/v1/simple/server").to_return(status: 502)
|
125
|
+
stub_request(:get, "https://bar:8140/status/v1/simple/server").to_return(status: 200)
|
126
126
|
Puppet[:server_list] = "foo,bar,baz"
|
127
127
|
expect(Puppet::FileBucket::Dipper).to receive(:new).with(hash_including(Server: "bar"))
|
128
128
|
@filebucket.setup
|
@@ -130,6 +130,8 @@ describe Puppet::Application::Filebucket do
|
|
130
130
|
|
131
131
|
# FileBucket catches any exceptions raised, logs them, then just exits
|
132
132
|
it "raises an error if there are no functional servers in server_list" do
|
133
|
+
stub_request(:get, "https://foo:8140/status/v1/simple/server").to_return(status: 404)
|
134
|
+
stub_request(:get, "https://bar:8140/status/v1/simple/server").to_return(status: 404)
|
133
135
|
stub_request(:get, "https://foo:8140/status/v1/simple/master").to_return(status: 404)
|
134
136
|
stub_request(:get, "https://bar:8140/status/v1/simple/master").to_return(status: 404)
|
135
137
|
Puppet[:server] = 'horacio'
|
@@ -145,7 +147,7 @@ describe Puppet::Application::Filebucket do
|
|
145
147
|
end
|
146
148
|
|
147
149
|
it "should take both the server and port specified in server_list" do
|
148
|
-
stub_request(:get, "https://foo:632/status/v1/simple/
|
150
|
+
stub_request(:get, "https://foo:632/status/v1/simple/server").to_return(status: 200)
|
149
151
|
Puppet[:server_list] = "foo:632,bar:6215,baz:351"
|
150
152
|
expect(Puppet::FileBucket::Dipper).to receive(:new).with({ :Server => "foo", :Port => 632 })
|
151
153
|
@filebucket.setup
|
@@ -185,11 +187,11 @@ describe Puppet::Application::Filebucket do
|
|
185
187
|
@filebucket.get
|
186
188
|
end
|
187
189
|
|
188
|
-
it "should call the client getfile method with the given
|
189
|
-
|
190
|
-
allow(@filebucket).to receive(:args).and_return([
|
190
|
+
it "should call the client getfile method with the given digest" do
|
191
|
+
digest = 'DEADBEEF'
|
192
|
+
allow(@filebucket).to receive(:args).and_return([digest])
|
191
193
|
|
192
|
-
expect(@client).to receive(:getfile).with(
|
194
|
+
expect(@client).to receive(:getfile).with(digest)
|
193
195
|
|
194
196
|
@filebucket.get
|
195
197
|
end
|
@@ -223,12 +225,12 @@ describe Puppet::Application::Filebucket do
|
|
223
225
|
end
|
224
226
|
|
225
227
|
describe "the command restore" do
|
226
|
-
it "should call the client getfile method with the given
|
227
|
-
|
228
|
-
file=
|
229
|
-
allow(@filebucket).to receive(:args).and_return([file,
|
228
|
+
it "should call the client getfile method with the given digest" do
|
229
|
+
digest = 'DEADBEEF'
|
230
|
+
file = 'testfile'
|
231
|
+
allow(@filebucket).to receive(:args).and_return([file, digest])
|
230
232
|
|
231
|
-
expect(@client).to receive(:restore).with(file,
|
233
|
+
expect(@client).to receive(:restore).with(file, digest)
|
232
234
|
|
233
235
|
@filebucket.restore
|
234
236
|
end
|
@@ -236,55 +238,55 @@ describe Puppet::Application::Filebucket do
|
|
236
238
|
|
237
239
|
describe "the command diff" do
|
238
240
|
it "should call the client diff method with 2 given checksums" do
|
239
|
-
|
240
|
-
|
241
|
+
digest_a = 'DEADBEEF'
|
242
|
+
digest_b = 'BEEF'
|
241
243
|
allow(Puppet::FileSystem).to receive(:exist?).and_return(false)
|
242
|
-
allow(@filebucket).to receive(:args).and_return([
|
244
|
+
allow(@filebucket).to receive(:args).and_return([digest_a, digest_b])
|
243
245
|
|
244
|
-
expect(@client).to receive(:diff).with(
|
246
|
+
expect(@client).to receive(:diff).with(digest_a, digest_b, nil, nil)
|
245
247
|
|
246
248
|
@filebucket.diff
|
247
249
|
end
|
248
250
|
|
249
|
-
it "should call the
|
250
|
-
|
251
|
-
|
252
|
-
allow(Puppet::FileSystem).to receive(:exist?).with(
|
253
|
-
allow(Puppet::FileSystem).to receive(:exist?).with(
|
254
|
-
allow(@filebucket).to receive(:args).and_return([
|
251
|
+
it "should call the client diff with a path if the second argument is a file" do
|
252
|
+
digest_a = 'DEADBEEF'
|
253
|
+
digest_b = 'BEEF'
|
254
|
+
allow(Puppet::FileSystem).to receive(:exist?).with(digest_a).and_return(false)
|
255
|
+
allow(Puppet::FileSystem).to receive(:exist?).with(digest_b).and_return(true)
|
256
|
+
allow(@filebucket).to receive(:args).and_return([digest_a, digest_b])
|
255
257
|
|
256
|
-
expect(@client).to receive(:diff).with(
|
258
|
+
expect(@client).to receive(:diff).with(digest_a, nil, nil, digest_b)
|
257
259
|
|
258
260
|
@filebucket.diff
|
259
261
|
end
|
260
262
|
|
261
|
-
it "should call the
|
262
|
-
|
263
|
-
|
264
|
-
allow(Puppet::FileSystem).to receive(:exist?).with(
|
265
|
-
allow(Puppet::FileSystem).to receive(:exist?).with(
|
266
|
-
allow(@filebucket).to receive(:args).and_return([
|
263
|
+
it "should call the client diff with a path if the first argument is a file" do
|
264
|
+
digest_a = 'DEADBEEF'
|
265
|
+
digest_b = 'BEEF'
|
266
|
+
allow(Puppet::FileSystem).to receive(:exist?).with(digest_a).and_return(true)
|
267
|
+
allow(Puppet::FileSystem).to receive(:exist?).with(digest_b).and_return(false)
|
268
|
+
allow(@filebucket).to receive(:args).and_return([digest_a, digest_b])
|
267
269
|
|
268
|
-
expect(@client).to receive(:diff).with(nil,
|
270
|
+
expect(@client).to receive(:diff).with(nil, digest_b, digest_a, nil)
|
269
271
|
|
270
272
|
@filebucket.diff
|
271
273
|
end
|
272
274
|
|
273
275
|
it "should call the clien diff with paths if the both arguments are files" do
|
274
|
-
|
275
|
-
|
276
|
-
allow(Puppet::FileSystem).to receive(:exist?).with(
|
277
|
-
allow(Puppet::FileSystem).to receive(:exist?).with(
|
278
|
-
allow(@filebucket).to receive(:args).and_return([
|
276
|
+
digest_a = 'DEADBEEF'
|
277
|
+
digest_b = 'BEEF'
|
278
|
+
allow(Puppet::FileSystem).to receive(:exist?).with(digest_a).and_return(true)
|
279
|
+
allow(Puppet::FileSystem).to receive(:exist?).with(digest_b).and_return(true)
|
280
|
+
allow(@filebucket).to receive(:args).and_return([digest_a, digest_b])
|
279
281
|
|
280
|
-
expect(@client).to receive(:diff).with(nil, nil,
|
282
|
+
expect(@client).to receive(:diff).with(nil, nil, digest_a, digest_b)
|
281
283
|
|
282
284
|
@filebucket.diff
|
283
285
|
end
|
284
286
|
|
285
287
|
it "should fail if only one checksum is given" do
|
286
|
-
|
287
|
-
allow(@filebucket).to receive(:args).and_return([
|
288
|
+
digest_a = 'DEADBEEF'
|
289
|
+
allow(@filebucket).to receive(:args).and_return([digest_a])
|
288
290
|
|
289
291
|
expect { @filebucket.diff }.to raise_error Puppet::Error
|
290
292
|
end
|