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
@@ -4,6 +4,18 @@ require 'puppet/pops/lookup'
|
|
4
4
|
|
5
5
|
describe Puppet::Application::Lookup do
|
6
6
|
|
7
|
+
def run_lookup(lookup)
|
8
|
+
capture = StringIO.new
|
9
|
+
saved_stdout = $stdout
|
10
|
+
begin
|
11
|
+
$stdout = capture
|
12
|
+
expect { lookup.run_command }.to exit_with(0)
|
13
|
+
ensure
|
14
|
+
$stdout = saved_stdout
|
15
|
+
end
|
16
|
+
capture.string.strip
|
17
|
+
end
|
18
|
+
|
7
19
|
context "when running with incorrect command line options" do
|
8
20
|
let (:lookup) { Puppet::Application[:lookup] }
|
9
21
|
|
@@ -51,7 +63,7 @@ describe Puppet::Application::Lookup do
|
|
51
63
|
|
52
64
|
(Puppet::Pops::Lookup).expects(:lookup).with(['atton', 'kreia'], nil, nil, false, expected_merge, anything).returns('rand')
|
53
65
|
|
54
|
-
expect
|
66
|
+
expect(run_lookup(lookup)).to eql("rand")
|
55
67
|
end
|
56
68
|
|
57
69
|
%w(first unique hash deep).each do |opt|
|
@@ -62,7 +74,7 @@ describe Puppet::Application::Lookup do
|
|
62
74
|
lookup.command_line.stubs(:args).returns(['atton', 'kreia'])
|
63
75
|
lookup.stubs(:generate_scope).yields('scope')
|
64
76
|
Puppet::Pops::Lookup.stubs(:lookup).returns('rand')
|
65
|
-
expect
|
77
|
+
expect(run_lookup(lookup)).to eql("--- rand\n...")
|
66
78
|
end
|
67
79
|
end
|
68
80
|
|
@@ -73,7 +85,7 @@ describe Puppet::Application::Lookup do
|
|
73
85
|
|
74
86
|
Puppet::Pops::Lookup.stubs(:lookup).returns('rand')
|
75
87
|
|
76
|
-
expect
|
88
|
+
expect(run_lookup(lookup)).to eql("--- rand\n...")
|
77
89
|
end
|
78
90
|
end
|
79
91
|
|
@@ -88,69 +100,161 @@ describe Puppet::Application::Lookup do
|
|
88
100
|
|
89
101
|
let(:node) { Puppet::Node.new("testnode", :facts => facts, :environment => 'production') }
|
90
102
|
|
91
|
-
let(:expected_json_hash) {
|
92
|
-
'type' => 'merge',
|
93
|
-
'merge' => 'first',
|
94
|
-
'event' => 'result',
|
95
|
-
'value' => 'This is A',
|
96
|
-
'branches' => [
|
97
|
-
{ 'key' => 'a',
|
98
|
-
'event' => 'not_found',
|
99
|
-
'type' => 'global',
|
100
|
-
'name' => 'hiera'
|
101
|
-
},
|
103
|
+
let(:expected_json_hash) {
|
102
104
|
{
|
103
|
-
'
|
104
|
-
|
105
|
-
'configuration_path' => "#{environmentpath}/production/hiera.yaml",
|
106
|
-
'branches' => [
|
107
|
-
{
|
108
|
-
'name' => 'common',
|
109
|
-
'type' => 'data_provider',
|
110
|
-
'branches' => [
|
111
|
-
{
|
112
|
-
'key' => 'a',
|
113
|
-
'value' => 'This is A',
|
114
|
-
'event' => 'found',
|
115
|
-
'type' => 'path',
|
116
|
-
'original_path' => 'common',
|
117
|
-
'path' => "#{environmentpath}/production/data/common.yaml",
|
118
|
-
}]
|
119
|
-
}]
|
120
|
-
}]
|
121
|
-
} }
|
122
|
-
|
123
|
-
let(:expected_yaml_hash) { {
|
124
|
-
:type => :merge,
|
125
|
-
:merge => :first,
|
126
|
-
:event => :result,
|
127
|
-
:value => 'This is A',
|
128
|
-
:branches => [
|
129
|
-
{ :key => 'a',
|
130
|
-
:event => :not_found,
|
131
|
-
:type => :global,
|
132
|
-
:name => :hiera
|
133
|
-
},
|
134
|
-
{
|
135
|
-
:type => :data_provider,
|
136
|
-
:name => 'Hiera Data Provider, version 4',
|
137
|
-
:configuration_path => "#{environmentpath}/production/hiera.yaml",
|
138
|
-
:branches => [
|
105
|
+
'branches' =>
|
106
|
+
[
|
139
107
|
{
|
140
|
-
|
141
|
-
|
142
|
-
|
108
|
+
'branches'=>
|
109
|
+
[
|
110
|
+
{
|
111
|
+
'key'=>'lookup_options',
|
112
|
+
'event'=>'not_found',
|
113
|
+
'type'=>'data_provider',
|
114
|
+
'name'=>'Global Data Provider (hiera configuration version 5)'
|
115
|
+
},
|
116
|
+
{
|
117
|
+
'branches'=>
|
118
|
+
[
|
119
|
+
{
|
120
|
+
'branches'=>
|
121
|
+
[
|
122
|
+
{
|
123
|
+
'key' => 'lookup_options',
|
124
|
+
'value' => {'a'=>'first'},
|
125
|
+
'event'=>'found',
|
126
|
+
'type'=>'path',
|
127
|
+
'original_path'=>'common.yaml',
|
128
|
+
'path'=>"#{environmentpath}/production/data/common.yaml"
|
129
|
+
}
|
130
|
+
],
|
131
|
+
'type'=>'data_provider',
|
132
|
+
'name'=>'Hierarchy entry "Common"'
|
133
|
+
}
|
134
|
+
],
|
135
|
+
'type'=>'data_provider',
|
136
|
+
'name'=>'Environment Data Provider (hiera configuration version 5)'
|
137
|
+
}
|
138
|
+
],
|
139
|
+
'key'=>'lookup_options',
|
140
|
+
'type'=>'root'
|
141
|
+
},
|
142
|
+
{
|
143
|
+
'branches'=>
|
144
|
+
[
|
145
|
+
{
|
146
|
+
'key'=>'a',
|
147
|
+
'event'=>'not_found',
|
148
|
+
'type'=>'data_provider',
|
149
|
+
'name'=>'Global Data Provider (hiera configuration version 5)'
|
150
|
+
},
|
151
|
+
{
|
152
|
+
'branches'=>
|
153
|
+
[
|
154
|
+
{
|
155
|
+
'branches'=>
|
156
|
+
[
|
157
|
+
{
|
158
|
+
'key'=>'a',
|
159
|
+
'value'=>'This is A',
|
160
|
+
'event'=>'found',
|
161
|
+
'type'=>'path',
|
162
|
+
'original_path'=>'common.yaml',
|
163
|
+
'path'=>"#{environmentpath}/production/data/common.yaml"
|
164
|
+
}
|
165
|
+
],
|
166
|
+
'type'=>'data_provider',
|
167
|
+
'name'=>'Hierarchy entry "Common"'
|
168
|
+
}
|
169
|
+
],
|
170
|
+
'type'=>'data_provider',
|
171
|
+
'name'=>'Environment Data Provider (hiera configuration version 5)'
|
172
|
+
}
|
173
|
+
],
|
174
|
+
'key'=>'a',
|
175
|
+
'type'=>'root'
|
176
|
+
}
|
177
|
+
]
|
178
|
+
}
|
179
|
+
}
|
180
|
+
|
181
|
+
let(:expected_yaml_hash) {
|
182
|
+
{
|
183
|
+
:branches =>
|
184
|
+
[
|
185
|
+
{
|
186
|
+
:branches=>
|
187
|
+
[
|
143
188
|
{
|
144
|
-
:key
|
145
|
-
:
|
146
|
-
:
|
147
|
-
:
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
189
|
+
:key=>'lookup_options',
|
190
|
+
:event=>:not_found,
|
191
|
+
:type=>:data_provider,
|
192
|
+
:name=>'Global Data Provider (hiera configuration version 5)'
|
193
|
+
},
|
194
|
+
{
|
195
|
+
:branches=>
|
196
|
+
[
|
197
|
+
{
|
198
|
+
:branches=>
|
199
|
+
[
|
200
|
+
{
|
201
|
+
:key => 'lookup_options',
|
202
|
+
:value => {'a'=>'first'},
|
203
|
+
:event=>:found,
|
204
|
+
:type=>:path,
|
205
|
+
:original_path=>'common.yaml',
|
206
|
+
:path=>"#{environmentpath}/production/data/common.yaml"
|
207
|
+
}
|
208
|
+
],
|
209
|
+
:type=>:data_provider,
|
210
|
+
:name=>'Hierarchy entry "Common"'
|
211
|
+
}
|
212
|
+
],
|
213
|
+
:type=>:data_provider,
|
214
|
+
:name=>'Environment Data Provider (hiera configuration version 5)'
|
215
|
+
}
|
216
|
+
],
|
217
|
+
:key=>'lookup_options',
|
218
|
+
:type=>:root
|
219
|
+
},
|
220
|
+
{
|
221
|
+
:branches=>
|
222
|
+
[
|
223
|
+
{
|
224
|
+
:key=>'a',
|
225
|
+
:event=>:not_found,
|
226
|
+
:type=>:data_provider,
|
227
|
+
:name=>'Global Data Provider (hiera configuration version 5)'
|
228
|
+
},
|
229
|
+
{
|
230
|
+
:branches=>
|
231
|
+
[
|
232
|
+
{
|
233
|
+
:branches=>
|
234
|
+
[
|
235
|
+
{
|
236
|
+
:key=>'a',
|
237
|
+
:value=>'This is A',
|
238
|
+
:event=>:found,
|
239
|
+
:type=>:path,
|
240
|
+
:original_path=>'common.yaml',
|
241
|
+
:path=>"#{environmentpath}/production/data/common.yaml"
|
242
|
+
}
|
243
|
+
],
|
244
|
+
:type=>:data_provider,
|
245
|
+
:name=>'Hierarchy entry "Common"'
|
246
|
+
}
|
247
|
+
],
|
248
|
+
:type=>:data_provider,
|
249
|
+
:name=>'Environment Data Provider (hiera configuration version 5)'
|
250
|
+
}
|
251
|
+
],
|
252
|
+
:key=>'a',
|
253
|
+
:type=>:root
|
254
|
+
}
|
255
|
+
]
|
256
|
+
}
|
257
|
+
}
|
154
258
|
|
155
259
|
around(:each) do |example|
|
156
260
|
# Initialize settings to get a full compile as close as possible to a real
|
@@ -167,23 +271,27 @@ describe Puppet::Application::Lookup do
|
|
167
271
|
lookup.options[:explain] = true
|
168
272
|
lookup.command_line.stubs(:args).returns(['a'])
|
169
273
|
logs = []
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
274
|
+
Puppet::Util::Log.with_destination(Puppet::Test::LogCollector.new(logs)) do
|
275
|
+
expect(run_lookup(lookup)).to eql(<<-EXPLANATION.chomp)
|
276
|
+
Searching for "lookup_options"
|
277
|
+
Global Data Provider (hiera configuration version 5)
|
278
|
+
No such key: "lookup_options"
|
279
|
+
Environment Data Provider (hiera configuration version 5)
|
280
|
+
Hierarchy entry "Common"
|
281
|
+
Path "#{environmentpath}/production/data/common.yaml"
|
282
|
+
Original path: "common.yaml"
|
283
|
+
Found key: "lookup_options" value: {
|
284
|
+
"a" => "first"
|
285
|
+
}
|
286
|
+
Searching for "a"
|
287
|
+
Global Data Provider (hiera configuration version 5)
|
175
288
|
No such key: "a"
|
176
|
-
Data Provider
|
177
|
-
|
178
|
-
Data Provider "common"
|
289
|
+
Environment Data Provider (hiera configuration version 5)
|
290
|
+
Hierarchy entry "Common"
|
179
291
|
Path "#{environmentpath}/production/data/common.yaml"
|
180
|
-
Original path: "common"
|
292
|
+
Original path: "common.yaml"
|
181
293
|
Found key: "a" value: "This is A"
|
182
|
-
Merged result: "This is A"
|
183
294
|
EXPLANATION
|
184
|
-
end
|
185
|
-
rescue SystemExit => e
|
186
|
-
expect(e.status).to eq(0)
|
187
295
|
end
|
188
296
|
expect(logs.any? { |log| log.level == :debug }).to be_falsey
|
189
297
|
end
|
@@ -213,63 +321,70 @@ Merge strategy first
|
|
213
321
|
lookup.command_line.stubs(:args).returns(['a'])
|
214
322
|
Puppet.debug = true
|
215
323
|
logs = []
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
324
|
+
Puppet::Util::Log.with_destination(Puppet::Test::LogCollector.new(logs)) do
|
325
|
+
expect(run_lookup(lookup)).to eql(<<-EXPLANATION.chomp)
|
326
|
+
Searching for "lookup_options"
|
327
|
+
Global Data Provider (hiera configuration version 5)
|
328
|
+
No such key: "lookup_options"
|
329
|
+
Environment Data Provider (hiera configuration version 5)
|
330
|
+
Hierarchy entry "Common"
|
331
|
+
Path "#{environmentpath}/production/data/common.yaml"
|
332
|
+
Original path: "common.yaml"
|
333
|
+
Found key: "lookup_options" value: {
|
334
|
+
"a" => "first"
|
335
|
+
}
|
336
|
+
Searching for "a"
|
337
|
+
Global Data Provider (hiera configuration version 5)
|
221
338
|
No such key: "a"
|
222
|
-
Data Provider
|
223
|
-
|
224
|
-
Data Provider "common"
|
339
|
+
Environment Data Provider (hiera configuration version 5)
|
340
|
+
Hierarchy entry "Common"
|
225
341
|
Path "#{environmentpath}/production/data/common.yaml"
|
226
|
-
Original path: "common"
|
342
|
+
Original path: "common.yaml"
|
227
343
|
Found key: "a" value: "This is A"
|
228
|
-
|
229
|
-
EXPLANATION
|
230
|
-
end
|
231
|
-
rescue SystemExit => e
|
232
|
-
expect(e.status).to eq(0)
|
344
|
+
EXPLANATION
|
233
345
|
end
|
234
346
|
logs = logs.select { |log| log.level == :debug }.map { |log| log.message }
|
235
347
|
expect(logs).to include(<<-EXPLANATION.chomp)
|
236
348
|
Lookup of 'a'
|
237
|
-
|
238
|
-
Data
|
349
|
+
Searching for "lookup_options"
|
350
|
+
Global Data Provider (hiera configuration version 5)
|
351
|
+
No such key: "lookup_options"
|
352
|
+
Environment Data Provider (hiera configuration version 5)
|
353
|
+
Hierarchy entry "Common"
|
354
|
+
Path "#{environmentpath}/production/data/common.yaml"
|
355
|
+
Original path: "common.yaml"
|
356
|
+
Found key: "lookup_options" value: {
|
357
|
+
"a" => "first"
|
358
|
+
}
|
359
|
+
Searching for "a"
|
360
|
+
Global Data Provider (hiera configuration version 5)
|
239
361
|
No such key: "a"
|
240
|
-
Data Provider
|
241
|
-
|
242
|
-
Data Provider "common"
|
362
|
+
Environment Data Provider (hiera configuration version 5)
|
363
|
+
Hierarchy entry "Common"
|
243
364
|
Path "#{environmentpath}/production/data/common.yaml"
|
244
|
-
Original path: "common"
|
365
|
+
Original path: "common.yaml"
|
245
366
|
Found key: "a" value: "This is A"
|
246
|
-
Merged result: "This is A"
|
247
367
|
EXPLANATION
|
248
368
|
end
|
249
369
|
|
250
370
|
it '--explain-options produces human readable text of a hash merge' do
|
251
371
|
lookup.options[:node] = node
|
252
372
|
lookup.options[:explain_options] = true
|
253
|
-
|
254
|
-
expect { lookup.run_command }.to output(<<-EXPLANATION).to_stdout
|
373
|
+
expect(run_lookup(lookup)).to eql(<<-EXPLANATION.chomp)
|
255
374
|
Merge strategy hash
|
256
|
-
Data
|
375
|
+
Global Data Provider (hiera configuration version 5)
|
257
376
|
No such key: "lookup_options"
|
258
|
-
Data Provider
|
259
|
-
|
260
|
-
Data Provider "common"
|
377
|
+
Environment Data Provider (hiera configuration version 5)
|
378
|
+
Hierarchy entry "Common"
|
261
379
|
Path "#{environmentpath}/production/data/common.yaml"
|
262
|
-
Original path: "common"
|
380
|
+
Original path: "common.yaml"
|
263
381
|
Found key: "lookup_options" value: {
|
264
382
|
"a" => "first"
|
265
383
|
}
|
266
384
|
Merged result: {
|
267
385
|
"a" => "first"
|
268
386
|
}
|
269
|
-
|
270
|
-
rescue SystemExit => e
|
271
|
-
expect(e.status).to eq(0)
|
272
|
-
end
|
387
|
+
EXPLANATION
|
273
388
|
end
|
274
389
|
|
275
390
|
it '--explain-options produces human readable text of a hash merge and --debug produces the same output to debug logger' do
|
@@ -277,17 +392,15 @@ Merge strategy hash
|
|
277
392
|
lookup.options[:explain_options] = true
|
278
393
|
Puppet.debug = true
|
279
394
|
logs = []
|
280
|
-
|
281
|
-
|
282
|
-
expect { lookup.run_command }.to output(<<-EXPLANATION).to_stdout
|
395
|
+
Puppet::Util::Log.with_destination(Puppet::Test::LogCollector.new(logs)) do
|
396
|
+
expect(run_lookup(lookup)).to eql(<<-EXPLANATION.chomp)
|
283
397
|
Merge strategy hash
|
284
|
-
Data
|
398
|
+
Global Data Provider (hiera configuration version 5)
|
285
399
|
No such key: "lookup_options"
|
286
|
-
Data Provider
|
287
|
-
|
288
|
-
Data Provider "common"
|
400
|
+
Environment Data Provider (hiera configuration version 5)
|
401
|
+
Hierarchy entry "Common"
|
289
402
|
Path "#{environmentpath}/production/data/common.yaml"
|
290
|
-
Original path: "common"
|
403
|
+
Original path: "common.yaml"
|
291
404
|
Found key: "lookup_options" value: {
|
292
405
|
"a" => "first"
|
293
406
|
}
|
@@ -295,28 +408,24 @@ Merge strategy hash
|
|
295
408
|
"a" => "first"
|
296
409
|
}
|
297
410
|
EXPLANATION
|
298
|
-
end
|
299
|
-
rescue SystemExit => e
|
300
|
-
expect(e.status).to eq(0)
|
301
|
-
end
|
302
411
|
logs = logs.select { |log| log.level == :debug }.map { |log| log.message }
|
303
412
|
expect(logs).to include(<<-EXPLANATION.chomp)
|
304
413
|
Lookup of '__global__'
|
305
414
|
Merge strategy hash
|
306
|
-
Data
|
415
|
+
Global Data Provider (hiera configuration version 5)
|
307
416
|
No such key: "lookup_options"
|
308
|
-
Data Provider
|
309
|
-
|
310
|
-
Data Provider "common"
|
417
|
+
Environment Data Provider (hiera configuration version 5)
|
418
|
+
Hierarchy entry "Common"
|
311
419
|
Path "#{environmentpath}/production/data/common.yaml"
|
312
|
-
Original path: "common"
|
420
|
+
Original path: "common.yaml"
|
313
421
|
Found key: "lookup_options" value: {
|
314
422
|
"a" => "first"
|
315
423
|
}
|
316
424
|
Merged result: {
|
317
425
|
"a" => "first"
|
318
426
|
}
|
319
|
-
|
427
|
+
EXPLANATION
|
428
|
+
end
|
320
429
|
end
|
321
430
|
|
322
431
|
it '--explain produces human readable text of a hash merge when using both --explain and --explain-options' do
|
@@ -324,38 +433,26 @@ Lookup of '__global__'
|
|
324
433
|
lookup.options[:explain] = true
|
325
434
|
lookup.options[:explain_options] = true
|
326
435
|
lookup.command_line.stubs(:args).returns(['a'])
|
327
|
-
|
328
|
-
expect { lookup.run_command }.to output(<<-EXPLANATION).to_stdout
|
436
|
+
expect(run_lookup(lookup)).to eql(<<-EXPLANATION.chomp)
|
329
437
|
Searching for "lookup_options"
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
"a" => "first"
|
340
|
-
}
|
341
|
-
Merged result: {
|
342
|
-
"a" => "first"
|
343
|
-
}
|
438
|
+
Global Data Provider (hiera configuration version 5)
|
439
|
+
No such key: "lookup_options"
|
440
|
+
Environment Data Provider (hiera configuration version 5)
|
441
|
+
Hierarchy entry "Common"
|
442
|
+
Path "#{environmentpath}/production/data/common.yaml"
|
443
|
+
Original path: "common.yaml"
|
444
|
+
Found key: "lookup_options" value: {
|
445
|
+
"a" => "first"
|
446
|
+
}
|
344
447
|
Searching for "a"
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
Found key: "a" value: "This is A"
|
354
|
-
Merged result: "This is A"
|
355
|
-
EXPLANATION
|
356
|
-
rescue SystemExit => e
|
357
|
-
expect(e.status).to eq(0)
|
358
|
-
end
|
448
|
+
Global Data Provider (hiera configuration version 5)
|
449
|
+
No such key: "a"
|
450
|
+
Environment Data Provider (hiera configuration version 5)
|
451
|
+
Hierarchy entry "Common"
|
452
|
+
Path "#{environmentpath}/production/data/common.yaml"
|
453
|
+
Original path: "common.yaml"
|
454
|
+
Found key: "a" value: "This is A"
|
455
|
+
EXPLANATION
|
359
456
|
end
|
360
457
|
|
361
458
|
it 'can produce a yaml explanation' do
|
@@ -363,17 +460,7 @@ Searching for "a"
|
|
363
460
|
lookup.options[:explain] = true
|
364
461
|
lookup.options[:render_as] = :yaml
|
365
462
|
lookup.command_line.stubs(:args).returns(['a'])
|
366
|
-
|
367
|
-
output = nil
|
368
|
-
begin
|
369
|
-
$stdout = StringIO.new
|
370
|
-
lookup.run_command
|
371
|
-
output = $stdout.string
|
372
|
-
rescue SystemExit => e
|
373
|
-
expect(e.status).to eq(0)
|
374
|
-
ensure
|
375
|
-
$stdout = save_stdout
|
376
|
-
end
|
463
|
+
output = run_lookup(lookup)
|
377
464
|
expect(YAML.load(output)).to eq(expected_yaml_hash)
|
378
465
|
end
|
379
466
|
|
@@ -382,17 +469,7 @@ Searching for "a"
|
|
382
469
|
lookup.options[:explain] = true
|
383
470
|
lookup.options[:render_as] = :json
|
384
471
|
lookup.command_line.stubs(:args).returns(['a'])
|
385
|
-
|
386
|
-
output = nil
|
387
|
-
begin
|
388
|
-
$stdout = StringIO.new
|
389
|
-
lookup.run_command
|
390
|
-
output = $stdout.string
|
391
|
-
rescue SystemExit => e
|
392
|
-
expect(e.status).to eq(0)
|
393
|
-
ensure
|
394
|
-
$stdout = save_stdout
|
395
|
-
end
|
472
|
+
output = run_lookup(lookup)
|
396
473
|
expect(JSON.parse(output)).to eq(expected_json_hash)
|
397
474
|
end
|
398
475
|
|
@@ -400,17 +477,7 @@ Searching for "a"
|
|
400
477
|
lookup.options[:node] = node
|
401
478
|
lookup.options[:render_as] = :json
|
402
479
|
lookup.command_line.stubs(:args).returns(['d.one.two.three'])
|
403
|
-
|
404
|
-
output = nil
|
405
|
-
begin
|
406
|
-
$stdout = StringIO.new
|
407
|
-
lookup.run_command
|
408
|
-
output = $stdout.string
|
409
|
-
rescue SystemExit => e
|
410
|
-
expect(e.status).to eq(0)
|
411
|
-
ensure
|
412
|
-
$stdout = save_stdout
|
413
|
-
end
|
480
|
+
output = run_lookup(lookup)
|
414
481
|
expect(JSON.parse("[#{output}]")).to eq(['the value'])
|
415
482
|
end
|
416
483
|
|
@@ -418,17 +485,7 @@ Searching for "a"
|
|
418
485
|
lookup.options[:node] = node
|
419
486
|
lookup.options[:render_as] = :json
|
420
487
|
lookup.command_line.stubs(:args).returns(['"e.one.two.three"'])
|
421
|
-
|
422
|
-
output = nil
|
423
|
-
begin
|
424
|
-
$stdout = StringIO.new
|
425
|
-
lookup.run_command
|
426
|
-
output = $stdout.string
|
427
|
-
rescue SystemExit => e
|
428
|
-
expect(e.status).to eq(0)
|
429
|
-
ensure
|
430
|
-
$stdout = save_stdout
|
431
|
-
end
|
488
|
+
output = run_lookup(lookup)
|
432
489
|
expect(JSON.parse("[#{output}]")).to eq(['the value'])
|
433
490
|
end
|
434
491
|
|
@@ -436,17 +493,7 @@ Searching for "a"
|
|
436
493
|
lookup.options[:node] = node
|
437
494
|
lookup.options[:render_as] = :json
|
438
495
|
lookup.command_line.stubs(:args).returns(['"f.one"."two.three".1'])
|
439
|
-
|
440
|
-
output = nil
|
441
|
-
begin
|
442
|
-
$stdout = StringIO.new
|
443
|
-
lookup.run_command
|
444
|
-
output = $stdout.string
|
445
|
-
rescue SystemExit => e
|
446
|
-
expect(e.status).to eq(0)
|
447
|
-
ensure
|
448
|
-
$stdout = save_stdout
|
449
|
-
end
|
496
|
+
output = run_lookup(lookup)
|
450
497
|
expect(JSON.parse("[#{output}]")).to eq(['second value'])
|
451
498
|
end
|
452
499
|
|
@@ -454,18 +501,14 @@ Searching for "a"
|
|
454
501
|
it "is unaffected by global variables unless '--compile' is used" do
|
455
502
|
lookup.options[:node] = node
|
456
503
|
lookup.command_line.stubs(:args).returns(['c'])
|
457
|
-
expect
|
504
|
+
expect(run_lookup(lookup)).to eql("--- This is\n...")
|
458
505
|
end
|
459
506
|
|
460
507
|
it "is affected by global variables when '--compile' is used" do
|
461
508
|
lookup.options[:node] = node
|
462
509
|
lookup.options[:compile] = true
|
463
510
|
lookup.command_line.stubs(:args).returns(['c'])
|
464
|
-
|
465
|
-
expect { lookup.run_command }.to output("--- This is C from site.pp\n...\n").to_stdout
|
466
|
-
rescue SystemExit => e
|
467
|
-
expect(e.status).to eq(0)
|
468
|
-
end
|
511
|
+
expect(run_lookup(lookup)).to eql("--- This is C from site.pp\n...")
|
469
512
|
end
|
470
513
|
end
|
471
514
|
|
@@ -475,22 +518,14 @@ Searching for "a"
|
|
475
518
|
it "works OK in the absense of '--compile'" do
|
476
519
|
lookup.options[:node] = node
|
477
520
|
lookup.command_line.stubs(:args).returns(['c'])
|
478
|
-
|
479
|
-
expect { lookup.run_command }.to output("--- This is C from data.pp\n...\n").to_stdout
|
480
|
-
rescue SystemExit => e
|
481
|
-
expect(e.status).to eq(0)
|
482
|
-
end
|
521
|
+
expect(run_lookup(lookup)).to eql("--- This is C from data.pp\n...")
|
483
522
|
end
|
484
523
|
|
485
524
|
it "global scope is affected by global variables when '--compile' is used" do
|
486
525
|
lookup.options[:node] = node
|
487
526
|
lookup.options[:compile] = true
|
488
527
|
lookup.command_line.stubs(:args).returns(['c'])
|
489
|
-
|
490
|
-
expect { lookup.run_command }.to output("--- This is C from site.pp\n...\n").to_stdout
|
491
|
-
rescue SystemExit => e
|
492
|
-
expect(e.status).to eq(0)
|
493
|
-
end
|
528
|
+
expect(run_lookup(lookup)).to eql("--- This is C from site.pp\n...")
|
494
529
|
end
|
495
530
|
end
|
496
531
|
end
|