puppet 4.8.2 → 4.9.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- 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 -2593
- 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
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
ODE5NjAxYjc5N2M2NzRkYWFjODBjMTM1N2E4NmNiYTBmYzViNTViYw==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
OGMzYmYzZjRkYjY3NzE2NTIxZjkwYWNmMGQ3NGZkYWVmYTM3MjJjYw==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NGU3MDcwODM4NWY4Y2Q5NzNkMGI1ODNlMWU3M2Y3YjkzNTA4NmU0OGFhNzky
|
10
|
+
MzY4NWI5M2YzMzgxYmYwOGZiM2ZlZjE0YjVlNGIwYjc4NjY0Mzg3MTQ2Zjgw
|
11
|
+
ZTJhODFiOWM4MDE0ODRlNzM5ODc1YjU0ZTA4ODg0ZGM1YWEzZDA=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
Zjk5ZTAxYjE2NjBmNDcxNDc4YTEzNWI1MjNmNDBhYjRiNDlhOGYzZjIwNDNk
|
14
|
+
MmVkMGYwZjVkNDdjYzI1NWIyZDBhNTQzZmQ2M2VjYjhiNmRhNWJkYzUwNmNl
|
15
|
+
NDg2NzA0YzExMjk3OWRjYjYyZTllNGVjNWNkNTgzYWRmZTkwYzQ=
|
data/CONTRIBUTING.md
CHANGED
@@ -104,13 +104,37 @@ a ticket number.
|
|
104
104
|
* After feedback has been given we expect responses within two weeks. After two
|
105
105
|
weeks we may close the pull request if it isn't showing any activity.
|
106
106
|
|
107
|
+
## Revert Policy
|
108
|
+
By running tests in advance and by engaging with peer review for prospective
|
109
|
+
changes, your contributions have a high probability of becoming long lived
|
110
|
+
parts of the the project. After being merged, the code will run through a
|
111
|
+
series of testing pipelines on a large number of operating system
|
112
|
+
environments. These pipelines can reveal incompatibilities that are difficult
|
113
|
+
to detect in advance.
|
114
|
+
|
115
|
+
If the code change results in a test failure, we will make our best effort to
|
116
|
+
correct the error. If a fix cannot be determined and committed within 24 hours
|
117
|
+
of its discovery, the commit(s) responsible _may_ be reverted, at the
|
118
|
+
discretion of the committer and Puppet maintainers. This action would be taken
|
119
|
+
to help maintain passing states in our testing pipelines.
|
120
|
+
|
121
|
+
The original contributor will be notified of the revert in the Jira ticket
|
122
|
+
associated with the change. A reference to the test(s) and operating system(s)
|
123
|
+
that failed as a result of the code change will also be added to the Jira
|
124
|
+
ticket. This test(s) should be used to check future submissions of the code to
|
125
|
+
ensure the issue has been resolved.
|
126
|
+
|
127
|
+
### Summary
|
128
|
+
* Changes resulting in test pipeline failures will be reverted if they cannot
|
129
|
+
be resolved within one business day.
|
130
|
+
|
107
131
|
# Additional Resources
|
108
132
|
|
109
133
|
* [Puppet community guidelines](https://docs.puppet.com/community/community_guidelines.html)
|
110
134
|
* [Bug tracker (Jira)](https://tickets.puppetlabs.com)
|
111
135
|
* [Contributor License Agreement](http://links.puppet.com/cla)
|
112
136
|
* [General GitHub documentation](https://help.github.com/)
|
113
|
-
* [GitHub pull request documentation](https://help.github.com/
|
137
|
+
* [GitHub pull request documentation](https://help.github.com/articles/creating-a-pull-request/)
|
114
138
|
* #puppet-dev IRC channel on freenode.org ([Archive](https://botbot.me/freenode/puppet-dev/))
|
115
139
|
* [puppet-dev mailing list](https://groups.google.com/forum/#!forum/puppet-dev)
|
116
140
|
* [Community PR Triage notes](https://github.com/puppet-community/community-triage/tree/master/core/notes)
|
data/Gemfile
CHANGED
@@ -26,10 +26,15 @@ end
|
|
26
26
|
gem "puppet", :path => File.dirname(__FILE__), :require => false
|
27
27
|
gem "facter", *location_for(ENV['FACTER_LOCATION'] || ['> 2.0', '< 4'])
|
28
28
|
gem "hiera", *location_for(ENV['HIERA_LOCATION'] || ['>= 2.0', '< 4'])
|
29
|
+
# PUP-7115 - return to a gem dependency in Puppet 5
|
30
|
+
# gem "semantic_puppet", *location_for(ENV['SEMANTIC_PUPPET_LOCATION'] || ['>= 0.1.3', '< 2'])
|
29
31
|
gem "rake", "10.1.1", :require => false
|
30
32
|
# Hiera has an unbound dependency on json_pure
|
31
33
|
# json_pure 2.0.2+ officially requires Ruby >= 2.0, but should have specified that in 2.0
|
32
34
|
gem 'json_pure', '~> 1.8', :require => false
|
35
|
+
# i18n support (gettext-setup and dependencies)
|
36
|
+
gem 'gettext-setup', '>= 0.10', '< 1.0', :require => false
|
37
|
+
gem 'locale', '~> 2.1', :require => false
|
33
38
|
|
34
39
|
group(:development, :test) do
|
35
40
|
gem "rspec", "~> 3.1", :require => false
|
@@ -58,6 +63,7 @@ group(:development, :test) do
|
|
58
63
|
gem 'addressable', '< 2.5.0'
|
59
64
|
gem 'webmock', '~> 1.24'
|
60
65
|
gem 'vcr', '~> 2.9'
|
66
|
+
gem "hocon", :require => false
|
61
67
|
end
|
62
68
|
|
63
69
|
group(:development) do
|
data/Rakefile
CHANGED
data/ext/project_data.yaml
CHANGED
@@ -9,7 +9,7 @@ version_file: 'lib/puppet/version.rb'
|
|
9
9
|
# files and gem_files are space separated lists
|
10
10
|
files: '[A-Z]* install.rb bin lib conf man examples ext tasks spec'
|
11
11
|
# The gem specification bits only work on Puppet >= 3.0rc, NOT 2.7.x and earlier
|
12
|
-
gem_files: '[A-Z]* install.rb bin lib conf man examples ext tasks spec'
|
12
|
+
gem_files: '[A-Z]* install.rb bin lib conf man examples ext tasks spec locales'
|
13
13
|
gem_test_files: 'spec/**/*'
|
14
14
|
gem_executables: 'puppet'
|
15
15
|
gem_default_executables: 'puppet'
|
@@ -20,6 +20,10 @@ gem_runtime_dependencies:
|
|
20
20
|
facter: ['> 2.0', '< 4']
|
21
21
|
hiera: ['>= 2.0', '< 4']
|
22
22
|
json_pure: '~> 1.8'
|
23
|
+
# PUP-7115 - return to a gem dependency in Puppet 5
|
24
|
+
# semantic_puppet: ['>= 0.1.3', '< 2']
|
25
|
+
gettext-setup: ['>= 0.10', '< 1']
|
26
|
+
locale: '~> 2.1'
|
23
27
|
gem_rdoc_options:
|
24
28
|
- --title
|
25
29
|
- "Puppet - Configuration Management"
|
@@ -123,7 +123,8 @@ class WindowsDaemon < Win32::Daemon
|
|
123
123
|
def log(msg, level)
|
124
124
|
if LEVELS.index(level) >= @loglevel
|
125
125
|
if (@LOG_TO_FILE)
|
126
|
-
|
126
|
+
# without this change its possible that we get Encoding errors trying to write UTF-8 messages in current codepage
|
127
|
+
File.open(LOG_FILE, 'a:UTF-8') { |f| f.puts("#{Time.now} Puppet (#{level}): #{msg}") }
|
127
128
|
end
|
128
129
|
|
129
130
|
case level
|
data/install.rb
CHANGED
@@ -108,9 +108,24 @@ def do_man(man, strip = 'man/')
|
|
108
108
|
FileUtils.makedirs(om, {:mode => 0755, :verbose => true})
|
109
109
|
FileUtils.chmod(0755, om)
|
110
110
|
FileUtils.install(mf, omf, {:mode => 0644, :preserve => true, :verbose => true})
|
111
|
-
|
112
|
-
gzip
|
113
|
-
|
111
|
+
# Solaris does not support gzipped man pages. When called with
|
112
|
+
# --no-check-prereqs/without facter the default gzip behavior still applies
|
113
|
+
unless $operatingsystem == "Solaris"
|
114
|
+
gzip = %x{which gzip}
|
115
|
+
gzip.chomp!
|
116
|
+
%x{#{gzip} -f #{omf}}
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
def do_locales(locale, strip = 'locales/')
|
122
|
+
locale.each do |lf|
|
123
|
+
next if File.directory? lf
|
124
|
+
olf = File.join(InstallOptions.locale_dir, lf.sub(/^#{strip}/, ''))
|
125
|
+
op = File.dirname(olf)
|
126
|
+
FileUtils.makedirs(op, {:mode => 0755, :verbose => true})
|
127
|
+
FileUtils.chmod(0755, op)
|
128
|
+
FileUtils.install(lf, olf, {:mode => 0644, :preserve => true, :verbose => true})
|
114
129
|
end
|
115
130
|
end
|
116
131
|
|
@@ -190,6 +205,9 @@ def prepare_installation
|
|
190
205
|
opts.on('--bindir[=OPTIONAL]', 'Installation directory for binaries', 'overrides RbConfig::CONFIG["bindir"]') do |bindir|
|
191
206
|
InstallOptions.bindir = bindir
|
192
207
|
end
|
208
|
+
opts.on('--localedir[=OPTIONAL]', 'Installation directory for locale information', 'Default /opt/puppetlabs/puppet/share/locale') do |localedir|
|
209
|
+
InstallOptions.localedir = localedir
|
210
|
+
end
|
193
211
|
opts.on('--ruby[=OPTIONAL]', 'Ruby interpreter to use with installation', 'overrides ruby used to call install.rb') do |ruby|
|
194
212
|
InstallOptions.ruby = ruby
|
195
213
|
end
|
@@ -242,15 +260,19 @@ def prepare_installation
|
|
242
260
|
$operatingsystem = Facter.value :operatingsystem
|
243
261
|
end
|
244
262
|
|
245
|
-
if
|
246
|
-
configdir = InstallOptions.configdir
|
247
|
-
elsif $operatingsystem == "windows"
|
263
|
+
if $operatingsystem == "windows"
|
248
264
|
begin
|
265
|
+
# populates constants used to specify default Windows directories
|
249
266
|
require 'win32/dir'
|
250
267
|
rescue LoadError => e
|
251
268
|
puts "Cannot run on Microsoft Windows without the win32-process, win32-dir & win32-service gems: #{e}"
|
252
269
|
exit -1
|
253
270
|
end
|
271
|
+
end
|
272
|
+
|
273
|
+
if not InstallOptions.configdir.nil?
|
274
|
+
configdir = InstallOptions.configdir
|
275
|
+
elsif $operatingsystem == "windows"
|
254
276
|
configdir = File.join(Dir::COMMON_APPDATA, "PuppetLabs", "puppet", "etc")
|
255
277
|
else
|
256
278
|
configdir = "/etc/puppetlabs/puppet"
|
@@ -294,6 +316,16 @@ def prepare_installation
|
|
294
316
|
bindir = RbConfig::CONFIG['bindir']
|
295
317
|
end
|
296
318
|
|
319
|
+
if not InstallOptions.localedir.nil?
|
320
|
+
localedir = InstallOptions.localedir
|
321
|
+
else
|
322
|
+
if $operatingsystem == "windows"
|
323
|
+
localedir = File.join(Dir::PROGRAM_FILES, "Puppet Labs", "Puppet", "puppet", "share", "locale")
|
324
|
+
else
|
325
|
+
localedir = "/opt/puppetlabs/puppet/share/locale"
|
326
|
+
end
|
327
|
+
end
|
328
|
+
|
297
329
|
if not InstallOptions.sitelibdir.nil?
|
298
330
|
sitelibdir = InstallOptions.sitelibdir
|
299
331
|
else
|
@@ -331,6 +363,7 @@ def prepare_installation
|
|
331
363
|
rundir = join(destdir, rundir)
|
332
364
|
logdir = join(destdir, logdir)
|
333
365
|
bindir = join(destdir, bindir)
|
366
|
+
localedir = join(destdir, localedir)
|
334
367
|
mandir = join(destdir, mandir)
|
335
368
|
sitelibdir = join(destdir, sitelibdir)
|
336
369
|
|
@@ -342,6 +375,7 @@ def prepare_installation
|
|
342
375
|
FileUtils.makedirs(vardir)
|
343
376
|
FileUtils.makedirs(rundir)
|
344
377
|
FileUtils.makedirs(logdir)
|
378
|
+
FileUtils.makedirs(localedir)
|
345
379
|
|
346
380
|
InstallOptions.site_dir = sitelibdir
|
347
381
|
InstallOptions.codedir = codedir
|
@@ -352,6 +386,7 @@ def prepare_installation
|
|
352
386
|
InstallOptions.var_dir = vardir
|
353
387
|
InstallOptions.run_dir = rundir
|
354
388
|
InstallOptions.log_dir = logdir
|
389
|
+
InstallOptions.locale_dir = localedir
|
355
390
|
end
|
356
391
|
|
357
392
|
##
|
@@ -464,6 +499,7 @@ FileUtils.cd File.dirname(__FILE__) do
|
|
464
499
|
ri = glob(%w{bin/*.rb lib/**/*.rb}).reject { |e| e=~ /\.(bat|cmd)$/ }
|
465
500
|
man = glob(%w{man/man[0-9]/*})
|
466
501
|
libs = glob(%w{lib/**/*})
|
502
|
+
locales = glob(%w{locales/**/*})
|
467
503
|
|
468
504
|
prepare_installation
|
469
505
|
|
@@ -477,5 +513,6 @@ FileUtils.cd File.dirname(__FILE__) do
|
|
477
513
|
do_bins(bins, InstallOptions.bin_dir)
|
478
514
|
do_bins(windows_bins, InstallOptions.bin_dir, 'ext/windows/') if $operatingsystem == "windows" && InstallOptions.batch_files
|
479
515
|
do_libs(libs)
|
516
|
+
do_locales(locales)
|
480
517
|
do_man(man) unless $operatingsystem == "windows"
|
481
518
|
end
|
@@ -43,37 +43,35 @@ class Hiera::PuppetFunction < Puppet::Functions::InternalFunction
|
|
43
43
|
end
|
44
44
|
|
45
45
|
def hiera_no_default(scope, key)
|
46
|
-
post_lookup(scope, key, lookup(scope, key, nil, nil))
|
46
|
+
post_lookup(scope, key, lookup(scope, key, nil, false, nil))
|
47
47
|
end
|
48
48
|
|
49
49
|
def hiera_with_default(scope, key, default, override = nil)
|
50
|
-
|
51
|
-
result = lookup(scope, key, undefined, override)
|
52
|
-
post_lookup(scope, key, result.equal?(undefined) ? default : result)
|
50
|
+
post_lookup(scope, key, lookup(scope, key, default, true, override))
|
53
51
|
end
|
54
52
|
|
55
53
|
def hiera_block1(scope, key, &default_block)
|
56
|
-
|
54
|
+
post_lookup(scope, key, lookup(scope, key, nil, false, nil, &default_block))
|
57
55
|
end
|
58
56
|
|
59
57
|
def hiera_block2(scope, key, override, &default_block)
|
60
|
-
|
58
|
+
post_lookup(scope, key, lookup(scope, key, nil, false, override, &default_block))
|
61
59
|
end
|
62
60
|
|
63
|
-
def
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
61
|
+
def lookup(scope, key, default, has_default, override, &default_block)
|
62
|
+
unless Puppet[:strict] == :off
|
63
|
+
Puppet.warn_once(:deprecation, self.class.name,
|
64
|
+
"The function '#{self.class.name}' is deprecated in favor of using 'lookup'. See https://docs.puppet.com/puppet/#{Puppet.version}/reference/deprecated_language.html")
|
65
|
+
end
|
66
|
+
lookup_invocation = Puppet::Pops::Lookup::Invocation.new(scope, {}, {})
|
67
|
+
adapter = lookup_invocation.lookup_adapter
|
68
|
+
lookup_invocation.set_global_only unless adapter.global_only? || adapter.has_environment_data_provider?(lookup_invocation)
|
69
|
+
lookup_invocation.set_hiera_v3_location_overrides(override) unless override.nil? || override.is_a?(Array) && override.empty?
|
70
|
+
Puppet::Pops::Lookup.lookup(key, nil, default, has_default, merge_type, lookup_invocation, &default_block)
|
73
71
|
end
|
74
72
|
|
75
73
|
def merge_type
|
76
|
-
:
|
74
|
+
:first
|
77
75
|
end
|
78
76
|
|
79
77
|
def post_lookup(scope, key, result)
|
data/lib/hiera/scope.rb
CHANGED
@@ -1,9 +1,12 @@
|
|
1
1
|
class Hiera
|
2
2
|
class Scope
|
3
|
-
CALLING_CLASS =
|
4
|
-
CALLING_CLASS_PATH =
|
5
|
-
CALLING_MODULE =
|
6
|
-
MODULE_NAME =
|
3
|
+
CALLING_CLASS = 'calling_class'.freeze
|
4
|
+
CALLING_CLASS_PATH = 'calling_class_path'.freeze
|
5
|
+
CALLING_MODULE = 'calling_module'.freeze
|
6
|
+
MODULE_NAME = 'module_name'.freeze
|
7
|
+
|
8
|
+
CALLING_KEYS = [CALLING_CLASS, CALLING_CLASS_PATH, CALLING_MODULE].freeze
|
9
|
+
EMPTY_STRING = ''.freeze
|
7
10
|
|
8
11
|
attr_reader :real
|
9
12
|
|
@@ -21,20 +24,15 @@ class Hiera
|
|
21
24
|
else
|
22
25
|
ans = @real.lookupvar(key)
|
23
26
|
end
|
27
|
+
ans == EMPTY_STRING ? nil : ans
|
28
|
+
end
|
24
29
|
|
25
|
-
|
26
|
-
|
27
|
-
else
|
28
|
-
ans
|
29
|
-
end
|
30
|
+
def exist?(key)
|
31
|
+
CALLING_KEYS.include?(key) || @real.exist?(key)
|
30
32
|
end
|
31
33
|
|
32
34
|
def include?(key)
|
33
|
-
|
34
|
-
true
|
35
|
-
else
|
36
|
-
@real.exist?(key)
|
37
|
-
end
|
35
|
+
CALLING_KEYS.include?(key) || @real.include?(key)
|
38
36
|
end
|
39
37
|
|
40
38
|
def catalog
|
data/lib/puppet.rb
CHANGED
@@ -4,6 +4,8 @@ if RUBY_VERSION < "1.9.3"
|
|
4
4
|
raise LoadError, "Puppet #{Puppet.version} requires ruby 1.9.3 or greater."
|
5
5
|
end
|
6
6
|
|
7
|
+
Puppet::OLDEST_RECOMMENDED_RUBY_VERSION = '2.1.0'
|
8
|
+
|
7
9
|
# see the bottom of the file for further inclusions
|
8
10
|
# Also see the new Vendor support - towards the end
|
9
11
|
#
|
@@ -19,6 +21,20 @@ require 'puppet/external/pson/common'
|
|
19
21
|
require 'puppet/external/pson/version'
|
20
22
|
require 'puppet/external/pson/pure'
|
21
23
|
|
24
|
+
# When running within puppetserver, the gettext-setup gem might not be available, so
|
25
|
+
# we need to skip initializing i18n functionality and stub out methods normally
|
26
|
+
# supplied by gettext-setup. Can be removed in Puppet 5. See PUP-7116.
|
27
|
+
begin
|
28
|
+
require 'gettext-setup'
|
29
|
+
require 'locale'
|
30
|
+
Puppet::GETTEXT_AVAILABLE = true
|
31
|
+
rescue LoadError
|
32
|
+
def _(msg)
|
33
|
+
msg
|
34
|
+
end
|
35
|
+
Puppet::GETTEXT_AVAILABLE = false
|
36
|
+
end
|
37
|
+
|
22
38
|
#------------------------------------------------------------
|
23
39
|
# the top-level module
|
24
40
|
#
|
@@ -36,6 +52,36 @@ module Puppet
|
|
36
52
|
require 'puppet/environments'
|
37
53
|
|
38
54
|
class << self
|
55
|
+
if Puppet::GETTEXT_AVAILABLE
|
56
|
+
# e.g. ~/code/puppet/locales. Also when running as a gem.
|
57
|
+
local_locale_path = File.absolute_path('../locales', File.dirname(__FILE__))
|
58
|
+
# e.g. /opt/puppetlabs/puppet/share/locale
|
59
|
+
posix_system_locale_path = File.absolute_path('../../../share/locale', File.dirname(__FILE__))
|
60
|
+
# e.g. C:\Program Files\Puppet Labs\Puppet\puppet\share\locale
|
61
|
+
win32_system_locale_path = File.absolute_path('../../../../../puppet/share/locale', File.dirname(__FILE__))
|
62
|
+
|
63
|
+
if File.exist?(local_locale_path)
|
64
|
+
locale_path = local_locale_path
|
65
|
+
elsif File.exist?(win32_system_locale_path)
|
66
|
+
locale_path = win32_system_locale_path
|
67
|
+
elsif File.exist?(posix_system_locale_path)
|
68
|
+
locale_path = posix_system_locale_path
|
69
|
+
else
|
70
|
+
# We couldn't load our locale data.
|
71
|
+
locale_path = nil
|
72
|
+
end
|
73
|
+
|
74
|
+
if locale_path
|
75
|
+
if Gem.loaded_specs['gettext-setup'].version < Gem::Version.new('0.8')
|
76
|
+
# Will load translations from PO files only
|
77
|
+
GettextSetup.initialize(locale_path)
|
78
|
+
else
|
79
|
+
GettextSetup.initialize(locale_path, :file_format => :mo)
|
80
|
+
end
|
81
|
+
FastGettext.locale = GettextSetup.negotiate_locale(Locale.current.language)
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
39
85
|
include Puppet::Util
|
40
86
|
attr_reader :features
|
41
87
|
end
|
@@ -115,6 +161,12 @@ module Puppet
|
|
115
161
|
# Load all of the settings.
|
116
162
|
require 'puppet/defaults'
|
117
163
|
|
164
|
+
# Now that settings are loaded we have the code loaded to be able to issue
|
165
|
+
# deprecation warnings. Warn if we're on a deprecated ruby version.
|
166
|
+
if RUBY_VERSION < Puppet::OLDEST_RECOMMENDED_RUBY_VERSION
|
167
|
+
Puppet.deprecation_warning("Support for ruby version #{RUBY_VERSION} is deprecated and will be removed in a future release. See https://docs.puppet.com/puppet/latest/system_requirements.html#ruby for a list of supported ruby versions.")
|
168
|
+
end
|
169
|
+
|
118
170
|
# Initialize puppet's settings. This is intended only for use by external tools that are not
|
119
171
|
# built off of the Faces API or the Puppet::Util::Application class. It may also be used
|
120
172
|
# to initialize state so that a Face may be used programatically, rather than as a stand-alone
|
@@ -245,6 +245,10 @@ class Puppet::Application::FaceBase < Puppet::Application
|
|
245
245
|
end
|
246
246
|
end
|
247
247
|
|
248
|
+
if @face.deprecated?
|
249
|
+
Puppet.deprecation_warning("'puppet #{@face.name}' is deprecated and will be removed in a future release")
|
250
|
+
end
|
251
|
+
|
248
252
|
result = @face.send(@action.name, *arguments)
|
249
253
|
puts render(result, arguments) unless result.nil?
|
250
254
|
status = true
|
@@ -297,11 +297,13 @@ Copyright (c) 2015 Puppet Labs, LLC Licensed under the Apache 2.0 License
|
|
297
297
|
type = options.include?(:type) ? Puppet::Pops::Types::TypeParser.singleton.parse(options[:type], scope) : nil
|
298
298
|
result = Puppet::Pops::Lookup.lookup(keys, type, options[:default_value], use_default_value, merge_options, lookup_invocation)
|
299
299
|
puts renderer.render(result) unless explain
|
300
|
-
rescue Puppet::DataBinding::LookupError
|
300
|
+
rescue Puppet::DataBinding::LookupError => e
|
301
|
+
lookup_invocation.report_text { e.message }
|
301
302
|
exit(1) unless explain
|
302
303
|
end
|
303
|
-
puts format == :s ? lookup_invocation.explainer.
|
304
|
+
puts format == :s ? lookup_invocation.explainer.explain : renderer.render(lookup_invocation.explainer.to_hash) if explain
|
304
305
|
end
|
306
|
+
exit(0)
|
305
307
|
end
|
306
308
|
|
307
309
|
def generate_scope
|
@@ -166,7 +166,7 @@ Copyright (c) 2011 Puppet Labs, LLC Licensed under the Apache 2.0 License
|
|
166
166
|
require 'tempfile'
|
167
167
|
# Prefer the current directory, which is more likely to be secure
|
168
168
|
# and, in the case of interactive use, accessible to the user.
|
169
|
-
tmpfile = Tempfile.new('x2puppet', Dir.pwd)
|
169
|
+
tmpfile = Tempfile.new('x2puppet', Dir.pwd, :encoding => Encoding::UTF_8)
|
170
170
|
begin
|
171
171
|
# sync write, so nothing buffers before we invoke the editor.
|
172
172
|
tmpfile.sync = true
|
@@ -1,11 +1,11 @@
|
|
1
|
+
# TODO: API 5.0, remove this module
|
1
2
|
# @api private
|
3
|
+
# @deprecated
|
2
4
|
module Puppet::DataProviders
|
3
5
|
|
4
6
|
def self.assert_loaded
|
5
7
|
unless @loaded
|
6
8
|
require 'puppet/pops'
|
7
|
-
require 'puppet/data_providers/data_adapter'
|
8
|
-
require 'puppet/data_providers/lookup_adapter'
|
9
9
|
end
|
10
10
|
@loaded = true
|
11
11
|
end
|
@@ -25,7 +25,10 @@ module Puppet::DataProviders
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def self.lookup_adapter(lookup_invocation)
|
28
|
+
unless Puppet[:strict] == :off
|
29
|
+
Puppet.deprecation_warning('The method Puppet::DataProviders.lookup_adapter is deprecated and will be removed in the next major release of Puppet.')
|
30
|
+
end
|
28
31
|
assert_loaded()
|
29
|
-
LookupAdapter.adapt(lookup_invocation.scope.compiler)
|
32
|
+
Puppet::Pops::Lookup::LookupAdapter.adapt(lookup_invocation.scope.compiler)
|
30
33
|
end
|
31
34
|
end
|