puppet 4.8.2-universal-darwin → 4.9.0-universal-darwin
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/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/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/data_providers.rb +6 -3
- 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/face.erb +3 -0
- data/lib/puppet/face/help.rb +19 -17
- 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/windows.rb +8 -0
- data/lib/puppet/file_system.rb +15 -3
- data/lib/puppet/forge/repository.rb +1 -2
- data/lib/puppet/forge.rb +6 -6
- 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/face_collection.rb +1 -1
- data/lib/puppet/interface.rb +14 -2
- data/lib/puppet/module.rb +14 -2
- 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/module_tool.rb +4 -4
- 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/data_provider.rb +108 -17
- data/lib/puppet/plugins/data_providers/registry.rb +2 -36
- data/lib/puppet/plugins/data_providers.rb +2 -0
- 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/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/lookup.rb +4 -3
- 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/checker4_0.rb +12 -2
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -0
- data/lib/puppet/pops/validation.rb +1 -1
- data/lib/puppet/pops/visitor.rb +4 -3
- data/lib/puppet/pops.rb +6 -9
- 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/catalog.rb +12 -4
- data/lib/puppet/resource/type.rb +3 -3
- data/lib/puppet/resource.rb +2 -3
- 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/settings.rb +1 -1
- 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/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/util.rb +1 -0
- 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/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/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency.rb +7 -7
- 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/vendor/semantic_puppet/lib/semantic_puppet.rb +17 -0
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet.rb +52 -0
- 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 -2595
- 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/dependency/module_release.rb +0 -60
- data/lib/puppet/vendor/semantic/lib/semantic.rb +0 -7
- 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/version.rb
CHANGED
data/lib/puppet.rb
CHANGED
@@ -4,6 +4,8 @@ if RUBY_VERSION < "1.9.3"
|
|
4
4
|
raise LoadError, "Puppet #{Puppet.version} requires ruby 1.9.3 or greater."
|
5
5
|
end
|
6
6
|
|
7
|
+
Puppet::OLDEST_RECOMMENDED_RUBY_VERSION = '2.1.0'
|
8
|
+
|
7
9
|
# see the bottom of the file for further inclusions
|
8
10
|
# Also see the new Vendor support - towards the end
|
9
11
|
#
|
@@ -19,6 +21,20 @@ require 'puppet/external/pson/common'
|
|
19
21
|
require 'puppet/external/pson/version'
|
20
22
|
require 'puppet/external/pson/pure'
|
21
23
|
|
24
|
+
# When running within puppetserver, the gettext-setup gem might not be available, so
|
25
|
+
# we need to skip initializing i18n functionality and stub out methods normally
|
26
|
+
# supplied by gettext-setup. Can be removed in Puppet 5. See PUP-7116.
|
27
|
+
begin
|
28
|
+
require 'gettext-setup'
|
29
|
+
require 'locale'
|
30
|
+
Puppet::GETTEXT_AVAILABLE = true
|
31
|
+
rescue LoadError
|
32
|
+
def _(msg)
|
33
|
+
msg
|
34
|
+
end
|
35
|
+
Puppet::GETTEXT_AVAILABLE = false
|
36
|
+
end
|
37
|
+
|
22
38
|
#------------------------------------------------------------
|
23
39
|
# the top-level module
|
24
40
|
#
|
@@ -36,6 +52,36 @@ module Puppet
|
|
36
52
|
require 'puppet/environments'
|
37
53
|
|
38
54
|
class << self
|
55
|
+
if Puppet::GETTEXT_AVAILABLE
|
56
|
+
# e.g. ~/code/puppet/locales. Also when running as a gem.
|
57
|
+
local_locale_path = File.absolute_path('../locales', File.dirname(__FILE__))
|
58
|
+
# e.g. /opt/puppetlabs/puppet/share/locale
|
59
|
+
posix_system_locale_path = File.absolute_path('../../../share/locale', File.dirname(__FILE__))
|
60
|
+
# e.g. C:\Program Files\Puppet Labs\Puppet\puppet\share\locale
|
61
|
+
win32_system_locale_path = File.absolute_path('../../../../../puppet/share/locale', File.dirname(__FILE__))
|
62
|
+
|
63
|
+
if File.exist?(local_locale_path)
|
64
|
+
locale_path = local_locale_path
|
65
|
+
elsif File.exist?(win32_system_locale_path)
|
66
|
+
locale_path = win32_system_locale_path
|
67
|
+
elsif File.exist?(posix_system_locale_path)
|
68
|
+
locale_path = posix_system_locale_path
|
69
|
+
else
|
70
|
+
# We couldn't load our locale data.
|
71
|
+
locale_path = nil
|
72
|
+
end
|
73
|
+
|
74
|
+
if locale_path
|
75
|
+
if Gem.loaded_specs['gettext-setup'].version < Gem::Version.new('0.8')
|
76
|
+
# Will load translations from PO files only
|
77
|
+
GettextSetup.initialize(locale_path)
|
78
|
+
else
|
79
|
+
GettextSetup.initialize(locale_path, :file_format => :mo)
|
80
|
+
end
|
81
|
+
FastGettext.locale = GettextSetup.negotiate_locale(Locale.current.language)
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
39
85
|
include Puppet::Util
|
40
86
|
attr_reader :features
|
41
87
|
end
|
@@ -115,6 +161,12 @@ module Puppet
|
|
115
161
|
# Load all of the settings.
|
116
162
|
require 'puppet/defaults'
|
117
163
|
|
164
|
+
# Now that settings are loaded we have the code loaded to be able to issue
|
165
|
+
# deprecation warnings. Warn if we're on a deprecated ruby version.
|
166
|
+
if RUBY_VERSION < Puppet::OLDEST_RECOMMENDED_RUBY_VERSION
|
167
|
+
Puppet.deprecation_warning("Support for ruby version #{RUBY_VERSION} is deprecated and will be removed in a future release. See https://docs.puppet.com/puppet/latest/system_requirements.html#ruby for a list of supported ruby versions.")
|
168
|
+
end
|
169
|
+
|
118
170
|
# Initialize puppet's settings. This is intended only for use by external tools that are not
|
119
171
|
# built off of the Faces API or the Puppet::Util::Application class. It may also be used
|
120
172
|
# to initialize state so that a Face may be used programatically, rather than as a stand-alone
|
data/lib/semver.rb
CHANGED
@@ -2,6 +2,8 @@ require 'puppet/util/monkey_patches'
|
|
2
2
|
|
3
3
|
# We need to subclass Numeric to force range comparisons not to try to iterate over SemVer
|
4
4
|
# and instead use numeric comparisons (eg >, <, >=, <=)
|
5
|
+
# @api private
|
6
|
+
# @deprecated
|
5
7
|
class SemVer < Numeric
|
6
8
|
include Comparable
|
7
9
|
|
@@ -20,17 +22,17 @@ class SemVer < Numeric
|
|
20
22
|
vstring =~ /-/ ? vstring : vstring + '-'
|
21
23
|
end
|
22
24
|
|
23
|
-
def self.[](range)
|
25
|
+
def self.[](range, suppress_deprecation_warning = false)
|
24
26
|
range.gsub(/([><=])\s+/, '\1').split(/\b\s+(?!-)/).map do |r|
|
25
27
|
case r
|
26
28
|
when SemVer::VERSION
|
27
|
-
SemVer.new(pre(r)) .. SemVer.new(r)
|
29
|
+
SemVer.new(pre(r), suppress_deprecation_warning) .. SemVer.new(r, suppress_deprecation_warning)
|
28
30
|
when SemVer::SIMPLE_RANGE
|
29
31
|
r += ".0" unless SemVer.valid?(r.gsub(/x/i, '0'))
|
30
|
-
SemVer.new(r.gsub(/x/i, '0'))...SemVer.new(r.gsub(/(\d+)\.x/i) { "#{$1.to_i + 1}.0" } + '-')
|
32
|
+
SemVer.new(r.gsub(/x/i, '0'))...SemVer.new(r.gsub(/(\d+)\.x/i) { "#{$1.to_i + 1}.0" } + '-', suppress_deprecation_warning)
|
31
33
|
when /\s+-\s+/
|
32
34
|
a, b = r.split(/\s+-\s+/)
|
33
|
-
SemVer.new(pre(a)) .. SemVer.new(b)
|
35
|
+
SemVer.new(pre(a)) .. SemVer.new(b, suppress_deprecation_warning)
|
34
36
|
when /^~/
|
35
37
|
ver = r.sub(/~/, '').split('.').map(&:to_i)
|
36
38
|
start = (ver + [0] * (3 - ver.length)).join('.')
|
@@ -39,13 +41,13 @@ class SemVer < Numeric
|
|
39
41
|
ver[-1] = ver.last + 1
|
40
42
|
|
41
43
|
finish = (ver + [0] * (3 - ver.length)).join('.')
|
42
|
-
SemVer.new(pre(start)) ... SemVer.new(pre(finish))
|
44
|
+
SemVer.new(pre(start), suppress_deprecation_warning) ... SemVer.new(pre(finish), suppress_deprecation_warning)
|
43
45
|
when /^>=/
|
44
46
|
ver = r.sub(/^>=/, '')
|
45
|
-
SemVer.new(pre(ver)) .. SemVer::MAX
|
47
|
+
SemVer.new(pre(ver), suppress_deprecation_warning) .. SemVer::MAX
|
46
48
|
when /^<=/
|
47
49
|
ver = r.sub(/^<=/, '')
|
48
|
-
SemVer::MIN .. SemVer.new(ver)
|
50
|
+
SemVer::MIN .. SemVer.new(ver, suppress_deprecation_warning)
|
49
51
|
when /^>/
|
50
52
|
if r =~ /-/
|
51
53
|
ver = [r[1..-1]]
|
@@ -53,10 +55,10 @@ class SemVer < Numeric
|
|
53
55
|
ver = r.sub(/^>/, '').split('.').map(&:to_i)
|
54
56
|
ver[2] = ver.last + 1
|
55
57
|
end
|
56
|
-
SemVer.new(ver.join('.') + '-') .. SemVer::MAX
|
58
|
+
SemVer.new(ver.join('.') + '-', suppress_deprecation_warning) .. SemVer::MAX
|
57
59
|
when /^</
|
58
60
|
ver = r.sub(/^</, '')
|
59
|
-
SemVer::MIN ... SemVer.new(pre(ver))
|
61
|
+
SemVer::MIN ... SemVer.new(pre(ver), suppress_deprecation_warning)
|
60
62
|
else
|
61
63
|
(1..1)
|
62
64
|
end
|
@@ -65,7 +67,12 @@ class SemVer < Numeric
|
|
65
67
|
|
66
68
|
attr_reader :major, :minor, :tiny, :special
|
67
69
|
|
68
|
-
def initialize(ver)
|
70
|
+
def initialize(ver, suppress_deprecation_warning = false)
|
71
|
+
unless suppress_deprecation_warning || Puppet[:strict] == :off
|
72
|
+
Puppet.warn_once(:deprecation, 'Puppet::SemVer',
|
73
|
+
"Use of class Puppet::SemVer is deprecated. SemanticPuppet::Version or SemanticPuppet::VersionRange should be used instead")
|
74
|
+
end
|
75
|
+
|
69
76
|
unless SemVer.valid?(ver)
|
70
77
|
raise ArgumentError.new("Invalid version string '#{ver}'!")
|
71
78
|
end
|
@@ -130,10 +137,10 @@ class SemVer < Numeric
|
|
130
137
|
end
|
131
138
|
alias :to_s :inspect
|
132
139
|
|
133
|
-
MIN = SemVer.new('0.0.0-')
|
140
|
+
MIN = SemVer.new('0.0.0-', true)
|
134
141
|
MIN.instance_variable_set(:@vstring, 'vMIN')
|
135
142
|
|
136
|
-
MAX = SemVer.new('8.0.0')
|
143
|
+
MAX = SemVer.new('8.0.0', true)
|
137
144
|
MAX.instance_variable_set(:@major, Float::INFINITY) # => Infinity
|
138
145
|
MAX.instance_variable_set(:@vstring, 'vMAX')
|
139
146
|
end
|
data/locales/config.yaml
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
---
|
2
|
+
# This is the project-specific configuration file for setting up
|
3
|
+
# fast_gettext for your project.
|
4
|
+
gettext:
|
5
|
+
# This is used for the name of the .pot and .po files; they will be
|
6
|
+
# called <project_name>.pot?
|
7
|
+
project_name: 'puppet'
|
8
|
+
# This is used in comments in the .pot and .po files to indicate what
|
9
|
+
# project the files belong to and should be a little more descriptive than
|
10
|
+
# <project_name>
|
11
|
+
package_name: Puppet automation framework
|
12
|
+
# The locale that the default messages in the .pot file are in
|
13
|
+
default_locale: en
|
14
|
+
# The address for sending bug reports.
|
15
|
+
bugs_address: https://tickets.puppetlabs.com
|
16
|
+
# The holder of the copyright.
|
17
|
+
copyright_holder: Puppet, Inc.
|
18
|
+
# Patterns for +Dir.glob+ used to find all files that might contain
|
19
|
+
# translatable content, relative to the project root directory
|
20
|
+
source_files:
|
21
|
+
- 'lib/**/*.rb'
|
22
|
+
# Patterns for +Dir.glob+ used to find all files contained in
|
23
|
+
# `source_files` that should be ignored when searching for translatable
|
24
|
+
# content, relative to the project root directory
|
25
|
+
exclude_files:
|
26
|
+
- 'lib/puppet/pops/types/type_formatter.rb'
|
27
|
+
# The semantic_puppet gem is temporarily vendored (PUP-7114), and it
|
28
|
+
# handles its own translation.
|
29
|
+
- 'lib/semantic_puppet/**/*.rb'
|
data/locales/puppet.pot
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
# SOME DESCRIPTIVE TITLE.
|
2
|
+
# Copyright (C) 2017 Puppet, Inc.
|
3
|
+
# This file is distributed under the same license as the Puppet automation framework package.
|
4
|
+
# FIRST AUTHOR <EMAIL@ADDRESS>, 2017.
|
5
|
+
#
|
6
|
+
#, fuzzy
|
7
|
+
msgid ""
|
8
|
+
msgstr ""
|
9
|
+
"Project-Id-Version: Puppet automation framework 4.8.2-338-g562b302\n"
|
10
|
+
"\n"
|
11
|
+
"Report-Msgid-Bugs-To: https://tickets.puppetlabs.com\n"
|
12
|
+
"POT-Creation-Date: 2017-01-25 09:32-0800\n"
|
13
|
+
"PO-Revision-Date: 2017-01-25 09:32-0800\n"
|
14
|
+
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
15
|
+
"Language-Team: LANGUAGE <LL@li.org>\n"
|
16
|
+
"Language: \n"
|
17
|
+
"MIME-Version: 1.0\n"
|
18
|
+
"Content-Type: text/plain; charset=UTF-8\n"
|
19
|
+
"Content-Transfer-Encoding: 8bit\n"
|
20
|
+
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
|
21
|
+
|
22
|
+
msgid "Apache 2 license; see COPYING"
|
23
|
+
msgstr ""
|
24
|
+
|
25
|
+
msgid "Display Puppet help."
|
26
|
+
msgstr ""
|
27
|
+
|
28
|
+
msgid "Display help about Puppet subcommands and their actions."
|
29
|
+
msgstr ""
|
30
|
+
|
31
|
+
msgid "[<subcommand>] [<action>]"
|
32
|
+
msgstr ""
|
33
|
+
|
34
|
+
msgid "Short help text for the specified subcommand or action."
|
35
|
+
msgstr ""
|
36
|
+
|
37
|
+
msgid ""
|
38
|
+
" Get help for an action:\n"
|
39
|
+
"\n"
|
40
|
+
" $ puppet help\n"
|
41
|
+
msgstr ""
|
42
|
+
|
43
|
+
msgid "--version VERSION"
|
44
|
+
msgstr ""
|
45
|
+
|
46
|
+
msgid "The version of the subcommand for which to show help."
|
47
|
+
msgstr ""
|
48
|
+
|
49
|
+
msgid "Puppet help only takes two (optional) arguments: a subcommand and an action"
|
50
|
+
msgstr ""
|
51
|
+
|
52
|
+
msgid "Version only makes sense when a Faces subcommand is given"
|
53
|
+
msgstr ""
|
54
|
+
|
55
|
+
msgid "Legacy subcommands don't take actions"
|
56
|
+
msgstr ""
|
57
|
+
|
58
|
+
msgid ""
|
59
|
+
"Could not load help for the application #{applicationname}.\n"
|
60
|
+
"Please check the error logs for more information.\n"
|
61
|
+
"\n"
|
62
|
+
"Detail: \"#{detail.message}\"\n"
|
63
|
+
msgstr ""
|
64
|
+
|
65
|
+
msgid ""
|
66
|
+
"Could not load help for the face #{facename}.\n"
|
67
|
+
"Please check the error logs for more information.\n"
|
68
|
+
"\n"
|
69
|
+
"Detail: \"#{detail.message}\"\n"
|
70
|
+
msgstr ""
|
71
|
+
|
72
|
+
msgid "\"Unable to load action #{actionname} from #{face}\""
|
73
|
+
msgstr ""
|
74
|
+
|
75
|
+
msgid " (Deprecated)"
|
76
|
+
msgstr ""
|
77
|
+
|
78
|
+
msgid "! Subcommand unavailable due to error. Check error logs."
|
79
|
+
msgstr ""
|
data/man/man5/puppet.conf.5
CHANGED
File without changes
|
@@ -0,0 +1,9 @@
|
|
1
|
+
Puppet::Bindings.newbindings('backend::default') do
|
2
|
+
# In the default bindings for this module
|
3
|
+
bind {
|
4
|
+
# bind its name to the 'puppet' environment data provider
|
5
|
+
name 'special'
|
6
|
+
in_multibind "puppet::path_based_data_provider_factories"
|
7
|
+
to_instance "PuppetX::Backend::SpecialDataProviderFactory"
|
8
|
+
}
|
9
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module PuppetX::Backend
|
2
|
+
class SpecialDataProviderFactory < Puppet::Plugins::DataProviders::PathBasedDataProviderFactory
|
3
|
+
def create(name, paths, parent_data_provider)
|
4
|
+
SpecialDataProvider.new(name, paths)
|
5
|
+
end
|
6
|
+
|
7
|
+
def resolve_paths(datadir, declared_paths, paths, lookup_invocation)
|
8
|
+
paths
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
class SpecialDataProvider < Puppet::Plugins::DataProviders::PathBasedDataProvider
|
13
|
+
def unchecked_lookup(key, lookup_invocation, merge)
|
14
|
+
value = {
|
15
|
+
'backend::test::param_a' => 'module data param_a is 1000',
|
16
|
+
'backend::test::param_b' => 'module data param_b is 2000',
|
17
|
+
}[key]
|
18
|
+
throw :no_such_key if value.nil?
|
19
|
+
value
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
@@ -19,6 +19,7 @@ module PuppetX::Helindbe
|
|
19
19
|
'test::param_a' => 'env data param_a is 10',
|
20
20
|
'test::param_b' => 'env data param_b is 20',
|
21
21
|
# demo: this overrides a parameter for a class in the dataprovider module
|
22
|
+
'backend::test::param_c' => 'env data param_c is 3000',
|
22
23
|
'dataprovider::test::param_c' => 'env data param_c is 300',
|
23
24
|
}
|
24
25
|
end
|
data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/environment.conf
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -134,6 +134,92 @@ end
|
|
134
134
|
end
|
135
135
|
end
|
136
136
|
|
137
|
+
context 'from environment with pcore object types' do
|
138
|
+
include PuppetSpec::Compiler
|
139
|
+
|
140
|
+
let!(:envdir) { Puppet[:environmentpath] }
|
141
|
+
let(:env_name) { 'spec' }
|
142
|
+
let(:dir_structure) {
|
143
|
+
{
|
144
|
+
'environment.conf' => <<-CONF,
|
145
|
+
rich_data = true
|
146
|
+
CONF
|
147
|
+
'modules' => {
|
148
|
+
'mod' => {
|
149
|
+
'types' => {
|
150
|
+
'streetaddress.pp' => <<-PUPPET,
|
151
|
+
type Mod::StreetAddress = Object[{
|
152
|
+
attributes => {
|
153
|
+
'street' => String,
|
154
|
+
'zipcode' => String,
|
155
|
+
'city' => String,
|
156
|
+
}
|
157
|
+
}]
|
158
|
+
PUPPET
|
159
|
+
'address.pp' => <<-PUPPET,
|
160
|
+
type Mod::Address = Object[{
|
161
|
+
parent => Mod::StreetAddress,
|
162
|
+
attributes => {
|
163
|
+
'state' => String
|
164
|
+
}
|
165
|
+
}]
|
166
|
+
PUPPET
|
167
|
+
'contact.pp' => <<-PUPPET,
|
168
|
+
type Mod::Contact = Object[{
|
169
|
+
attributes => {
|
170
|
+
'address' => Mod::Address,
|
171
|
+
'email' => String
|
172
|
+
}
|
173
|
+
}]
|
174
|
+
PUPPET
|
175
|
+
},
|
176
|
+
'manifests' => {
|
177
|
+
'init.pp' => <<-PUPPET,
|
178
|
+
define mod::person(Mod::Contact $contact) {
|
179
|
+
notify { $title: }
|
180
|
+
notify { $contact.address.street: }
|
181
|
+
notify { $contact.address.zipcode: }
|
182
|
+
notify { $contact.address.city: }
|
183
|
+
notify { $contact.address.state: }
|
184
|
+
}
|
185
|
+
|
186
|
+
class mod {
|
187
|
+
mod::person { 'Test Person':
|
188
|
+
contact => Mod::Contact(
|
189
|
+
Mod::Address('The Street 23', '12345', 'Some City', 'A State'),
|
190
|
+
'test@example.com')
|
191
|
+
}
|
192
|
+
}
|
193
|
+
PUPPET
|
194
|
+
}
|
195
|
+
}
|
196
|
+
}
|
197
|
+
}
|
198
|
+
}
|
199
|
+
|
200
|
+
let(:env) { Puppet::Node::Environment.create(env_name.to_sym, [File.join(envdir, env_name, 'modules')]) }
|
201
|
+
let(:node) { Puppet::Node.new('test', :environment => env) }
|
202
|
+
|
203
|
+
before(:each) do
|
204
|
+
dir_contained_in(envdir, env_name => dir_structure)
|
205
|
+
PuppetSpec::Files.record_tmp(File.join(envdir, env_name))
|
206
|
+
end
|
207
|
+
|
208
|
+
it 'can compile the catalog' do
|
209
|
+
compile_to_catalog('include mod', node)
|
210
|
+
end
|
211
|
+
|
212
|
+
it 'can apply the catalog' do
|
213
|
+
catalog = compile_to_catalog('include mod', node)
|
214
|
+
|
215
|
+
Puppet[:environment] = env_name
|
216
|
+
apply = Puppet::Application[:apply]
|
217
|
+
apply.options[:catalog] = file_containing('manifest', catalog.to_pson)
|
218
|
+
expect { apply.run_command; exit(0) }.to exit_with(0)
|
219
|
+
expect(@logs.map(&:to_s)).to include('The Street 23')
|
220
|
+
end
|
221
|
+
end
|
222
|
+
|
137
223
|
it "applies a given file even when a directory environment is specified" do
|
138
224
|
manifest = file_containing("manifest.pp", "notice('it was applied')")
|
139
225
|
|
@@ -414,8 +500,8 @@ class amod::bad_type {
|
|
414
500
|
apply.expects(:apply_catalog).with do |catalog|
|
415
501
|
catalog.resource(:notify, 'rx')['message'].is_a?(Regexp)
|
416
502
|
catalog.resource(:notify, 'bin')['message'].is_a?(Puppet::Pops::Types::PBinaryType::Binary)
|
417
|
-
catalog.resource(:notify, 'ver')['message'].is_a?(
|
418
|
-
catalog.resource(:notify, 'vrange')['message'].is_a?(
|
503
|
+
catalog.resource(:notify, 'ver')['message'].is_a?(SemanticPuppet::Version)
|
504
|
+
catalog.resource(:notify, 'vrange')['message'].is_a?(SemanticPuppet::VersionRange)
|
419
505
|
catalog.resource(:notify, 'tspan')['message'].is_a?(Puppet::Pops::Time::Timespan)
|
420
506
|
catalog.resource(:notify, 'tstamp')['message'].is_a?(Puppet::Pops::Time::Timestamp)
|
421
507
|
end
|