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/lib/puppet/face/key.rb
CHANGED
data/lib/puppet/face/man.rb
CHANGED
@@ -76,11 +76,13 @@ Puppet::Face.define(:man, '0.0.1') do
|
|
76
76
|
if pager then ENV['PAGER'] = pager end
|
77
77
|
|
78
78
|
args = "--man --manual='Puppet Manual' --organization='Puppet Labs, LLC'"
|
79
|
-
|
79
|
+
# manual pages could contain UTF-8 text
|
80
|
+
IO.popen("#{ronn} #{args}", 'w:UTF-8') do |fh| fh.write text end
|
80
81
|
|
81
82
|
'' # suppress local output, neh?
|
82
83
|
elsif pager then
|
83
|
-
|
84
|
+
# manual pages could contain UTF-8 text
|
85
|
+
IO.popen(pager, 'w:UTF-8') do |fh| fh.write text end
|
84
86
|
''
|
85
87
|
else
|
86
88
|
text
|
@@ -236,7 +236,7 @@ module Puppet::ModuleTool::Generate
|
|
236
236
|
content = block[path.read, binding]
|
237
237
|
|
238
238
|
target = path.parent + path.basename(".#{type}")
|
239
|
-
target.open('w') { |f| f.write(content) }
|
239
|
+
target.open('w:UTF-8') { |f| f.write(content) }
|
240
240
|
path.unlink
|
241
241
|
end
|
242
242
|
end
|
data/lib/puppet/face/status.rb
CHANGED
data/lib/puppet/feature/base.rb
CHANGED
@@ -17,8 +17,15 @@ end
|
|
17
17
|
Puppet.features.add(:microsoft_windows) do
|
18
18
|
begin
|
19
19
|
# ruby
|
20
|
-
require 'Win32API'
|
21
|
-
|
20
|
+
require 'Win32API' # case matters in this require!
|
21
|
+
|
22
|
+
# Note: Setting codepage here globally ensures all strings returned via
|
23
|
+
# WIN32OLE (Ruby's late-bound COM support) are encoded in Encoding::UTF_8
|
24
|
+
#
|
25
|
+
# Also, this does not modify the value of WIN32OLE.locale - which defaults
|
26
|
+
# to 2048 (at least on US English Windows) and is not listed in the MS
|
27
|
+
# locales table, here: https://msdn.microsoft.com/en-us/library/ms912047(v=winembedded.10).aspx
|
28
|
+
require 'win32ole' ; WIN32OLE.codepage = WIN32OLE::CP_UTF8
|
22
29
|
# gems
|
23
30
|
require 'win32/process'
|
24
31
|
require 'win32/dir'
|
data/lib/puppet/file_system.rb
CHANGED
@@ -32,6 +32,15 @@ module Puppet::FileSystem
|
|
32
32
|
|
33
33
|
# Opens the given path with given mode, and options and optionally yields it to the given block.
|
34
34
|
#
|
35
|
+
# @param path [String, Pathname] the path to the file to operate on
|
36
|
+
# @param mode [Integer] The mode to apply to the file if it is created
|
37
|
+
# @param options [String] Extra file operation mode information to use
|
38
|
+
# This is the standard mechanism Ruby uses in the IO class, and therefore
|
39
|
+
# encoding may be specified explicitly as fmode : encoding or fmode : "BOM|UTF-*"
|
40
|
+
# for example, a:ASCII or w+:UTF-8
|
41
|
+
# @yield The file handle, in the mode given by options, else read-write mode
|
42
|
+
# @return [Void]
|
43
|
+
#
|
35
44
|
# @api public
|
36
45
|
#
|
37
46
|
def self.open(path, mode, options, &block)
|
@@ -98,10 +107,13 @@ module Puppet::FileSystem
|
|
98
107
|
#
|
99
108
|
# @param path [Pathname] the path to the file to operate on
|
100
109
|
# @param mode [Integer] The mode to apply to the file if it is created
|
101
|
-
# @param options [
|
102
|
-
# (defaults to read-only mode)
|
110
|
+
# @param options [String] Extra file operation mode information to use
|
111
|
+
# (defaults to read-only mode 'r')
|
112
|
+
# This is the standard mechanism Ruby uses in the IO class, and therefore
|
113
|
+
# encoding may be specified explicitly as fmode : encoding or fmode : "BOM|UTF-*"
|
114
|
+
# for example, a:ASCII or w+:UTF-8
|
103
115
|
# @param timeout [Integer] Number of seconds to wait for the lock (defaults to 300)
|
104
|
-
# @yield The file handle, in read-write mode
|
116
|
+
# @yield The file handle, in the mode given by options, else read-write mode
|
105
117
|
# @return [Void]
|
106
118
|
# @raise [Timeout::Error] If the timeout is exceeded while waiting to acquire the lock
|
107
119
|
#
|
@@ -3,6 +3,14 @@ require 'puppet/util/windows'
|
|
3
3
|
|
4
4
|
class Puppet::FileSystem::Windows < Puppet::FileSystem::Posix
|
5
5
|
|
6
|
+
def open(path, mode, options, &block)
|
7
|
+
# PUP-6959 mode is explicitly ignored until it can be implemented
|
8
|
+
# Ruby on Windows uses mode for setting file attributes like read-only and
|
9
|
+
# archived, not for setting permissions like POSIX
|
10
|
+
raise TypeError.new('mode must be specified as an Integer') if mode && !mode.is_a?(Numeric)
|
11
|
+
::File.open(path, options, nil, &block)
|
12
|
+
end
|
13
|
+
|
6
14
|
def expand_path(path, dir_string = nil)
|
7
15
|
# ensure `nil` values behave like underlying File.expand_path
|
8
16
|
string_path = ::File.expand_path(path.nil? ? nil : path_string(path), dir_string)
|
data/lib/puppet/forge.rb
CHANGED
@@ -6,9 +6,9 @@ require 'tempfile'
|
|
6
6
|
require 'uri'
|
7
7
|
require 'pathname'
|
8
8
|
require 'json'
|
9
|
-
require '
|
9
|
+
require 'semantic_puppet'
|
10
10
|
|
11
|
-
class Puppet::Forge <
|
11
|
+
class Puppet::Forge < SemanticPuppet::Dependency::Source
|
12
12
|
require 'puppet/forge/cache'
|
13
13
|
require 'puppet/forge/repository'
|
14
14
|
require 'puppet/forge/errors'
|
@@ -83,9 +83,9 @@ class Puppet::Forge < Semantic::Dependency::Source
|
|
83
83
|
# Fetches {ModuleRelease} entries for each release of the named module.
|
84
84
|
#
|
85
85
|
# @param input [String] the module name to look up
|
86
|
-
# @return [Array<
|
86
|
+
# @return [Array<SemanticPuppet::Dependency::ModuleRelease>] a list of releases for
|
87
87
|
# the given name
|
88
|
-
# @see
|
88
|
+
# @see SemanticPuppet::Dependency::Source#fetch
|
89
89
|
def fetch(input)
|
90
90
|
name = input.tr('/', '-')
|
91
91
|
uri = "/v3/releases?module=#{name}"
|
@@ -114,7 +114,7 @@ class Puppet::Forge < Semantic::Dependency::Source
|
|
114
114
|
@repository.make_http_request(*args)
|
115
115
|
end
|
116
116
|
|
117
|
-
class ModuleRelease <
|
117
|
+
class ModuleRelease < SemanticPuppet::Dependency::ModuleRelease
|
118
118
|
attr_reader :install_dir, :metadata
|
119
119
|
|
120
120
|
def initialize(source, data)
|
@@ -122,7 +122,7 @@ class Puppet::Forge < Semantic::Dependency::Source
|
|
122
122
|
@metadata = meta = data['metadata']
|
123
123
|
|
124
124
|
name = meta['name'].tr('/', '-')
|
125
|
-
version =
|
125
|
+
version = SemanticPuppet::Version.parse(meta['version'])
|
126
126
|
release = "#{name}@#{version}"
|
127
127
|
|
128
128
|
if meta['dependencies']
|
@@ -10,16 +10,10 @@ Puppet::Functions.create_function(:binary_file, Puppet::Functions::InternalFunct
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def binary_file(scope, unresolved_path)
|
13
|
-
path =
|
14
|
-
|
15
|
-
|
16
|
-
path = found
|
17
|
-
end
|
18
|
-
|
19
|
-
if path
|
20
|
-
Puppet::Pops::Types::PBinaryType::Binary.from_binary_string(Puppet::FileSystem.binread(path))
|
21
|
-
else
|
22
|
-
raise Puppet::ParseError, "binary_file(): The given file '#{path}' does not exist"
|
13
|
+
path = Puppet::Parser::Files.find_file(unresolved_path, scope.compiler.environment)
|
14
|
+
unless path && Puppet::FileSystem.exist?(path)
|
15
|
+
raise Puppet::ParseError, "binary_file(): The given file '#{unresolved_path}' does not exist"
|
23
16
|
end
|
17
|
+
Puppet::Pops::Types::PBinaryType::Binary.from_binary_string(Puppet::FileSystem.binread(path))
|
24
18
|
end
|
25
19
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# @since 4.9.0
|
2
|
+
#
|
3
|
+
Puppet::Functions.create_function(:hocon_data) do
|
4
|
+
unless Puppet.features.hocon?
|
5
|
+
raise Puppet::DataBinding::LookupError, 'Lookup using Hocon data_hash function is not supported without hocon library'
|
6
|
+
end
|
7
|
+
|
8
|
+
require 'hocon'
|
9
|
+
require 'hocon/config_error'
|
10
|
+
|
11
|
+
dispatch :hocon_data do
|
12
|
+
param 'Struct[{path=>String[1]}]', :options
|
13
|
+
param 'Puppet::LookupContext', :context
|
14
|
+
end
|
15
|
+
|
16
|
+
def hocon_data(options, context)
|
17
|
+
path = options['path']
|
18
|
+
begin
|
19
|
+
Hocon.parse(Puppet::FileSystem.read(path, :encoding => 'utf-8'))
|
20
|
+
rescue Hocon::ConfigError => ex
|
21
|
+
raise Puppet::DataBinding::LookupError, "Unable to parse (#{path}): #{ex.message}"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# @since 4.8.0
|
2
|
+
#
|
3
|
+
Puppet::Functions.create_function(:json_data) do
|
4
|
+
dispatch :json_data do
|
5
|
+
param 'Struct[{path=>String[1]}]', :options
|
6
|
+
param 'Puppet::LookupContext', :context
|
7
|
+
end
|
8
|
+
|
9
|
+
def json_data(options, context)
|
10
|
+
path = options['path']
|
11
|
+
begin
|
12
|
+
JSON.parse(Puppet::FileSystem.read(path, :encoding => 'utf-8'))
|
13
|
+
rescue JSON::ParserError => ex
|
14
|
+
# Filename not included in message, so we add it here.
|
15
|
+
raise Puppet::DataBinding::LookupError, "Unable to parse (#{path}): #{ex.message}"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# @since 4.8.0
|
2
|
+
#
|
3
|
+
require 'yaml'
|
4
|
+
|
5
|
+
Puppet::Functions.create_function(:yaml_data) do
|
6
|
+
dispatch :yaml_data do
|
7
|
+
param 'Struct[{path=>String[1]}]', :options
|
8
|
+
param 'Puppet::LookupContext', :context
|
9
|
+
end
|
10
|
+
|
11
|
+
def yaml_data(options, context)
|
12
|
+
begin
|
13
|
+
data = YAML.load_file(options['path'])
|
14
|
+
Puppet::Pops::Lookup::HieraConfig.symkeys_to_string(data.nil? ? {} : data)
|
15
|
+
rescue YAML::SyntaxError => ex
|
16
|
+
# Psych errors includes the absolute path to the file, so no need to add that
|
17
|
+
# to the message
|
18
|
+
raise Puppet::DataBinding::LookupError, "Unable to parse #{ex.message}"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/lib/puppet/generate/type.rb
CHANGED
@@ -222,7 +222,7 @@ module Puppet
|
|
222
222
|
effective_output_path = input.effective_output_path(outputdir)
|
223
223
|
Puppet.notice "Generating '#{effective_output_path}' using '#{input.format}' format."
|
224
224
|
FileUtils.mkdir_p(File.dirname(effective_output_path))
|
225
|
-
|
225
|
+
Puppet::FileSystem.open(effective_output_path, nil, 'w:UTF-8') do |file|
|
226
226
|
file.write(result)
|
227
227
|
end
|
228
228
|
rescue Exception => e
|
@@ -258,7 +258,8 @@ class Puppet::Graph::SimpleGraph
|
|
258
258
|
graph << '}'
|
259
259
|
|
260
260
|
filename = File.join(Puppet[:graphdir], "cycles.dot")
|
261
|
-
|
261
|
+
# DOT files are assumed to be UTF-8 by default - http://www.graphviz.org/doc/info/lang.html
|
262
|
+
File.open(filename, "w:UTF-8") { |f| f.puts graph }
|
262
263
|
return filename
|
263
264
|
end
|
264
265
|
|
@@ -463,7 +464,8 @@ class Puppet::Graph::SimpleGraph
|
|
463
464
|
return unless Puppet[:graph]
|
464
465
|
|
465
466
|
file = File.join(Puppet[:graphdir], "#{name}.dot")
|
466
|
-
|
467
|
+
# DOT files are assumed to be UTF-8 by default - http://www.graphviz.org/doc/info/lang.html
|
468
|
+
File.open(file, "w:UTF-8") { |f|
|
467
469
|
f.puts to_dot("name" => name.to_s.capitalize)
|
468
470
|
}
|
469
471
|
end
|
@@ -115,7 +115,11 @@ module Puppet::FileBucketFile
|
|
115
115
|
# @param files_original_path [String]
|
116
116
|
#
|
117
117
|
def matches(paths_file, files_original_path)
|
118
|
-
Puppet
|
118
|
+
# Puppet will have already written the paths_file in the systems encoding
|
119
|
+
# given its possible that request.options[:bucket_path] or Puppet[:bucketdir]
|
120
|
+
# contained characters in an encoding that are not represented the
|
121
|
+
# same way when the bytes are decoded as UTF-8, continue using system encoding
|
122
|
+
Puppet::FileSystem.open(paths_file, 0640, 'a+:external') do |f|
|
119
123
|
path_match(f, files_original_path)
|
120
124
|
end
|
121
125
|
end
|
@@ -138,7 +142,11 @@ module Puppet::FileBucketFile
|
|
138
142
|
Puppet::FileSystem.dir_mkpath(paths_file)
|
139
143
|
end
|
140
144
|
|
141
|
-
Puppet
|
145
|
+
# Puppet will have already written the paths_file in the systems encoding
|
146
|
+
# given its possible that request.options[:bucket_path] or Puppet[:bucketdir]
|
147
|
+
# contained characters in an encoding that are not represented the
|
148
|
+
# same way when the bytes are decoded as UTF-8, continue using system encoding
|
149
|
+
Puppet::FileSystem.exclusive_open(paths_file, 0640, 'a+:external') do |f|
|
142
150
|
if Puppet::FileSystem.exist?(contents_file)
|
143
151
|
verify_identical_file!(contents_file, bucket_file)
|
144
152
|
Puppet::FileSystem.touch(contents_file)
|
@@ -243,6 +243,8 @@ class Puppet::Indirector::Request
|
|
243
243
|
def set_uri_key(key)
|
244
244
|
@uri = key
|
245
245
|
begin
|
246
|
+
# calling URI.escape for UTF-8 characters will % escape them
|
247
|
+
# and the resulting string components of the URI are now ASCII
|
246
248
|
uri = URI.parse(URI.escape(key))
|
247
249
|
rescue => detail
|
248
250
|
raise ArgumentError, "Could not understand URL #{key}: #{detail}", detail.backtrace
|
@@ -272,6 +274,8 @@ class Puppet::Indirector::Request
|
|
272
274
|
@protocol = uri.scheme
|
273
275
|
end
|
274
276
|
|
275
|
-
|
277
|
+
# The unescaped bytes are correct but in ASCII and must be treated
|
278
|
+
# as UTF-8 for the sake of performing string comparisons later
|
279
|
+
@key = URI.unescape(uri.path.sub(/^\//, '')).force_encoding(Encoding::UTF_8)
|
276
280
|
end
|
277
281
|
end
|
data/lib/puppet/interface.rb
CHANGED
@@ -149,12 +149,15 @@ class Puppet::Interface
|
|
149
149
|
|
150
150
|
# @api private
|
151
151
|
def initialize(name, version, &block)
|
152
|
-
unless
|
152
|
+
unless SemanticPuppet::Version.valid?(version)
|
153
153
|
raise ArgumentError, "Cannot create face #{name.inspect} with invalid version number '#{version}'!"
|
154
154
|
end
|
155
155
|
|
156
156
|
@name = Puppet::Interface::FaceCollection.underscorize(name)
|
157
|
-
|
157
|
+
|
158
|
+
# SemVer is deprecated but in 4.x we must use it here (the attr_reader is public api). The
|
159
|
+
# extra boolean argument suppresses the deprecation warning.
|
160
|
+
@version = SemVer.new(version, true)
|
158
161
|
|
159
162
|
# The few bits of documentation we actually demand. The default license
|
160
163
|
# is a favour to our end users; if you happen to get that in a core face
|
@@ -180,6 +183,15 @@ class Puppet::Interface
|
|
180
183
|
"Puppet::Face[#{name.inspect}, #{version.inspect}]"
|
181
184
|
end
|
182
185
|
|
186
|
+
# @return [void]
|
187
|
+
def deprecate
|
188
|
+
@deprecated = true
|
189
|
+
end
|
190
|
+
|
191
|
+
# @return [Boolean]
|
192
|
+
def deprecated?
|
193
|
+
@deprecated
|
194
|
+
end
|
183
195
|
########################################################################
|
184
196
|
# Action decoration, whee! You are not expected to care about this code,
|
185
197
|
# which exists to support face building and construction. I marked these
|
@@ -27,7 +27,7 @@ module Puppet::Interface::FaceCollection
|
|
27
27
|
# ...we need to search for it bound to an o{lder,ther} version. Since
|
28
28
|
# we load all actions when the face is first references, this will be in
|
29
29
|
# memory in the known set of versions of the face.
|
30
|
-
(@faces[name].keys - [ :current ]).sort.
|
30
|
+
(@faces[name].keys - [ :current ]).sort.reverse_each do |vers|
|
31
31
|
break if action = @faces[name][vers].get_action(action_name)
|
32
32
|
end
|
33
33
|
end
|
data/lib/puppet/module.rb
CHANGED
@@ -206,6 +206,17 @@ class Puppet::Module
|
|
206
206
|
@metadata_file = File.join(path, "metadata.json")
|
207
207
|
end
|
208
208
|
|
209
|
+
def hiera_conf_file
|
210
|
+
unless defined?(@hiera_conf_file)
|
211
|
+
@hiera_conf_file = path.nil? ? nil : File.join(path, Puppet::Pops::Lookup::HieraConfig::CONFIG_FILE_NAME)
|
212
|
+
end
|
213
|
+
@hiera_conf_file
|
214
|
+
end
|
215
|
+
|
216
|
+
def has_hiera_conf?
|
217
|
+
hiera_conf_file.nil? ? false : Puppet::FileSystem.exist?(hiera_conf_file)
|
218
|
+
end
|
219
|
+
|
209
220
|
def modulepath
|
210
221
|
File.dirname(path) if path
|
211
222
|
end
|
@@ -309,8 +320,9 @@ class Puppet::Module
|
|
309
320
|
|
310
321
|
if version_string
|
311
322
|
begin
|
312
|
-
|
313
|
-
|
323
|
+
# Suppress deprecation warnings from SemVer in 4.9. In 5.0, this will be SemanticPuppet instead
|
324
|
+
required_version_semver_range = SemVer[version_string, true]
|
325
|
+
actual_version_semver = SemVer.new(dep_mod.version, true)
|
314
326
|
rescue ArgumentError
|
315
327
|
error_details[:reason] = :non_semantic_version
|
316
328
|
unmet_dependencies << error_details
|
data/lib/puppet/module_tool.rb
CHANGED
@@ -157,12 +157,12 @@ module Puppet
|
|
157
157
|
end
|
158
158
|
|
159
159
|
# Handles parsing of module dependency expressions into proper
|
160
|
-
# {
|
160
|
+
# {SemanticPuppet::VersionRange}s, including reasonable error handling.
|
161
161
|
#
|
162
162
|
# @param where [String] a description of the thing we're parsing the
|
163
163
|
# dependency expression for
|
164
164
|
# @param dep [Hash] the dependency description to parse
|
165
|
-
# @return [Array(String,
|
165
|
+
# @return [Array(String, SemanticPuppet::VersionRange, String)] a tuple of the
|
166
166
|
# dependent module's name, the version range dependency, and the
|
167
167
|
# unparsed range expression.
|
168
168
|
def self.parse_module_dependency(where, dep)
|
@@ -170,10 +170,10 @@ module Puppet
|
|
170
170
|
range = dep['version_requirement'] || '>= 0.0.0'
|
171
171
|
|
172
172
|
begin
|
173
|
-
parsed_range =
|
173
|
+
parsed_range = SemanticPuppet::VersionRange.parse(range)
|
174
174
|
rescue ArgumentError => e
|
175
175
|
Puppet.debug "Error in #{where} parsing dependency #{dep_name} (#{e.message}); using empty range."
|
176
|
-
parsed_range =
|
176
|
+
parsed_range = SemanticPuppet::VersionRange::EMPTY_RANGE
|
177
177
|
end
|
178
178
|
|
179
179
|
[ dep_name, parsed_range, range ]
|