puppet 4.2.3 → 4.3.0
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
@@ -1,35 +1,70 @@
|
|
1
|
-
# Applies a
|
2
|
-
#
|
3
|
-
#
|
1
|
+
# Applies a [lambda](http://docs.puppetlabs.com/puppet/latest/reference/lang_lambdas.html)
|
2
|
+
# to every value in a data structure and returns an array or hash containing any elements
|
3
|
+
# for which the lambda evaluates to `true`.
|
4
4
|
#
|
5
|
-
# This function takes two mandatory arguments
|
6
|
-
# Enumerable object (integer, Integer range, or String),
|
7
|
-
# and the second a parameterized block as produced by the puppet syntax:
|
5
|
+
# This function takes two mandatory arguments, in this order:
|
8
6
|
#
|
9
|
-
#
|
10
|
-
#
|
7
|
+
# 1. An array or hash the function will iterate over.
|
8
|
+
# 2. A lambda, which the function calls for each element in the first argument. It can
|
9
|
+
# request one or two parameters.
|
11
10
|
#
|
12
|
-
#
|
13
|
-
# When the first argument is a Hash the entry is an array with `[key, value]`.
|
11
|
+
# @example Using the `filter` function
|
14
12
|
#
|
15
|
-
#
|
13
|
+
# `$filtered_data = $data.filter |$parameter| { <PUPPET CODE BLOCK> }`
|
16
14
|
#
|
17
|
-
#
|
18
|
-
# $a = ["raspberry", "blueberry", "orange"]
|
19
|
-
# $a.filter |$x| { $x =~ /berry$/ } # rasberry, blueberry
|
15
|
+
# or
|
20
16
|
#
|
21
|
-
#
|
22
|
-
# enumerables except Hash, and to `key, value` for a Hash.
|
17
|
+
# `$filtered_data = filter($data) |$parameter| { <PUPPET CODE BLOCK> }`
|
23
18
|
#
|
24
|
-
#
|
19
|
+
# When the first argument (`$data` in the above example) is an array, Puppet passes each
|
20
|
+
# value in turn to the lambda and returns an array containing the results.
|
25
21
|
#
|
26
|
-
#
|
27
|
-
# $a = ["raspberry", "blueberry", "orange"]
|
28
|
-
# $a.filter |$index, $x| { $index % 2 == 0 and $x =~ /berry$/ } # raspberry
|
22
|
+
# @example Using the `filter` function with an array and a one-parameter lambda
|
29
23
|
#
|
30
|
-
#
|
31
|
-
#
|
32
|
-
#
|
24
|
+
# ~~~ puppet
|
25
|
+
# # For the array $data, return an array containing the values that end with "berry"
|
26
|
+
# $data = ["orange", "blueberry", "raspberry"]
|
27
|
+
# $filtered_data = $data.filter |$items| { $items =~ /berry$/ }
|
28
|
+
# # $filtered_data = [blueberry, raspberry]
|
29
|
+
# ~~~
|
30
|
+
#
|
31
|
+
# When the first argument is a hash, Puppet passes each key and value pair to the lambda
|
32
|
+
# as an array in the form `[key, value]` and returns a hash containing the results.
|
33
|
+
#
|
34
|
+
# @example Using the `filter` function with a hash and a one-parameter lambda
|
35
|
+
#
|
36
|
+
# ~~~ puppet
|
37
|
+
# # For the hash $data, return a hash containing all values of keys that end with "berry"
|
38
|
+
# $data = { "orange" => 0, "blueberry" => 1, "raspberry" => 2 }
|
39
|
+
# $filtered_data = $data.filter |$items| { $items[0] =~ /berry$/ }
|
40
|
+
# # $filtered_data = {blueberry => 1, raspberry => 2}
|
41
|
+
#
|
42
|
+
# When the first argument is an array and the lambda has two parameters, Puppet passes the
|
43
|
+
# array's indexes (enumerated from 0) in the first parameter and its values in the second
|
44
|
+
# parameter.
|
45
|
+
#
|
46
|
+
# @example Using the `filter` function with an array and a two-parameter lambda
|
47
|
+
#
|
48
|
+
# ~~~ puppet
|
49
|
+
# # For the array $data, return an array of all keys that both end with "berry" and have
|
50
|
+
# # an even-numbered index
|
51
|
+
# $data = ["orange", "blueberry", "raspberry"]
|
52
|
+
# $filtered_data = $data.filter |$indexes, $values| { $indexes % 2 == 0 and $values =~ /berry$/ }
|
53
|
+
# # $filtered_data = [raspberry]
|
54
|
+
# ~~~
|
55
|
+
#
|
56
|
+
# When the first argument is a hash, Puppet passes its keys to the first parameter and its
|
57
|
+
# values to the second parameter.
|
58
|
+
#
|
59
|
+
# @example Using the `filter` function with a hash and a two-parameter lambda
|
60
|
+
#
|
61
|
+
# ~~~ puppet
|
62
|
+
# # For the hash $data, return a hash of all keys that both end with "berry" and have
|
63
|
+
# # values less than or equal to 1
|
64
|
+
# $data = { "orange" => 0, "blueberry" => 1, "raspberry" => 2 }
|
65
|
+
# $filtered_data = $data.filter |$keys, $values| { $keys =~ /berry$/ and $values <= 1 }
|
66
|
+
# # $filtered_data = {blueberry => 1}
|
67
|
+
# ~~~
|
33
68
|
#
|
34
69
|
# @since 4.0.0
|
35
70
|
#
|
@@ -1,7 +1,80 @@
|
|
1
1
|
require 'hiera/puppet_function'
|
2
|
-
|
3
|
-
#
|
4
|
-
#
|
2
|
+
# Performs a standard priority lookup of the hierarchy and returns the most specific value
|
3
|
+
# for a given key. The returned value can be any type of data.
|
4
|
+
#
|
5
|
+
# The function takes up to three arguments, in this order:
|
6
|
+
#
|
7
|
+
# 1. A string key that Hiera searches for in the hierarchy. **Required**.
|
8
|
+
# 2. An optional default value to return if Hiera doesn't find anything matching the key.
|
9
|
+
# * If this argument isn't provided and this function results in a lookup failure, Puppet
|
10
|
+
# fails with a compilation error.
|
11
|
+
# 3. The optional name of an arbitrary
|
12
|
+
# [hierarchy level](https://docs.puppetlabs.com/hiera/latest/hierarchy.html) to insert at the
|
13
|
+
# top of the hierarchy. This lets you temporarily modify the hierarchy for a single lookup.
|
14
|
+
# * If Hiera doesn't find a matching key in the overriding hierarchy level, it continues
|
15
|
+
# searching the rest of the hierarchy.
|
16
|
+
#
|
17
|
+
# The `hiera` function does **not** find all matches throughout a hierarchy, instead
|
18
|
+
# returining the first specific value starting at the top of the hierarchy. To search
|
19
|
+
# throughout a hierarchy, use the `hiera_array` or `hiera_hash` functions.
|
20
|
+
#
|
21
|
+
# @example Using `hiera`
|
22
|
+
#
|
23
|
+
# ~~~ yaml
|
24
|
+
# # Assuming hiera.yaml
|
25
|
+
# # :hierarchy:
|
26
|
+
# # - web01.example.com
|
27
|
+
# # - common
|
28
|
+
#
|
29
|
+
# # Assuming web01.example.com.yaml:
|
30
|
+
# # users:
|
31
|
+
# # - "Amy Barry"
|
32
|
+
# # - "Carrie Douglas"
|
33
|
+
#
|
34
|
+
# # Assuming common.yaml:
|
35
|
+
# users:
|
36
|
+
# admins:
|
37
|
+
# - "Edith Franklin"
|
38
|
+
# - "Ginny Hamilton"
|
39
|
+
# regular:
|
40
|
+
# - "Iris Jackson"
|
41
|
+
# - "Kelly Lambert"
|
42
|
+
# ~~~
|
43
|
+
#
|
44
|
+
# ~~~ puppet
|
45
|
+
# # Assuming we are not web01.example.com:
|
46
|
+
#
|
47
|
+
# $users = hiera('users', undef)
|
48
|
+
#
|
49
|
+
# # $users contains {admins => ["Edith Franklin", "Ginny Hamilton"],
|
50
|
+
# # regular => ["Iris Jackson", "Kelly Lambert"]}
|
51
|
+
# ~~~
|
52
|
+
#
|
53
|
+
# You can optionally generate the default value with a
|
54
|
+
# [lambda](https://docs.puppetlabs.com/puppet/latest/reference/lang_lambdas.html) that
|
55
|
+
# takes one parameter.
|
56
|
+
#
|
57
|
+
# @example Using `hiera` with a lambda
|
58
|
+
#
|
59
|
+
# ~~~ puppet
|
60
|
+
# # Assuming the same Hiera data as the previous example:
|
61
|
+
#
|
62
|
+
# $users = hiera('users') | $key | { "Key \'${key}\' not found" }
|
63
|
+
#
|
64
|
+
# # $users contains {admins => ["Edith Franklin", "Ginny Hamilton"],
|
65
|
+
# # regular => ["Iris Jackson", "Kelly Lambert"]}
|
66
|
+
# # If hiera couldn't match its key, it would return the lambda result,
|
67
|
+
# # "Key 'users' not found".
|
68
|
+
# ~~~
|
69
|
+
#
|
70
|
+
# The returned value's data type depends on the types of the results. In the example
|
71
|
+
# above, Hiera matches the 'users' key and returns it as a hash.
|
72
|
+
#
|
73
|
+
# See
|
74
|
+
# [the documentation](https://docs.puppetlabs.com/hiera/latest/puppet.html#hiera-lookup-functions)
|
75
|
+
# for more information about Hiera lookup functions.
|
76
|
+
#
|
77
|
+
# @since 4.0.0
|
5
78
|
#
|
6
79
|
Puppet::Functions.create_function(:hiera, Hiera::PuppetFunction) do
|
7
80
|
init_dispatch
|
@@ -1,7 +1,69 @@
|
|
1
1
|
require 'hiera/puppet_function'
|
2
2
|
|
3
|
-
#
|
4
|
-
#
|
3
|
+
# Finds all matches of a key throughout the hierarchy and returns them as a single flattened
|
4
|
+
# array of unique values. If any of the matched values are arrays, they're flattened and
|
5
|
+
# included in the results. This is called an
|
6
|
+
# [array merge lookup](https://docs.puppetlabs.com/hiera/latest/lookup_types.html#array-merge).
|
7
|
+
#
|
8
|
+
# The `hiera_array` function takes up to three arguments, in this order:
|
9
|
+
#
|
10
|
+
# 1. A string key that Hiera searches for in the hierarchy. **Required**.
|
11
|
+
# 2. An optional default value to return if Hiera doesn't find anything matching the key.
|
12
|
+
# * If this argument isn't provided and this function results in a lookup failure, Puppet
|
13
|
+
# fails with a compilation error.
|
14
|
+
# 3. The optional name of an arbitrary
|
15
|
+
# [hierarchy level](https://docs.puppetlabs.com/hiera/latest/hierarchy.html) to insert at the
|
16
|
+
# top of the hierarchy. This lets you temporarily modify the hierarchy for a single lookup.
|
17
|
+
# * If Hiera doesn't find a matching key in the overriding hierarchy level, it continues
|
18
|
+
# searching the rest of the hierarchy.
|
19
|
+
#
|
20
|
+
# @example Using `hiera_array`
|
21
|
+
#
|
22
|
+
# ~~~ yaml
|
23
|
+
# # Assuming hiera.yaml
|
24
|
+
# # :hierarchy:
|
25
|
+
# # - web01.example.com
|
26
|
+
# # - common
|
27
|
+
#
|
28
|
+
# # Assuming common.yaml:
|
29
|
+
# # users:
|
30
|
+
# # - 'cdouglas = regular'
|
31
|
+
# # - 'efranklin = regular'
|
32
|
+
#
|
33
|
+
# # Assuming web01.example.com.yaml:
|
34
|
+
# # users: 'abarry = admin'
|
35
|
+
# ~~~
|
36
|
+
#
|
37
|
+
# ~~~ puppet
|
38
|
+
# $allusers = hiera_array('users', undef)
|
39
|
+
#
|
40
|
+
# # $allusers contains ["cdouglas = regular", "efranklin = regular", "abarry = admin"].
|
41
|
+
# ~~~
|
42
|
+
#
|
43
|
+
# You can optionally generate the default value with a
|
44
|
+
# [lambda](https://docs.puppetlabs.com/puppet/latest/reference/lang_lambdas.html) that
|
45
|
+
# takes one parameter.
|
46
|
+
#
|
47
|
+
# @example Using `hiera_array` with a lambda
|
48
|
+
#
|
49
|
+
# ~~~ puppet
|
50
|
+
# # Assuming the same Hiera data as the previous example:
|
51
|
+
#
|
52
|
+
# $allusers = hiera_array('users') | $key | { "Key \'${key}\' not found" }
|
53
|
+
#
|
54
|
+
# # $allusers contains ["cdouglas = regular", "efranklin = regular", "abarry = admin"].
|
55
|
+
# # If hiera_array couldn't match its key, it would return the lambda result,
|
56
|
+
# # "Key 'users' not found".
|
57
|
+
# ~~~
|
58
|
+
#
|
59
|
+
# `hiera_array` expects that all values returned will be strings or arrays. If any matched
|
60
|
+
# value is a hash, Puppet raises a type mismatch error.
|
61
|
+
#
|
62
|
+
# See
|
63
|
+
# [the documentation](https://docs.puppetlabs.com/hiera/latest/puppet.html#hiera-lookup-functions)
|
64
|
+
# for more information about Hiera lookup functions.
|
65
|
+
#
|
66
|
+
# @since 4.0.0
|
5
67
|
#
|
6
68
|
Puppet::Functions.create_function(:hiera_array, Hiera::PuppetFunction) do
|
7
69
|
init_dispatch
|
@@ -9,4 +71,4 @@ Puppet::Functions.create_function(:hiera_array, Hiera::PuppetFunction) do
|
|
9
71
|
def merge_type
|
10
72
|
:array
|
11
73
|
end
|
12
|
-
end
|
74
|
+
end
|
@@ -1,7 +1,79 @@
|
|
1
1
|
require 'hiera/puppet_function'
|
2
2
|
|
3
|
-
#
|
4
|
-
#
|
3
|
+
# Finds all matches of a key throughout the hierarchy and returns them in a merged hash.
|
4
|
+
# If any of the matched hashes share keys, the final hash uses the value from the
|
5
|
+
# highest priority match. This is called a
|
6
|
+
# [hash merge lookup](https://docs.puppetlabs.com/hiera/latest/lookup_types.html#hash-merge).
|
7
|
+
#
|
8
|
+
# The merge strategy is determined by Hiera's
|
9
|
+
# [`:merge_behavior`](https://docs.puppetlabs.com/hiera/latest/configuring.html#mergebehavior)
|
10
|
+
# setting.
|
11
|
+
#
|
12
|
+
# The `hiera_hash` function takes up to three arguments, in this order:
|
13
|
+
#
|
14
|
+
# 1. A string key that Hiera searches for in the hierarchy. **Required**.
|
15
|
+
# 2. An optional default value to return if Hiera doesn't find anything matching the key.
|
16
|
+
# * If this argument isn't provided and this function results in a lookup failure, Puppet
|
17
|
+
# fails with a compilation error.
|
18
|
+
# 3. The optional name of an arbitrary
|
19
|
+
# [hierarchy level](https://docs.puppetlabs.com/hiera/latest/hierarchy.html) to insert at the
|
20
|
+
# top of the hierarchy. This lets you temporarily modify the hierarchy for a single lookup.
|
21
|
+
# * If Hiera doesn't find a matching key in the overriding hierarchy level, it continues
|
22
|
+
# searching the rest of the hierarchy.
|
23
|
+
#
|
24
|
+
# @example Using `hiera_hash`
|
25
|
+
#
|
26
|
+
# ~~~ yaml
|
27
|
+
# # Assuming hiera.yaml
|
28
|
+
# # :hierarchy:
|
29
|
+
# # - web01.example.com
|
30
|
+
# # - common
|
31
|
+
#
|
32
|
+
# # Assuming common.yaml:
|
33
|
+
# # users:
|
34
|
+
# # regular:
|
35
|
+
# # 'cdouglas': 'Carrie Douglas'
|
36
|
+
#
|
37
|
+
# # Assuming web01.example.com.yaml:
|
38
|
+
# # users:
|
39
|
+
# # administrators:
|
40
|
+
# # 'aberry': 'Amy Berry'
|
41
|
+
# ~~~
|
42
|
+
#
|
43
|
+
# ~~~ puppet
|
44
|
+
# # Assuming we are not web01.example.com:
|
45
|
+
#
|
46
|
+
# $allusers = hiera_hash('users', undef)
|
47
|
+
#
|
48
|
+
# # $allusers contains {regular => {"cdouglas" => "Carrie Douglas"},
|
49
|
+
# # administrators => {"aberry" => "Amy Berry"}}
|
50
|
+
# ~~~
|
51
|
+
#
|
52
|
+
# You can optionally generate the default value with a
|
53
|
+
# [lambda](https://docs.puppetlabs.com/puppet/latest/reference/lang_lambdas.html) that
|
54
|
+
# takes one parameter.
|
55
|
+
#
|
56
|
+
# @example Using `hiera_hash` with a lambda
|
57
|
+
#
|
58
|
+
# ~~~ puppet
|
59
|
+
# # Assuming the same Hiera data as the previous example:
|
60
|
+
#
|
61
|
+
# $allusers = hiera_hash('users') | $key | { "Key \'${key}\' not found" }
|
62
|
+
#
|
63
|
+
# # $allusers contains {regular => {"cdouglas" => "Carrie Douglas"},
|
64
|
+
# # administrators => {"aberry" => "Amy Berry"}}
|
65
|
+
# # If hiera_hash couldn't match its key, it would return the lambda result,
|
66
|
+
# # "Key 'users' not found".
|
67
|
+
# ~~~
|
68
|
+
#
|
69
|
+
# `hiera_hash` expects that all values returned will be hashes. If any of the values
|
70
|
+
# found in the data sources are strings or arrays, Puppet raises a type mismatch error.
|
71
|
+
#
|
72
|
+
# See
|
73
|
+
# [the documentation](https://docs.puppetlabs.com/hiera/latest/puppet.html#hiera-lookup-functions)
|
74
|
+
# for more information about Hiera lookup functions.
|
75
|
+
#
|
76
|
+
# @since 4.0.0
|
5
77
|
#
|
6
78
|
Puppet::Functions.create_function(:hiera_hash, Hiera::PuppetFunction) do
|
7
79
|
init_dispatch
|
@@ -1,7 +1,80 @@
|
|
1
1
|
require 'hiera/puppet_function'
|
2
2
|
|
3
|
-
#
|
4
|
-
#
|
3
|
+
# Assigns classes to a node using an
|
4
|
+
# [array merge lookup](https://docs.puppetlabs.com/hiera/latest/lookup_types.htmlarray-merge)
|
5
|
+
# that retrieves the value for a user-specified key from Hiera's data.
|
6
|
+
#
|
7
|
+
# The `hiera_include` function requires:
|
8
|
+
#
|
9
|
+
# - A string key name to use for classes.
|
10
|
+
# - A call to this function (i.e. `hiera_include('classes')`) in your environment's
|
11
|
+
# `sites.pp` manifest, outside of any node definitions and below any top-scope variables
|
12
|
+
# that Hiera uses in lookups.
|
13
|
+
# - `classes` keys in the appropriate Hiera data sources, with an array for each
|
14
|
+
# `classes` key and each value of the array containing the name of a class.
|
15
|
+
#
|
16
|
+
# The function takes up to three arguments, in this order:
|
17
|
+
#
|
18
|
+
# 1. A string key that Hiera searches for in the hierarchy. **Required**.
|
19
|
+
# 2. An optional default value to return if Hiera doesn't find anything matching the key.
|
20
|
+
# * If this argument isn't provided and this function results in a lookup failure, Puppet
|
21
|
+
# fails with a compilation error.
|
22
|
+
# 3. The optional name of an arbitrary
|
23
|
+
# [hierarchy level](https://docs.puppetlabs.com/hiera/latest/hierarchy.html) to insert at the
|
24
|
+
# top of the hierarchy. This lets you temporarily modify the hierarchy for a single lookup.
|
25
|
+
# * If Hiera doesn't find a matching key in the overriding hierarchy level, it continues
|
26
|
+
# searching the rest of the hierarchy.
|
27
|
+
#
|
28
|
+
# The function uses an
|
29
|
+
# [array merge lookup](https://docs.puppetlabs.com/hiera/latest/lookup_types.htmlarray-merge)
|
30
|
+
# to retrieve the `classes` array, so every node gets every class from the hierarchy.
|
31
|
+
#
|
32
|
+
# @example Using `hiera_include`
|
33
|
+
#
|
34
|
+
# ~~~ yaml
|
35
|
+
# # Assuming hiera.yaml
|
36
|
+
# # :hierarchy:
|
37
|
+
# # - web01.example.com
|
38
|
+
# # - common
|
39
|
+
#
|
40
|
+
# # Assuming web01.example.com.yaml:
|
41
|
+
# # classes:
|
42
|
+
# # - apache::mod::php
|
43
|
+
#
|
44
|
+
# # Assuming common.yaml:
|
45
|
+
# # classes:
|
46
|
+
# # - apache
|
47
|
+
# ~~~
|
48
|
+
#
|
49
|
+
# ~~~ puppet
|
50
|
+
# # In site.pp, outside of any node definitions and below any top-scope variables:
|
51
|
+
# hiera_include('classes', undef)
|
52
|
+
#
|
53
|
+
# # Puppet assigns the apache and apache::mod::php classes to the web01.example.com node.
|
54
|
+
# ~~~
|
55
|
+
#
|
56
|
+
# You can optionally generate the default value with a
|
57
|
+
# [lambda](https://docs.puppetlabs.com/puppet/latest/reference/lang_lambdas.html) that
|
58
|
+
# takes one parameter.
|
59
|
+
#
|
60
|
+
# @example Using `hiera_include` with a lambda
|
61
|
+
#
|
62
|
+
# ~~~ puppet
|
63
|
+
# # Assuming the same Hiera data as the previous example:
|
64
|
+
#
|
65
|
+
# # In site.pp, outside of any node definitions and below any top-scope variables:
|
66
|
+
# hiera_include('classes') | $key | {"Key \'${key}\' not found" }
|
67
|
+
#
|
68
|
+
# # Puppet assigns the apache and apache::mod::php classes to the web01.example.com node.
|
69
|
+
# # If hiera_include couldn't match its key, it would return the lambda result,
|
70
|
+
# # "Key 'classes' not found".
|
71
|
+
# ~~~
|
72
|
+
#
|
73
|
+
# See [the documentation](http://links.puppetlabs.com/hierainclude) for more information
|
74
|
+
# and a more detailed example of how `hiera_include` uses array merge lookups to classify
|
75
|
+
# nodes.
|
76
|
+
#
|
77
|
+
# @since 4.0.0
|
5
78
|
#
|
6
79
|
Puppet::Functions.create_function(:hiera_include, Hiera::PuppetFunction) do
|
7
80
|
init_dispatch
|
@@ -150,18 +150,16 @@
|
|
150
150
|
# - Since 4.0.0
|
151
151
|
Puppet::Functions.create_function(:lookup, Puppet::Functions::InternalFunction) do
|
152
152
|
name_t = 'Variant[String,Array[String]]'
|
153
|
-
value_type_t = '
|
153
|
+
value_type_t = 'Type'
|
154
154
|
default_value_t = 'Any'
|
155
|
-
|
156
|
-
default_values_hash_t = 'Optional[Hash[String,Any]]'
|
157
|
-
merge_t = 'Optional[Variant[String[1],Hash[String,Scalar]]]'
|
155
|
+
merge_t = 'Variant[String[1],Hash[String,Scalar]]'
|
158
156
|
block_t = "Callable[#{name_t}]"
|
159
157
|
option_pairs =
|
160
|
-
"value_type
|
158
|
+
"value_type=>Optional[#{value_type_t}],"\
|
161
159
|
"default_value=>Optional[#{default_value_t}],"\
|
162
|
-
"override
|
163
|
-
"default_values_hash
|
164
|
-
"merge
|
160
|
+
"override=>Optional[Hash[String,Any]],"\
|
161
|
+
"default_values_hash=>Optional[Hash[String,Any]],"\
|
162
|
+
"merge=>Optional[#{merge_t}]"
|
165
163
|
|
166
164
|
dispatch :lookup_1 do
|
167
165
|
scope_param
|
@@ -172,10 +170,10 @@ Puppet::Functions.create_function(:lookup, Puppet::Functions::InternalFunction)
|
|
172
170
|
|
173
171
|
dispatch :lookup_2 do
|
174
172
|
scope_param
|
175
|
-
param
|
176
|
-
param
|
177
|
-
param
|
178
|
-
param default_value_t,
|
173
|
+
param name_t, :name
|
174
|
+
param "Optional[#{value_type_t}]", :value_type
|
175
|
+
param "Optional[#{merge_t}]", :merge
|
176
|
+
param default_value_t, :default_value
|
179
177
|
end
|
180
178
|
|
181
179
|
dispatch :lookup_3 do
|
@@ -202,23 +200,27 @@ Puppet::Functions.create_function(:lookup, Puppet::Functions::InternalFunction)
|
|
202
200
|
end
|
203
201
|
|
204
202
|
def lookup_1(scope, name, value_type=nil, merge=nil)
|
205
|
-
|
203
|
+
do_lookup(scope, name, value_type, nil, false, {}, {}, merge)
|
206
204
|
end
|
207
205
|
|
208
206
|
def lookup_2(scope, name, value_type, merge, default_value)
|
209
|
-
|
207
|
+
do_lookup(scope, name, value_type, default_value, true, {}, {}, merge)
|
210
208
|
end
|
211
209
|
|
212
210
|
def lookup_3(scope, name, value_type=nil, merge=nil, &block)
|
213
|
-
|
211
|
+
do_lookup(scope, name, value_type, nil, false, {}, {}, merge, &block)
|
214
212
|
end
|
215
213
|
|
216
214
|
def lookup_4(scope, options_hash, &block)
|
217
|
-
|
215
|
+
do_lookup(scope, options_hash['name'], *hash_args(options_hash), &block)
|
218
216
|
end
|
219
217
|
|
220
218
|
def lookup_5(scope, name, options_hash, &block)
|
221
|
-
|
219
|
+
do_lookup(scope, name, *hash_args(options_hash), &block)
|
220
|
+
end
|
221
|
+
|
222
|
+
def do_lookup(scope, name, value_type, default_value, has_default, override, default_values_hash, merge, &block)
|
223
|
+
Puppet::Pops::Lookup.lookup(name, value_type, default_value, has_default, merge, Puppet::Pops::Lookup::Invocation.new(scope, override, default_values_hash), &block)
|
222
224
|
end
|
223
225
|
|
224
226
|
def hash_args(options_hash)
|