puppet 4.2.3-x86-mingw32 → 4.3.0-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- data/Gemfile +3 -0
- data/README.md +1 -1
- data/ext/debian/puppet.init +0 -1
- data/ext/debian/puppet.logrotate +14 -5
- data/ext/osx/puppet.plist +0 -2
- data/ext/redhat/client.init +13 -5
- data/ext/redhat/logrotate +15 -3
- data/ext/redhat/puppet.spec.erb +5 -1
- data/ext/redhat/server.init +1 -1
- data/ext/systemd/puppet.service +1 -0
- data/lib/puppet.rb +12 -0
- data/lib/puppet/agent.rb +4 -4
- data/lib/puppet/agent/locker.rb +11 -2
- data/lib/puppet/application/agent.rb +5 -1
- data/lib/puppet/application/apply.rb +4 -0
- data/lib/puppet/application/filebucket.rb +78 -4
- data/lib/puppet/application/lookup.rb +356 -0
- data/lib/puppet/application/master.rb +3 -0
- data/lib/puppet/configurer.rb +9 -5
- data/lib/puppet/context.rb +16 -1
- data/lib/puppet/context/trusted_information.rb +21 -1
- data/lib/puppet/daemon.rb +17 -13
- data/lib/puppet/data_binding.rb +4 -2
- data/lib/puppet/data_providers.rb +12 -13
- data/lib/puppet/data_providers/data_adapter.rb +7 -68
- data/lib/puppet/data_providers/data_function_support.rb +5 -26
- data/lib/puppet/data_providers/function_env_data_provider.rb +0 -10
- data/lib/puppet/data_providers/function_module_data_provider.rb +0 -22
- data/lib/puppet/data_providers/hiera_config.rb +106 -0
- data/lib/puppet/data_providers/hiera_env_data_provider.rb +18 -0
- data/lib/puppet/data_providers/hiera_interpolate.rb +97 -0
- data/lib/puppet/data_providers/hiera_module_data_provider.rb +23 -0
- data/lib/puppet/data_providers/hiera_support.rb +37 -0
- data/lib/puppet/data_providers/json_data_provider_factory.rb +31 -0
- data/lib/puppet/data_providers/lookup_adapter.rb +200 -0
- data/lib/puppet/data_providers/yaml_data_provider_factory.rb +32 -0
- data/lib/puppet/defaults.rb +12 -2
- data/lib/puppet/error.rb +4 -0
- data/lib/puppet/face/module/changes.rb +2 -1
- data/lib/puppet/feature/cfacter.rb +1 -0
- data/lib/puppet/file_bucket/dipper.rb +58 -2
- data/lib/puppet/functions.rb +2 -4
- data/lib/puppet/functions/assert_type.rb +48 -12
- data/lib/puppet/functions/defined.rb +79 -48
- data/lib/puppet/functions/each.rb +85 -27
- data/lib/puppet/functions/filter.rb +58 -23
- data/lib/puppet/functions/hiera.rb +76 -3
- data/lib/puppet/functions/hiera_array.rb +65 -3
- data/lib/puppet/functions/hiera_hash.rb +74 -2
- data/lib/puppet/functions/hiera_include.rb +75 -2
- data/lib/puppet/functions/lookup.rb +19 -17
- data/lib/puppet/functions/map.rb +56 -21
- data/lib/puppet/functions/match.rb +29 -12
- data/lib/puppet/functions/reduce.rb +95 -58
- data/lib/puppet/functions/versioncmp.rb +36 -0
- data/lib/puppet/functions/with.rb +15 -7
- data/lib/puppet/indirector/catalog/compiler.rb +3 -3
- data/lib/puppet/indirector/catalog/static_compiler.rb +46 -30
- data/lib/puppet/indirector/data_binding/none.rb +4 -1
- data/lib/puppet/indirector/file_bucket_file/file.rb +58 -1
- data/lib/puppet/indirector/hiera.rb +4 -0
- data/lib/puppet/indirector/json.rb +1 -1
- data/lib/puppet/indirector/msgpack.rb +1 -1
- data/lib/puppet/indirector/request.rb +7 -8
- data/lib/puppet/indirector/resource_type/parser.rb +5 -3
- data/lib/puppet/info_service.rb +7 -0
- data/lib/puppet/info_service/class_information_service.rb +111 -0
- data/lib/puppet/module_tool/metadata.rb +32 -9
- data/lib/puppet/module_tool/skeleton/templates/generator/README.md.erb +42 -38
- data/lib/puppet/network/authconfig.rb +21 -1
- data/lib/puppet/network/authorization.rb +8 -1
- data/lib/puppet/network/http/api/master/v3.rb +7 -1
- data/lib/puppet/network/http/api/master/v3/environment.rb +59 -0
- data/lib/puppet/node/environment.rb +9 -2
- data/lib/puppet/parser.rb +3 -0
- data/lib/puppet/parser/ast/pops_bridge.rb +39 -1
- data/lib/puppet/parser/compiler.rb +302 -12
- data/lib/puppet/parser/compiler/catalog_validator.rb +33 -0
- data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +64 -0
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +38 -0
- data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +20 -0
- data/lib/puppet/parser/environment_compiler.rb +165 -0
- data/lib/puppet/parser/functions/assert_type.rb +46 -16
- data/lib/puppet/parser/functions/defined.rb +105 -68
- data/lib/puppet/parser/functions/each.rb +85 -27
- data/lib/puppet/parser/functions/filter.rb +59 -23
- data/lib/puppet/parser/functions/hiera.rb +83 -27
- data/lib/puppet/parser/functions/hiera_array.rb +71 -28
- data/lib/puppet/parser/functions/hiera_hash.rb +81 -30
- data/lib/puppet/parser/functions/hiera_include.rb +81 -40
- data/lib/puppet/parser/functions/map.rb +55 -20
- data/lib/puppet/parser/functions/match.rb +27 -12
- data/lib/puppet/parser/functions/reduce.rb +97 -60
- data/lib/puppet/parser/functions/with.rb +16 -8
- data/lib/puppet/parser/resource.rb +98 -19
- data/lib/puppet/plugins/configuration.rb +3 -2
- data/lib/puppet/plugins/data_providers.rb +12 -60
- data/lib/puppet/plugins/data_providers/data_provider.rb +283 -0
- data/lib/puppet/plugins/data_providers/registry.rb +84 -0
- data/lib/puppet/pops.rb +19 -17
- data/lib/puppet/pops/adapters.rb +12 -0
- data/lib/puppet/pops/binder/binder.rb +2 -2
- data/lib/puppet/pops/binder/bindings_checker.rb +1 -1
- data/lib/puppet/pops/binder/bindings_label_provider.rb +3 -1
- data/lib/puppet/pops/binder/bindings_loader.rb +6 -2
- data/lib/puppet/pops/binder/bindings_model_meta.rb +2 -2
- data/lib/puppet/pops/binder/config/binder_config.rb +1 -1
- data/lib/puppet/pops/binder/injector.rb +4 -4
- data/lib/puppet/pops/binder/key_factory.rb +3 -9
- data/lib/puppet/pops/binder/scheme_handler/module_scheme.rb +68 -9
- data/lib/puppet/pops/evaluator/access_operator.rb +27 -60
- data/lib/puppet/pops/evaluator/closure.rb +8 -8
- data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +1 -1
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +5 -5
- data/lib/puppet/pops/evaluator/literal_evaluator.rb +87 -0
- data/lib/puppet/pops/evaluator/relationship_operator.rb +7 -1
- data/lib/puppet/pops/functions/dispatcher.rb +3 -3
- data/lib/puppet/pops/issues.rb +1 -1
- data/lib/puppet/pops/label_provider.rb +1 -1
- data/lib/puppet/pops/lookup.rb +25 -47
- data/lib/puppet/pops/lookup/explainer.rb +402 -0
- data/lib/puppet/pops/lookup/invocation.rb +117 -0
- data/lib/puppet/pops/merge_strategy.rb +73 -5
- data/lib/puppet/pops/model/factory.rb +34 -0
- data/lib/puppet/pops/model/model_label_provider.rb +10 -1
- data/lib/puppet/pops/model/model_meta.rb +15 -0
- data/lib/puppet/pops/model/model_tree_dumper.rb +18 -0
- data/lib/puppet/pops/parser/code_merger.rb +13 -1
- data/lib/puppet/pops/parser/egrammar.ra +56 -3
- data/lib/puppet/pops/parser/eparser.rb +1549 -1352
- data/lib/puppet/pops/parser/lexer2.rb +31 -6
- data/lib/puppet/pops/parser/locator.rb +1 -1
- data/lib/puppet/pops/parser/parser_support.rb +25 -13
- data/lib/puppet/pops/types/enumeration.rb +1 -2
- data/lib/puppet/pops/types/type_asserter.rb +16 -15
- data/lib/puppet/pops/types/type_assertion_error.rb +1 -0
- data/lib/puppet/pops/types/type_calculator.rb +171 -1020
- data/lib/puppet/pops/types/type_factory.rb +87 -148
- data/lib/puppet/pops/types/type_mismatch_describer.rb +743 -0
- data/lib/puppet/pops/types/type_parser.rb +116 -127
- data/lib/puppet/pops/types/types.rb +1394 -255
- data/lib/puppet/pops/types/types_meta.rb +0 -234
- data/lib/puppet/pops/validation.rb +7 -2
- data/lib/puppet/pops/validation/checker4_0.rb +28 -0
- data/lib/puppet/provider/augeas/augeas.rb +50 -0
- data/lib/puppet/provider/group/directoryservice.rb +10 -0
- data/lib/puppet/provider/package/dnf.rb +41 -0
- data/lib/puppet/provider/package/gem.rb +7 -2
- data/lib/puppet/provider/package/rpm.rb +1 -0
- data/lib/puppet/provider/package/windows/exe_package.rb +10 -8
- data/lib/puppet/provider/package/windows/msi_package.rb +4 -3
- data/lib/puppet/provider/package/windows/package.rb +9 -1
- data/lib/puppet/provider/package/yum.rb +14 -9
- data/lib/puppet/provider/service/bsd.rb +1 -1
- data/lib/puppet/provider/service/debian.rb +21 -0
- data/lib/puppet/provider/service/init.rb +6 -0
- data/lib/puppet/provider/service/rcng.rb +51 -0
- data/lib/puppet/provider/service/redhat.rb +2 -1
- data/lib/puppet/provider/service/smf.rb +43 -2
- data/lib/puppet/provider/service/src.rb +27 -0
- data/lib/puppet/provider/service/systemd.rb +15 -3
- data/lib/puppet/provider/sshkey/parsed.rb +19 -9
- data/lib/puppet/reference/report.rb +9 -12
- data/lib/puppet/reports.rb +5 -1
- data/lib/puppet/resource.rb +50 -73
- data/lib/puppet/resource/capability_finder.rb +95 -0
- data/lib/puppet/resource/catalog.rb +47 -7
- data/lib/puppet/resource/status.rb +0 -2
- data/lib/puppet/resource/type.rb +238 -44
- data/lib/puppet/resource/type_collection.rb +60 -2
- data/lib/puppet/settings.rb +2 -2
- data/lib/puppet/ssl/certificate_authority/interface.rb +2 -2
- data/lib/puppet/ssl/oids.rb +9 -1
- data/lib/puppet/transaction.rb +4 -1
- data/lib/puppet/transaction/additional_resource_generator.rb +71 -8
- data/lib/puppet/transaction/resource_harness.rb +9 -4
- data/lib/puppet/type.rb +74 -3
- data/lib/puppet/type/augeas.rb +8 -0
- data/lib/puppet/type/file/source.rb +14 -12
- data/lib/puppet/type/user.rb +4 -2
- data/lib/puppet/util/windows/security.rb +4 -1
- data/lib/puppet/util/windows/taskscheduler.rb +1 -1
- data/lib/puppet/version.rb +1 -1
- data/spec/fixtures/unit/application/environments/production/data/common.yaml +3 -0
- data/spec/fixtures/unit/application/environments/production/environment.conf +1 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/data/bad.json +3 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/environment.conf +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/hiera.yaml +5 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_json/manifests/site.pp +5 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/data/bad.yaml +3 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/environment.conf +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/hiera.yaml +5 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_bad_syntax_yaml/manifests/site.pp +5 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_defaults/data/common.yaml +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_defaults/environment.conf +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_defaults/manifests/site.pp +1 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/data/common.yaml +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/manifests/init.pp +5 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_defaults/modules/one/metadata.json +9 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/first.json +3 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/name.yaml +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/second.json +3 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data1/single.yaml +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/data2/single.yaml +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/environment.conf +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/hiera.yaml +18 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_env_config/manifests/site.pp +5 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_misc/data/common.yaml +46 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_misc/environment.conf +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_misc/manifests/site.pp +1 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/data/common.yaml +30 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/manifests/init.pp +13 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_misc/modules/one/metadata.json +9 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/environment.conf +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/manifests/site.pp +1 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/first.json +3 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/name.yaml +1 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/second.json +3 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data1/single.yaml +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/data2/single.yaml +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/hiera.yaml +18 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/manifests/init.pp +5 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_module_config/modules/one/metadata.json +9 -0
- data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_env_data.rb +1 -0
- data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_module_data.rb +1 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/hieraprovider/data/first.json +3 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/hieraprovider/hiera.yaml +8 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/hieraprovider/manifests/init.pp +5 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/hieraprovider/metadata.json +9 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/meta/lib/puppet/functions/meta/data.rb +9 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/meta/manifests/init.pp +3 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/meta/metadata.json +9 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/metawcp/lib/puppet/bindings/metawcp/default.rb +10 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/metawcp/lib/puppet_x/thallgren/sample_module_data.rb +23 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/metawcp/manifests/init.pp +3 -0
- data/spec/fixtures/unit/functions/lookup/environments/production/modules/metawcp/metadata.json +9 -0
- data/spec/fixtures/unit/provider/package/yum/yum-check-update-security.txt +184 -0
- data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_get/should_yield_to_the_block.yml +24 -0
- data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_head/should_yield_to_the_block.yml +24 -0
- data/spec/fixtures/vcr/cassettes/Puppet_Network_HTTP_Connection/when_handling_requests/_request_post/should_yield_to_the_block.yml +24 -0
- data/spec/integration/data_binding_spec.rb +229 -0
- data/spec/integration/file_bucket/file_spec.rb +2 -2
- data/spec/integration/parser/compiler_spec.rb +23 -19
- data/spec/integration/parser/resource_expressions_spec.rb +4 -4
- data/spec/integration/parser/undef_param_spec.rb +1 -1
- data/spec/integration/resource/catalog_spec.rb +1 -1
- data/spec/integration/type/package_spec.rb +2 -0
- data/spec/integration/util/windows/security_spec.rb +18 -0
- data/spec/lib/matchers/include_in_order.rb +2 -2
- data/spec/shared_behaviours/iterative_functions.rb +8 -8
- data/spec/spec_helper.rb +7 -0
- data/spec/unit/agent/locker_spec.rb +4 -4
- data/spec/unit/agent_spec.rb +0 -8
- data/spec/unit/application/agent_spec.rb +5 -0
- data/spec/unit/application/apply_spec.rb +8 -0
- data/spec/unit/application/filebucket_spec.rb +87 -1
- data/spec/unit/application/lookup_spec.rb +195 -0
- data/spec/unit/appmgmt_spec.rb +657 -0
- data/spec/unit/capability_spec.rb +414 -0
- data/spec/unit/configurer_spec.rb +7 -1
- data/spec/unit/context/trusted_information_spec.rb +24 -1
- data/spec/unit/daemon_spec.rb +18 -8
- data/spec/unit/data_providers/hiera_data_provider_spec.rb +201 -0
- data/spec/unit/file_bucket/dipper_spec.rb +210 -1
- data/spec/unit/functions/assert_type_spec.rb +5 -7
- data/spec/unit/functions/defined_spec.rb +2 -2
- data/spec/unit/functions/epp_spec.rb +2 -2
- data/spec/unit/functions/lookup_spec.rb +200 -9
- data/spec/unit/functions/regsubst_spec.rb +17 -8
- data/spec/unit/functions/scanf_spec.rb +1 -1
- data/spec/unit/functions/split_spec.rb +2 -2
- data/spec/unit/functions/versioncmp_spec.rb +36 -0
- data/spec/unit/functions4_spec.rb +58 -72
- data/spec/unit/indirector/catalog/compiler_spec.rb +28 -8
- data/spec/unit/indirector/catalog/static_compiler_spec.rb +38 -20
- data/spec/unit/indirector/data_binding/none_spec.rb +2 -2
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +52 -1
- data/spec/unit/indirector/request_spec.rb +8 -8
- data/spec/unit/info_service_spec.rb +236 -0
- data/spec/unit/module_tool/metadata_spec.rb +31 -2
- data/spec/unit/network/authconfig_spec.rb +62 -32
- data/spec/unit/network/authorization_spec.rb +30 -2
- data/spec/unit/network/http/connection_spec.rb +14 -19
- data/spec/unit/parser/compiler_spec.rb +86 -2
- data/spec/unit/parser/functions/create_resources_spec.rb +1 -1
- data/spec/unit/parser/resource_spec.rb +2 -20
- data/spec/unit/pops/binder/config/binder_config_spec.rb +1 -1
- data/spec/unit/pops/binder/injector_spec.rb +3 -3
- data/spec/unit/pops/evaluator/access_ops_spec.rb +13 -11
- data/spec/unit/pops/evaluator/basic_expressions_spec.rb +1 -2
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +19 -11
- data/spec/unit/pops/evaluator/literal_evaluator_spec.rb +43 -0
- data/spec/unit/pops/label_provider_spec.rb +5 -1
- data/spec/unit/pops/parser/lexer2_spec.rb +33 -7
- data/spec/unit/pops/parser/parse_application_spec.rb +40 -0
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +4 -0
- data/spec/unit/pops/parser/parse_capabilities_spec.rb +47 -0
- data/spec/unit/pops/parser/parse_site_spec.rb +38 -0
- data/spec/unit/pops/parser/parser_rspec_helper.rb +5 -0
- data/spec/unit/pops/parser/parser_spec.rb +18 -0
- data/spec/unit/pops/types/type_calculator_spec.rb +427 -444
- data/spec/unit/pops/types/type_factory_spec.rb +12 -12
- data/spec/unit/pops/types/type_parser_spec.rb +7 -12
- data/spec/unit/pops/validator/validator_spec.rb +25 -0
- data/spec/unit/provider/augeas/augeas_spec.rb +50 -0
- data/spec/unit/provider/group/directoryservice_spec.rb +33 -0
- data/spec/unit/provider/group/windows_adsi_spec.rb +3 -0
- data/spec/unit/provider/package/dnf_spec.rb +92 -0
- data/spec/unit/provider/package/gem_spec.rb +7 -0
- data/spec/unit/provider/package/rpm_spec.rb +25 -2
- data/spec/unit/provider/package/windows/package_spec.rb +41 -0
- data/spec/unit/provider/package/yum_spec.rb +21 -13
- data/spec/unit/provider/scheduled_task/win32_taskscheduler_spec.rb +10 -0
- data/spec/unit/provider/service/debian_spec.rb +27 -0
- data/spec/unit/provider/service/rcng_spec.rb +41 -0
- data/spec/unit/provider/service/redhat_spec.rb +8 -1
- data/spec/unit/provider/service/smf_spec.rb +30 -5
- data/spec/unit/provider/service/src_spec.rb +19 -4
- data/spec/unit/provider/service/systemd_spec.rb +78 -29
- data/spec/unit/provider/sshkey/parsed_spec.rb +23 -0
- data/spec/unit/reports_spec.rb +10 -0
- data/spec/unit/resource/capability_finder_spec.rb +56 -0
- data/spec/unit/resource/catalog_spec.rb +31 -8
- data/spec/unit/resource/type_collection_spec.rb +23 -2
- data/spec/unit/resource/type_spec.rb +1 -1
- data/spec/unit/resource_spec.rb +22 -4
- data/spec/unit/settings_spec.rb +90 -1
- data/spec/unit/ssl/certificate_authority/interface_spec.rb +4 -3
- data/spec/unit/ssl/oids_spec.rb +8 -0
- data/spec/unit/transaction/additional_resource_generator_spec.rb +78 -5
- data/spec/unit/transaction/report_spec.rb +24 -1
- data/spec/unit/type/package_spec.rb +1 -0
- data/spec/unit/type/user_spec.rb +14 -7
- data/spec/unit/type_spec.rb +1 -1
- metadata +169 -5
- data/lib/puppet/pops/evaluator/callable_mismatch_describer.rb +0 -175
- data/spec/integration/data_binding.rb +0 -104
@@ -74,11 +74,7 @@ describe 'the 4x function api' do
|
|
74
74
|
it 'an error is raised when calling a no arguments function with arguments' do
|
75
75
|
f = create_noargs_function_class()
|
76
76
|
func = f.new(:closure_scope, :loader)
|
77
|
-
expect{func.call({}, 'surprise')}.to raise_error(ArgumentError, "
|
78
|
-
expected:
|
79
|
-
test() - arg count {0}
|
80
|
-
actual:
|
81
|
-
test(String) - arg count {1}")
|
77
|
+
expect{func.call({}, 'surprise')}.to raise_error(ArgumentError, "'test' expects no arguments, got 1")
|
82
78
|
end
|
83
79
|
|
84
80
|
it 'a simple function can be called' do
|
@@ -97,11 +93,7 @@ actual:
|
|
97
93
|
signature = 'Any x, Any y'
|
98
94
|
expect do
|
99
95
|
func.call({}, 10)
|
100
|
-
end.to raise_error(ArgumentError, "
|
101
|
-
expected:
|
102
|
-
min(#{signature}) - arg count {2}
|
103
|
-
actual:
|
104
|
-
min(Integer) - arg count {1}")
|
96
|
+
end.to raise_error(ArgumentError, "'min' expects 2 arguments, got 1")
|
105
97
|
end
|
106
98
|
|
107
99
|
it 'an error is raised if called with too many arguments' do
|
@@ -112,12 +104,7 @@ actual:
|
|
112
104
|
signature = 'Any x, Any y'
|
113
105
|
expect do
|
114
106
|
func.call({}, 10, 10, 10)
|
115
|
-
end.to raise_error(ArgumentError,
|
116
|
-
"function 'min' called with mis-matched arguments
|
117
|
-
expected:
|
118
|
-
min(#{signature}) - arg count {2}
|
119
|
-
actual:
|
120
|
-
min(Integer, Integer, Integer) - arg count {3}")))
|
107
|
+
end.to raise_error(ArgumentError, "'min' expects 2 arguments, got 3")
|
121
108
|
end
|
122
109
|
|
123
110
|
it 'an error is raised if simple function-name and method are not matched' do
|
@@ -151,44 +138,22 @@ actual:
|
|
151
138
|
func = f.new(:closure_scope, :loader)
|
152
139
|
expect(func.is_a?(Puppet::Functions::Function)).to be_truthy
|
153
140
|
expect do
|
154
|
-
func.call({}, 10,
|
155
|
-
end.to raise_error(ArgumentError,
|
156
|
-
"function 'min' called with mis-matched arguments
|
157
|
-
expected:
|
158
|
-
min(Numeric a, Numeric b) - arg count {2}
|
159
|
-
actual:
|
160
|
-
min(Integer, Integer, Integer) - arg count {3}")))
|
141
|
+
func.call({}, 10, 'ten')
|
142
|
+
end.to raise_error(ArgumentError, "'min' parameter 'b' expects a Numeric value, got String")
|
161
143
|
end
|
162
144
|
|
163
|
-
it 'an error includes optional indicators
|
164
|
-
f =
|
145
|
+
it 'an error includes optional indicators for last element' do
|
146
|
+
f = create_function_with_optionals_and_repeated_via_multiple_dispatch()
|
165
147
|
# TODO: Bogus parameters, not yet used
|
166
148
|
func = f.new(:closure_scope, :loader)
|
167
149
|
expect(func.is_a?(Puppet::Functions::Function)).to be_truthy
|
168
|
-
signature = 'Any x, Any y, Any a?, Any b?, Any c{0,}'
|
169
150
|
expect do
|
170
|
-
func.call({}, 10)
|
171
|
-
end.to raise_error(ArgumentError,
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
min(Integer) - arg count {1}")
|
177
|
-
end
|
178
|
-
|
179
|
-
it 'an error includes optional indicators and count for last element when defined via dispatch' do
|
180
|
-
f = create_function_with_optionals_and_repeated_via_dispatch()
|
181
|
-
# TODO: Bogus parameters, not yet used
|
182
|
-
func = f.new(:closure_scope, :loader)
|
183
|
-
expect(func.is_a?(Puppet::Functions::Function)).to be_truthy
|
184
|
-
expect do
|
185
|
-
func.call({}, 10)
|
186
|
-
end.to raise_error(ArgumentError,
|
187
|
-
"function 'min' called with mis-matched arguments
|
188
|
-
expected:
|
189
|
-
min(Numeric x, Numeric y, Numeric a?, Numeric b?, Numeric c{0,}) - arg count {2,}
|
190
|
-
actual:
|
191
|
-
min(Integer) - arg count {1}")
|
151
|
+
func.call({}, 3, 10, 3, "4")
|
152
|
+
end.to raise_error(ArgumentError, "'min' expected one of:
|
153
|
+
(Numeric x, Numeric y, Numeric a?, Numeric b?, Numeric c*)
|
154
|
+
rejected: parameter 'b' expects a Numeric value, got String
|
155
|
+
(String x, String y, String a+)
|
156
|
+
rejected: parameter 'x' expects a String value, got Integer")
|
192
157
|
end
|
193
158
|
|
194
159
|
it 'can create optional repeated parameter' do
|
@@ -210,12 +175,7 @@ actual:
|
|
210
175
|
func = f.new(:closure_scope, :loader)
|
211
176
|
expect(func.call({}, 1)).to eql(1)
|
212
177
|
expect(func.call({}, 1, 2)).to eql(2)
|
213
|
-
expect { func.call({}) }.to raise_error(ArgumentError,
|
214
|
-
"function 'count_args' called with mis-matched arguments
|
215
|
-
expected:
|
216
|
-
count_args(Any c{1,}) - arg count {1,}
|
217
|
-
actual:
|
218
|
-
count_args(Undef{0}) - arg count {0}")
|
178
|
+
expect { func.call({}) }.to raise_error(ArgumentError, "'count_args' expects at least 1 argument, got none")
|
219
179
|
end
|
220
180
|
|
221
181
|
it 'can create scope_param followed by repeated parameter' do
|
@@ -256,14 +216,12 @@ actual:
|
|
256
216
|
func = f.new(:closure_scope, :loader)
|
257
217
|
expect(func.is_a?(Puppet::Functions::Function)).to be_truthy
|
258
218
|
expect do
|
259
|
-
func.call({}, 10,
|
260
|
-
end.to raise_error(ArgumentError,
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
actual:
|
266
|
-
min(Integer, Integer, Integer) - arg count {3}")
|
219
|
+
func.call({}, 10, '20')
|
220
|
+
end.to raise_error(ArgumentError, "'min' expected one of:
|
221
|
+
(Numeric a, Numeric b)
|
222
|
+
rejected: parameter 'b' expects a Numeric value, got String
|
223
|
+
(String s1, String s2)
|
224
|
+
rejected: parameter 's1' expects a String value, got Integer")
|
267
225
|
end
|
268
226
|
|
269
227
|
context 'can use injection' do
|
@@ -334,12 +292,7 @@ actual:
|
|
334
292
|
the_function = create_function_with_required_block_all_defaults().new(:closure_scope, :loader)
|
335
293
|
expect do
|
336
294
|
the_function.call({}, 10)
|
337
|
-
end.to raise_error(ArgumentError,
|
338
|
-
"function 'test' called with mis-matched arguments
|
339
|
-
expected:
|
340
|
-
test(Integer x, Callable block) - arg count {2}
|
341
|
-
actual:
|
342
|
-
test(Integer) - arg count {1}")
|
295
|
+
end.to raise_error(ArgumentError, "'test' expects a block")
|
343
296
|
end
|
344
297
|
|
345
298
|
it 'such that, an optional block can be defined and given as an argument' do
|
@@ -361,7 +314,7 @@ actual:
|
|
361
314
|
|
362
315
|
context 'provides signature information' do
|
363
316
|
it 'about capture rest (varargs)' do
|
364
|
-
fc =
|
317
|
+
fc = create_function_with_optionals_and_repeated
|
365
318
|
signatures = fc.signatures
|
366
319
|
expect(signatures.size).to eql(1)
|
367
320
|
signature = signatures[0]
|
@@ -369,14 +322,14 @@ actual:
|
|
369
322
|
end
|
370
323
|
|
371
324
|
it 'about optional and required parameters' do
|
372
|
-
fc =
|
325
|
+
fc = create_function_with_optionals_and_repeated
|
373
326
|
signature = fc.signatures[0]
|
374
327
|
expect(signature.args_range).to eql( [2, Float::INFINITY ] )
|
375
328
|
expect(signature.infinity?(signature.args_range[1])).to be_truthy
|
376
329
|
end
|
377
330
|
|
378
331
|
it 'about block not being allowed' do
|
379
|
-
fc =
|
332
|
+
fc = create_function_with_optionals_and_repeated
|
380
333
|
signature = fc.signatures[0]
|
381
334
|
expect(signature.block_range).to eql( [ 0, 0 ] )
|
382
335
|
expect(signature.block_type).to be_nil
|
@@ -582,7 +535,7 @@ actual:
|
|
582
535
|
end
|
583
536
|
end
|
584
537
|
|
585
|
-
def
|
538
|
+
def create_function_with_optionals_and_repeated
|
586
539
|
f = Puppet::Functions.create_function('min') do
|
587
540
|
def min(x,y,a=1, b=1, *c)
|
588
541
|
x <= y ? x : y
|
@@ -605,6 +558,39 @@ actual:
|
|
605
558
|
end
|
606
559
|
end
|
607
560
|
|
561
|
+
def create_function_with_optionals_and_repeated_via_multiple_dispatch
|
562
|
+
f = Puppet::Functions.create_function('min') do
|
563
|
+
dispatch :min do
|
564
|
+
param 'Numeric', :x
|
565
|
+
param 'Numeric', :y
|
566
|
+
optional_param 'Numeric', :a
|
567
|
+
optional_param 'Numeric', :b
|
568
|
+
repeated_param 'Numeric', :c
|
569
|
+
end
|
570
|
+
dispatch :min do
|
571
|
+
param 'String', :x
|
572
|
+
param 'String', :y
|
573
|
+
required_repeated_param 'String', :a
|
574
|
+
end
|
575
|
+
def min(x,y,a=1, b=1, *c)
|
576
|
+
x <= y ? x : y
|
577
|
+
end
|
578
|
+
end
|
579
|
+
end
|
580
|
+
|
581
|
+
def create_function_with_required_repeated_via_dispatch
|
582
|
+
f = Puppet::Functions.create_function('min') do
|
583
|
+
dispatch :min do
|
584
|
+
param 'Numeric', :x
|
585
|
+
param 'Numeric', :y
|
586
|
+
required_repeated_param 'Numeric', :z
|
587
|
+
end
|
588
|
+
def min(x,y, *z)
|
589
|
+
x <= y ? x : y
|
590
|
+
end
|
591
|
+
end
|
592
|
+
end
|
593
|
+
|
608
594
|
def create_function_with_repeated
|
609
595
|
f = Puppet::Functions.create_function('count_args') do
|
610
596
|
dispatch :count_args do
|
@@ -46,7 +46,7 @@ describe Puppet::Resource::Catalog::Compiler do
|
|
46
46
|
|
47
47
|
it "should directly use provided nodes for a local request" do
|
48
48
|
Puppet::Node.indirection.expects(:find).never
|
49
|
-
@compiler.expects(:compile).with(@node)
|
49
|
+
@compiler.expects(:compile).with(@node, nil)
|
50
50
|
@request.stubs(:options).returns(:use_node => @node)
|
51
51
|
@request.stubs(:remote?).returns(false)
|
52
52
|
@compiler.find(@request)
|
@@ -63,7 +63,7 @@ describe Puppet::Resource::Catalog::Compiler do
|
|
63
63
|
it "should use the authenticated node name if no request key is provided" do
|
64
64
|
@request.stubs(:key).returns(nil)
|
65
65
|
Puppet::Node.indirection.expects(:find).with(@name, anything).returns(@node)
|
66
|
-
@compiler.expects(:compile).with(@node)
|
66
|
+
@compiler.expects(:compile).with(@node, nil)
|
67
67
|
@compiler.find(@request)
|
68
68
|
end
|
69
69
|
|
@@ -71,7 +71,7 @@ describe Puppet::Resource::Catalog::Compiler do
|
|
71
71
|
@request.expects(:key).returns "my_node"
|
72
72
|
|
73
73
|
Puppet::Node.indirection.expects(:find).with("my_node", anything).returns @node
|
74
|
-
@compiler.expects(:compile).with(@node)
|
74
|
+
@compiler.expects(:compile).with(@node, nil)
|
75
75
|
@compiler.find(@request)
|
76
76
|
end
|
77
77
|
|
@@ -88,7 +88,7 @@ describe Puppet::Resource::Catalog::Compiler do
|
|
88
88
|
it "should pass the found node to the compiler for compiling" do
|
89
89
|
Puppet::Node.indirection.expects(:find).with(@name, anything).returns(@node)
|
90
90
|
config = mock 'config'
|
91
|
-
Puppet::Parser::Compiler.expects(:compile).with(@node)
|
91
|
+
Puppet::Parser::Compiler.expects(:compile).with(@node, nil)
|
92
92
|
@compiler.find(@request)
|
93
93
|
end
|
94
94
|
|
@@ -119,11 +119,31 @@ describe Puppet::Resource::Catalog::Compiler do
|
|
119
119
|
|
120
120
|
it "should return the results of compiling as the catalog" do
|
121
121
|
Puppet::Node.indirection.stubs(:find).returns(@node)
|
122
|
-
|
123
|
-
|
122
|
+
catalog = Puppet::Resource::Catalog.new(@node.name)
|
123
|
+
Puppet::Parser::Compiler.stubs(:compile).returns catalog
|
124
|
+
|
125
|
+
expect(@compiler.find(@request)).to equal(catalog)
|
126
|
+
end
|
127
|
+
|
128
|
+
it "passes the code_id from the request to the compiler" do
|
129
|
+
Puppet::Node.indirection.stubs(:find).returns(@node)
|
130
|
+
code_id = 'b59e5df0578ef411f773ee6c33d8073c50e7b8fe'
|
131
|
+
@request.options[:code_id] = code_id
|
132
|
+
|
133
|
+
Puppet::Parser::Compiler.expects(:compile).with(anything, code_id)
|
134
|
+
|
135
|
+
@compiler.find(@request)
|
136
|
+
end
|
137
|
+
|
138
|
+
it "returns a catalog with the code_id from the request" do
|
139
|
+
Puppet::Node.indirection.stubs(:find).returns(@node)
|
140
|
+
code_id = 'b59e5df0578ef411f773ee6c33d8073c50e7b8fe'
|
141
|
+
@request.options[:code_id] = code_id
|
142
|
+
|
143
|
+
catalog = Puppet::Resource::Catalog.new(@node.name, @node.environment, code_id)
|
144
|
+
Puppet::Parser::Compiler.stubs(:compile).returns catalog
|
124
145
|
|
125
|
-
|
126
|
-
expect(@compiler.find(@request)).to equal(result)
|
146
|
+
expect(@compiler.find(@request).code_id).to eq(code_id)
|
127
147
|
end
|
128
148
|
end
|
129
149
|
|
@@ -34,6 +34,10 @@ describe Puppet::Resource::Catalog::StaticCompiler do
|
|
34
34
|
end
|
35
35
|
|
36
36
|
describe "#find" do
|
37
|
+
before :each do
|
38
|
+
subject.stubs(:store_content)
|
39
|
+
end
|
40
|
+
|
37
41
|
it "returns a catalog" do
|
38
42
|
expect(subject.find(request)).to be_a_kind_of(Puppet::Resource::Catalog)
|
39
43
|
end
|
@@ -45,7 +49,8 @@ describe Puppet::Resource::Catalog::StaticCompiler do
|
|
45
49
|
|
46
50
|
describe "a catalog with file resources containing source parameters with puppet:// URIs" do
|
47
51
|
it "filters file resource source URI's to checksums" do
|
48
|
-
|
52
|
+
subject.stubs(:compile).returns(build_catalog)
|
53
|
+
|
49
54
|
resource_catalog = subject.find(request)
|
50
55
|
resource_catalog.resources.each do |resource|
|
51
56
|
next unless resource.type == "File"
|
@@ -56,7 +61,8 @@ describe Puppet::Resource::Catalog::StaticCompiler do
|
|
56
61
|
|
57
62
|
it "does not modify file resources with non-puppet:// URI's" do
|
58
63
|
uri = "/this/is/not/a/puppet/uri.txt"
|
59
|
-
|
64
|
+
subject.stubs(:compile).returns(build_catalog(:source => uri))
|
65
|
+
|
60
66
|
resource_catalog = subject.find(request)
|
61
67
|
resource_catalog.resources.each do |resource|
|
62
68
|
next unless resource.type == "File"
|
@@ -65,16 +71,41 @@ describe Puppet::Resource::Catalog::StaticCompiler do
|
|
65
71
|
end
|
66
72
|
end
|
67
73
|
|
68
|
-
it "copies the owner, group and mode from the
|
69
|
-
|
74
|
+
it "copies the owner, group and mode from the fileserver" do
|
75
|
+
subject.stubs(:compile).returns(build_catalog)
|
76
|
+
|
70
77
|
resource_catalog = subject.find(request)
|
71
78
|
resource_catalog.resources.each do |resource|
|
72
79
|
next unless resource.type == "File"
|
73
|
-
expect(resource[:owner]).to eq(0)
|
74
|
-
expect(resource[:group]).to eq(0)
|
75
|
-
expect(resource[:mode]).to eq(
|
80
|
+
expect(resource[:owner]).to eq("0")
|
81
|
+
expect(resource[:group]).to eq("0")
|
82
|
+
expect(resource[:mode]).to eq("644")
|
76
83
|
end
|
77
84
|
end
|
85
|
+
|
86
|
+
it "ignores recurse when source refers to a file" do
|
87
|
+
path = File.expand_path('/tmp/foo')
|
88
|
+
metadata = fileserver_metadata(:path => path)
|
89
|
+
metadata.relative_path = '.'
|
90
|
+
|
91
|
+
Puppet::FileServing::Metadata.indirection.stubs(:search).returns([metadata])
|
92
|
+
Puppet::FileServing::Metadata.indirection.stubs(:find).returns(metadata)
|
93
|
+
|
94
|
+
catalog = Puppet::Resource::Catalog.new(request)
|
95
|
+
catalog.add_resource(
|
96
|
+
Puppet::Resource.new('file', path,
|
97
|
+
:parameters => {
|
98
|
+
:recurse => true,
|
99
|
+
:source => 'puppet:///modules/mymodule/foo'
|
100
|
+
}
|
101
|
+
)
|
102
|
+
)
|
103
|
+
subject.stubs(:compile).returns(catalog)
|
104
|
+
|
105
|
+
resource = subject.find(request).resources.first
|
106
|
+
expect(resource[:ensure]).to eq('file')
|
107
|
+
expect(resource.title).to eq(path)
|
108
|
+
end
|
78
109
|
end
|
79
110
|
end
|
80
111
|
|
@@ -120,19 +151,6 @@ describe Puppet::Resource::Catalog::StaticCompiler do
|
|
120
151
|
|
121
152
|
# Spec helper methods
|
122
153
|
|
123
|
-
def stub_the_compiler(options = {:stub_methods => [:store_content]})
|
124
|
-
# Build a resource catalog suitable for specifying the behavior of the
|
125
|
-
# static compiler.
|
126
|
-
compiler = mock('indirection terminus compiler')
|
127
|
-
compiler.stubs(:find).returns(build_catalog(options))
|
128
|
-
subject.stubs(:compiler).returns(compiler)
|
129
|
-
# Mock the store content method to prevent copying the contents to the
|
130
|
-
# file bucket.
|
131
|
-
(options[:stub_methods] || []).each do |mthd|
|
132
|
-
subject.stubs(mthd)
|
133
|
-
end
|
134
|
-
end
|
135
|
-
|
136
154
|
def build_catalog(options = {})
|
137
155
|
options = options.dup
|
138
156
|
options[:source] ||= 'puppet:///modules/mymodule/config_file.txt'
|
@@ -20,9 +20,9 @@ describe Puppet::DataBinding::None do
|
|
20
20
|
end
|
21
21
|
|
22
22
|
describe "the behavior of the find method" do
|
23
|
-
it "should just
|
23
|
+
it "should just throw :no_such_key" do
|
24
24
|
data_binding = Puppet::DataBinding::None.new
|
25
|
-
expect
|
25
|
+
expect { data_binding.find('fake_request') }.to throw_symbol(:no_such_key)
|
26
26
|
end
|
27
27
|
end
|
28
28
|
end
|
@@ -109,6 +109,57 @@ describe Puppet::FileBucketFile::File, :uses_checksums => true do
|
|
109
109
|
let(:not_bucketed_plaintext) { "other stuff" }
|
110
110
|
let(:not_bucketed_checksum) { digest(not_bucketed_plaintext) }
|
111
111
|
|
112
|
+
describe "when listing the filebucket" do
|
113
|
+
it "should return false/nil when the bucket is empty" do
|
114
|
+
expect(Puppet::FileBucket::File.indirection.find("#{digest_algorithm}/#{not_bucketed_checksum}/foo/bar", :list_all => true)).to eq(nil)
|
115
|
+
end
|
116
|
+
|
117
|
+
it "raises when the request is remote" do
|
118
|
+
Puppet[:bucketdir] = tmpdir('bucket')
|
119
|
+
|
120
|
+
request = Puppet::Indirector::Request.new(:file_bucket_file, :find, "#{digest_algorithm}/#{checksum}/foo/bar", nil, :list_all => true)
|
121
|
+
request.node = 'client.example.com'
|
122
|
+
|
123
|
+
expect {
|
124
|
+
Puppet::FileBucketFile::File.new.find(request)
|
125
|
+
}.to raise_error(Puppet::Error, "Listing remote file buckets is not allowed")
|
126
|
+
end
|
127
|
+
|
128
|
+
it "should return the list of bucketed files in a human readable way" do
|
129
|
+
checksum1 = save_bucket_file("I'm the contents of a file", '/foo/bar1')
|
130
|
+
checksum2 = save_bucket_file("I'm the contents of another file", '/foo/bar2')
|
131
|
+
checksum3 = save_bucket_file("I'm the modified content of a existing file", '/foo/bar1')
|
132
|
+
|
133
|
+
# Use the first checksum as we know it's stored in the bucket
|
134
|
+
find_result = Puppet::FileBucket::File.indirection.find("#{digest_algorithm}/#{checksum1}/foo/bar1", :list_all => true)
|
135
|
+
|
136
|
+
# The list is sort order from date and file name, so first and third checksums come before the second
|
137
|
+
date_pattern = '\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}'
|
138
|
+
expect(find_result.to_s).to match(Regexp.new("^#{checksum1} #{date_pattern} foo/bar1\\n#{checksum3} #{date_pattern} foo/bar1\\n#{checksum2} #{date_pattern} foo/bar2\\n$"))
|
139
|
+
end
|
140
|
+
|
141
|
+
it "should fail in an informative way when provided dates are not in the right format" do
|
142
|
+
contents = "I'm the contents of a file"
|
143
|
+
save_bucket_file(contents, '/foo/bar1')
|
144
|
+
expect {
|
145
|
+
Puppet::FileBucket::File.indirection.find(
|
146
|
+
"#{digest_algorithm}/#{not_bucketed_checksum}/foo/bar",
|
147
|
+
:list_all => true,
|
148
|
+
:todate => "0:0:0 1-1-1970",
|
149
|
+
:fromdate => "WEIRD"
|
150
|
+
)
|
151
|
+
}.to raise_error(Puppet::Error, /fromdate/)
|
152
|
+
expect {
|
153
|
+
Puppet::FileBucket::File.indirection.find(
|
154
|
+
"#{digest_algorithm}/#{not_bucketed_checksum}/foo/bar",
|
155
|
+
:list_all => true,
|
156
|
+
:todate => "WEIRD",
|
157
|
+
:fromdate => Time.now
|
158
|
+
)
|
159
|
+
}.to raise_error(Puppet::Error, /todate/)
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
112
163
|
describe "when supplying a path" do
|
113
164
|
it "should return false/nil if the file isn't bucketed" do
|
114
165
|
expect(Puppet::FileBucket::File.indirection.head("#{digest_algorithm}/#{not_bucketed_checksum}/foo/bar")).to eq(false)
|
@@ -177,7 +228,7 @@ describe Puppet::FileBucketFile::File, :uses_checksums => true do
|
|
177
228
|
checksum2 = save_bucket_file("foo\nbiz\nbaz")
|
178
229
|
|
179
230
|
diff = Puppet::FileBucket::File.indirection.find("#{digest_algorithm}/#{checksum1}", :diff_with => checksum2)
|
180
|
-
expect(diff).to
|
231
|
+
expect(diff).to include("-bar\n+biz\n")
|
181
232
|
end
|
182
233
|
|
183
234
|
it "should raise an exception if the hash to diff against isn't found" do
|