puppet 4.8.2-universal-darwin → 4.9.0-universal-darwin
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +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
|