puppet 4.8.2-x64-mingw32 → 4.9.0-x64-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
@@ -1,141 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'semantic/dependency/graph_node'
|
3
|
-
|
4
|
-
describe Semantic::Dependency::GraphNode do
|
5
|
-
let(:klass) do
|
6
|
-
Class.new do
|
7
|
-
include Semantic::Dependency::GraphNode
|
8
|
-
|
9
|
-
attr_accessor :name
|
10
|
-
|
11
|
-
def initialize(name, *satisfying)
|
12
|
-
@name = name
|
13
|
-
@satisfying = satisfying
|
14
|
-
@satisfying.each { |x| add_dependency(x.name) }
|
15
|
-
end
|
16
|
-
|
17
|
-
# @override
|
18
|
-
def satisfies_dependency?(node)
|
19
|
-
@satisfying.include?(node)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def instance(*args)
|
25
|
-
name = args.first.name unless args.empty?
|
26
|
-
klass.new(name || 'unnamed', *args)
|
27
|
-
end
|
28
|
-
|
29
|
-
context 'dependencies' do
|
30
|
-
subject { instance() }
|
31
|
-
|
32
|
-
example 'are added by #add_dependency' do
|
33
|
-
subject.add_dependency('foo')
|
34
|
-
subject.add_dependency('bar')
|
35
|
-
subject.add_dependency('baz')
|
36
|
-
expect(subject.dependency_names).to match_array %w[ foo bar baz ]
|
37
|
-
end
|
38
|
-
|
39
|
-
example 'are maintained in the #dependencies Hash' do
|
40
|
-
expect(subject.dependencies).to be_empty
|
41
|
-
subject.add_dependency('foo')
|
42
|
-
expect(subject.dependencies).to have_key 'foo'
|
43
|
-
expect(subject.dependencies).to respond_to :to_a
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
describe '#<<' do
|
48
|
-
let(:foo) { double('Node', :name => 'foo') }
|
49
|
-
let(:bar1) { double('Node', :name => 'bar', :'<=>' => 0) }
|
50
|
-
let(:bar2) { double('Node', :name => 'bar', :'<=>' => 0) }
|
51
|
-
let(:bar3) { double('Node', :name => 'bar') }
|
52
|
-
let(:baz) { double('Node', :name => 'baz') }
|
53
|
-
|
54
|
-
subject { instance(foo, bar1, bar2) }
|
55
|
-
|
56
|
-
it 'appends satisfying nodes to the dependencies' do
|
57
|
-
subject << foo << bar1 << bar2
|
58
|
-
expect(Array(subject.dependencies['foo'])).to match_array [ foo ]
|
59
|
-
expect(Array(subject.dependencies['bar'])).to match_array [ bar1, bar2 ]
|
60
|
-
end
|
61
|
-
|
62
|
-
it 'does not append nodes with unknown names' do
|
63
|
-
subject << baz
|
64
|
-
expect(Array(subject.dependencies['baz'])).to be_empty
|
65
|
-
end
|
66
|
-
|
67
|
-
it 'does not append unsatisfying nodes' do
|
68
|
-
subject << bar3
|
69
|
-
expect(Array(subject.dependencies['bar'])).to be_empty
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
describe '#satisfied' do
|
74
|
-
let(:foo) { double('Node', :name => 'foo') }
|
75
|
-
let(:bar) { double('Node', :name => 'bar') }
|
76
|
-
|
77
|
-
subject { instance(foo, bar) }
|
78
|
-
|
79
|
-
it 'is unsatisfied when no nodes have been appended' do
|
80
|
-
expect(subject).to_not be_satisfied
|
81
|
-
end
|
82
|
-
|
83
|
-
it 'is unsatisfied when any dependencies are missing' do
|
84
|
-
subject << foo
|
85
|
-
expect(subject).to_not be_satisfied
|
86
|
-
end
|
87
|
-
|
88
|
-
it 'is satisfied when all dependencies are fulfilled' do
|
89
|
-
subject << foo << bar
|
90
|
-
expect(subject).to be_satisfied
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
|
-
describe '#populate_children' do
|
95
|
-
let(:foo) { double('Node', :name => 'foo') }
|
96
|
-
let(:bar1) { double('Node', :name => 'bar', :'<=>' => 0) }
|
97
|
-
let(:bar2) { double('Node', :name => 'bar', :'<=>' => 0) }
|
98
|
-
let(:baz1) { double('Node', :name => 'baz', :'<=>' => 0) }
|
99
|
-
let(:baz2) { double('Node', :name => 'baz', :'<=>' => 0) }
|
100
|
-
let(:quxx) { double('Node', :name => 'quxx') }
|
101
|
-
|
102
|
-
subject do
|
103
|
-
graph = instance(foo, bar1, bar2, baz1, baz2)
|
104
|
-
graph << foo << bar1 << bar2 << baz1 << baz2
|
105
|
-
end
|
106
|
-
|
107
|
-
it 'saves all relevant nodes as its children' do
|
108
|
-
nodes = [ foo, bar2, baz1, quxx ]
|
109
|
-
nodes.each do |node|
|
110
|
-
allow(node).to receive(:populate_children)
|
111
|
-
end
|
112
|
-
|
113
|
-
subject.populate_children(nodes)
|
114
|
-
|
115
|
-
expected = { 'foo' => foo, 'bar' => bar2, 'baz' => baz1 }
|
116
|
-
expect(subject.children).to eql expected
|
117
|
-
end
|
118
|
-
|
119
|
-
it 'accepts a graph solution and populates it across all nodes' do
|
120
|
-
nodes = [ foo, bar2, baz1 ]
|
121
|
-
nodes.each do |node|
|
122
|
-
expect(node).to receive(:populate_children).with(nodes)
|
123
|
-
end
|
124
|
-
|
125
|
-
subject.populate_children(nodes)
|
126
|
-
end
|
127
|
-
end
|
128
|
-
|
129
|
-
describe '#<=>' do
|
130
|
-
it 'can be compared' do
|
131
|
-
a = instance(double('Node', :name => 'a'))
|
132
|
-
b = instance(double('Node', :name => 'b'))
|
133
|
-
|
134
|
-
expect(a).to be < b
|
135
|
-
expect(b).to be > a
|
136
|
-
expect([b, a].sort).to eql [a, b]
|
137
|
-
expect([a, b].sort).to eql [a, b]
|
138
|
-
end
|
139
|
-
end
|
140
|
-
|
141
|
-
end
|
@@ -1,162 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'semantic/dependency/graph'
|
3
|
-
|
4
|
-
describe Semantic::Dependency::Graph do
|
5
|
-
Graph = Semantic::Dependency::Graph
|
6
|
-
GraphNode = Semantic::Dependency::GraphNode
|
7
|
-
ModuleRelease = Semantic::Dependency::ModuleRelease
|
8
|
-
Version = Semantic::Version
|
9
|
-
VersionRange = Semantic::VersionRange
|
10
|
-
|
11
|
-
describe '#initialize' do
|
12
|
-
it 'can be called without arguments' do
|
13
|
-
expect { Graph.new }.to_not raise_error
|
14
|
-
end
|
15
|
-
|
16
|
-
it 'implements the GraphNode protocol' do
|
17
|
-
expect(Graph.new).to be_a GraphNode
|
18
|
-
end
|
19
|
-
|
20
|
-
it 'adds constraints for every key in the passed hash' do
|
21
|
-
graph = Graph.new('foo' => 1, 'bar' => 2, 'baz' => 3)
|
22
|
-
expect(graph.constraints.keys).to match_array %w[ foo bar baz ]
|
23
|
-
end
|
24
|
-
|
25
|
-
it 'adds the named dependencies for every key in the passed hash' do
|
26
|
-
graph = Graph.new('foo' => 1, 'bar' => 2, 'baz' => 3)
|
27
|
-
expect(graph.dependency_names).to match_array %w[ foo bar baz ]
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
describe '#add_constraint' do
|
32
|
-
let(:graph) { Graph.new }
|
33
|
-
|
34
|
-
it 'can create a new constraint on a module' do
|
35
|
-
expect(graph.constraints.keys).to be_empty
|
36
|
-
|
37
|
-
graph.add_constraint('test', 'module-name', 'nil') { }
|
38
|
-
expect(graph.constraints.keys).to match_array %w[ module-name ]
|
39
|
-
end
|
40
|
-
|
41
|
-
it 'permits multiple constraints against the same module name' do
|
42
|
-
expect(graph.constraints.keys).to be_empty
|
43
|
-
|
44
|
-
graph.add_constraint('test', 'module-name', 'nil') { }
|
45
|
-
graph.add_constraint('test', 'module-name', 'nil') { }
|
46
|
-
|
47
|
-
expect(graph.constraints.keys).to match_array %w[ module-name ]
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
describe '#satisfies_dependency?' do
|
52
|
-
it 'is not satisfied by modules it does not depend on' do
|
53
|
-
graph = Graph.new('foo' => VersionRange.parse('1.x'))
|
54
|
-
release = ModuleRelease.new(nil, 'bar', Version.parse('1.0.0'))
|
55
|
-
|
56
|
-
expect(graph.satisfies_dependency?(release)).to_not be true
|
57
|
-
end
|
58
|
-
|
59
|
-
it 'is not satisfied by modules that do not fulfill the constraint' do
|
60
|
-
graph = Graph.new('foo' => VersionRange.parse('1.x'))
|
61
|
-
release = ModuleRelease.new(nil, 'foo', Version.parse('2.3.1'))
|
62
|
-
|
63
|
-
expect(graph.satisfies_dependency?(release)).to_not be true
|
64
|
-
end
|
65
|
-
|
66
|
-
it 'is not satisfied by modules that do not fulfill all the constraints' do
|
67
|
-
graph = Graph.new('foo' => VersionRange.parse('1.x'))
|
68
|
-
graph.add_constraint('me', 'foo', '1.2.3') do |node|
|
69
|
-
node.version.to_s == '1.2.3'
|
70
|
-
end
|
71
|
-
|
72
|
-
release = ModuleRelease.new(nil, 'foo', Version.parse('1.2.1'))
|
73
|
-
|
74
|
-
expect(graph.satisfies_dependency?(release)).to_not be true
|
75
|
-
end
|
76
|
-
|
77
|
-
it 'is satisfied by modules that do fulfill all the constraints' do
|
78
|
-
graph = Graph.new('foo' => VersionRange.parse('1.x'))
|
79
|
-
graph.add_constraint('me', 'foo', '1.2.3') do |node|
|
80
|
-
node.version.to_s == '1.2.3'
|
81
|
-
end
|
82
|
-
|
83
|
-
release = ModuleRelease.new(nil, 'foo', Version.parse('1.2.3'))
|
84
|
-
|
85
|
-
expect(graph.satisfies_dependency?(release)).to be true
|
86
|
-
end
|
87
|
-
end
|
88
|
-
|
89
|
-
describe '#add_graph_constraint' do
|
90
|
-
let(:graph) { Graph.new }
|
91
|
-
|
92
|
-
it 'can create a new constraint on a graph' do
|
93
|
-
expect(graph.constraints.keys).to be_empty
|
94
|
-
|
95
|
-
graph.add_graph_constraint('test') { }
|
96
|
-
expect(graph.constraints.keys).to match_array [ :graph ]
|
97
|
-
end
|
98
|
-
|
99
|
-
it 'permits multiple graph constraints' do
|
100
|
-
expect(graph.constraints.keys).to be_empty
|
101
|
-
|
102
|
-
graph.add_graph_constraint('test') { }
|
103
|
-
graph.add_graph_constraint('test') { }
|
104
|
-
|
105
|
-
expect(graph.constraints.keys).to match_array [ :graph ]
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
describe '#satisfies_graph?' do
|
110
|
-
it 'returns false if the solution violates a graph constraint' do
|
111
|
-
graph = Graph.new
|
112
|
-
graph.add_graph_constraint('me') do |nodes|
|
113
|
-
nodes.none? { |node| node.name =~ /z/ }
|
114
|
-
end
|
115
|
-
|
116
|
-
releases = [
|
117
|
-
double('Node', :name => 'foo'),
|
118
|
-
double('Node', :name => 'bar'),
|
119
|
-
double('Node', :name => 'baz'),
|
120
|
-
]
|
121
|
-
|
122
|
-
expect(graph.satisfies_graph?(releases)).to_not be true
|
123
|
-
end
|
124
|
-
|
125
|
-
it 'returns false if the solution violates any graph constraint' do
|
126
|
-
graph = Graph.new
|
127
|
-
graph.add_graph_constraint('me') do |nodes|
|
128
|
-
nodes.all? { |node| node.name.length < 5 }
|
129
|
-
end
|
130
|
-
graph.add_graph_constraint('me') do |nodes|
|
131
|
-
nodes.none? { |node| node.name =~ /z/ }
|
132
|
-
end
|
133
|
-
|
134
|
-
releases = [
|
135
|
-
double('Node', :name => 'foo'),
|
136
|
-
double('Node', :name => 'bar'),
|
137
|
-
double('Node', :name => 'bangerang'),
|
138
|
-
]
|
139
|
-
|
140
|
-
expect(graph.satisfies_graph?(releases)).to_not be true
|
141
|
-
end
|
142
|
-
|
143
|
-
it 'returns true if the solution violates no graph constraints' do
|
144
|
-
graph = Graph.new
|
145
|
-
graph.add_graph_constraint('me') do |nodes|
|
146
|
-
nodes.all? { |node| node.name.length < 5 }
|
147
|
-
end
|
148
|
-
graph.add_graph_constraint('me') do |nodes|
|
149
|
-
nodes.none? { |node| node.name =~ /z/ }
|
150
|
-
end
|
151
|
-
|
152
|
-
releases = [
|
153
|
-
double('Node', :name => 'foo'),
|
154
|
-
double('Node', :name => 'bar'),
|
155
|
-
double('Node', :name => 'boom'),
|
156
|
-
]
|
157
|
-
|
158
|
-
expect(graph.satisfies_graph?(releases)).to be true
|
159
|
-
end
|
160
|
-
end
|
161
|
-
|
162
|
-
end
|
@@ -1,143 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'semantic/dependency/module_release'
|
3
|
-
|
4
|
-
describe Semantic::Dependency::ModuleRelease do
|
5
|
-
def source
|
6
|
-
@source ||= Semantic::Dependency::Source.new
|
7
|
-
end
|
8
|
-
|
9
|
-
def make_release(name, version, deps = {})
|
10
|
-
source.create_release(name, version, deps)
|
11
|
-
end
|
12
|
-
|
13
|
-
let(:no_dependencies) do
|
14
|
-
make_release('module', '1.2.3')
|
15
|
-
end
|
16
|
-
|
17
|
-
let(:one_dependency) do
|
18
|
-
make_release('module', '1.2.3', 'foo' => '1.0.0')
|
19
|
-
end
|
20
|
-
|
21
|
-
let(:three_dependencies) do
|
22
|
-
dependencies = { 'foo' => '1.0.0', 'bar' => '2.0.0', 'baz' => '3.0.0' }
|
23
|
-
make_release('module', '1.2.3', dependencies)
|
24
|
-
end
|
25
|
-
|
26
|
-
describe '#dependency_names' do
|
27
|
-
|
28
|
-
it "lists the names of all the release's dependencies" do
|
29
|
-
expect(no_dependencies.dependency_names).to match_array %w[]
|
30
|
-
expect(one_dependency.dependency_names).to match_array %w[foo]
|
31
|
-
expect(three_dependencies.dependency_names).to match_array %w[foo bar baz]
|
32
|
-
end
|
33
|
-
|
34
|
-
end
|
35
|
-
|
36
|
-
describe '#to_s' do
|
37
|
-
|
38
|
-
let(:name) { 'foobarbaz' }
|
39
|
-
let(:version) { '1.2.3' }
|
40
|
-
|
41
|
-
subject { make_release(name, version).to_s }
|
42
|
-
|
43
|
-
it { should =~ /#{name}/ }
|
44
|
-
it { should =~ /#{version}/ }
|
45
|
-
|
46
|
-
end
|
47
|
-
|
48
|
-
describe '#<<' do
|
49
|
-
|
50
|
-
it 'marks matching dependencies as satisfied' do
|
51
|
-
one_dependency << make_release('foo', '1.0.0')
|
52
|
-
expect(one_dependency).to be_satisfied
|
53
|
-
end
|
54
|
-
|
55
|
-
it 'does not mark mis-matching dependency names as satisfied' do
|
56
|
-
one_dependency << make_release('WAT', '1.0.0')
|
57
|
-
expect(one_dependency).to_not be_satisfied
|
58
|
-
end
|
59
|
-
|
60
|
-
it 'does not mark mis-matching dependency versions as satisfied' do
|
61
|
-
one_dependency << make_release('foo', '0.0.1')
|
62
|
-
expect(one_dependency).to_not be_satisfied
|
63
|
-
end
|
64
|
-
|
65
|
-
end
|
66
|
-
|
67
|
-
describe '#<=>' do
|
68
|
-
|
69
|
-
it 'considers releases with greater version numbers greater' do
|
70
|
-
expect(make_release('foo', '1.0.0')).to be > make_release('foo', '0.1.0')
|
71
|
-
end
|
72
|
-
|
73
|
-
it 'considers releases with lesser version numbers lesser' do
|
74
|
-
expect(make_release('foo', '0.1.0')).to be < make_release('foo', '1.0.0')
|
75
|
-
end
|
76
|
-
|
77
|
-
it 'orders releases with different names lexographically' do
|
78
|
-
expect(make_release('bar', '1.0.0')).to be < make_release('foo', '1.0.0')
|
79
|
-
end
|
80
|
-
|
81
|
-
it 'orders releases by name first' do
|
82
|
-
expect(make_release('bar', '2.0.0')).to be < make_release('foo', '1.0.0')
|
83
|
-
end
|
84
|
-
|
85
|
-
end
|
86
|
-
|
87
|
-
describe '#satisfied?' do
|
88
|
-
|
89
|
-
it 'returns true when there are no dependencies to satisfy' do
|
90
|
-
expect(no_dependencies).to be_satisfied
|
91
|
-
end
|
92
|
-
|
93
|
-
it 'returns false when no dependencies have been satisified' do
|
94
|
-
expect(one_dependency).to_not be_satisfied
|
95
|
-
end
|
96
|
-
|
97
|
-
it 'returns false when not all dependencies have been satisified' do
|
98
|
-
releases = %w[ 0.9.0 1.0.0 1.0.1 ].map { |ver| make_release('foo', ver) }
|
99
|
-
three_dependencies << releases
|
100
|
-
|
101
|
-
expect(three_dependencies).to_not be_satisfied
|
102
|
-
end
|
103
|
-
|
104
|
-
it 'returns false when not all dependency versions have been satisified' do
|
105
|
-
releases = %w[ 0.9.0 1.0.1 ].map { |ver| make_release('foo', ver) }
|
106
|
-
one_dependency << releases
|
107
|
-
|
108
|
-
expect(one_dependency).to_not be_satisfied
|
109
|
-
end
|
110
|
-
|
111
|
-
it 'returns true when all dependencies have been satisified' do
|
112
|
-
releases = %w[ 0.9.0 1.0.0 1.0.1 ].map { |ver| make_release('foo', ver) }
|
113
|
-
one_dependency << releases
|
114
|
-
|
115
|
-
expect(one_dependency).to be_satisfied
|
116
|
-
end
|
117
|
-
|
118
|
-
end
|
119
|
-
|
120
|
-
describe '#satisfies_dependency?' do
|
121
|
-
|
122
|
-
it 'returns false when there are no dependencies to satisfy' do
|
123
|
-
release = make_release('foo', '1.0.0')
|
124
|
-
expect(no_dependencies.satisfies_dependency?(release)).to_not be true
|
125
|
-
end
|
126
|
-
|
127
|
-
it 'returns false when the release does not match the dependency name' do
|
128
|
-
release = make_release('bar', '1.0.0')
|
129
|
-
expect(one_dependency.satisfies_dependency?(release)).to_not be true
|
130
|
-
end
|
131
|
-
|
132
|
-
it 'returns false when the release does not match the dependency version' do
|
133
|
-
release = make_release('foo', '4.0.0')
|
134
|
-
expect(one_dependency.satisfies_dependency?(release)).to_not be true
|
135
|
-
end
|
136
|
-
|
137
|
-
it 'returns true when the release matches the dependency' do
|
138
|
-
release = make_release('foo', '1.0.0')
|
139
|
-
expect(one_dependency.satisfies_dependency?(release)).to be true
|
140
|
-
end
|
141
|
-
|
142
|
-
end
|
143
|
-
end
|