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
@@ -273,7 +273,7 @@ module Validation
|
|
273
273
|
#
|
274
274
|
class DiagnosticFormatter
|
275
275
|
def format diagnostic
|
276
|
-
"#{
|
276
|
+
"#{format_location(diagnostic)} #{format_severity(diagnostic)}#{format_message(diagnostic)}"
|
277
277
|
end
|
278
278
|
|
279
279
|
def format_message diagnostic
|
@@ -295,8 +295,12 @@ class Checker4_0 < Evaluator::LiteralEvaluator
|
|
295
295
|
|
296
296
|
def check_CaseExpression(o)
|
297
297
|
rvalue(o.test)
|
298
|
-
# There
|
299
|
-
|
298
|
+
# There can only be one LiteralDefault case option value
|
299
|
+
defaults = o.options.values.select {|v| v.is_a?(Model::LiteralDefault) }
|
300
|
+
unless defaults.size <= 1
|
301
|
+
# Flag the second default as 'unreachable'
|
302
|
+
acceptor.accept(Issues::DUPLICATE_DEFAULT, defaults[1], :container => o)
|
303
|
+
end
|
300
304
|
end
|
301
305
|
|
302
306
|
def check_CaseOption(o)
|
@@ -659,6 +663,12 @@ class Checker4_0 < Evaluator::LiteralEvaluator
|
|
659
663
|
|
660
664
|
def check_SelectorExpression(o)
|
661
665
|
rvalue(o.left_expr)
|
666
|
+
# There can only be one LiteralDefault case option value
|
667
|
+
defaults = o.selectors.select {|v| v.matching_expr.is_a?(Model::LiteralDefault) }
|
668
|
+
unless defaults.size <= 1
|
669
|
+
# Flag the second default as 'unreachable'
|
670
|
+
acceptor.accept(Issues::DUPLICATE_DEFAULT, defaults[1].matching_expr, :container => o)
|
671
|
+
end
|
662
672
|
end
|
663
673
|
|
664
674
|
def check_SelectorEntry(o)
|
@@ -28,6 +28,7 @@ class ValidatorFactory_4_0 < Factory
|
|
28
28
|
p[Issues::FUTURE_RESERVED_WORD] = :deprecation
|
29
29
|
|
30
30
|
p[Issues::DUPLICATE_KEY] = Puppet[:strict] == :off ? :ignore : Puppet[:strict]
|
31
|
+
p[Issues::DUPLICATE_DEFAULT] = Puppet[:strict] == :off ? :ignore : Puppet[:strict]
|
31
32
|
p[Issues::NAME_WITH_HYPHEN] = :error
|
32
33
|
p[Issues::EMPTY_RESOURCE_SPECIALIZATION] = :ignore
|
33
34
|
p
|
data/lib/puppet/pops/visitor.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
module Puppet::Pops
|
1
2
|
# A Visitor performs delegation to a given receiver based on the configuration of the Visitor.
|
2
3
|
# A new visitor is created with a given receiver, a method prefix, min, and max argument counts.
|
3
4
|
# e.g.
|
@@ -9,7 +10,7 @@
|
|
9
10
|
# Raises RuntimeError if there are too few or too many arguments, or if the receiver is not
|
10
11
|
# configured to handle a given visiting object.
|
11
12
|
#
|
12
|
-
class
|
13
|
+
class Visitor
|
13
14
|
attr_reader :receiver, :message, :min_args, :max_args, :cache
|
14
15
|
def initialize(receiver, message, min_args=0, max_args=nil)
|
15
16
|
raise ArgumentError.new("min_args must be >= 0") if min_args < 0
|
@@ -27,8 +28,7 @@ class Puppet::Pops::Visitor
|
|
27
28
|
visit_this(@receiver, thing, args)
|
28
29
|
end
|
29
30
|
|
30
|
-
|
31
|
-
NO_ARGS = [].freeze
|
31
|
+
NO_ARGS = EMPTY_ARRAY
|
32
32
|
|
33
33
|
# Visit an explicit receiver
|
34
34
|
def visit_this(receiver, thing, args)
|
@@ -92,3 +92,4 @@ class Puppet::Pops::Visitor
|
|
92
92
|
end
|
93
93
|
|
94
94
|
end
|
95
|
+
end
|
@@ -116,7 +116,8 @@ Puppet::Type.type(:mcx).provide :mcxcontent, :parent => Puppet::Provider do
|
|
116
116
|
dscl 'localhost', '-mcxdelete', ds_path
|
117
117
|
end
|
118
118
|
|
119
|
-
|
119
|
+
# val being passed in is resource[:content] which should be UTF-8
|
120
|
+
tmp = Tempfile.new('puppet_mcx', :encoding => Encoding::UTF_8)
|
120
121
|
begin
|
121
122
|
tmp << val
|
122
123
|
tmp.flush
|
@@ -288,5 +288,20 @@ class Puppet::Provider::NameService < Puppet::Provider
|
|
288
288
|
raise Puppet::Error, "Could not set #{param} on #{@resource.class.name}[#{@resource.name}]: #{detail}", detail.backtrace
|
289
289
|
end
|
290
290
|
end
|
291
|
+
|
292
|
+
# From overriding Puppet::Property#insync? Ruby Etc::getpwnam < 2.1.0 always
|
293
|
+
# returns a struct with binary encoded string values, and >= 2.1.0 will return
|
294
|
+
# binary encoded strings for values incompatible with current locale charset,
|
295
|
+
# or Encoding.default_external if compatible. Compare a "should" value with
|
296
|
+
# encoding of "current" value, to avoid unnecessary property syncs and
|
297
|
+
# comparison of strings with different encodings. (PUP-6777)
|
298
|
+
#
|
299
|
+
# return basic string comparison after re-encoding (same as
|
300
|
+
# Puppet::Property#property_matches)
|
301
|
+
def comments_insync?(current, should)
|
302
|
+
# we're only doing comparison here so don't mutate the string
|
303
|
+
desired = should[0].to_s.dup
|
304
|
+
current == desired.force_encoding(current.encoding)
|
305
|
+
end
|
291
306
|
end
|
292
307
|
|
@@ -44,7 +44,7 @@ Puppet::Type.type(:package).provide(:appdmg, :parent => Puppet::Provider::Packag
|
|
44
44
|
def self.installapp(source, name, orig_source)
|
45
45
|
appname = File.basename(source);
|
46
46
|
ditto "--rsrc", source, "/Applications/#{appname}"
|
47
|
-
|
47
|
+
Puppet::FileSystem.open("/var/db/.puppet_appdmg_installed_#{name}", nil, "w:UTF-8") do |t|
|
48
48
|
t.print "name: '#{name}'\n"
|
49
49
|
t.print "source: '#{orig_source}'\n"
|
50
50
|
end
|
@@ -28,7 +28,7 @@ Puppet::Type.type(:package).provide :dnf, :parent => :yum do
|
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
31
|
-
defaultfor :operatingsystem => :fedora, :operatingsystemmajrelease => ['22', '23', '24']
|
31
|
+
defaultfor :operatingsystem => :fedora, :operatingsystemmajrelease => ['22', '23', '24', '25']
|
32
32
|
|
33
33
|
def self.update_command
|
34
34
|
# In DNF, update is deprecated for upgrade
|
@@ -23,7 +23,7 @@ Puppet::Type.type(:package).provide :pkg, :parent => Puppet::Provider::Package d
|
|
23
23
|
|
24
24
|
confine :osfamily => :solaris
|
25
25
|
|
26
|
-
defaultfor :osfamily => :solaris, :kernelrelease => '5.11'
|
26
|
+
defaultfor :osfamily => :solaris, :kernelrelease => ['5.11', '5.12']
|
27
27
|
|
28
28
|
def self.instances
|
29
29
|
pkg(:list, '-Hv').split("\n").map{|l| new(parse_line(l))}
|
@@ -62,7 +62,7 @@ Puppet::Type.type(:package).provide :pkgdmg, :parent => Puppet::Provider::Packag
|
|
62
62
|
def self.installpkg(source, name, orig_source)
|
63
63
|
installer "-pkg", source, "-target", "/"
|
64
64
|
# Non-zero exit status will throw an exception.
|
65
|
-
|
65
|
+
Puppet::FileSystem.open("/var/db/.puppet_pkgdmg_installed_#{name}", nil, "w:UTF-8") do |t|
|
66
66
|
t.print "name: '#{name}'\n"
|
67
67
|
t.print "source: '#{orig_source}'\n"
|
68
68
|
end
|
@@ -101,7 +101,7 @@ Puppet::Type.type(:package).provide :rpm, :source => :rpm, :parent => Puppet::Pr
|
|
101
101
|
#NOTE: Prior to a fix for issue 1243, this method potentially returned a cached value
|
102
102
|
#IF YOU CALL THIS METHOD, IT WILL CALL RPM
|
103
103
|
#Use get(:property) to check if cached values are available
|
104
|
-
cmd = ["-q", @resource[:name], "#{self.class.nosignature}", "#{self.class.nodigest}", "--qf", self.class::NEVRA_FORMAT]
|
104
|
+
cmd = ["-q", @resource[:name], "#{self.class.nosignature}", "#{self.class.nodigest}", "--qf", "'#{self.class::NEVRA_FORMAT}'"]
|
105
105
|
|
106
106
|
begin
|
107
107
|
output = rpm(*cmd)
|
@@ -131,7 +131,7 @@ Puppet::Type.type(:package).provide :rpm, :source => :rpm, :parent => Puppet::Pr
|
|
131
131
|
@resource.fail "RPMs must specify a package source"
|
132
132
|
end
|
133
133
|
|
134
|
-
cmd = [command(:rpm), "-q", "--qf", self.class::NEVRA_FORMAT, "-p", source]
|
134
|
+
cmd = [command(:rpm), "-q", "--qf", "'#{self.class::NEVRA_FORMAT}'", "-p", source]
|
135
135
|
h = self.class.nevra_to_hash(execfail(cmd, Puppet::Error))
|
136
136
|
h[:ensure]
|
137
137
|
end
|
@@ -80,7 +80,7 @@ Puppet::Type.type(:service).provide :smf, :parent => :base do
|
|
80
80
|
when :maintenance, :degraded
|
81
81
|
[command(:adm), :clear, @resource[:name]]
|
82
82
|
else
|
83
|
-
[command(:adm), :enable, "-
|
83
|
+
[command(:adm), :enable, "-rs", @resource[:name]]
|
84
84
|
end
|
85
85
|
end
|
86
86
|
|
@@ -135,8 +135,8 @@ Puppet::Type.type(:service).provide :smf, :parent => :base do
|
|
135
135
|
states = service_states
|
136
136
|
state = states[1] == "-" ? states[0] : states[1]
|
137
137
|
rescue Puppet::ExecutionFailure
|
138
|
-
|
139
|
-
return :
|
138
|
+
debug "Could not get status on service #{self.name} #{$!}"
|
139
|
+
return :absent
|
140
140
|
end
|
141
141
|
|
142
142
|
case state
|
@@ -22,6 +22,7 @@ Puppet::Type.type(:service).provide :systemd, :parent => :base do
|
|
22
22
|
defaultfor :osfamily => :redhat, :operatingsystemmajrelease => "7"
|
23
23
|
defaultfor :osfamily => :redhat, :operatingsystem => :fedora
|
24
24
|
defaultfor :osfamily => :suse
|
25
|
+
defaultfor :osfamily => :coreos
|
25
26
|
defaultfor :operatingsystem => :debian, :operatingsystemmajrelease => "8"
|
26
27
|
defaultfor :operatingsystem => :ubuntu, :operatingsystemmajrelease => ["15.04","15.10","16.04","16.10"]
|
27
28
|
defaultfor :operatingsystem => :cumuluslinux, :operatingsystemmajrelease => ["3"]
|
@@ -29,7 +30,7 @@ Puppet::Type.type(:service).provide :systemd, :parent => :base do
|
|
29
30
|
def self.instances
|
30
31
|
i = []
|
31
32
|
output = systemctl('list-unit-files', '--type', 'service', '--full', '--all', '--no-pager')
|
32
|
-
output.scan(/^(\S+)\s+(disabled|enabled|masked)\s*$/i).each do |m|
|
33
|
+
output.scan(/^(\S+)\s+(disabled|enabled|masked|indirect)\s*$/i).each do |m|
|
33
34
|
i << new(:name => m[0])
|
34
35
|
end
|
35
36
|
return i
|
@@ -82,6 +83,9 @@ Puppet::Type.type(:service).provide :systemd, :parent => :base do
|
|
82
83
|
# We only return :mask if we're trying to mask the service. This prevents
|
83
84
|
# flapping when simply trying to disable a masked service.
|
84
85
|
return :mask if (@resource[:enable] == :mask) && (output == 'masked')
|
86
|
+
|
87
|
+
# The indirect state indicates that the unit is not enabled.
|
88
|
+
return :false if output == 'indirect'
|
85
89
|
return :true if (code == 0)
|
86
90
|
if (output.empty?) && (code > 0) && (Facter.value(:osfamily).downcase == 'debian')
|
87
91
|
ret = debian_enabled?
|
@@ -622,6 +622,7 @@ Puppet::Type.type(:user).provide :directoryservice do
|
|
622
622
|
|
623
623
|
# This is a simple wrapper method for writing values to a file.
|
624
624
|
def write_to_file(filename, value)
|
625
|
+
Puppet.deprecation_warning("Puppet::Type.type(:user).provider(:directoryservice).write_to_file is deprecated and will be removed in Puppet 5.")
|
625
626
|
begin
|
626
627
|
File.open(filename, 'w') { |f| f.write(value)}
|
627
628
|
rescue Errno::EACCES => detail
|
@@ -12,6 +12,7 @@ Puppet::Type.type(:user).provide :user_role_add, :parent => :useradd, :source =>
|
|
12
12
|
options :home, :flag => "-d", :method => :dir
|
13
13
|
options :comment, :method => :gecos
|
14
14
|
options :groups, :flag => "-G"
|
15
|
+
options :shell, :flag => "-s"
|
15
16
|
options :roles, :flag => "-R"
|
16
17
|
options :auths, :flag => "-A"
|
17
18
|
options :profiles, :flag => "-P"
|
@@ -26,8 +27,22 @@ Puppet::Type.type(:user).provide :user_role_add, :parent => :useradd, :source =>
|
|
26
27
|
value !~ /\s/
|
27
28
|
end
|
28
29
|
|
30
|
+
def shell=(value)
|
31
|
+
check_valid_shell
|
32
|
+
set("shell", value)
|
33
|
+
end
|
34
|
+
|
29
35
|
has_features :manages_homedir, :allows_duplicates, :manages_solaris_rbac, :manages_passwords, :manages_password_age, :manages_shell
|
30
36
|
|
37
|
+
def check_valid_shell
|
38
|
+
unless File.exists?(@resource.should(:shell))
|
39
|
+
raise(Puppet::Error, "Shell #{@resource.should(:shell)} must exist")
|
40
|
+
end
|
41
|
+
unless File.executable?(@resource.should(:shell).to_s)
|
42
|
+
raise(Puppet::Error, "Shell #{@resource.should(:shell)} must be executable")
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
31
46
|
#must override this to hand the keyvalue pairs
|
32
47
|
def add_properties
|
33
48
|
cmd = []
|
@@ -4,7 +4,7 @@ Puppet::Type.type(:yumrepo).provide(:inifile) do
|
|
4
4
|
desc <<-EOD
|
5
5
|
Manage yum repo configurations by parsing yum INI configuration files.
|
6
6
|
|
7
|
-
|
7
|
+
### Fetching instances
|
8
8
|
|
9
9
|
When fetching repo instances, directory entries in '/etc/yum/repos.d',
|
10
10
|
'/etc/yum.repos.d', and the directory optionally specified by the reposdir
|
@@ -12,7 +12,7 @@ Puppet::Type.type(:yumrepo).provide(:inifile) do
|
|
12
12
|
will be ignored. In addition, all sections in '/etc/yum.conf' aside from
|
13
13
|
'main' will be created as sections.
|
14
14
|
|
15
|
-
|
15
|
+
### Storing instances
|
16
16
|
|
17
17
|
When creating a new repository, a new section will be added in the first
|
18
18
|
yum repo directory that exists. The custom directory specified by the
|
@@ -263,7 +263,10 @@ Puppet::Type.type(:zone).provide(:solaris) do
|
|
263
263
|
|
264
264
|
unless Puppet::FileSystem.exist?(sysidcfg)
|
265
265
|
begin
|
266
|
-
|
266
|
+
# For compatibility reasons use System encoding for this OS file
|
267
|
+
# the manifest string is UTF-8 so this could result in conversion errors
|
268
|
+
# which should propagate to users
|
269
|
+
Puppet::FileSystem.open(sysidcfg, 0600, "w:#{Encoding.default_external.name}") do |f|
|
267
270
|
f.puts cfg
|
268
271
|
end
|
269
272
|
rescue => detail
|
@@ -41,7 +41,7 @@ An indirector has five methods, which are mapped into HTTP verbs for the REST in
|
|
41
41
|
* `find(key)` - get a single value (mapped to GET or POST with a singular endpoint)
|
42
42
|
* `search(key)` - get a list of matching values (mapped to GET with a plural endpoint)
|
43
43
|
* `head(key)` - return true if the key exists (mapped to HEAD)
|
44
|
-
* `destroy(key)` - remove the key
|
44
|
+
* `destroy(key)` - remove the key and value (mapped to DELETE)
|
45
45
|
* `save(instance)` - write the instance to the store, using the instance's name as the key (mapped to PUT)
|
46
46
|
|
47
47
|
These methods are available via the `indirection` class method on the indirected classes. For example:
|
data/lib/puppet/resource.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'puppet'
|
2
2
|
require 'puppet/util/tagging'
|
3
3
|
require 'puppet/parameter'
|
4
|
-
require 'puppet/data_providers'
|
5
4
|
|
6
5
|
# The simplest resource class. Eventually it will function as the
|
7
6
|
# base class for all resource-like behaviour.
|
@@ -45,7 +44,7 @@ class Puppet::Resource
|
|
45
44
|
raise Puppet::Error, 'Unable to deserialize non-Data type parameters unless a deserializer is provided' unless json_deserializer
|
46
45
|
reader = json_deserializer.reader
|
47
46
|
ext_params.each do |param, value|
|
48
|
-
reader.re_initialize(
|
47
|
+
reader.re_initialize(value)
|
49
48
|
resource[param] = json_deserializer.read
|
50
49
|
end
|
51
50
|
end
|
@@ -104,7 +103,7 @@ class Puppet::Resource
|
|
104
103
|
writer.clear_io
|
105
104
|
json_serializer.write(ext_params[key])
|
106
105
|
writer.finish
|
107
|
-
ext_params[key] = writer.to_a
|
106
|
+
ext_params[key] = writer.to_a
|
108
107
|
end
|
109
108
|
data['ext_parameters'] = ext_params
|
110
109
|
end
|
@@ -426,8 +426,10 @@ class Puppet::Resource::Catalog < Puppet::Graph::SimpleGraph
|
|
426
426
|
if resources = data['resources']
|
427
427
|
# TODO: The deserializer needs a loader in order to deserialize types defined using the puppet language.
|
428
428
|
json_deserializer = nil
|
429
|
-
if
|
430
|
-
json_deserializer = Puppet::Pops::Serialization::Deserializer.new(
|
429
|
+
if resources.any? { |res| res.has_key?('ext_parameters') }
|
430
|
+
json_deserializer = Puppet::Pops::Serialization::Deserializer.new(
|
431
|
+
Puppet::Pops::Serialization::JSON::Reader.new([]),
|
432
|
+
Puppet::Pops::Loaders.catalog_loader)
|
431
433
|
end
|
432
434
|
result.add_resource(*resources.collect do |res|
|
433
435
|
Puppet::Resource.from_data_hash(res, json_deserializer)
|
@@ -536,7 +538,10 @@ class Puppet::Resource::Catalog < Puppet::Graph::SimpleGraph
|
|
536
538
|
|
537
539
|
# Store the classes in the classfile.
|
538
540
|
def write_class_file
|
539
|
-
|
541
|
+
# classfile paths may contain UTF-8
|
542
|
+
# https://docs.puppet.com/puppet/latest/reference/configuration.html#classfile
|
543
|
+
classfile = Puppet.settings.setting(:classfile)
|
544
|
+
Puppet::FileSystem.open(classfile.value, classfile.mode.to_i(8), "w:UTF-8") do |f|
|
540
545
|
f.puts classes.join("\n")
|
541
546
|
end
|
542
547
|
rescue => detail
|
@@ -545,7 +550,10 @@ class Puppet::Resource::Catalog < Puppet::Graph::SimpleGraph
|
|
545
550
|
|
546
551
|
# Store the list of resources we manage
|
547
552
|
def write_resource_file
|
548
|
-
|
553
|
+
# resourcefile contains resources that may be UTF-8 names
|
554
|
+
# https://docs.puppet.com/puppet/latest/reference/configuration.html#resourcefile
|
555
|
+
resourcefile = Puppet.settings.setting(:resourcefile)
|
556
|
+
Puppet::FileSystem.open(resourcefile.value, resourcefile.mode.to_i(8), "w:UTF-8") do |f|
|
549
557
|
to_print = resources.map do |resource|
|
550
558
|
next unless resource.managed?
|
551
559
|
if resource.name_var
|
data/lib/puppet/resource/type.rb
CHANGED
@@ -545,11 +545,11 @@ class Puppet::Resource::Type
|
|
545
545
|
def create_params_struct
|
546
546
|
arg_types = argument_types
|
547
547
|
type_factory = Puppet::Pops::Types::TypeFactory
|
548
|
-
members = { type_factory.optional(type_factory.string(
|
548
|
+
members = { type_factory.optional(type_factory.string(NAME)) => type_factory.any }
|
549
549
|
|
550
550
|
if application?
|
551
551
|
resource_type = type_factory.type_type(type_factory.resource)
|
552
|
-
members[type_factory.optional(type_factory.string(
|
552
|
+
members[type_factory.optional(type_factory.string(NODES))] = type_factory.hash_of(type_factory.variant(
|
553
553
|
resource_type, type_factory.array_of(resource_type)), type_factory.type_type(type_factory.resource('node')))
|
554
554
|
end
|
555
555
|
|
@@ -559,7 +559,7 @@ class Puppet::Resource::Type
|
|
559
559
|
end
|
560
560
|
|
561
561
|
arguments.each_pair do |name, default|
|
562
|
-
key_type = type_factory.string(
|
562
|
+
key_type = type_factory.string(name.to_s)
|
563
563
|
key_type = type_factory.optional(key_type) unless default.nil?
|
564
564
|
|
565
565
|
arg_type = arg_types[name]
|
data/lib/puppet/settings.rb
CHANGED
@@ -636,7 +636,7 @@ class Puppet::Settings
|
|
636
636
|
# because multiple sections could set the same value
|
637
637
|
# and I'm too lazy to only set the metadata once.
|
638
638
|
if @configuration_file
|
639
|
-
searchpath(nil, preferred_run_mode).
|
639
|
+
searchpath(nil, preferred_run_mode).reverse_each do |source|
|
640
640
|
if source.type == :section && section = @configuration_file.sections[source.name]
|
641
641
|
apply_metadata_from_section(section)
|
642
642
|
end
|
@@ -25,7 +25,8 @@ class Puppet::Settings::ConfigFile
|
|
25
25
|
allowed_section_names << 'main' unless allowed_section_names.include?('main')
|
26
26
|
end
|
27
27
|
|
28
|
-
|
28
|
+
# in Ruby 1.9.3 strings are not UTF-8 by default, so ensure text is treated properly
|
29
|
+
ini = Puppet::Settings::IniFile.parse(StringIO.new(text).set_encoding(Encoding::UTF_8))
|
29
30
|
unique_sections_in(ini, file, allowed_section_names).each do |section_name|
|
30
31
|
section = Section.new(section_name.to_sym)
|
31
32
|
result.with_section(section)
|
@@ -4,6 +4,12 @@ class Puppet::Settings::DirectorySetting < Puppet::Settings::FileSetting
|
|
4
4
|
end
|
5
5
|
|
6
6
|
# @api private
|
7
|
+
#
|
8
|
+
# @param option [String] Extra file operation mode information to use
|
9
|
+
# (defaults to read-only mode 'r')
|
10
|
+
# This is the standard mechanism Ruby uses in the IO class, and therefore
|
11
|
+
# encoding may be explicitly like fmode : encoding or fmode : "BOM|UTF-*"
|
12
|
+
# for example, a:ASCII or w+:UTF-8
|
7
13
|
def open_file(filename, option = 'r', &block)
|
8
14
|
controlled_access do |mode|
|
9
15
|
Puppet::FileSystem.open(filename, mode, option, &block)
|
@@ -40,7 +40,7 @@ class Puppet::Settings::EnvironmentConf
|
|
40
40
|
# without interpolation. This is a special case for the default configured
|
41
41
|
# environment returned by the Puppet::Environments::StaticPrivate loader.
|
42
42
|
def self.static_for(environment, environment_timeout = 0, static_catalogs = false, rich_data = false)
|
43
|
-
Static.new(environment, environment_timeout, static_catalogs,
|
43
|
+
Static.new(environment, environment_timeout, static_catalogs, nil, rich_data)
|
44
44
|
end
|
45
45
|
|
46
46
|
attr_reader :section, :path_to_env, :global_modulepath
|
@@ -176,7 +176,7 @@ class Puppet::Settings::EnvironmentConf
|
|
176
176
|
attr_reader :rich_data
|
177
177
|
attr_reader :static_catalogs
|
178
178
|
|
179
|
-
def initialize(environment, environment_timeout, static_catalogs, environment_data_provider =
|
179
|
+
def initialize(environment, environment_timeout, static_catalogs, environment_data_provider = nil, rich_data = false)
|
180
180
|
@environment = environment
|
181
181
|
@environment_timeout = environment_timeout
|
182
182
|
@static_catalogs = static_catalogs
|
@@ -184,6 +184,10 @@ class Puppet::Settings::EnvironmentConf
|
|
184
184
|
@rich_data = rich_data
|
185
185
|
end
|
186
186
|
|
187
|
+
def path_to_env
|
188
|
+
nil
|
189
|
+
end
|
190
|
+
|
187
191
|
def manifest
|
188
192
|
@environment.manifest
|
189
193
|
end
|