puppet 4.8.2-x86-mingw32 → 4.9.0-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- 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.rb +52 -0
- 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.rb +6 -3
- 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/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.rb +19 -17
- data/lib/puppet/face/help/face.erb +3 -0
- 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.rb +15 -3
- data/lib/puppet/file_system/windows.rb +8 -0
- data/lib/puppet/forge.rb +6 -6
- data/lib/puppet/forge/repository.rb +1 -2
- 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.rb +14 -2
- data/lib/puppet/interface/face_collection.rb +1 -1
- data/lib/puppet/module.rb +14 -2
- data/lib/puppet/module_tool.rb +4 -4
- 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/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.rb +2 -0
- data/lib/puppet/plugins/data_providers/data_provider.rb +108 -17
- data/lib/puppet/plugins/data_providers/registry.rb +2 -36
- data/lib/puppet/pops.rb +6 -9
- 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.rb +4 -3
- 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/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.rb +1 -1
- 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/visitor.rb +4 -3
- 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.rb +2 -3
- data/lib/puppet/resource/catalog.rb +12 -4
- data/lib/puppet/resource/type.rb +3 -3
- data/lib/puppet/settings.rb +1 -1
- 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/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.rb +1 -0
- 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/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_puppet/lib/semantic_puppet.rb +17 -0
- data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency.rb +7 -7
- 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_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/version.rb +1 -1
- 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 -2607
- 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.rb +0 -7
- data/lib/puppet/vendor/semantic/lib/semantic/dependency/module_release.rb +0 -60
- 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
data/locales/puppet.pot
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
# SOME DESCRIPTIVE TITLE.
|
2
|
+
# Copyright (C) 2017 Puppet, Inc.
|
3
|
+
# This file is distributed under the same license as the Puppet automation framework package.
|
4
|
+
# FIRST AUTHOR <EMAIL@ADDRESS>, 2017.
|
5
|
+
#
|
6
|
+
#, fuzzy
|
7
|
+
msgid ""
|
8
|
+
msgstr ""
|
9
|
+
"Project-Id-Version: Puppet automation framework 4.8.2-338-g562b302\n"
|
10
|
+
"\n"
|
11
|
+
"Report-Msgid-Bugs-To: https://tickets.puppetlabs.com\n"
|
12
|
+
"POT-Creation-Date: 2017-01-25 09:32-0800\n"
|
13
|
+
"PO-Revision-Date: 2017-01-25 09:32-0800\n"
|
14
|
+
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
15
|
+
"Language-Team: LANGUAGE <LL@li.org>\n"
|
16
|
+
"Language: \n"
|
17
|
+
"MIME-Version: 1.0\n"
|
18
|
+
"Content-Type: text/plain; charset=UTF-8\n"
|
19
|
+
"Content-Transfer-Encoding: 8bit\n"
|
20
|
+
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
|
21
|
+
|
22
|
+
msgid "Apache 2 license; see COPYING"
|
23
|
+
msgstr ""
|
24
|
+
|
25
|
+
msgid "Display Puppet help."
|
26
|
+
msgstr ""
|
27
|
+
|
28
|
+
msgid "Display help about Puppet subcommands and their actions."
|
29
|
+
msgstr ""
|
30
|
+
|
31
|
+
msgid "[<subcommand>] [<action>]"
|
32
|
+
msgstr ""
|
33
|
+
|
34
|
+
msgid "Short help text for the specified subcommand or action."
|
35
|
+
msgstr ""
|
36
|
+
|
37
|
+
msgid ""
|
38
|
+
" Get help for an action:\n"
|
39
|
+
"\n"
|
40
|
+
" $ puppet help\n"
|
41
|
+
msgstr ""
|
42
|
+
|
43
|
+
msgid "--version VERSION"
|
44
|
+
msgstr ""
|
45
|
+
|
46
|
+
msgid "The version of the subcommand for which to show help."
|
47
|
+
msgstr ""
|
48
|
+
|
49
|
+
msgid "Puppet help only takes two (optional) arguments: a subcommand and an action"
|
50
|
+
msgstr ""
|
51
|
+
|
52
|
+
msgid "Version only makes sense when a Faces subcommand is given"
|
53
|
+
msgstr ""
|
54
|
+
|
55
|
+
msgid "Legacy subcommands don't take actions"
|
56
|
+
msgstr ""
|
57
|
+
|
58
|
+
msgid ""
|
59
|
+
"Could not load help for the application #{applicationname}.\n"
|
60
|
+
"Please check the error logs for more information.\n"
|
61
|
+
"\n"
|
62
|
+
"Detail: \"#{detail.message}\"\n"
|
63
|
+
msgstr ""
|
64
|
+
|
65
|
+
msgid ""
|
66
|
+
"Could not load help for the face #{facename}.\n"
|
67
|
+
"Please check the error logs for more information.\n"
|
68
|
+
"\n"
|
69
|
+
"Detail: \"#{detail.message}\"\n"
|
70
|
+
msgstr ""
|
71
|
+
|
72
|
+
msgid "\"Unable to load action #{actionname} from #{face}\""
|
73
|
+
msgstr ""
|
74
|
+
|
75
|
+
msgid " (Deprecated)"
|
76
|
+
msgstr ""
|
77
|
+
|
78
|
+
msgid "! Subcommand unavailable due to error. Check error logs."
|
79
|
+
msgstr ""
|
data/man/man5/puppet.conf.5
CHANGED
File without changes
|
@@ -0,0 +1,9 @@
|
|
1
|
+
Puppet::Bindings.newbindings('backend::default') do
|
2
|
+
# In the default bindings for this module
|
3
|
+
bind {
|
4
|
+
# bind its name to the 'puppet' environment data provider
|
5
|
+
name 'special'
|
6
|
+
in_multibind "puppet::path_based_data_provider_factories"
|
7
|
+
to_instance "PuppetX::Backend::SpecialDataProviderFactory"
|
8
|
+
}
|
9
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module PuppetX::Backend
|
2
|
+
class SpecialDataProviderFactory < Puppet::Plugins::DataProviders::PathBasedDataProviderFactory
|
3
|
+
def create(name, paths, parent_data_provider)
|
4
|
+
SpecialDataProvider.new(name, paths)
|
5
|
+
end
|
6
|
+
|
7
|
+
def resolve_paths(datadir, declared_paths, paths, lookup_invocation)
|
8
|
+
paths
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
class SpecialDataProvider < Puppet::Plugins::DataProviders::PathBasedDataProvider
|
13
|
+
def unchecked_lookup(key, lookup_invocation, merge)
|
14
|
+
value = {
|
15
|
+
'backend::test::param_a' => 'module data param_a is 1000',
|
16
|
+
'backend::test::param_b' => 'module data param_b is 2000',
|
17
|
+
}[key]
|
18
|
+
throw :no_such_key if value.nil?
|
19
|
+
value
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
@@ -19,6 +19,7 @@ module PuppetX::Helindbe
|
|
19
19
|
'test::param_a' => 'env data param_a is 10',
|
20
20
|
'test::param_b' => 'env data param_b is 20',
|
21
21
|
# demo: this overrides a parameter for a class in the dataprovider module
|
22
|
+
'backend::test::param_c' => 'env data param_c is 3000',
|
22
23
|
'dataprovider::test::param_c' => 'env data param_c is 300',
|
23
24
|
}
|
24
25
|
end
|
data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/environment.conf
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -134,6 +134,92 @@ end
|
|
134
134
|
end
|
135
135
|
end
|
136
136
|
|
137
|
+
context 'from environment with pcore object types' do
|
138
|
+
include PuppetSpec::Compiler
|
139
|
+
|
140
|
+
let!(:envdir) { Puppet[:environmentpath] }
|
141
|
+
let(:env_name) { 'spec' }
|
142
|
+
let(:dir_structure) {
|
143
|
+
{
|
144
|
+
'environment.conf' => <<-CONF,
|
145
|
+
rich_data = true
|
146
|
+
CONF
|
147
|
+
'modules' => {
|
148
|
+
'mod' => {
|
149
|
+
'types' => {
|
150
|
+
'streetaddress.pp' => <<-PUPPET,
|
151
|
+
type Mod::StreetAddress = Object[{
|
152
|
+
attributes => {
|
153
|
+
'street' => String,
|
154
|
+
'zipcode' => String,
|
155
|
+
'city' => String,
|
156
|
+
}
|
157
|
+
}]
|
158
|
+
PUPPET
|
159
|
+
'address.pp' => <<-PUPPET,
|
160
|
+
type Mod::Address = Object[{
|
161
|
+
parent => Mod::StreetAddress,
|
162
|
+
attributes => {
|
163
|
+
'state' => String
|
164
|
+
}
|
165
|
+
}]
|
166
|
+
PUPPET
|
167
|
+
'contact.pp' => <<-PUPPET,
|
168
|
+
type Mod::Contact = Object[{
|
169
|
+
attributes => {
|
170
|
+
'address' => Mod::Address,
|
171
|
+
'email' => String
|
172
|
+
}
|
173
|
+
}]
|
174
|
+
PUPPET
|
175
|
+
},
|
176
|
+
'manifests' => {
|
177
|
+
'init.pp' => <<-PUPPET,
|
178
|
+
define mod::person(Mod::Contact $contact) {
|
179
|
+
notify { $title: }
|
180
|
+
notify { $contact.address.street: }
|
181
|
+
notify { $contact.address.zipcode: }
|
182
|
+
notify { $contact.address.city: }
|
183
|
+
notify { $contact.address.state: }
|
184
|
+
}
|
185
|
+
|
186
|
+
class mod {
|
187
|
+
mod::person { 'Test Person':
|
188
|
+
contact => Mod::Contact(
|
189
|
+
Mod::Address('The Street 23', '12345', 'Some City', 'A State'),
|
190
|
+
'test@example.com')
|
191
|
+
}
|
192
|
+
}
|
193
|
+
PUPPET
|
194
|
+
}
|
195
|
+
}
|
196
|
+
}
|
197
|
+
}
|
198
|
+
}
|
199
|
+
|
200
|
+
let(:env) { Puppet::Node::Environment.create(env_name.to_sym, [File.join(envdir, env_name, 'modules')]) }
|
201
|
+
let(:node) { Puppet::Node.new('test', :environment => env) }
|
202
|
+
|
203
|
+
before(:each) do
|
204
|
+
dir_contained_in(envdir, env_name => dir_structure)
|
205
|
+
PuppetSpec::Files.record_tmp(File.join(envdir, env_name))
|
206
|
+
end
|
207
|
+
|
208
|
+
it 'can compile the catalog' do
|
209
|
+
compile_to_catalog('include mod', node)
|
210
|
+
end
|
211
|
+
|
212
|
+
it 'can apply the catalog' do
|
213
|
+
catalog = compile_to_catalog('include mod', node)
|
214
|
+
|
215
|
+
Puppet[:environment] = env_name
|
216
|
+
apply = Puppet::Application[:apply]
|
217
|
+
apply.options[:catalog] = file_containing('manifest', catalog.to_pson)
|
218
|
+
expect { apply.run_command; exit(0) }.to exit_with(0)
|
219
|
+
expect(@logs.map(&:to_s)).to include('The Street 23')
|
220
|
+
end
|
221
|
+
end
|
222
|
+
|
137
223
|
it "applies a given file even when a directory environment is specified" do
|
138
224
|
manifest = file_containing("manifest.pp", "notice('it was applied')")
|
139
225
|
|
@@ -414,8 +500,8 @@ class amod::bad_type {
|
|
414
500
|
apply.expects(:apply_catalog).with do |catalog|
|
415
501
|
catalog.resource(:notify, 'rx')['message'].is_a?(Regexp)
|
416
502
|
catalog.resource(:notify, 'bin')['message'].is_a?(Puppet::Pops::Types::PBinaryType::Binary)
|
417
|
-
catalog.resource(:notify, 'ver')['message'].is_a?(
|
418
|
-
catalog.resource(:notify, 'vrange')['message'].is_a?(
|
503
|
+
catalog.resource(:notify, 'ver')['message'].is_a?(SemanticPuppet::Version)
|
504
|
+
catalog.resource(:notify, 'vrange')['message'].is_a?(SemanticPuppet::VersionRange)
|
419
505
|
catalog.resource(:notify, 'tspan')['message'].is_a?(Puppet::Pops::Time::Timespan)
|
420
506
|
catalog.resource(:notify, 'tstamp')['message'].is_a?(Puppet::Pops::Time::Timestamp)
|
421
507
|
end
|
@@ -0,0 +1,155 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'puppet_spec/files'
|
3
|
+
require 'puppet_spec/compiler'
|
4
|
+
require 'deep_merge/core'
|
5
|
+
|
6
|
+
describe 'lookup' do
|
7
|
+
include PuppetSpec::Files
|
8
|
+
|
9
|
+
context 'with an environment' do
|
10
|
+
let(:env_name) { 'spec' }
|
11
|
+
let(:env_dir) { tmpdir('environments') }
|
12
|
+
let(:environment_files) do
|
13
|
+
{
|
14
|
+
env_name => {
|
15
|
+
'modules' => {},
|
16
|
+
'hiera.yaml' => <<-YAML.unindent,
|
17
|
+
---
|
18
|
+
version: 5
|
19
|
+
hierarchy:
|
20
|
+
- name: "Common"
|
21
|
+
data_hash: yaml_data
|
22
|
+
path: "common.yaml"
|
23
|
+
YAML
|
24
|
+
'data' => {
|
25
|
+
'common.yaml' => <<-YAML.unindent
|
26
|
+
---
|
27
|
+
a: value a
|
28
|
+
mod_a::a: value mod_a::a (from environment)
|
29
|
+
mod_a::hash_a:
|
30
|
+
a: value mod_a::hash_a.a (from environment)
|
31
|
+
mod_a::hash_b:
|
32
|
+
a: value mod_a::hash_b.a (from environment)
|
33
|
+
lookup_options:
|
34
|
+
mod_a::hash_b:
|
35
|
+
merge: hash
|
36
|
+
YAML
|
37
|
+
}
|
38
|
+
},
|
39
|
+
'someother' => {
|
40
|
+
}
|
41
|
+
}
|
42
|
+
end
|
43
|
+
|
44
|
+
let(:app) { Puppet::Application[:lookup] }
|
45
|
+
let(:env) { Puppet::Node::Environment.create(env_name.to_sym, [File.join(populated_env_dir, env_name, 'modules')]) }
|
46
|
+
let(:environments) { Puppet::Environments::Directories.new(populated_env_dir, []) }
|
47
|
+
|
48
|
+
let(:populated_env_dir) do
|
49
|
+
dir_contained_in(env_dir, environment_files)
|
50
|
+
env_dir
|
51
|
+
end
|
52
|
+
|
53
|
+
def lookup(key, options = {}, explain = false)
|
54
|
+
key = [key] unless key.is_a?(Array)
|
55
|
+
app.command_line.stubs(:args).returns(key)
|
56
|
+
if explain
|
57
|
+
app.options[:explain] = true
|
58
|
+
app.options[:render_as] = :s
|
59
|
+
else
|
60
|
+
app.options[:render_as] = :json
|
61
|
+
end
|
62
|
+
options.each_pair { |k, v| app.options[k] = v }
|
63
|
+
capture = StringIO.new
|
64
|
+
saved_stdout = $stdout
|
65
|
+
begin
|
66
|
+
$stdout = capture
|
67
|
+
expect { app.run_command }.to exit_with(0)
|
68
|
+
ensure
|
69
|
+
$stdout = saved_stdout
|
70
|
+
end
|
71
|
+
out = capture.string.strip
|
72
|
+
if explain
|
73
|
+
out
|
74
|
+
else
|
75
|
+
out.empty? ? nil : JSON.parse("[#{out}]")[0]
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
def explain(key, options = {})
|
80
|
+
lookup(key, options, true)
|
81
|
+
end
|
82
|
+
|
83
|
+
around(:each) do |example|
|
84
|
+
Puppet.override(:environments => environments, :current_environment => env) do
|
85
|
+
example.run
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
it 'finds data in the environment' do
|
90
|
+
expect(lookup('a')).to eql('value a')
|
91
|
+
end
|
92
|
+
|
93
|
+
context 'configured with the wrong environment' do
|
94
|
+
let(:env) { Puppet::Node::Environment.create(env_name.to_sym, [File.join(populated_env_dir, env_name, 'modules')]) }
|
95
|
+
it 'does not find data in non-existing environment' do
|
96
|
+
Puppet.override(:environments => environments, :current_environment => 'someother') do
|
97
|
+
expect(lookup('a', {}, true)).to match(/did not find a value for the name 'a'/)
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
context 'and a module' do
|
103
|
+
let(:mod_a_files) do
|
104
|
+
{
|
105
|
+
'mod_a' => {
|
106
|
+
'data' => {
|
107
|
+
'common.yaml' => <<-YAML.unindent
|
108
|
+
---
|
109
|
+
mod_a::a: value mod_a::a (from mod_a)
|
110
|
+
mod_a::b: value mod_a::b (from mod_a)
|
111
|
+
mod_a::hash_a:
|
112
|
+
a: value mod_a::hash_a.a (from mod_a)
|
113
|
+
b: value mod_a::hash_a.b (from mod_a)
|
114
|
+
mod_a::hash_b:
|
115
|
+
a: value mod_a::hash_b.a (from mod_a)
|
116
|
+
b: value mod_a::hash_b.b (from mod_a)
|
117
|
+
mod_a::interpolated: "-- %{lookup('mod_a::a')} --"
|
118
|
+
mod_a::a_a: "-- %{lookup('mod_a::hash_a.a')} --"
|
119
|
+
mod_a::a_b: "-- %{lookup('mod_a::hash_a.b')} --"
|
120
|
+
mod_a::b_a: "-- %{lookup('mod_a::hash_b.a')} --"
|
121
|
+
mod_a::b_b: "-- %{lookup('mod_a::hash_b.b')} --"
|
122
|
+
'mod_a::a.quoted.key': 'value mod_a::a.quoted.key (from mod_a)'
|
123
|
+
YAML
|
124
|
+
},
|
125
|
+
'hiera.yaml' => <<-YAML.unindent,
|
126
|
+
---
|
127
|
+
version: 5
|
128
|
+
hierarchy:
|
129
|
+
- name: "Common"
|
130
|
+
data_hash: yaml_data
|
131
|
+
path: "common.yaml"
|
132
|
+
YAML
|
133
|
+
}
|
134
|
+
}
|
135
|
+
end
|
136
|
+
|
137
|
+
let(:populated_env_dir) do
|
138
|
+
dir_contained_in(env_dir, DeepMerge.deep_merge!(environment_files, env_name => { 'modules' => mod_a_files }))
|
139
|
+
env_dir
|
140
|
+
end
|
141
|
+
|
142
|
+
it 'finds data in the module' do
|
143
|
+
expect(lookup('mod_a::b')).to eql('value mod_a::b (from mod_a)')
|
144
|
+
end
|
145
|
+
|
146
|
+
it 'finds quoted keys in the module' do
|
147
|
+
expect(lookup('"mod_a::a.quoted.key"')).to eql('value mod_a::a.quoted.key (from mod_a)')
|
148
|
+
end
|
149
|
+
|
150
|
+
it 'merges hashes from environment and module when merge strategy hash is used' do
|
151
|
+
expect(lookup('mod_a::hash_a', :merge => 'hash')).to eql({'a' => 'value mod_a::hash_a.a (from environment)', 'b' => 'value mod_a::hash_a.b (from mod_a)'})
|
152
|
+
end
|
153
|
+
end
|
154
|
+
end
|
155
|
+
end
|