puppet 4.8.2-universal-darwin → 4.9.0-universal-darwin
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +15 -0
- data/CONTRIBUTING.md +25 -1
- data/Gemfile +6 -0
- data/Rakefile +1 -0
- data/ext/project_data.yaml +5 -1
- data/ext/windows/service/daemon.rb +2 -1
- data/install.rb +43 -6
- data/lib/hiera/puppet_function.rb +15 -17
- data/lib/hiera/scope.rb +12 -14
- data/lib/puppet/application/face_base.rb +4 -0
- data/lib/puppet/application/lookup.rb +4 -2
- data/lib/puppet/application/resource.rb +1 -1
- data/lib/puppet/data_providers/data_adapter.rb +6 -0
- data/lib/puppet/data_providers/data_function_support.rb +7 -0
- data/lib/puppet/data_providers/function_env_data_provider.rb +7 -0
- data/lib/puppet/data_providers/function_module_data_provider.rb +6 -0
- data/lib/puppet/data_providers/hiera_config.rb +31 -10
- data/lib/puppet/data_providers/hiera_env_data_provider.rb +6 -0
- data/lib/puppet/data_providers/hiera_interpolate.rb +2 -1
- data/lib/puppet/data_providers/hiera_module_data_provider.rb +6 -0
- data/lib/puppet/data_providers/hiera_support.rb +6 -0
- data/lib/puppet/data_providers/json_data_provider_factory.rb +12 -0
- data/lib/puppet/data_providers/yaml_data_provider_factory.rb +12 -0
- data/lib/puppet/data_providers.rb +6 -3
- data/lib/puppet/defaults.rb +25 -4
- data/lib/puppet/face/ca.rb +2 -0
- data/lib/puppet/face/certificate_request.rb +2 -0
- data/lib/puppet/face/certificate_revocation_list.rb +2 -0
- data/lib/puppet/face/file.rb +3 -0
- data/lib/puppet/face/help/face.erb +3 -0
- data/lib/puppet/face/help.rb +19 -17
- data/lib/puppet/face/key.rb +1 -0
- data/lib/puppet/face/man.rb +4 -2
- data/lib/puppet/face/module/generate.rb +1 -1
- data/lib/puppet/face/status.rb +2 -0
- data/lib/puppet/feature/base.rb +9 -2
- data/lib/puppet/feature/hocon.rb +3 -0
- data/lib/puppet/file_system/windows.rb +8 -0
- data/lib/puppet/file_system.rb +15 -3
- data/lib/puppet/forge/repository.rb +1 -2
- data/lib/puppet/forge.rb +6 -6
- data/lib/puppet/functions/binary_file.rb +4 -10
- data/lib/puppet/functions/hiera_array.rb +1 -1
- data/lib/puppet/functions/hiera_include.rb +1 -1
- data/lib/puppet/functions/hocon_data.rb +24 -0
- data/lib/puppet/functions/json_data.rb +18 -0
- data/lib/puppet/functions/yaml_data.rb +21 -0
- data/lib/puppet/generate/type.rb +1 -1
- data/lib/puppet/graph/simple_graph.rb +4 -2
- data/lib/puppet/indirector/file_bucket_file/file.rb +10 -2
- data/lib/puppet/indirector/request.rb +5 -1
- data/lib/puppet/interface/face_collection.rb +1 -1
- data/lib/puppet/interface.rb +14 -2
- data/lib/puppet/module.rb +14 -2
- data/lib/puppet/module_tool/applications/builder.rb +3 -2
- data/lib/puppet/module_tool/applications/installer.rb +14 -14
- data/lib/puppet/module_tool/applications/upgrader.rb +13 -13
- data/lib/puppet/module_tool/installed_modules.rb +7 -7
- data/lib/puppet/module_tool/local_tarball.rb +3 -3
- data/lib/puppet/module_tool/metadata.rb +1 -1
- data/lib/puppet/module_tool.rb +4 -4
- data/lib/puppet/network/http/connection.rb +2 -0
- data/lib/puppet/network/http/webrick.rb +2 -1
- data/lib/puppet/parser/functions/hiera.rb +14 -0
- data/lib/puppet/parser/functions/hiera_array.rb +14 -0
- data/lib/puppet/parser/functions/hiera_hash.rb +14 -0
- data/lib/puppet/parser/functions/hiera_include.rb +14 -0
- data/lib/puppet/parser/scope.rb +14 -20
- data/lib/puppet/plugins/data_providers/data_provider.rb +108 -17
- data/lib/puppet/plugins/data_providers/registry.rb +2 -36
- data/lib/puppet/plugins/data_providers.rb +2 -0
- data/lib/puppet/pops/adaptable.rb +0 -3
- data/lib/puppet/pops/binder/producers.rb +3 -3
- data/lib/puppet/pops/evaluator/access_operator.rb +4 -4
- data/lib/puppet/pops/evaluator/closure.rb +1 -1
- data/lib/puppet/pops/evaluator/compare_operator.rb +4 -4
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +1 -1
- data/lib/puppet/pops/issues.rb +4 -0
- data/lib/puppet/pops/label_provider.rb +14 -0
- data/lib/puppet/pops/loader/loader_paths.rb +3 -1
- data/lib/puppet/pops/loader/module_loaders.rb +21 -7
- data/lib/puppet/pops/loader/typed_name.rb +0 -2
- data/lib/puppet/pops/loaders.rb +31 -12
- data/lib/puppet/pops/lookup/configured_data_provider.rb +87 -0
- data/lib/puppet/pops/lookup/context.rb +121 -71
- data/lib/puppet/pops/lookup/data_adapter.rb +27 -0
- data/lib/puppet/pops/lookup/data_dig_function_provider.rb +55 -0
- data/lib/puppet/pops/lookup/data_hash_function_provider.rb +111 -0
- data/lib/puppet/pops/lookup/data_provider.rb +102 -0
- data/lib/puppet/pops/lookup/environment_data_provider.rb +27 -0
- data/lib/puppet/pops/lookup/explainer.rb +122 -82
- data/lib/puppet/pops/lookup/function_provider.rb +82 -0
- data/lib/puppet/pops/lookup/global_data_provider.rb +49 -0
- data/lib/puppet/pops/lookup/hiera_config.rb +601 -0
- data/lib/puppet/pops/lookup/interpolation.rb +56 -35
- data/lib/puppet/pops/lookup/invocation.rb +179 -101
- data/lib/puppet/pops/lookup/location_resolver.rb +72 -0
- data/lib/puppet/pops/lookup/lookup_adapter.rb +451 -0
- data/lib/puppet/pops/lookup/lookup_key.rb +99 -0
- data/lib/puppet/pops/lookup/lookup_key_function_provider.rb +119 -0
- data/lib/puppet/pops/lookup/module_data_provider.rb +58 -0
- data/lib/puppet/pops/lookup/sub_lookup.rb +8 -4
- data/lib/puppet/pops/lookup.rb +4 -3
- data/lib/puppet/pops/merge_strategy.rb +120 -39
- data/lib/puppet/pops/parser/egrammar.ra +2 -0
- data/lib/puppet/pops/parser/eparser.rb +816 -808
- data/lib/puppet/pops/parser/locator.rb +3 -3
- data/lib/puppet/pops/parser/slurp_support.rb +4 -3
- data/lib/puppet/pops/pcore.rb +21 -12
- data/lib/puppet/pops/serialization/abstract_reader.rb +17 -7
- data/lib/puppet/pops/serialization/abstract_writer.rb +27 -12
- data/lib/puppet/pops/serialization/deserializer.rb +17 -4
- data/lib/puppet/pops/serialization/extension.rb +37 -8
- data/lib/puppet/pops/serialization/object.rb +14 -6
- data/lib/puppet/pops/serialization/rgen.rb +2 -1
- data/lib/puppet/pops/serialization/serializer.rb +30 -7
- data/lib/puppet/pops/types/implementation_registry.rb +1 -1
- data/lib/puppet/pops/types/p_object_type.rb +55 -12
- data/lib/puppet/pops/types/p_sem_ver_range_type.rb +27 -27
- data/lib/puppet/pops/types/p_sem_ver_type.rb +12 -12
- data/lib/puppet/pops/types/p_timespan_type.rb +6 -6
- data/lib/puppet/pops/types/p_timestamp_type.rb +2 -2
- data/lib/puppet/pops/types/p_type_set_type.rb +7 -16
- data/lib/puppet/pops/types/recursion_guard.rb +64 -20
- data/lib/puppet/pops/types/ruby_generator.rb +10 -0
- data/lib/puppet/pops/types/type_calculator.rb +23 -13
- data/lib/puppet/pops/types/type_factory.rb +20 -9
- data/lib/puppet/pops/types/type_formatter.rb +37 -17
- data/lib/puppet/pops/types/type_mismatch_describer.rb +7 -6
- data/lib/puppet/pops/types/type_parser.rb +6 -0
- data/lib/puppet/pops/types/types.rb +225 -132
- data/lib/puppet/pops/validation/checker4_0.rb +12 -2
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -0
- data/lib/puppet/pops/validation.rb +1 -1
- data/lib/puppet/pops/visitor.rb +4 -3
- data/lib/puppet/pops.rb +6 -9
- data/lib/puppet/provider/mcx/mcxcontent.rb +2 -1
- data/lib/puppet/provider/nameservice.rb +15 -0
- data/lib/puppet/provider/package/appdmg.rb +1 -1
- data/lib/puppet/provider/package/dnf.rb +1 -1
- data/lib/puppet/provider/package/pkg.rb +1 -1
- data/lib/puppet/provider/package/pkgdmg.rb +1 -1
- data/lib/puppet/provider/package/pkgng.rb +1 -1
- data/lib/puppet/provider/package/rpm.rb +2 -2
- data/lib/puppet/provider/service/smf.rb +3 -3
- data/lib/puppet/provider/service/systemd.rb +5 -1
- data/lib/puppet/provider/user/directoryservice.rb +1 -0
- data/lib/puppet/provider/user/user_role_add.rb +15 -0
- data/lib/puppet/provider/yumrepo/inifile.rb +2 -2
- data/lib/puppet/provider/zone/solaris.rb +4 -1
- data/lib/puppet/reference/indirection.rb +1 -1
- data/lib/puppet/resource/catalog.rb +12 -4
- data/lib/puppet/resource/type.rb +3 -3
- data/lib/puppet/resource.rb +2 -3
- data/lib/puppet/settings/config_file.rb +2 -1
- data/lib/puppet/settings/directory_setting.rb +6 -0
- data/lib/puppet/settings/environment_conf.rb +6 -2
- data/lib/puppet/settings/file_or_directory_setting.rb +6 -0
- data/lib/puppet/settings/file_setting.rb +10 -0
- data/lib/puppet/settings.rb +1 -1
- data/lib/puppet/ssl/certificate_authority.rb +13 -2
- data/lib/puppet/ssl/host.rb +23 -1
- data/lib/puppet/transaction/additional_resource_generator.rb +7 -0
- data/lib/puppet/type/user.rb +16 -3
- data/lib/puppet/util/execution.rb +3 -3
- data/lib/puppet/util/filetype.rb +11 -5
- data/lib/puppet/util/logging.rb +2 -1
- data/lib/puppet/util/network_device/config.rb +1 -1
- data/lib/puppet/util/plist.rb +6 -0
- data/lib/puppet/util/profiler/aggregate.rb +1 -1
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +2 -2
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +2 -1
- data/lib/puppet/util/windows/adsi.rb +15 -12
- data/lib/puppet/util.rb +1 -0
- data/lib/puppet/vendor/load_semantic_puppet.rb +1 -0
- data/lib/puppet/vendor/pathspec/lib/pathspec.rb +2 -1
- data/lib/puppet/vendor/require_vendored.rb +0 -1
- data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/graph.rb +2 -2
- data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/graph_node.rb +2 -2
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/module_release.rb +58 -0
- data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/source.rb +2 -2
- data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/unsatisfiable_graph.rb +2 -2
- data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency.rb +7 -7
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/gem_version.rb +3 -0
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/locales/config.yaml +21 -0
- data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/version.rb +48 -21
- data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/version_range.rb +15 -17
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet.rb +17 -0
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet.rb +52 -0
- data/lib/semver.rb +19 -12
- data/locales/config.yaml +29 -0
- data/locales/puppet.pot +79 -0
- data/man/man5/puppet.conf.5 +1 -1
- data/spec/fixtures/unit/application/environments/puppet_func_provider/functions/{data.pp → environment/data.pp} +0 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_misc/data/common.yaml +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/data/common.yaml +1 -1
- data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/hiera.yaml +5 -0
- data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/lib/puppet/bindings/backend/default.rb +9 -0
- data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/lib/puppet_x/backend/special_data_provider_factory.rb +23 -0
- data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/manifests/init.pp +5 -0
- data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/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/manifests/init.pp +1 -1
- data/spec/fixtures/unit/functions/lookup/data/common.yaml +19 -0
- data/spec/fixtures/unit/functions/lookup_fixture/data/common.yaml +19 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/environment.conf +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/lib/puppet/functions/environment/data.rb +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/abc/lib/puppet/bindings/abc/default.rb +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/abc/lib/puppet/functions/abc/data.rb +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/abc/manifests/init.pp +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bad_data/lib/puppet/bindings/bad_data/default.rb +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bad_data/lib/puppet/functions/bad_data/data.rb +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bad_data/manifests/init.pp +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bca/lib/puppet/bindings/bca/default.rb +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bca/lib/puppet/functions/bca/data.rb +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bca/manifests/init.pp +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_json/data/empty.json +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_json/hiera.yaml +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_json/manifests/init.pp +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_json/metadata.json +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_json/data/empty_key.json +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_json/hiera.yaml +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_json/manifests/init.pp +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_json/metadata.json +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_yaml/data/empty_key.yaml +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_yaml/hiera.yaml +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_yaml/manifests/init.pp +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_yaml/metadata.json +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_yaml/data/empty.yaml +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_yaml/hiera.yaml +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_yaml/manifests/init.pp +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_yaml/metadata.json +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/hieraprovider/data/first.json +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/hieraprovider/hiera.yaml +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/hieraprovider/manifests/init.pp +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/hieraprovider/metadata.json +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/meta/lib/puppet/functions/meta/data.rb +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/meta/manifests/init.pp +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/meta/metadata.json +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/metawcp/lib/puppet/bindings/metawcp/default.rb +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/metawcp/lib/puppet_x/thallgren/sample_module_data.rb +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/metawcp/manifests/init.pp +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/metawcp/metadata.json +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/no_provider/manifests/init.pp +0 -0
- data/spec/integration/application/apply_spec.rb +88 -2
- data/spec/integration/application/lookup_spec.rb +155 -0
- data/spec/integration/data_binding_spec.rb +5 -5
- data/spec/integration/defaults_spec.rb +13 -0
- data/spec/integration/environments/default_manifest_spec.rb +16 -16
- data/spec/integration/environments/setting_hooks_spec.rb +1 -1
- data/spec/integration/test/test_helper_spec.rb +6 -2
- data/spec/integration/transaction_spec.rb +74 -0
- data/spec/integration/util/execution_spec.rb +8 -0
- data/spec/lib/puppet_spec/module_tool/shared_functions.rb +2 -2
- data/spec/lib/puppet_spec/module_tool/stub_source.rb +1 -1
- data/spec/lib/puppet_spec/unindent.rb +2 -2
- data/spec/unit/application/face_base_spec.rb +16 -0
- data/spec/unit/application/lookup_spec.rb +262 -227
- data/spec/unit/data_providers/{sample_data_provider_spec.rb → custom_data_provider_spec.rb} +14 -16
- data/spec/unit/data_providers/function_data_provider_spec.rb +2 -2
- data/spec/unit/data_providers/hiera_data_provider_spec.rb +60 -97
- data/spec/unit/defaults_spec.rb +1 -1
- data/spec/unit/face/ca_spec.rb +10 -0
- data/spec/unit/face/certificate_request_spec.rb +10 -0
- data/spec/unit/face/certificate_revocation_list_spec.rb +10 -0
- data/spec/unit/face/file_spec.rb +4 -0
- data/spec/unit/face/help_spec.rb +17 -0
- data/spec/unit/face/key_spec.rb +10 -0
- data/spec/unit/face/status_spec.rb +10 -0
- data/spec/unit/file_system_spec.rb +143 -6
- data/spec/unit/functions/binary_file_spec.rb +1 -1
- data/spec/unit/functions/hiera_spec.rb +257 -47
- data/spec/unit/functions/lookup_fixture_spec.rb +693 -0
- data/spec/unit/functions/lookup_spec.rb +1319 -608
- data/spec/unit/functions/new_spec.rb +3 -3
- data/spec/unit/graph/rb_tree_map_spec.rb +1 -1
- data/spec/unit/graph/simple_graph_spec.rb +1 -1
- data/spec/unit/hiera/scope_spec.rb +4 -4
- data/spec/unit/indirector/request_spec.rb +9 -0
- data/spec/unit/interface_spec.rb +27 -0
- data/spec/unit/man_spec.rb +1 -1
- data/spec/unit/module_spec.rb +1 -1
- data/spec/unit/module_tool/applications/builder_spec.rb +16 -1
- data/spec/unit/module_tool/applications/installer_spec.rb +1 -1
- data/spec/unit/module_tool/applications/upgrader_spec.rb +1 -1
- data/spec/unit/module_tool/installed_modules_spec.rb +6 -6
- data/spec/unit/module_tool_spec.rb +3 -3
- data/spec/unit/network/http/connection_spec.rb +10 -0
- data/spec/unit/network/http/webrick_spec.rb +1 -1
- data/spec/unit/pops/evaluator/access_ops_spec.rb +2 -2
- data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +9 -9
- data/spec/unit/pops/loaders/environment_loader_spec.rb +172 -0
- data/spec/unit/pops/lookup/context_spec.rb +45 -16
- data/spec/unit/pops/lookup/interpolation_spec.rb +28 -20
- data/spec/unit/pops/lookup/lookup_spec.rb +197 -0
- data/spec/unit/pops/merge_strategy_spec.rb +18 -0
- data/spec/unit/pops/parser/lexer2_spec.rb +16 -1
- data/spec/unit/pops/parser/parse_site_spec.rb +4 -0
- data/spec/unit/pops/serialization/packer_spec.rb +4 -23
- data/spec/unit/pops/serialization/serialization_spec.rb +32 -8
- data/spec/unit/pops/types/p_object_type_spec.rb +68 -3
- data/spec/unit/pops/types/p_sem_ver_type_spec.rb +4 -4
- data/spec/unit/pops/types/p_type_set_type_spec.rb +31 -2
- data/spec/unit/pops/types/type_acceptor_spec.rb +18 -17
- data/spec/unit/pops/types/type_calculator_spec.rb +39 -40
- data/spec/unit/pops/types/type_factory_spec.rb +3 -3
- data/spec/unit/pops/types/type_formatter_spec.rb +7 -3
- data/spec/unit/pops/types/type_mismatch_describer_spec.rb +13 -2
- data/spec/unit/pops/types/types_spec.rb +25 -2
- data/spec/unit/pops/validator/validator_spec.rb +60 -4
- data/spec/unit/provider/nameservice_spec.rb +42 -0
- data/spec/unit/provider/package/aptrpm_spec.rb +1 -1
- data/spec/unit/provider/package/pkg_spec.rb +22 -0
- data/spec/unit/provider/package/pkgng_spec.rb +12 -0
- data/spec/unit/provider/package/rpm_spec.rb +8 -8
- data/spec/unit/provider/service/smf_spec.rb +13 -11
- data/spec/unit/provider/service/systemd_spec.rb +8 -1
- data/spec/unit/provider/user/useradd_spec.rb +1 -0
- data/spec/unit/puppet_spec.rb +14 -0
- data/spec/unit/resource/catalog_spec.rb +15 -9
- data/spec/unit/resource_spec.rb +20 -17
- data/spec/unit/semver_spec.rb +14 -0
- data/spec/unit/ssl/certificate_authority_spec.rb +12 -1
- data/spec/unit/transaction/additional_resource_generator_spec.rb +11 -0
- data/spec/unit/type/user_spec.rb +32 -6
- data/spec/unit/util/filetype_spec.rb +3 -3
- data/spec/unit/util/yaml_spec.rb +1 -1
- data/spec/unit/util_spec.rb +10 -2
- data/tasks/i18n.rake +20 -0
- metadata +2661 -2595
- data/lib/puppet/data_providers/lookup_adapter.rb +0 -254
- data/lib/puppet/vendor/load_semantic.rb +0 -1
- data/lib/puppet/vendor/semantic/Gemfile +0 -20
- data/lib/puppet/vendor/semantic/PUPPET_README.md +0 -6
- data/lib/puppet/vendor/semantic/Rakefile +0 -69
- data/lib/puppet/vendor/semantic/lib/semantic/dependency/module_release.rb +0 -60
- data/lib/puppet/vendor/semantic/lib/semantic.rb +0 -7
- data/lib/puppet/vendor/semantic/spec/spec_helper.rb +0 -24
- data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/graph_node_spec.rb +0 -141
- data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/graph_spec.rb +0 -162
- data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/module_release_spec.rb +0 -143
- data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/source_spec.rb +0 -5
- data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/unsatisfiable_graph_spec.rb +0 -44
- data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency_spec.rb +0 -383
- data/lib/puppet/vendor/semantic/spec/unit/semantic/version_range_spec.rb +0 -307
- data/lib/puppet/vendor/semantic/spec/unit/semantic/version_spec.rb +0 -608
- data/spec/fixtures/unit/data_providers/environments/sample/manifests/site.pp +0 -6
@@ -0,0 +1,27 @@
|
|
1
|
+
require_relative 'configured_data_provider'
|
2
|
+
|
3
|
+
module Puppet::Pops
|
4
|
+
module Lookup
|
5
|
+
# @api private
|
6
|
+
class EnvironmentDataProvider < ConfiguredDataProvider
|
7
|
+
def place
|
8
|
+
'Environment'
|
9
|
+
end
|
10
|
+
|
11
|
+
protected
|
12
|
+
|
13
|
+
def assert_config_version(config)
|
14
|
+
raise Puppet::DataBinding::LookupError, "#{config.name} cannot be used in an environment" unless config.version > 3
|
15
|
+
config
|
16
|
+
end
|
17
|
+
|
18
|
+
# Return the root of the environment
|
19
|
+
#
|
20
|
+
# @param lookup_invocation [Invocation] The current lookup invocation
|
21
|
+
# @return [Pathname] Path to root of the environment
|
22
|
+
def provider_root(lookup_invocation)
|
23
|
+
Pathname.new(lookup_invocation.scope.environment.configuration.path_to_env)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -1,4 +1,5 @@
|
|
1
|
-
module Puppet::Pops
|
1
|
+
module Puppet::Pops
|
2
|
+
module Lookup
|
2
3
|
|
3
4
|
# The ExplainNode contains information of a specific node in a tree traversed during
|
4
5
|
# lookup. The tree can be traversed using the `parent` and `branches` attributes of
|
@@ -17,13 +18,33 @@ module Puppet::Pops::Lookup
|
|
17
18
|
hash
|
18
19
|
end
|
19
20
|
|
20
|
-
def
|
21
|
+
def explain
|
21
22
|
io = ''
|
22
23
|
dump_on(io, '', '')
|
23
24
|
io
|
24
25
|
end
|
25
26
|
|
27
|
+
def inspect
|
28
|
+
to_s
|
29
|
+
end
|
30
|
+
|
31
|
+
def to_s
|
32
|
+
s = self.class.name
|
33
|
+
s = "#{s} with #{@branches.size} branches" unless @branches.nil?
|
34
|
+
s
|
35
|
+
end
|
36
|
+
|
37
|
+
def text(text)
|
38
|
+
@texts ||= []
|
39
|
+
@texts << text
|
40
|
+
end
|
41
|
+
|
26
42
|
def dump_on(io, indent, first_indent)
|
43
|
+
dump_texts(io, indent)
|
44
|
+
end
|
45
|
+
|
46
|
+
def dump_texts(io, indent)
|
47
|
+
@texts.each { |text| io << indent << text << "\n" } if instance_variable_defined?(:@texts)
|
27
48
|
end
|
28
49
|
end
|
29
50
|
|
@@ -34,23 +55,22 @@ module Puppet::Pops::Lookup
|
|
34
55
|
def initialize(parent)
|
35
56
|
@parent = parent
|
36
57
|
@event = nil
|
37
|
-
@texts = nil
|
38
58
|
end
|
39
59
|
|
40
60
|
def found_in_overrides(key, value)
|
41
|
-
@key = key
|
61
|
+
@key = key.to_s
|
42
62
|
@value = value
|
43
63
|
@event = :found_in_overrides
|
44
64
|
end
|
45
65
|
|
46
66
|
def found_in_defaults(key, value)
|
47
|
-
@key = key
|
67
|
+
@key = key.to_s
|
48
68
|
@value = value
|
49
69
|
@event = :found_in_defaults
|
50
70
|
end
|
51
71
|
|
52
72
|
def found(key, value)
|
53
|
-
@key = key
|
73
|
+
@key = key.to_s
|
54
74
|
@value = value
|
55
75
|
@event = :found
|
56
76
|
end
|
@@ -60,22 +80,13 @@ module Puppet::Pops::Lookup
|
|
60
80
|
@event = :result
|
61
81
|
end
|
62
82
|
|
63
|
-
def text(text)
|
64
|
-
@texts ||= []
|
65
|
-
@texts << text
|
66
|
-
end
|
67
|
-
|
68
83
|
def not_found(key)
|
69
|
-
@key = key
|
84
|
+
@key = key.to_s
|
70
85
|
@event = :not_found
|
71
86
|
end
|
72
87
|
|
73
|
-
def
|
74
|
-
@event = :
|
75
|
-
end
|
76
|
-
|
77
|
-
def module_not_found
|
78
|
-
@event = :module_not_found
|
88
|
+
def location_not_found
|
89
|
+
@event = :location_not_found
|
79
90
|
end
|
80
91
|
|
81
92
|
def increase_indent(indent)
|
@@ -97,19 +108,17 @@ module Puppet::Pops::Lookup
|
|
97
108
|
end
|
98
109
|
|
99
110
|
def dump_outcome(io, indent)
|
100
|
-
|
101
|
-
|
111
|
+
case @event
|
112
|
+
when :not_found
|
113
|
+
io << indent << 'No such key: "' << @key << "\"\n"
|
114
|
+
when :found, :found_in_overrides, :found_in_defaults
|
102
115
|
io << indent << 'Found key: "' << @key << '" value: '
|
103
116
|
dump_value(io, indent, @value)
|
104
117
|
io << ' in overrides' if @event == :found_in_overrides
|
105
118
|
io << ' in defaults' if @event == :found_in_defaults
|
106
119
|
io << "\n"
|
107
120
|
end
|
108
|
-
dump_texts(io, indent
|
109
|
-
end
|
110
|
-
|
111
|
-
def dump_texts(io, indent, texts)
|
112
|
-
texts.each { |text| io << indent << text << "\n" } unless texts.nil?
|
121
|
+
dump_texts(io, indent)
|
113
122
|
end
|
114
123
|
|
115
124
|
def dump_value(io, indent, value)
|
@@ -144,13 +153,17 @@ module Puppet::Pops::Lookup
|
|
144
153
|
io << value.inspect
|
145
154
|
end
|
146
155
|
end
|
156
|
+
|
157
|
+
def to_s
|
158
|
+
"#{self.class.name}: #{@key}, #{@event}"
|
159
|
+
end
|
147
160
|
end
|
148
161
|
|
149
162
|
class ExplainTop < ExplainTreeNode
|
150
163
|
def initialize(parent, type, key)
|
151
164
|
super(parent)
|
152
165
|
@type = type
|
153
|
-
self.key = key
|
166
|
+
self.key = key.to_s
|
154
167
|
end
|
155
168
|
|
156
169
|
def dump_on(io, indent, first_indent)
|
@@ -163,7 +176,7 @@ module Puppet::Pops::Lookup
|
|
163
176
|
class ExplainInvalidKey < ExplainTreeNode
|
164
177
|
def initialize(parent, key)
|
165
178
|
super(parent)
|
166
|
-
@key = key
|
179
|
+
@key = key.to_s
|
167
180
|
end
|
168
181
|
|
169
182
|
def dump_on(io, indent, first_indent)
|
@@ -195,6 +208,34 @@ module Puppet::Pops::Lookup
|
|
195
208
|
end
|
196
209
|
end
|
197
210
|
|
211
|
+
class ExplainModule < ExplainTreeNode
|
212
|
+
def initialize(parent, module_name)
|
213
|
+
super(parent)
|
214
|
+
@module_name = module_name
|
215
|
+
end
|
216
|
+
|
217
|
+
def dump_on(io, indent, first_indent)
|
218
|
+
case @event
|
219
|
+
when :module_not_found
|
220
|
+
io << indent << 'Module "' << @module_name << "\" not found\n"
|
221
|
+
when :module_provider_not_found
|
222
|
+
io << indent << 'Module data provider for module "' << @module_name << "\" not found\n"
|
223
|
+
end
|
224
|
+
end
|
225
|
+
|
226
|
+
def module_not_found
|
227
|
+
@event = :module_not_found
|
228
|
+
end
|
229
|
+
|
230
|
+
def module_provider_not_found
|
231
|
+
@event = :module_provider_not_found
|
232
|
+
end
|
233
|
+
|
234
|
+
def type
|
235
|
+
:module
|
236
|
+
end
|
237
|
+
end
|
238
|
+
|
198
239
|
class ExplainInterpolate < ExplainTreeNode
|
199
240
|
def initialize(parent, expression)
|
200
241
|
super(parent)
|
@@ -269,39 +310,6 @@ module Puppet::Pops::Lookup
|
|
269
310
|
end
|
270
311
|
end
|
271
312
|
|
272
|
-
class ExplainModule < ExplainTreeNode
|
273
|
-
def initialize(parent, mod)
|
274
|
-
super(parent)
|
275
|
-
@module = mod
|
276
|
-
end
|
277
|
-
|
278
|
-
def dump_on(io, indent, first_indent)
|
279
|
-
io << indent << 'Module "' << @module << '"'
|
280
|
-
if branches.size == 1
|
281
|
-
branches[0].dump_on(io, indent, ' using ')
|
282
|
-
else
|
283
|
-
io << "\n"
|
284
|
-
indent = increase_indent(indent)
|
285
|
-
branches.each {|b| b.dump_on(io, indent, indent)}
|
286
|
-
end
|
287
|
-
io << indent << "Module not found\n" if @event == :module_not_found
|
288
|
-
end
|
289
|
-
|
290
|
-
def to_hash
|
291
|
-
if branches.size == 1
|
292
|
-
branches[0].to_hash.merge(:module => @module)
|
293
|
-
else
|
294
|
-
hash = super
|
295
|
-
hash[:module] = @module
|
296
|
-
hash
|
297
|
-
end
|
298
|
-
end
|
299
|
-
|
300
|
-
def type
|
301
|
-
:module
|
302
|
-
end
|
303
|
-
end
|
304
|
-
|
305
313
|
class ExplainGlobal < ExplainTreeNode
|
306
314
|
def initialize(parent, binding_terminus)
|
307
315
|
super(parent)
|
@@ -333,9 +341,12 @@ module Puppet::Pops::Lookup
|
|
333
341
|
end
|
334
342
|
|
335
343
|
def dump_on(io, indent, first_indent)
|
336
|
-
io << first_indent <<
|
344
|
+
io << first_indent << @provider.name << "\n"
|
337
345
|
indent = increase_indent(indent)
|
338
|
-
|
346
|
+
if @provider.respond_to?(:config_path)
|
347
|
+
path = @provider.config_path
|
348
|
+
io << indent << 'Using configuration "' << path.to_s << "\"\n" unless path.nil?
|
349
|
+
end
|
339
350
|
branches.each {|b| b.dump_on(io, indent, indent)}
|
340
351
|
dump_outcome(io, indent)
|
341
352
|
end
|
@@ -343,7 +354,11 @@ module Puppet::Pops::Lookup
|
|
343
354
|
def to_hash
|
344
355
|
hash = super
|
345
356
|
hash[:name] = @provider.name
|
346
|
-
|
357
|
+
if @provider.respond_to?(:config_path)
|
358
|
+
path = @provider.config_path
|
359
|
+
hash[:configuration_path] = path.to_s unless path.nil?
|
360
|
+
end
|
361
|
+
hash[:module] = @provider.module_name if @provider.is_a?(ModuleDataProvider)
|
347
362
|
hash
|
348
363
|
end
|
349
364
|
|
@@ -352,30 +367,38 @@ module Puppet::Pops::Lookup
|
|
352
367
|
end
|
353
368
|
end
|
354
369
|
|
355
|
-
class
|
356
|
-
def initialize(parent,
|
370
|
+
class ExplainLocation < ExplainTreeNode
|
371
|
+
def initialize(parent, location)
|
357
372
|
super(parent)
|
358
|
-
@
|
373
|
+
@location = location
|
359
374
|
end
|
360
375
|
|
361
376
|
def dump_on(io, indent, first_indent)
|
362
|
-
|
377
|
+
location = @location.location
|
378
|
+
type_name = type == :path ? 'Path' : 'URI'
|
379
|
+
io << indent << type_name << ' "' << location.to_s << "\"\n"
|
363
380
|
indent = increase_indent(indent)
|
364
|
-
io << indent << 'Original
|
381
|
+
io << indent << 'Original ' << type_name.downcase << ': "' << @location.original_location << "\"\n"
|
365
382
|
branches.each {|b| b.dump_on(io, indent, indent)}
|
366
|
-
io << indent << "
|
383
|
+
io << indent << type_name << " not found\n" if @event == :location_not_found
|
367
384
|
dump_outcome(io, indent)
|
368
385
|
end
|
369
386
|
|
370
387
|
def to_hash
|
371
388
|
hash = super
|
372
|
-
|
373
|
-
|
389
|
+
location = @location.location
|
390
|
+
if type == :path
|
391
|
+
hash[:original_path] = @location.original_location
|
392
|
+
hash[:path] = location.to_s
|
393
|
+
else
|
394
|
+
hash[:original_uri] = @location.original_location
|
395
|
+
hash[:uri] = location.to_s
|
396
|
+
end
|
374
397
|
hash
|
375
398
|
end
|
376
399
|
|
377
400
|
def type
|
378
|
-
:path
|
401
|
+
@location.location.is_a?(Pathname) ? :path : :uri
|
379
402
|
end
|
380
403
|
end
|
381
404
|
|
@@ -413,16 +436,23 @@ module Puppet::Pops::Lookup
|
|
413
436
|
end
|
414
437
|
|
415
438
|
class ExplainScope < ExplainTreeNode
|
416
|
-
def initialize(parent)
|
439
|
+
def initialize(parent, name)
|
417
440
|
super(parent)
|
441
|
+
@name = name
|
418
442
|
end
|
419
443
|
|
420
444
|
def dump_on(io, indent, first_indent)
|
421
|
-
io << indent <<
|
445
|
+
io << indent << @name << "\n"
|
422
446
|
indent = increase_indent(indent)
|
423
447
|
dump_outcome(io, indent)
|
424
448
|
end
|
425
449
|
|
450
|
+
def to_hash
|
451
|
+
hash = super
|
452
|
+
hash[:name] = @name
|
453
|
+
hash
|
454
|
+
end
|
455
|
+
|
426
456
|
def type
|
427
457
|
:scope
|
428
458
|
end
|
@@ -439,18 +469,18 @@ module Puppet::Pops::Lookup
|
|
439
469
|
node = case (qualifier_type)
|
440
470
|
when :global
|
441
471
|
ExplainGlobal.new(@current, qualifier)
|
442
|
-
when :
|
443
|
-
|
444
|
-
when :module
|
445
|
-
ExplainModule.new(@current, qualifier)
|
472
|
+
when :location
|
473
|
+
ExplainLocation.new(@current, qualifier)
|
446
474
|
when :interpolate
|
447
475
|
ExplainInterpolate.new(@current, qualifier)
|
448
476
|
when :data_provider
|
449
477
|
ExplainDataProvider.new(@current, qualifier)
|
450
478
|
when :merge
|
451
479
|
ExplainMerge.new(@current, qualifier)
|
480
|
+
when :module
|
481
|
+
ExplainModule.new(@current, qualifier)
|
452
482
|
when :scope
|
453
|
-
ExplainScope.new(@current)
|
483
|
+
ExplainScope.new(@current, qualifier)
|
454
484
|
when :sub_lookup
|
455
485
|
ExplainSubLookup.new(@current, qualifier)
|
456
486
|
when :segment
|
@@ -498,12 +528,20 @@ module Puppet::Pops::Lookup
|
|
498
528
|
@current.not_found(key)
|
499
529
|
end
|
500
530
|
|
501
|
-
def
|
502
|
-
@current.
|
531
|
+
def accept_location_not_found
|
532
|
+
@current.location_not_found
|
503
533
|
end
|
504
534
|
|
505
|
-
def accept_module_not_found
|
535
|
+
def accept_module_not_found(module_name)
|
536
|
+
push(:module, module_name)
|
506
537
|
@current.module_not_found
|
538
|
+
pop
|
539
|
+
end
|
540
|
+
|
541
|
+
def accept_module_provider_not_found(module_name)
|
542
|
+
push(:module, module_name)
|
543
|
+
@current.module_provider_not_found
|
544
|
+
pop
|
507
545
|
end
|
508
546
|
|
509
547
|
def accept_result(result)
|
@@ -516,6 +554,7 @@ module Puppet::Pops::Lookup
|
|
516
554
|
|
517
555
|
def dump_on(io, indent, first_indent)
|
518
556
|
branches.each { |b| b.dump_on(io, indent, first_indent) }
|
557
|
+
dump_texts(io, indent)
|
519
558
|
end
|
520
559
|
|
521
560
|
def to_hash
|
@@ -551,3 +590,4 @@ module Puppet::Pops::Lookup
|
|
551
590
|
end
|
552
591
|
end
|
553
592
|
end
|
593
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
require_relative 'data_adapter'
|
2
|
+
require_relative 'context'
|
3
|
+
require_relative 'data_provider'
|
4
|
+
|
5
|
+
module Puppet::Pops
|
6
|
+
module Lookup
|
7
|
+
# @api private
|
8
|
+
class FunctionProvider
|
9
|
+
include DataProvider
|
10
|
+
|
11
|
+
attr_reader :parent_data_provider, :function_name, :locations
|
12
|
+
|
13
|
+
def initialize(name, parent_data_provider, function_name, options, locations)
|
14
|
+
@name = name
|
15
|
+
@parent_data_provider = parent_data_provider
|
16
|
+
@function_name = function_name
|
17
|
+
@options = options
|
18
|
+
@locations = locations || [nil]
|
19
|
+
@contexts = {}
|
20
|
+
end
|
21
|
+
|
22
|
+
# @return [FunctionContext] the function context associated with this provider
|
23
|
+
def function_context(lookup_invocation, location)
|
24
|
+
scope = lookup_invocation.scope
|
25
|
+
compiler = scope.compiler
|
26
|
+
@contexts[location] ||= FunctionContext.new(compiler.environment.name, module_name, function(scope))
|
27
|
+
end
|
28
|
+
|
29
|
+
def module_name
|
30
|
+
@parent_data_provider.module_name
|
31
|
+
end
|
32
|
+
|
33
|
+
def name
|
34
|
+
"Hierarchy entry \"#{@name}\""
|
35
|
+
end
|
36
|
+
|
37
|
+
def to_s
|
38
|
+
name
|
39
|
+
end
|
40
|
+
|
41
|
+
# Obtains the options to send to the function, optionally merged with a 'path' or 'uri' option
|
42
|
+
#
|
43
|
+
# @param [Pathname,URI] location The location to add to the options
|
44
|
+
# @return [Hash{String => Object}] The options hash
|
45
|
+
def options(location = nil)
|
46
|
+
case location
|
47
|
+
when nil
|
48
|
+
@options
|
49
|
+
when Pathname
|
50
|
+
@options.merge(HieraConfig::KEY_PATH => location.to_s)
|
51
|
+
when URI
|
52
|
+
@options.merge(HieraConfig::KEY_URI => location.to_s)
|
53
|
+
else
|
54
|
+
@options
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
private
|
59
|
+
|
60
|
+
def function(scope)
|
61
|
+
@function ||= load_function(scope)
|
62
|
+
end
|
63
|
+
|
64
|
+
def load_function(scope)
|
65
|
+
loaders = scope.compiler.loaders
|
66
|
+
typed_name = Loader::TypedName.new(:function, @function_name)
|
67
|
+
loader = if typed_name.qualified?
|
68
|
+
qualifier = typed_name.name_parts[0]
|
69
|
+
qualifier == 'environment' ? loaders.private_environment_loader : loaders.private_loader_for_module(qualifier)
|
70
|
+
else
|
71
|
+
loaders.private_environment_loader
|
72
|
+
end
|
73
|
+
te = loader.load_typed(typed_name)
|
74
|
+
if te.nil? || te.value.nil?
|
75
|
+
raise Puppet::DataBinding::LookupError,
|
76
|
+
"#{@options[HieraConfig::KEY_NAME]}: Unable to find '#{self.class::TAG}' function named '#{function_name}'"
|
77
|
+
end
|
78
|
+
te.value
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'hiera/scope'
|
2
|
+
require_relative 'configured_data_provider'
|
3
|
+
|
4
|
+
module Puppet::Pops
|
5
|
+
module Lookup
|
6
|
+
# @api private
|
7
|
+
class GlobalDataProvider < ConfiguredDataProvider
|
8
|
+
def place
|
9
|
+
'Global'
|
10
|
+
end
|
11
|
+
|
12
|
+
def unchecked_key_lookup(key, lookup_invocation, merge)
|
13
|
+
config = config(lookup_invocation)
|
14
|
+
if(config.version == 3)
|
15
|
+
# Hiera version 3 needs access to special scope variables
|
16
|
+
scope = lookup_invocation.scope
|
17
|
+
unless scope.is_a?(Hiera::Scope)
|
18
|
+
lookup_invocation = Invocation.new(
|
19
|
+
Hiera::Scope.new(scope),
|
20
|
+
lookup_invocation.override_values,
|
21
|
+
lookup_invocation.default_values,
|
22
|
+
lookup_invocation.explainer)
|
23
|
+
end
|
24
|
+
merge = config.merge_strategy if merge.is_a?(DefaultMergeStrategy)
|
25
|
+
end
|
26
|
+
super(key, lookup_invocation, merge)
|
27
|
+
end
|
28
|
+
|
29
|
+
protected
|
30
|
+
|
31
|
+
def assert_config_version(config)
|
32
|
+
raise Puppet::DataBinding::LookupError, "#{config.name} cannot be used in the global layer" if config.version == 4
|
33
|
+
config
|
34
|
+
end
|
35
|
+
|
36
|
+
# Return the root of the environment
|
37
|
+
#
|
38
|
+
# @param lookup_invocation [Invocation] The current lookup invocation
|
39
|
+
# @return [Pathname] Path to the parent of the hiera configuration file
|
40
|
+
def provider_root(lookup_invocation)
|
41
|
+
configuration_path(lookup_invocation).parent
|
42
|
+
end
|
43
|
+
|
44
|
+
def configuration_path(lookup_invocation)
|
45
|
+
lookup_invocation.global_hiera_config_path
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|