puppet 4.10.0 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CONTRIBUTING.md +17 -0
- data/Gemfile +6 -10
- data/MAINTAINERS +0 -5
- data/Rakefile +2 -1
- data/conf/auth.conf +21 -0
- data/conf/fileserver.conf +7 -12
- data/conf/hiera.yaml +11 -0
- data/ext/debian/puppet-common.install +0 -1
- data/ext/debian/puppet-common.manpages +0 -2
- data/ext/hiera/hiera.yaml +15 -0
- data/ext/logcheck/puppet +1 -1
- data/ext/project_data.yaml +3 -6
- data/ext/puppet-test +0 -24
- data/ext/rack/config.ru +2 -2
- data/ext/redhat/puppet.spec.erb +0 -3
- data/ext/windows/service/daemon.rb +8 -14
- data/install.rb +1 -1
- data/lib/hiera/puppet_function.rb +1 -1
- data/lib/puppet/agent/disabler.rb +3 -3
- data/lib/puppet/agent/locker.rb +3 -3
- data/lib/puppet/agent.rb +27 -16
- data/lib/puppet/application/agent.rb +16 -9
- data/lib/puppet/application/apply.rb +19 -17
- data/lib/puppet/application/cert.rb +2 -2
- data/lib/puppet/application/describe.rb +2 -2
- data/lib/puppet/application/device.rb +71 -46
- data/lib/puppet/application/doc.rb +9 -9
- data/lib/puppet/application/face_base.rb +8 -13
- data/lib/puppet/application/filebucket.rb +8 -8
- data/lib/puppet/application/lookup.rb +101 -88
- data/lib/puppet/application/master.rb +15 -23
- data/lib/puppet/application/resource.rb +20 -17
- data/lib/puppet/application.rb +11 -11
- data/lib/puppet/configurer/downloader.rb +2 -2
- data/lib/puppet/configurer/fact_handler.rb +13 -4
- data/lib/puppet/configurer.rb +29 -28
- data/lib/puppet/context/trusted_information.rb +1 -1
- data/lib/puppet/context.rb +5 -5
- data/lib/puppet/defaults.rb +58 -104
- data/lib/puppet/error.rb +1 -1
- data/lib/puppet/etc.rb +75 -39
- data/lib/puppet/external/pson/common.rb +4 -0
- data/lib/puppet/face/ca.rb +50 -43
- data/lib/puppet/face/catalog/select.rb +4 -4
- data/lib/puppet/face/catalog.rb +2 -2
- data/lib/puppet/face/certificate.rb +21 -21
- data/lib/puppet/face/certificate_request.rb +1 -1
- data/lib/puppet/face/certificate_revocation_list.rb +1 -1
- data/lib/puppet/face/config.rb +10 -10
- data/lib/puppet/face/epp.rb +38 -38
- data/lib/puppet/face/facts.rb +5 -5
- data/lib/puppet/face/generate.rb +8 -8
- data/lib/puppet/face/help.rb +8 -8
- data/lib/puppet/face/key.rb +3 -3
- data/lib/puppet/face/man.rb +7 -7
- data/lib/puppet/face/module/build.rb +7 -7
- data/lib/puppet/face/module/changes.rb +6 -6
- data/lib/puppet/face/module/generate.rb +24 -24
- data/lib/puppet/face/module/install.rb +13 -9
- data/lib/puppet/face/module/list.rb +16 -12
- data/lib/puppet/face/module/search.rb +4 -4
- data/lib/puppet/face/module/uninstall.rb +13 -10
- data/lib/puppet/face/module/upgrade.rb +11 -7
- data/lib/puppet/face/module.rb +3 -3
- data/lib/puppet/face/node/clean.rb +8 -8
- data/lib/puppet/face/node.rb +6 -6
- data/lib/puppet/face/parser.rb +17 -17
- data/lib/puppet/face/plugin.rb +7 -7
- data/lib/puppet/face/report.rb +10 -10
- data/lib/puppet/face/resource.rb +13 -13
- data/lib/puppet/face/status.rb +5 -5
- data/lib/puppet/feature/base.rb +4 -3
- data/lib/puppet/feature/eventlog.rb +1 -1
- data/lib/puppet/file_bucket/dipper.rb +9 -9
- data/lib/puppet/file_bucket/file.rb +4 -17
- data/lib/puppet/file_serving/base.rb +3 -3
- data/lib/puppet/file_serving/configuration/parser.rb +12 -12
- data/lib/puppet/file_serving/configuration.rb +3 -3
- data/lib/puppet/file_serving/content.rb +1 -1
- data/lib/puppet/file_serving/fileset.rb +7 -5
- data/lib/puppet/file_serving/http_metadata.rb +1 -1
- data/lib/puppet/file_serving/metadata.rb +9 -9
- data/lib/puppet/file_serving/mount/file.rb +6 -6
- data/lib/puppet/file_serving/mount/modules.rb +1 -1
- data/lib/puppet/file_serving/mount.rb +1 -1
- data/lib/puppet/file_serving/terminus_selector.rb +1 -1
- data/lib/puppet/file_system/file_impl.rb +2 -2
- data/lib/puppet/file_system/memory_impl.rb +1 -1
- data/lib/puppet/file_system/path_pattern.rb +6 -6
- data/lib/puppet/file_system/uniquefile.rb +2 -2
- data/lib/puppet/file_system/windows.rb +3 -3
- data/lib/puppet/forge/cache.rb +1 -0
- data/lib/puppet/forge/errors.rb +12 -12
- data/lib/puppet/forge/repository.rb +2 -1
- data/lib/puppet/forge.rb +10 -8
- data/lib/puppet/functions/annotate.rb +108 -0
- data/lib/puppet/functions/binary_file.rb +1 -1
- data/lib/puppet/functions/call.rb +42 -0
- data/lib/puppet/functions/defined.rb +4 -4
- data/lib/puppet/functions/dig.rb +1 -1
- data/lib/puppet/functions/eyaml_lookup_key.rb +16 -12
- data/lib/puppet/functions/hiera.rb +9 -2
- data/lib/puppet/functions/hiera_array.rb +9 -2
- data/lib/puppet/functions/hiera_hash.rb +10 -2
- data/lib/puppet/functions/hiera_include.rb +18 -4
- data/lib/puppet/functions/hocon_data.rb +8 -2
- data/lib/puppet/functions/json_data.rb +5 -1
- data/lib/puppet/functions/match.rb +2 -2
- data/lib/puppet/functions/reduce.rb +14 -2
- data/lib/puppet/functions/require.rb +1 -1
- data/lib/puppet/functions/slice.rb +3 -3
- data/lib/puppet/functions/strftime.rb +10 -2
- data/lib/puppet/functions/unique.rb +132 -0
- data/lib/puppet/functions/yaml_data.rb +4 -0
- data/lib/puppet/functions.rb +17 -45
- data/lib/puppet/generate/models/type/type.rb +6 -5
- data/lib/puppet/generate/templates/type/pcore.erb +1 -1
- data/lib/puppet/generate/type.rb +12 -12
- data/lib/puppet/graph/relationship_graph.rb +4 -1
- data/lib/puppet/graph/simple_graph.rb +45 -66
- data/lib/puppet/indirector/catalog/compiler.rb +61 -44
- data/lib/puppet/indirector/catalog/json.rb +18 -0
- data/lib/puppet/indirector/certificate/disabled_ca.rb +1 -1
- data/lib/puppet/indirector/certificate_request/ca.rb +3 -3
- data/lib/puppet/indirector/certificate_request/disabled_ca.rb +1 -1
- data/lib/puppet/indirector/certificate_revocation_list/disabled_ca.rb +1 -1
- data/lib/puppet/indirector/certificate_status/file.rb +6 -6
- data/lib/puppet/indirector/exec.rb +2 -2
- data/lib/puppet/indirector/face.rb +18 -18
- data/lib/puppet/indirector/file_bucket_file/file.rb +9 -8
- data/lib/puppet/indirector/file_metadata/http.rb +1 -1
- data/lib/puppet/indirector/file_server.rb +10 -2
- data/lib/puppet/indirector/hiera.rb +5 -3
- data/lib/puppet/indirector/indirection.rb +13 -15
- data/lib/puppet/indirector/json.rb +11 -12
- data/lib/puppet/indirector/key/disabled_ca.rb +1 -1
- data/lib/puppet/indirector/key/file.rb +2 -2
- data/lib/puppet/indirector/ldap.rb +6 -5
- data/lib/puppet/indirector/memory.rb +1 -1
- data/lib/puppet/indirector/msgpack.rb +8 -7
- data/lib/puppet/indirector/node/exec.rb +8 -6
- data/lib/puppet/indirector/node/ldap.rb +9 -7
- data/lib/puppet/indirector/node/plain.rb +2 -1
- data/lib/puppet/indirector/node/write_only_yaml.rb +6 -1
- data/lib/puppet/indirector/node/yaml.rb +0 -9
- data/lib/puppet/indirector/report/processor.rb +2 -2
- data/lib/puppet/indirector/report/rest.rb +13 -0
- data/lib/puppet/indirector/request.rb +9 -16
- data/lib/puppet/indirector/resource/ral.rb +1 -1
- data/lib/puppet/indirector/resource/validator.rb +1 -1
- data/lib/puppet/indirector/rest.rb +28 -10
- data/lib/puppet/indirector/ssl_file.rb +9 -9
- data/lib/puppet/indirector/terminus.rb +3 -3
- data/lib/puppet/indirector/yaml.rb +5 -5
- data/lib/puppet/indirector.rb +2 -2
- data/lib/puppet/info_service/class_information_service.rb +4 -5
- data/lib/puppet/interface/face_collection.rb +6 -1
- data/lib/puppet/interface.rb +2 -6
- data/lib/puppet/module.rb +12 -7
- data/lib/puppet/module_tool/applications/application.rb +8 -9
- data/lib/puppet/module_tool/applications/builder.rb +5 -6
- data/lib/puppet/module_tool/applications/checksummer.rb +2 -2
- data/lib/puppet/module_tool/applications/installer.rb +11 -10
- data/lib/puppet/module_tool/applications/searcher.rb +1 -1
- data/lib/puppet/module_tool/applications/uninstaller.rb +2 -1
- data/lib/puppet/module_tool/applications/unpacker.rb +3 -3
- data/lib/puppet/module_tool/applications/upgrader.rb +10 -9
- data/lib/puppet/module_tool/contents_description.rb +1 -1
- data/lib/puppet/module_tool/dependency.rb +0 -1
- data/lib/puppet/module_tool/errors/installer.rb +22 -22
- data/lib/puppet/module_tool/errors/shared.rb +44 -42
- data/lib/puppet/module_tool/errors/uninstaller.rb +13 -9
- data/lib/puppet/module_tool/errors/upgrader.rb +11 -11
- data/lib/puppet/module_tool/install_directory.rb +1 -1
- data/lib/puppet/module_tool/installed_modules.rb +3 -3
- data/lib/puppet/module_tool/local_tarball.rb +4 -4
- data/lib/puppet/module_tool/metadata.rb +16 -13
- data/lib/puppet/module_tool/shared_behaviors.rb +6 -6
- data/lib/puppet/module_tool/skeleton/templates/generator/Gemfile +1 -1
- data/lib/puppet/module_tool/skeleton/templates/generator/README.md.erb +10 -4
- data/lib/puppet/module_tool/skeleton/templates/generator/Rakefile +2 -2
- data/lib/puppet/module_tool/skeleton/templates/generator/examples/init.pp.erb +1 -1
- data/lib/puppet/module_tool/tar.rb +5 -4
- data/lib/puppet/module_tool.rb +7 -3
- data/lib/puppet/network/auth_config_parser.rb +12 -11
- data/lib/puppet/network/authconfig.rb +2 -2
- data/lib/puppet/network/authstore.rb +2 -2
- data/lib/puppet/network/format.rb +7 -7
- data/lib/puppet/network/format_handler.rb +12 -9
- data/lib/puppet/network/format_support.rb +11 -5
- data/lib/puppet/network/formats.rb +38 -27
- data/lib/puppet/network/http/api/indirected_routes.rb +72 -33
- data/lib/puppet/network/http/api/master/v3/environment.rb +33 -14
- data/lib/puppet/network/http/compression.rb +10 -7
- data/lib/puppet/network/http/connection.rb +19 -15
- data/lib/puppet/network/http/error.rb +14 -10
- data/lib/puppet/network/http/handler.rb +8 -4
- data/lib/puppet/network/http/issues.rb +1 -0
- data/lib/puppet/network/http/pool.rb +1 -1
- data/lib/puppet/network/http/rack/rest.rb +3 -2
- data/lib/puppet/network/http/rack.rb +2 -2
- data/lib/puppet/network/http/request.rb +34 -20
- data/lib/puppet/network/http/response.rb +13 -1
- data/lib/puppet/network/http/webrick/rest.rb +2 -2
- data/lib/puppet/network/http/webrick.rb +5 -5
- data/lib/puppet/network/rights.rb +6 -6
- data/lib/puppet/network/server.rb +2 -2
- data/lib/puppet/node/environment.rb +21 -4
- data/lib/puppet/node/facts.rb +0 -5
- data/lib/puppet/node.rb +25 -13
- data/lib/puppet/parameter/package_options.rb +1 -1
- data/lib/puppet/parameter/path.rb +3 -3
- data/lib/puppet/parameter/value_collection.rb +4 -4
- data/lib/puppet/parameter.rb +3 -28
- data/lib/puppet/parser/ast/node.rb +1 -1
- data/lib/puppet/parser/ast/pops_bridge.rb +3 -3
- data/lib/puppet/parser/ast/resource.rb +1 -1
- data/lib/puppet/parser/ast/resource_instance.rb +1 -1
- data/lib/puppet/parser/ast/resourceparam.rb +1 -1
- data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +2 -2
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +6 -9
- data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +1 -1
- data/lib/puppet/parser/compiler.rb +44 -113
- data/lib/puppet/parser/e4_parser_adapter.rb +1 -2
- data/lib/puppet/parser/environment_compiler.rb +13 -15
- data/lib/puppet/parser/functions/contain.rb +1 -1
- data/lib/puppet/parser/functions/create_resources.rb +11 -3
- data/lib/puppet/parser/functions/file.rb +1 -1
- data/lib/puppet/parser/functions/generate.rb +5 -4
- data/lib/puppet/parser/functions/hiera_include.rb +1 -1
- data/lib/puppet/parser/functions/include.rb +2 -1
- data/lib/puppet/parser/functions/inline_template.rb +1 -1
- data/lib/puppet/parser/functions/new.rb +14 -1
- data/lib/puppet/parser/functions/require.rb +1 -1
- data/lib/puppet/parser/functions.rb +6 -6
- data/lib/puppet/parser/parser_factory.rb +0 -30
- data/lib/puppet/parser/relationship.rb +49 -20
- data/lib/puppet/parser/resource/param.rb +0 -3
- data/lib/puppet/parser/resource.rb +31 -30
- data/lib/puppet/parser/scope.rb +124 -170
- data/lib/puppet/parser/templatewrapper.rb +2 -2
- data/lib/puppet/parser/type_loader.rb +1 -1
- data/lib/puppet/plugins/configuration.rb +15 -67
- data/lib/puppet/plugins/syntax_checkers.rb +6 -11
- data/lib/puppet/pops/adaptable.rb +8 -3
- data/lib/puppet/pops/adapters.rb +33 -87
- data/lib/puppet/pops/evaluator/access_operator.rb +10 -39
- data/lib/puppet/pops/evaluator/collector_transformer.rb +9 -14
- data/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +2 -2
- data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +3 -3
- data/lib/puppet/pops/evaluator/compare_operator.rb +7 -7
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +1 -1
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +45 -37
- data/lib/puppet/pops/evaluator/external_syntax_support.rb +2 -9
- data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +0 -2
- data/lib/puppet/pops/evaluator/puppet_proc.rb +1 -1
- data/lib/puppet/pops/evaluator/relationship_operator.rb +26 -9
- data/lib/puppet/pops/evaluator/runtime3_converter.rb +17 -1
- data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +0 -2
- data/lib/puppet/pops/evaluator/runtime3_support.rb +44 -30
- data/lib/puppet/pops/functions/dispatch.rb +1 -6
- data/lib/puppet/pops/issues.rb +189 -161
- data/lib/puppet/pops/loader/base_loader.rb +2 -2
- data/lib/puppet/pops/loader/gem_support.rb +2 -2
- data/lib/puppet/pops/loader/loader.rb +4 -0
- data/lib/puppet/pops/loader/module_loaders.rb +59 -10
- data/lib/puppet/pops/loader/predefined_loader.rb +1 -6
- data/lib/puppet/pops/loader/puppet_function_instantiator.rb +8 -8
- data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +9 -10
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +3 -3
- data/lib/puppet/pops/loader/static_loader.rb +32 -63
- data/lib/puppet/pops/loader/type_definition_instantiator.rb +8 -8
- data/lib/puppet/pops/loader/typed_name.rb +6 -0
- data/lib/puppet/pops/loaders.rb +22 -20
- data/lib/puppet/pops/lookup/context.rb +1 -1
- data/lib/puppet/pops/lookup/data_provider.rb +3 -18
- data/lib/puppet/pops/lookup/environment_data_provider.rb +1 -1
- data/lib/puppet/pops/lookup/global_data_provider.rb +7 -10
- data/lib/puppet/pops/lookup/hiera_config.rb +13 -34
- data/lib/puppet/pops/lookup/interpolation.rb +9 -8
- data/lib/puppet/pops/lookup/invocation.rb +13 -3
- data/lib/puppet/pops/lookup/lookup_adapter.rb +30 -69
- data/lib/puppet/pops/lookup/lookup_key.rb +2 -2
- data/lib/puppet/pops/lookup/module_data_provider.rb +11 -3
- data/lib/puppet/pops/lookup/sub_lookup.rb +12 -10
- data/lib/puppet/pops/lookup.rb +7 -5
- data/lib/puppet/pops/merge_strategy.rb +16 -1
- data/lib/puppet/pops/model/ast.pp +692 -0
- data/lib/puppet/pops/model/ast.rb +4833 -0
- data/lib/puppet/pops/model/ast_transformer.rb +9 -10
- data/lib/puppet/pops/model/factory.rb +454 -527
- data/lib/puppet/pops/model/model_label_provider.rb +3 -2
- data/lib/puppet/pops/model/model_tree_dumper.rb +8 -7
- data/lib/puppet/pops/parser/egrammar.ra +66 -60
- data/lib/puppet/pops/parser/eparser.rb +1483 -1578
- data/lib/puppet/pops/parser/evaluating_parser.rb +5 -5
- data/lib/puppet/pops/parser/interpolation_support.rb +4 -4
- data/lib/puppet/pops/parser/lexer2.rb +27 -36
- data/lib/puppet/pops/parser/locator.rb +39 -16
- data/lib/puppet/pops/parser/parser_support.rb +25 -29
- data/lib/puppet/pops/pcore.rb +28 -21
- data/lib/puppet/pops/resource/param.rb +1 -1
- data/lib/puppet/pops/resource/resource_type_impl.rb +3 -3
- data/lib/puppet/pops/semantic_error.rb +12 -0
- data/lib/puppet/pops/serialization/abstract_writer.rb +9 -1
- data/lib/puppet/pops/serialization/deserializer.rb +8 -5
- data/lib/puppet/pops/serialization/from_data_converter.rb +181 -0
- data/lib/puppet/pops/serialization/json.rb +4 -4
- data/lib/puppet/pops/serialization/json_path.rb +126 -0
- data/lib/puppet/pops/serialization/object.rb +6 -6
- data/lib/puppet/pops/serialization/serializer.rb +32 -11
- data/lib/puppet/pops/serialization/to_data_converter.rb +292 -0
- data/lib/puppet/pops/serialization.rb +25 -1
- data/lib/puppet/pops/time/timespan.rb +11 -11
- data/lib/puppet/pops/time/timestamp.rb +8 -8
- data/lib/puppet/pops/types/annotatable.rb +7 -7
- data/lib/puppet/pops/types/annotation.rb +71 -0
- data/lib/puppet/pops/types/class_loader.rb +4 -6
- data/lib/puppet/pops/types/enumeration.rb +2 -2
- data/lib/puppet/pops/types/iterable.rb +2 -2
- data/lib/puppet/pops/types/p_binary_type.rb +7 -1
- data/lib/puppet/pops/types/p_meta_type.rb +16 -12
- data/lib/puppet/pops/types/p_object_type.rb +135 -96
- data/lib/puppet/pops/types/p_runtime_type.rb +1 -1
- data/lib/puppet/pops/types/p_sem_ver_range_type.rb +6 -2
- data/lib/puppet/pops/types/p_timespan_type.rb +55 -4
- data/lib/puppet/pops/types/p_type_set_type.rb +44 -36
- data/lib/puppet/pops/types/puppet_object.rb +13 -3
- data/lib/puppet/pops/types/ruby_generator.rb +291 -127
- data/lib/puppet/pops/types/ruby_method.rb +31 -0
- data/lib/puppet/pops/types/string_converter.rb +125 -59
- data/lib/puppet/pops/types/type_calculator.rb +55 -93
- data/lib/puppet/pops/types/type_factory.rb +34 -6
- data/lib/puppet/pops/types/type_formatter.rb +63 -15
- data/lib/puppet/pops/types/type_mismatch_describer.rb +8 -7
- data/lib/puppet/pops/types/type_parser.rb +28 -13
- data/lib/puppet/pops/types/type_set_reference.rb +7 -7
- data/lib/puppet/pops/types/types.rb +186 -186
- data/lib/puppet/pops/utils.rb +0 -24
- data/lib/puppet/pops/validation/checker4_0.rb +89 -75
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -1
- data/lib/puppet/pops/validation.rb +3 -9
- data/lib/puppet/pops/visitor.rb +21 -0
- data/lib/puppet/pops.rb +7 -37
- data/lib/puppet/property/ensure.rb +3 -3
- data/lib/puppet/property/list.rb +1 -10
- data/lib/puppet/property.rb +17 -14
- data/lib/puppet/provider/aixobject.rb +7 -7
- data/lib/puppet/provider/augeas/augeas.rb +37 -37
- data/lib/puppet/provider/command.rb +1 -1
- data/lib/puppet/provider/cron/crontab.rb +2 -2
- data/lib/puppet/provider/exec/posix.rb +4 -4
- data/lib/puppet/provider/exec/windows.rb +3 -3
- data/lib/puppet/provider/exec.rb +4 -4
- data/lib/puppet/provider/file/posix.rb +5 -5
- data/lib/puppet/provider/file/windows.rb +4 -4
- data/lib/puppet/provider/group/aix.rb +2 -2
- data/lib/puppet/provider/group/groupadd.rb +2 -2
- data/lib/puppet/provider/group/pw.rb +1 -1
- data/lib/puppet/provider/host/parsed.rb +1 -1
- data/lib/puppet/provider/macauthorization/macauthorization.rb +9 -9
- data/lib/puppet/provider/maillist/mailman.rb +2 -2
- data/lib/puppet/provider/mcx/mcxcontent.rb +3 -3
- data/lib/puppet/provider/mount/parsed.rb +10 -8
- data/lib/puppet/provider/mount.rb +2 -1
- data/lib/puppet/provider/naginator.rb +1 -1
- data/lib/puppet/provider/nameservice/directoryservice.rb +11 -11
- data/lib/puppet/provider/nameservice.rb +18 -10
- data/lib/puppet/provider/network_device.rb +2 -1
- data/lib/puppet/provider/package/aix.rb +5 -5
- data/lib/puppet/provider/package/appdmg.rb +2 -2
- data/lib/puppet/provider/package/apple.rb +1 -1
- data/lib/puppet/provider/package/apt.rb +4 -4
- data/lib/puppet/provider/package/aptitude.rb +1 -1
- data/lib/puppet/provider/package/aptrpm.rb +2 -2
- data/lib/puppet/provider/package/blastwave.rb +4 -4
- data/lib/puppet/provider/package/dpkg.rb +3 -3
- data/lib/puppet/provider/package/fink.rb +3 -3
- data/lib/puppet/provider/package/freebsd.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +6 -6
- data/lib/puppet/provider/package/hpux.rb +1 -1
- data/lib/puppet/provider/package/nim.rb +15 -12
- data/lib/puppet/provider/package/openbsd.rb +4 -4
- data/lib/puppet/provider/package/opkg.rb +1 -1
- data/lib/puppet/provider/package/pacman.rb +9 -9
- data/lib/puppet/provider/package/pkg.rb +9 -9
- data/lib/puppet/provider/package/pkgdmg.rb +4 -4
- data/lib/puppet/provider/package/pkgin.rb +3 -3
- data/lib/puppet/provider/package/pkgng.rb +1 -1
- data/lib/puppet/provider/package/pkgutil.rb +6 -6
- data/lib/puppet/provider/package/portage.rb +167 -59
- data/lib/puppet/provider/package/ports.rb +3 -3
- data/lib/puppet/provider/package/portupgrade.rb +4 -4
- data/lib/puppet/provider/package/rpm.rb +7 -4
- data/lib/puppet/provider/package/rug.rb +1 -1
- data/lib/puppet/provider/package/sun.rb +3 -2
- data/lib/puppet/provider/package/up2date.rb +1 -1
- data/lib/puppet/provider/package/urpmi.rb +1 -1
- data/lib/puppet/provider/package/windows/package.rb +3 -3
- data/lib/puppet/provider/package/windows.rb +4 -4
- data/lib/puppet/provider/package/yum.rb +13 -13
- data/lib/puppet/provider/package/zypper.rb +1 -1
- data/lib/puppet/provider/parsedfile.rb +1 -1
- data/lib/puppet/provider/service/upstart.rb +0 -2
- data/lib/puppet/provider/user/aix.rb +1 -1
- data/lib/puppet/provider/user/ldap.rb +1 -1
- data/lib/puppet/provider/user/useradd.rb +1 -1
- data/lib/puppet/provider/yumrepo/inifile.rb +3 -3
- data/lib/puppet/provider.rb +2 -0
- data/lib/puppet/reference/configuration.rb +1 -1
- data/lib/puppet/reference/indirection.rb +1 -1
- data/lib/puppet/reference/metaparameter.rb +1 -1
- data/lib/puppet/reference/providers.rb +6 -6
- data/lib/puppet/reference/type.rb +2 -2
- data/lib/puppet/relationship.rb +7 -9
- data/lib/puppet/reports/http.rb +6 -2
- data/lib/puppet/resource/capability_finder.rb +2 -2
- data/lib/puppet/resource/catalog.rb +26 -41
- data/lib/puppet/resource/status.rb +13 -24
- data/lib/puppet/resource/type.rb +13 -61
- data/lib/puppet/resource/type_collection.rb +30 -23
- data/lib/puppet/resource.rb +85 -108
- data/lib/puppet/settings/array_setting.rb +1 -1
- data/lib/puppet/settings/autosign_setting.rb +1 -1
- data/lib/puppet/settings/boolean_setting.rb +1 -1
- data/lib/puppet/settings/config_file.rb +2 -2
- data/lib/puppet/settings/duration_setting.rb +1 -1
- data/lib/puppet/settings/enum_setting.rb +1 -1
- data/lib/puppet/settings/environment_conf.rb +2 -2
- data/lib/puppet/settings/file_setting.rb +2 -2
- data/lib/puppet/settings/priority_setting.rb +1 -1
- data/lib/puppet/settings/server_list_setting.rb +1 -1
- data/lib/puppet/settings/symbolic_enum_setting.rb +1 -1
- data/lib/puppet/settings/terminus_setting.rb +1 -1
- data/lib/puppet/settings/ttl_setting.rb +2 -2
- data/lib/puppet/settings.rb +1 -1
- data/lib/puppet/ssl/base.rb +2 -2
- data/lib/puppet/ssl/certificate_authority/interface.rb +13 -13
- data/lib/puppet/ssl/certificate_authority.rb +21 -21
- data/lib/puppet/ssl/certificate_factory.rb +2 -2
- data/lib/puppet/ssl/certificate_request.rb +14 -14
- data/lib/puppet/ssl/certificate_request_attributes.rb +3 -3
- data/lib/puppet/ssl/certificate_revocation_list.rb +3 -3
- data/lib/puppet/ssl/host.rb +29 -29
- data/lib/puppet/ssl/inventory.rb +1 -1
- data/lib/puppet/ssl/key.rb +1 -1
- data/lib/puppet/ssl/oids.rb +5 -5
- data/lib/puppet/ssl/validator/default_validator.rb +3 -4
- data/lib/puppet/syntax_checkers/base64.rb +7 -7
- data/lib/puppet/syntax_checkers/json.rb +5 -5
- data/lib/puppet/test/test_helper.rb +0 -4
- data/lib/puppet/transaction/additional_resource_generator.rb +4 -3
- data/lib/puppet/transaction/event.rb +19 -8
- data/lib/puppet/transaction/event_manager.rb +6 -6
- data/lib/puppet/transaction/persistence.rb +6 -6
- data/lib/puppet/transaction/report.rb +35 -41
- data/lib/puppet/transaction/resource_harness.rb +14 -12
- data/lib/puppet/transaction.rb +38 -20
- data/lib/puppet/type/augeas.rb +2 -2
- data/lib/puppet/type/cron.rb +14 -31
- data/lib/puppet/type/exec.rb +48 -42
- data/lib/puppet/type/file/content.rb +1 -1
- data/lib/puppet/type/file/group.rb +3 -3
- data/lib/puppet/type/file/mode.rb +10 -6
- data/lib/puppet/type/file/owner.rb +3 -3
- data/lib/puppet/type/file/selcontext.rb +18 -1
- data/lib/puppet/type/file/source.rb +14 -4
- data/lib/puppet/type/file.rb +21 -22
- data/lib/puppet/type/filebucket.rb +3 -8
- data/lib/puppet/type/group.rb +2 -2
- data/lib/puppet/type/host.rb +6 -6
- data/lib/puppet/type/interface.rb +1 -1
- data/lib/puppet/type/k5login.rb +1 -1
- data/lib/puppet/type/macauthorization.rb +1 -1
- data/lib/puppet/type/mailalias.rb +2 -18
- data/lib/puppet/type/maillist.rb +1 -1
- data/lib/puppet/type/mount.rb +8 -8
- data/lib/puppet/type/notify.rb +2 -0
- data/lib/puppet/type/package.rb +5 -5
- data/lib/puppet/type/resources.rb +6 -6
- data/lib/puppet/type/schedule.rb +9 -9
- data/lib/puppet/type/scheduled_task.rb +4 -4
- data/lib/puppet/type/service.rb +1 -1
- data/lib/puppet/type/ssh_authorized_key.rb +3 -19
- data/lib/puppet/type/sshkey.rb +4 -4
- data/lib/puppet/type/tidy.rb +15 -11
- data/lib/puppet/type/user.rb +29 -27
- data/lib/puppet/type/yumrepo.rb +8 -8
- data/lib/puppet/type/zone.rb +7 -7
- data/lib/puppet/type/zpool.rb +3 -3
- data/lib/puppet/type.rb +0 -6
- data/lib/puppet/util/at_fork/noop.rb +18 -0
- data/lib/puppet/util/at_fork/solaris.rb +158 -0
- data/lib/puppet/util/at_fork.rb +35 -0
- data/lib/puppet/util/autoload.rb +2 -2
- data/lib/puppet/util/backups.rb +6 -6
- data/lib/puppet/util/character_encoding.rb +77 -74
- data/lib/puppet/util/classgen.rb +4 -4
- data/lib/puppet/util/command_line/puppet_option_parser.rb +3 -3
- data/lib/puppet/util/command_line/trollop.rb +31 -31
- data/lib/puppet/util/command_line.rb +4 -4
- data/lib/puppet/util/diff.rb +1 -1
- data/lib/puppet/util/errors.rb +4 -4
- data/lib/puppet/util/execution.rb +8 -8
- data/lib/puppet/util/feature.rb +5 -5
- data/lib/puppet/util/fileparsing.rb +8 -8
- data/lib/puppet/util/filetype.rb +15 -15
- data/lib/puppet/util/http_proxy.rb +1 -1
- data/lib/puppet/util/inifile.rb +4 -4
- data/lib/puppet/util/instance_loader.rb +1 -1
- data/lib/puppet/util/json_lockfile.rb +4 -4
- data/lib/puppet/util/ldap/connection.rb +2 -2
- data/lib/puppet/util/ldap/manager.rb +2 -2
- data/lib/puppet/util/limits.rb +1 -1
- data/lib/puppet/util/log/destinations.rb +10 -16
- data/lib/puppet/util/log.rb +23 -16
- data/lib/puppet/util/logging.rb +11 -8
- data/lib/puppet/util/metric.rb +9 -6
- data/lib/puppet/util/monkey_patches.rb +30 -67
- data/lib/puppet/util/network_device/cisco/device.rb +7 -7
- data/lib/puppet/util/network_device/cisco/interface.rb +1 -1
- data/lib/puppet/util/network_device/config.rb +6 -6
- data/lib/puppet/util/network_device/transport/ssh.rb +6 -6
- data/lib/puppet/util/network_device.rb +1 -1
- data/lib/puppet/util/plist.rb +4 -2
- data/lib/puppet/util/posix.rb +5 -5
- data/lib/puppet/util/profiler/wall_clock.rb +1 -1
- data/lib/puppet/util/provider_features.rb +1 -1
- data/lib/puppet/util/psych_support.rb +3 -11
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +1 -1
- data/lib/puppet/util/rdoc.rb +4 -4
- data/lib/puppet/util/reference.rb +5 -5
- data/lib/puppet/util/resource_template.rb +1 -1
- data/lib/puppet/util/retry_action.rb +2 -2
- data/lib/puppet/util/selinux.rb +54 -12
- data/lib/puppet/util/splayer.rb +1 -1
- data/lib/puppet/util/storage.rb +5 -5
- data/lib/puppet/util/suidmanager.rb +4 -4
- data/lib/puppet/util/symbolic_file_mode.rb +9 -9
- data/lib/puppet/util/tag_set.rb +1 -4
- data/lib/puppet/util/tagging.rb +2 -2
- data/lib/puppet/util/windows/adsi.rb +14 -14
- data/lib/puppet/util/windows/api_types.rb +5 -2
- data/lib/puppet/util/windows/com.rb +4 -4
- data/lib/puppet/util/windows/error.rb +2 -2
- data/lib/puppet/util/windows/eventlog.rb +192 -0
- data/lib/puppet/util/windows/file.rb +4 -4
- data/lib/puppet/util/windows/principal.rb +6 -5
- data/lib/puppet/util/windows/process.rb +5 -5
- data/lib/puppet/util/windows/registry.rb +11 -11
- data/lib/puppet/util/windows/root_certs.rb +1 -1
- data/lib/puppet/util/windows/security.rb +14 -14
- data/lib/puppet/util/windows/sid.rb +6 -6
- data/lib/puppet/util/windows/taskscheduler.rb +62 -62
- data/lib/puppet/util/windows/user.rb +6 -6
- data/lib/puppet/util/windows.rb +2 -0
- data/lib/puppet/util.rb +138 -14
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/gem_version.rb +1 -1
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/version.rb +122 -114
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/version_range.rb +678 -342
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet.rb +2 -10
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet.rb +47 -33
- data/locales/config.yaml +1 -1
- data/locales/puppet.pot +7931 -29
- data/man/man5/puppet.conf.5 +0 -22
- data/spec/fixtures/unit/data_providers/environments/production/modules/abc/metadata.json +9 -0
- data/spec/fixtures/unit/data_providers/environments/production/modules/xyz/metadata.json +9 -0
- data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/abc/metadata.json +9 -0
- data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bad_data/metadata.json +9 -0
- data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bca/metadata.json +9 -0
- data/spec/integration/application/apply_spec.rb +29 -22
- data/spec/integration/configurer_spec.rb +1 -1
- data/spec/integration/defaults_spec.rb +2 -2
- data/spec/integration/faces/documentation_spec.rb +2 -2
- data/spec/integration/indirector/file_content/file_server_spec.rb +1 -0
- data/spec/integration/indirector/file_metadata/file_server_spec.rb +1 -0
- data/spec/integration/parser/catalog_spec.rb +1 -1
- data/spec/integration/parser/class_spec.rb +6 -6
- data/spec/integration/parser/compiler_spec.rb +184 -142
- data/spec/integration/parser/dynamic_scoping_spec.rb +0 -1
- data/spec/integration/parser/pcore_resource_spec.rb +15 -0
- data/spec/integration/parser/scope_spec.rb +53 -4
- data/spec/integration/resource/catalog_spec.rb +0 -4
- data/spec/integration/resource/type_collection_spec.rb +6 -0
- data/spec/integration/transaction/report_spec.rb +2 -2
- data/spec/integration/transaction_spec.rb +2 -2
- data/spec/integration/type/file_spec.rb +29 -0
- data/spec/integration/type/package_spec.rb +7 -1
- data/spec/lib/matchers/json.rb +3 -3
- data/spec/lib/puppet/face/1.0.0/huzzah.rb +1 -1
- data/spec/lib/puppet/face/basetest.rb +1 -1
- data/spec/lib/puppet/face/huzzah.rb +1 -1
- data/spec/lib/puppet/face/version_matching.rb +1 -1
- data/spec/lib/puppet/indirector_testing.rb +4 -0
- data/spec/lib/puppet_spec/character_encoding.rb +12 -0
- data/spec/lib/puppet_spec/compiler.rb +8 -1
- data/spec/lib/puppet_spec/modules.rb +2 -2
- data/spec/lib/puppet_spec/network.rb +10 -6
- data/spec/shared_contexts/types_setup.rb +52 -15
- data/spec/shared_examples/rhel_package_provider.rb +10 -11
- data/spec/spec_helper.rb +0 -11
- data/spec/unit/agent_spec.rb +12 -1
- data/spec/unit/application/agent_spec.rb +7 -0
- data/spec/unit/application/apply_spec.rb +28 -13
- data/spec/unit/application/describe_spec.rb +19 -0
- data/spec/unit/application/device_spec.rb +41 -2
- data/spec/unit/application/face_base_spec.rb +6 -6
- data/spec/unit/application/master_spec.rb +22 -6
- data/spec/unit/application/resource_spec.rb +39 -1
- data/spec/unit/application_spec.rb +0 -6
- data/spec/unit/capability_spec.rb +2 -6
- data/spec/unit/configurer/fact_handler_spec.rb +76 -20
- data/spec/unit/configurer/plugin_handler_spec.rb +13 -19
- data/spec/unit/configurer_spec.rb +36 -19
- data/spec/unit/defaults_spec.rb +0 -30
- data/spec/unit/etc_spec.rb +361 -153
- data/spec/unit/face/module/list_spec.rb +60 -0
- data/spec/unit/file_bucket/file_spec.rb +3 -3
- data/spec/unit/file_serving/http_metadata_spec.rb +1 -1
- data/spec/unit/file_serving/metadata_spec.rb +35 -9
- data/spec/unit/forge/forge_spec.rb +112 -0
- data/spec/unit/forge/repository_spec.rb +4 -4
- data/spec/unit/functions/annotate_spec.rb +175 -0
- data/spec/unit/functions/break_spec.rb +29 -1
- data/spec/unit/functions/call_spec.rb +77 -0
- data/spec/unit/functions/contain_spec.rb +1 -1
- data/spec/unit/functions/lookup_fixture_spec.rb +1 -6
- data/spec/unit/functions/lookup_spec.rb +208 -3
- data/spec/unit/functions/new_spec.rb +1 -1
- data/spec/unit/functions/unique_spec.rb +111 -0
- data/spec/unit/functions4_spec.rb +2 -43
- data/spec/unit/graph/simple_graph_spec.rb +58 -55
- data/spec/unit/indirector/catalog/compiler_spec.rb +213 -153
- data/spec/unit/indirector/catalog/json_spec.rb +50 -1
- data/spec/unit/indirector/facts/facter_spec.rb +1 -2
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +1 -1
- data/spec/unit/indirector/file_server_spec.rb +17 -2
- data/spec/unit/indirector/indirection_spec.rb +1 -36
- data/spec/unit/indirector/json_spec.rb +27 -6
- data/spec/unit/indirector/node/exec_spec.rb +12 -12
- data/spec/unit/indirector/node/ldap_spec.rb +29 -8
- data/spec/unit/indirector/node/plain_spec.rb +16 -6
- data/spec/unit/indirector/node/write_only_yaml_spec.rb +12 -0
- data/spec/unit/indirector/report/processor_spec.rb +2 -2
- data/spec/unit/indirector/report/rest_spec.rb +29 -3
- data/spec/unit/indirector/request_spec.rb +15 -4
- data/spec/unit/indirector/rest_spec.rb +57 -15
- data/spec/unit/interface/face_collection_spec.rb +7 -7
- data/spec/unit/module_spec.rb +10 -2
- data/spec/unit/module_tool/applications/installer_spec.rb +0 -1
- data/spec/unit/module_tool/applications/upgrader_spec.rb +0 -1
- data/spec/unit/module_tool/tar_spec.rb +16 -10
- data/spec/unit/network/format_handler_spec.rb +11 -11
- data/spec/unit/network/format_spec.rb +9 -0
- data/spec/unit/network/formats_spec.rb +322 -138
- data/spec/unit/network/http/api/indirected_routes_spec.rb +65 -55
- data/spec/unit/network/http/api/master/v3/environment_spec.rb +128 -2
- data/spec/unit/network/http/api/master/v3_spec.rb +1 -1
- data/spec/unit/network/http/api_spec.rb +1 -1
- data/spec/unit/network/http/compression_spec.rb +105 -88
- data/spec/unit/network/http/error_spec.rb +1 -2
- data/spec/unit/network/http/handler_spec.rb +8 -12
- data/spec/unit/network/http/rack/rest_spec.rb +3 -3
- data/spec/unit/network/http/request_spec.rb +110 -0
- data/spec/unit/network/http/response_spec.rb +108 -0
- data/spec/unit/node/facts_spec.rb +13 -13
- data/spec/unit/node_spec.rb +33 -10
- data/spec/unit/parameter_spec.rb +73 -5
- data/spec/unit/parser/compiler_spec.rb +1 -1
- data/spec/unit/parser/environment_compiler_spec.rb +0 -2
- data/spec/unit/parser/functions/create_resources_spec.rb +47 -6
- data/spec/unit/parser/resource_spec.rb +86 -24
- data/spec/unit/parser/scope_spec.rb +10 -79
- data/spec/unit/pops/benchmark_spec.rb +8 -26
- data/spec/unit/pops/containment_spec.rb +0 -26
- data/spec/unit/pops/evaluator/access_ops_spec.rb +103 -103
- data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +59 -6
- data/spec/unit/pops/evaluator/basic_expressions_spec.rb +5 -5
- data/spec/unit/pops/evaluator/comparison_ops_spec.rb +26 -26
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +59 -7
- data/spec/unit/pops/evaluator/evaluator_rspec_helper.rb +7 -7
- data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +36 -1
- data/spec/unit/pops/evaluator/string_interpolation_spec.rb +10 -10
- data/spec/unit/pops/evaluator/variables_spec.rb +1 -1
- data/spec/unit/pops/factory_rspec_helper.rb +0 -4
- data/spec/unit/pops/factory_spec.rb +83 -83
- data/spec/unit/pops/loaders/loaders_spec.rb +209 -79
- data/spec/unit/pops/loaders/static_loader_spec.rb +2 -6
- data/spec/unit/pops/lookup/interpolation_spec.rb +50 -10
- data/spec/unit/pops/lookup/lookup_spec.rb +32 -0
- data/spec/unit/pops/model/model_spec.rb +10 -10
- data/spec/unit/pops/parser/epp_parser_spec.rb +1 -1
- data/spec/unit/pops/parser/lexer2_spec.rb +32 -29
- data/spec/unit/pops/parser/{source_pos_adapter_spec.rb → locator_spec.rb} +9 -11
- data/spec/unit/pops/parser/parse_application_spec.rb +0 -3
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +4 -4
- data/spec/unit/pops/parser/parse_capabilities_spec.rb +0 -3
- data/spec/unit/pops/parser/parse_containers_spec.rb +17 -19
- data/spec/unit/pops/parser/parse_site_spec.rb +0 -3
- data/spec/unit/pops/parser/parser_spec.rb +8 -10
- data/spec/unit/pops/resource/resource_type_impl_spec.rb +1 -3
- data/spec/unit/pops/serialization/serialization_spec.rb +117 -5
- data/spec/unit/pops/serialization/to_from_hr_spec.rb +494 -0
- data/spec/unit/pops/time/timestamp_spec.rb +13 -0
- data/spec/unit/pops/types/iterable_spec.rb +1 -1
- data/spec/unit/pops/types/p_object_type_spec.rb +100 -14
- data/spec/unit/pops/types/p_sem_ver_type_spec.rb +12 -17
- data/spec/unit/pops/types/p_timestamp_type_spec.rb +8 -8
- data/spec/unit/pops/types/p_type_set_type_spec.rb +4 -12
- data/spec/unit/pops/types/ruby_generator_spec.rb +57 -20
- data/spec/unit/pops/types/string_converter_spec.rb +119 -16
- data/spec/unit/pops/types/type_acceptor_spec.rb +2 -2
- data/spec/unit/pops/types/type_calculator_spec.rb +211 -87
- data/spec/unit/pops/types/type_factory_spec.rb +9 -9
- data/spec/unit/pops/types/type_formatter_spec.rb +32 -19
- data/spec/unit/pops/types/type_parser_spec.rb +6 -6
- data/spec/unit/pops/types/types_spec.rb +53 -2
- data/spec/unit/pops/validator/validator_spec.rb +53 -61
- data/spec/unit/pops/visitor_spec.rb +1 -1
- data/spec/unit/property/list_spec.rb +2 -2
- data/spec/unit/provider/augeas/augeas_spec.rb +1 -1
- data/spec/unit/provider/nameservice/directoryservice_spec.rb +2 -0
- data/spec/unit/provider/nameservice_spec.rb +113 -3
- data/spec/unit/provider/package/portage_spec.rb +103 -17
- data/spec/unit/provider/package/rpm_spec.rb +14 -1
- data/spec/unit/provider/user/directoryservice_spec.rb +7 -7
- data/spec/unit/provider/user/useradd_spec.rb +13 -0
- data/spec/unit/puppet_spec.rb +2 -3
- data/spec/unit/relationship_spec.rb +15 -36
- data/spec/unit/reports/http_spec.rb +11 -8
- data/spec/unit/resource/catalog_spec.rb +81 -53
- data/spec/unit/resource/status_spec.rb +114 -103
- data/spec/unit/resource/type_collection_spec.rb +5 -5
- data/spec/unit/resource/type_spec.rb +4 -71
- data/spec/unit/resource_spec.rb +30 -34
- data/spec/unit/settings_spec.rb +4 -2
- data/spec/unit/ssl/host_spec.rb +34 -34
- data/spec/unit/status_spec.rb +7 -7
- data/spec/unit/transaction/event_spec.rb +18 -15
- data/spec/unit/transaction/report_spec.rb +100 -62
- data/spec/unit/transaction/resource_harness_spec.rb +3 -3
- data/spec/unit/transaction_spec.rb +53 -8
- data/spec/unit/type/file/group_spec.rb +2 -2
- data/spec/unit/type/file/mode_spec.rb +9 -9
- data/spec/unit/type/file/owner_spec.rb +2 -2
- data/spec/unit/type/file/selinux_spec.rb +2 -0
- data/spec/unit/type/file/source_spec.rb +13 -0
- data/spec/unit/type/file_spec.rb +46 -0
- data/spec/unit/type/ssh_authorized_key_spec.rb +2 -2
- data/spec/unit/type/user_spec.rb +2 -4
- data/spec/unit/util/at_fork_spec.rb +150 -0
- data/spec/unit/util/character_encoding_spec.rb +193 -52
- data/spec/unit/util/execution_spec.rb +31 -2
- data/spec/unit/util/log/destinations_spec.rb +5 -6
- data/spec/unit/util/log_spec.rb +62 -17
- data/spec/unit/util/metric_spec.rb +9 -2
- data/spec/unit/util/monkey_patches_spec.rb +6 -188
- data/spec/unit/util/run_mode_spec.rb +17 -10
- data/spec/unit/util/tag_set_spec.rb +2 -2
- data/spec/unit/util/tagging_spec.rb +55 -0
- data/spec/unit/util/windows/eventlog_spec.rb +123 -0
- data/spec/unit/util_spec.rb +237 -2
- data/tasks/benchmark.rake +3 -3
- data/tasks/cfpropertylist.rake +1 -1
- data/tasks/generate_ast_model.rake +78 -0
- metadata +3386 -3635
- checksums.yaml +0 -7
- data/bin/extlookup2hiera +0 -56
- data/ext/emacs/puppet-mode-init.el +0 -6
- data/ext/emacs/puppet-mode.el +0 -433
- data/ext/vim/README +0 -3
- data/ext/vim/ftdetect/puppet.vim +0 -2
- data/ext/vim/ftplugin/puppet.vim +0 -94
- data/ext/vim/indent/puppet.vim +0 -76
- data/ext/vim/syntax/puppet.vim +0 -115
- data/lib/puppet/application/file.rb +0 -4
- data/lib/puppet/application/inspect.rb +0 -182
- data/lib/puppet/application/resource_type.rb +0 -7
- data/lib/puppet/data_providers/data_adapter.rb +0 -37
- data/lib/puppet/data_providers/data_function_support.rb +0 -32
- data/lib/puppet/data_providers/function_env_data_provider.rb +0 -26
- data/lib/puppet/data_providers/function_module_data_provider.rb +0 -24
- data/lib/puppet/data_providers/hiera_config.rb +0 -151
- data/lib/puppet/data_providers/hiera_env_data_provider.rb +0 -25
- data/lib/puppet/data_providers/hiera_interpolate.rb +0 -21
- data/lib/puppet/data_providers/hiera_module_data_provider.rb +0 -30
- data/lib/puppet/data_providers/hiera_support.rb +0 -42
- data/lib/puppet/data_providers/json_data_provider_factory.rb +0 -38
- data/lib/puppet/data_providers/yaml_data_provider_factory.rb +0 -40
- data/lib/puppet/data_providers.rb +0 -34
- data/lib/puppet/face/file/download.rb +0 -56
- data/lib/puppet/face/file/store.rb +0 -21
- data/lib/puppet/face/file.rb +0 -50
- data/lib/puppet/face/resource_type.rb +0 -84
- data/lib/puppet/feature/cfacter.rb +0 -15
- data/lib/puppet/feature/external_facts.rb +0 -5
- data/lib/puppet/indirector/catalog/static_compiler.rb +0 -232
- data/lib/puppet/indirector/resource_type/parser.rb +0 -108
- data/lib/puppet/indirector/resource_type/rest.rb +0 -7
- data/lib/puppet/indirector/resource_type.rb +0 -5
- data/lib/puppet/parser/yaml_trimmer.rb +0 -7
- data/lib/puppet/plugins/binding_schemes.rb +0 -140
- data/lib/puppet/plugins/data_providers/data_provider.rb +0 -406
- data/lib/puppet/plugins/data_providers/registry.rb +0 -51
- data/lib/puppet/plugins/data_providers.rb +0 -45
- data/lib/puppet/pops/binder/binder.rb +0 -398
- data/lib/puppet/pops/binder/binder_issues.rb +0 -124
- data/lib/puppet/pops/binder/bindings_checker.rb +0 -201
- data/lib/puppet/pops/binder/bindings_composer.rb +0 -181
- data/lib/puppet/pops/binder/bindings_factory.rb +0 -813
- data/lib/puppet/pops/binder/bindings_label_provider.rb +0 -45
- data/lib/puppet/pops/binder/bindings_loader.rb +0 -87
- data/lib/puppet/pops/binder/bindings_model.rb +0 -70
- data/lib/puppet/pops/binder/bindings_model_dumper.rb +0 -215
- data/lib/puppet/pops/binder/bindings_model_meta.rb +0 -215
- data/lib/puppet/pops/binder/bindings_validator_factory.rb +0 -28
- data/lib/puppet/pops/binder/config/binder_config.rb +0 -107
- data/lib/puppet/pops/binder/config/binder_config_checker.rb +0 -142
- data/lib/puppet/pops/binder/config/diagnostic_producer.rb +0 -36
- data/lib/puppet/pops/binder/config/issues.rb +0 -90
- data/lib/puppet/pops/binder/injector.rb +0 -771
- data/lib/puppet/pops/binder/injector_entry.rb +0 -57
- data/lib/puppet/pops/binder/key_factory.rb +0 -65
- data/lib/puppet/pops/binder/producers.rb +0 -831
- data/lib/puppet/pops/binder/scheme_handler/confdir_scheme.rb +0 -34
- data/lib/puppet/pops/binder/scheme_handler/module_scheme.rb +0 -143
- data/lib/puppet/pops/binder/scheme_handler/symbolic_scheme.rb +0 -53
- data/lib/puppet/pops/binder/system_bindings.rb +0 -60
- data/lib/puppet/pops/containment.rb +0 -104
- data/lib/puppet/pops/model/model.rb +0 -131
- data/lib/puppet/pops/model/model_meta.rb +0 -629
- data/lib/puppet/pops/serialization/rgen.rb +0 -152
- data/lib/puppet/vendor/load_rgen.rb +0 -2
- data/lib/puppet/vendor/rgen/CHANGELOG +0 -197
- data/lib/puppet/vendor/rgen/MIT-LICENSE +0 -20
- data/lib/puppet/vendor/rgen/PUPPET_README.md +0 -6
- data/lib/puppet/vendor/rgen/README.rdoc +0 -78
- data/lib/puppet/vendor/rgen/Rakefile +0 -41
- data/lib/puppet/vendor/rgen/TODO +0 -41
- data/lib/puppet/vendor/rgen/anounce.txt +0 -61
- data/lib/puppet/vendor/rgen/design_rationale.txt +0 -71
- data/lib/puppet/vendor/rgen/lib/ea_support/ea_support.rb +0 -54
- data/lib/puppet/vendor/rgen/lib/ea_support/id_store.rb +0 -32
- data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_metamodel.rb +0 -562
- data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_metamodel_ext.rb +0 -45
- data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_metamodel_generator.rb +0 -43
- data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_to_uml13.rb +0 -103
- data/lib/puppet/vendor/rgen/lib/ea_support/uml13_to_uml13_ea.rb +0 -89
- data/lib/puppet/vendor/rgen/lib/metamodels/uml13_metamodel.rb +0 -559
- data/lib/puppet/vendor/rgen/lib/metamodels/uml13_metamodel_ext.rb +0 -26
- data/lib/puppet/vendor/rgen/lib/mmgen/metamodel_generator.rb +0 -20
- data/lib/puppet/vendor/rgen/lib/mmgen/mm_ext/ecore_mmgen_ext.rb +0 -91
- data/lib/puppet/vendor/rgen/lib/mmgen/mmgen.rb +0 -28
- data/lib/puppet/vendor/rgen/lib/mmgen/templates/annotations.tpl +0 -37
- data/lib/puppet/vendor/rgen/lib/mmgen/templates/metamodel_generator.tpl +0 -172
- data/lib/puppet/vendor/rgen/lib/rgen/array_extensions.rb +0 -45
- data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore.rb +0 -218
- data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_builder_methods.rb +0 -81
- data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_ext.rb +0 -69
- data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_interface.rb +0 -47
- data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_to_ruby.rb +0 -167
- data/lib/puppet/vendor/rgen/lib/rgen/ecore/ruby_to_ecore.rb +0 -91
- data/lib/puppet/vendor/rgen/lib/rgen/environment.rb +0 -129
- data/lib/puppet/vendor/rgen/lib/rgen/fragment/dump_file_cache.rb +0 -63
- data/lib/puppet/vendor/rgen/lib/rgen/fragment/fragmented_model.rb +0 -140
- data/lib/puppet/vendor/rgen/lib/rgen/fragment/model_fragment.rb +0 -289
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/abstract_instantiator.rb +0 -66
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/abstract_xml_instantiator.rb +0 -66
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/default_xml_instantiator.rb +0 -117
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/ecore_xml_instantiator.rb +0 -169
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/json_instantiator.rb +0 -126
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/json_parser.rb +0 -331
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/json_parser.y +0 -94
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/nodebased_xml_instantiator.rb +0 -137
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/qualified_name_resolver.rb +0 -97
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/reference_resolver.rb +0 -128
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/resolution_helper.rb +0 -47
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/xmi11_instantiator.rb +0 -168
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/builder_extensions.rb +0 -556
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/builder_runtime.rb +0 -174
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/constant_order_helper.rb +0 -89
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/data_types.rb +0 -77
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/intermediate/annotation.rb +0 -30
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/intermediate/feature.rb +0 -168
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/mm_multiple.rb +0 -23
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/module_extension.rb +0 -42
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder.rb +0 -224
- data/lib/puppet/vendor/rgen/lib/rgen/model_builder/builder_context.rb +0 -334
- data/lib/puppet/vendor/rgen/lib/rgen/model_builder/model_serializer.rb +0 -225
- data/lib/puppet/vendor/rgen/lib/rgen/model_builder/reference_resolver.rb +0 -156
- data/lib/puppet/vendor/rgen/lib/rgen/model_builder.rb +0 -32
- data/lib/puppet/vendor/rgen/lib/rgen/serializer/json_serializer.rb +0 -121
- data/lib/puppet/vendor/rgen/lib/rgen/serializer/opposite_reference_filter.rb +0 -18
- data/lib/puppet/vendor/rgen/lib/rgen/serializer/qualified_name_provider.rb +0 -47
- data/lib/puppet/vendor/rgen/lib/rgen/serializer/xmi11_serializer.rb +0 -116
- data/lib/puppet/vendor/rgen/lib/rgen/serializer/xmi20_serializer.rb +0 -71
- data/lib/puppet/vendor/rgen/lib/rgen/serializer/xml_serializer.rb +0 -98
- data/lib/puppet/vendor/rgen/lib/rgen/template_language/directory_template_container.rb +0 -83
- data/lib/puppet/vendor/rgen/lib/rgen/template_language/output_handler.rb +0 -87
- data/lib/puppet/vendor/rgen/lib/rgen/template_language/template_container.rb +0 -234
- data/lib/puppet/vendor/rgen/lib/rgen/template_language/template_helper.rb +0 -26
- data/lib/puppet/vendor/rgen/lib/rgen/template_language.rb +0 -297
- data/lib/puppet/vendor/rgen/lib/rgen/transformer.rb +0 -475
- data/lib/puppet/vendor/rgen/lib/rgen/util/auto_class_creator.rb +0 -61
- data/lib/puppet/vendor/rgen/lib/rgen/util/cached_glob.rb +0 -67
- data/lib/puppet/vendor/rgen/lib/rgen/util/file_cache_map.rb +0 -124
- data/lib/puppet/vendor/rgen/lib/rgen/util/file_change_detector.rb +0 -84
- data/lib/puppet/vendor/rgen/lib/rgen/util/method_delegation.rb +0 -114
- data/lib/puppet/vendor/rgen/lib/rgen/util/model_comparator.rb +0 -68
- data/lib/puppet/vendor/rgen/lib/rgen/util/model_comparator_base.rb +0 -142
- data/lib/puppet/vendor/rgen/lib/rgen/util/model_dumper.rb +0 -29
- data/lib/puppet/vendor/rgen/lib/rgen/util/name_helper.rb +0 -42
- data/lib/puppet/vendor/rgen/lib/rgen/util/pattern_matcher.rb +0 -329
- data/lib/puppet/vendor/rgen/lib/transformers/ecore_to_uml13.rb +0 -79
- data/lib/puppet/vendor/rgen/lib/transformers/uml13_to_ecore.rb +0 -127
- data/lib/puppet/vendor/rgen/test/array_extensions_test.rb +0 -64
- data/lib/puppet/vendor/rgen/test/ea_instantiator_test.rb +0 -35
- data/lib/puppet/vendor/rgen/test/ea_serializer_test.rb +0 -23
- data/lib/puppet/vendor/rgen/test/ecore_self_test.rb +0 -54
- data/lib/puppet/vendor/rgen/test/environment_test.rb +0 -90
- data/lib/puppet/vendor/rgen/test/json_test.rb +0 -171
- data/lib/puppet/vendor/rgen/test/metamodel_builder_test.rb +0 -1482
- data/lib/puppet/vendor/rgen/test/metamodel_from_ecore_test.rb +0 -57
- data/lib/puppet/vendor/rgen/test/metamodel_order_test.rb +0 -131
- data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/TestModel.rb +0 -70
- data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/houseMetamodel.ecore +0 -42
- data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/houseMetamodel_from_ecore.rb +0 -44
- data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/using_builtin_types.ecore +0 -9
- data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test.rb +0 -98
- data/lib/puppet/vendor/rgen/test/method_delegation_test.rb +0 -178
- data/lib/puppet/vendor/rgen/test/model_builder/builder_context_test.rb +0 -59
- data/lib/puppet/vendor/rgen/test/model_builder/builder_test.rb +0 -242
- data/lib/puppet/vendor/rgen/test/model_builder/ecore_original.rb +0 -163
- data/lib/puppet/vendor/rgen/test/model_builder/ecore_original_regenerated.rb +0 -163
- data/lib/puppet/vendor/rgen/test/model_builder/reference_resolver_test.rb +0 -156
- data/lib/puppet/vendor/rgen/test/model_builder/serializer_test.rb +0 -94
- data/lib/puppet/vendor/rgen/test/model_builder/statemachine_metamodel.rb +0 -42
- data/lib/puppet/vendor/rgen/test/model_builder/test_model/statemachine1.rb +0 -23
- data/lib/puppet/vendor/rgen/test/model_builder_test.rb +0 -6
- data/lib/puppet/vendor/rgen/test/model_fragment_test.rb +0 -30
- data/lib/puppet/vendor/rgen/test/output_handler_test.rb +0 -58
- data/lib/puppet/vendor/rgen/test/qualified_name_provider_test.rb +0 -48
- data/lib/puppet/vendor/rgen/test/qualified_name_resolver_test.rb +0 -102
- data/lib/puppet/vendor/rgen/test/reference_resolver_test.rb +0 -117
- data/lib/puppet/vendor/rgen/test/rgen_test.rb +0 -26
- data/lib/puppet/vendor/rgen/test/template_language_test/expected_result1.txt +0 -29
- data/lib/puppet/vendor/rgen/test/template_language_test/expected_result2.txt +0 -9
- data/lib/puppet/vendor/rgen/test/template_language_test/expected_result3.txt +0 -4
- data/lib/puppet/vendor/rgen/test/template_language_test/indentStringTestDefaultIndent.out +0 -1
- data/lib/puppet/vendor/rgen/test/template_language_test/indentStringTestTabIndent.out +0 -1
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/callback_indent_test/a.tpl +0 -12
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/callback_indent_test/b.tpl +0 -5
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/code/array.tpl +0 -11
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/content/author.tpl +0 -7
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/content/chapter.tpl +0 -5
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/define_local_test/local.tpl +0 -8
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/define_local_test/test.tpl +0 -8
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/evaluate_test/test.tpl +0 -7
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/indent_string_test.tpl +0 -12
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/index/c/cmod.tpl +0 -1
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/index/chapter.tpl +0 -3
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_backslash_r_test.tpl +0 -5
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/no_indent.tpl +0 -3
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/sub1/no_indent.tpl +0 -3
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/test.tpl +0 -24
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/test2.tpl +0 -13
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/test3.tpl +0 -10
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/null_context_test.tpl +0 -17
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/root.tpl +0 -31
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/template_resolution_test/sub1/sub1.tpl +0 -3
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/template_resolution_test/sub1.tpl +0 -9
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/template_resolution_test/test.tpl +0 -4
- data/lib/puppet/vendor/rgen/test/template_language_test/testout.txt +0 -29
- data/lib/puppet/vendor/rgen/test/template_language_test.rb +0 -163
- data/lib/puppet/vendor/rgen/test/testmodel/class_model_checker.rb +0 -119
- data/lib/puppet/vendor/rgen/test/testmodel/ea_testmodel.eap +0 -0
- data/lib/puppet/vendor/rgen/test/testmodel/ea_testmodel.xml +0 -1029
- data/lib/puppet/vendor/rgen/test/testmodel/ea_testmodel_partial.xml +0 -317
- data/lib/puppet/vendor/rgen/test/testmodel/ecore_model_checker.rb +0 -101
- data/lib/puppet/vendor/rgen/test/testmodel/manual_testmodel.xml +0 -22
- data/lib/puppet/vendor/rgen/test/testmodel/object_model_checker.rb +0 -67
- data/lib/puppet/vendor/rgen/test/transformer_test.rb +0 -254
- data/lib/puppet/vendor/rgen/test/util/file_cache_map_test.rb +0 -99
- data/lib/puppet/vendor/rgen/test/util/pattern_matcher_test.rb +0 -97
- data/lib/puppet/vendor/rgen/test/util_test.rb +0 -5
- data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_ecore_model_checker.rb +0 -94
- data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_ecore_instantiator.rb +0 -53
- data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_metamodel.rb +0 -49
- data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_to_ecore.rb +0 -75
- data/lib/puppet/vendor/rgen/test/xml_instantiator_test.rb +0 -160
- data/lib/puppet/vendor/rgen_patch.rb +0 -132
- data/lib/semver.rb +0 -146
- data/man/man8/extlookup2hiera.8 +0 -10
- data/man/man8/puppet-file.8 +0 -189
- data/man/man8/puppet-resource_type.8 +0 -188
- data/spec/fixtures/unit/data_providers/environments/production/modules/abc/lib/puppet/bindings/abc/default.rb +0 -9
- data/spec/fixtures/unit/data_providers/environments/production/modules/xyz/lib/puppet/bindings/xyz/default.rb +0 -9
- data/spec/fixtures/unit/data_providers/environments/sample/environment.conf +0 -2
- data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/hiera.yaml +0 -5
- data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/lib/puppet/bindings/backend/default.rb +0 -9
- data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/lib/puppet_x/backend/special_data_provider_factory.rb +0 -23
- data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/manifests/init.pp +0 -5
- data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/metadata.json +0 -9
- data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet/bindings/dataprovider/default.rb +0 -54
- data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_env_data.rb +0 -33
- data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_module_data.rb +0 -33
- data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/manifests/init.pp +0 -5
- data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/abc/lib/puppet/bindings/abc/default.rb +0 -9
- data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bad_data/lib/puppet/bindings/bad_data/default.rb +0 -9
- data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bca/lib/puppet/bindings/bca/default.rb +0 -9
- data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/metawcp/lib/puppet/bindings/metawcp/default.rb +0 -10
- data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/metawcp/lib/puppet_x/thallgren/sample_module_data.rb +0 -23
- data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/metawcp/manifests/init.pp +0 -3
- data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/metawcp/metadata.json +0 -9
- data/spec/unit/application/inspect_spec.rb +0 -305
- data/spec/unit/data_providers/custom_data_provider_spec.rb +0 -50
- data/spec/unit/face/file_spec.rb +0 -14
- data/spec/unit/indirector/catalog/static_compiler_spec.rb +0 -255
- data/spec/unit/indirector/resource_type/parser_spec.rb +0 -259
- data/spec/unit/indirector/resource_type/rest_spec.rb +0 -14
- data/spec/unit/pops/binder/binder_spec.rb +0 -43
- data/spec/unit/pops/binder/bindings_checker_spec.rb +0 -155
- data/spec/unit/pops/binder/bindings_composer_spec.rb +0 -64
- data/spec/unit/pops/binder/bindings_validator_factory_spec.rb +0 -18
- data/spec/unit/pops/binder/config/binder_config_spec.rb +0 -42
- data/spec/unit/pops/binder/injector_spec.rb +0 -768
- data/spec/unit/pops/parser/rgen_sanitycheck_spec.rb +0 -23
- data/spec/unit/pops/serialization/rgen_spec.rb +0 -88
- data/spec/unit/semver_spec.rb +0 -546
- /data/lib/puppet/vendor/semantic_puppet/{lib/semantic_puppet/locales → locales}/config.yaml +0 -0
|
@@ -109,8 +109,8 @@ class BaseLoader < Loader
|
|
|
109
109
|
private
|
|
110
110
|
|
|
111
111
|
def fail_redefine(entry)
|
|
112
|
-
origin_info = entry.origin ? "Originally set
|
|
113
|
-
raise ArgumentError, "Attempt to redefine entity '
|
|
112
|
+
origin_info = entry.origin ? _("Originally set %{original}.") % { original: origin_label(entry.origin) } : _("Set at unknown location")
|
|
113
|
+
raise ArgumentError, _("Attempt to redefine entity '%{name}'. %{origin_info}") % { name: entry.typed_name, origin_info: origin_info }
|
|
114
114
|
end
|
|
115
115
|
|
|
116
116
|
# TODO: Should not really be here?? - TODO: A Label provider ? semantics for the URI?
|
|
@@ -27,7 +27,7 @@ module Puppet::Pops::Loader::GemSupport
|
|
|
27
27
|
#
|
|
28
28
|
def gem_dir_from_uri(uri)
|
|
29
29
|
unless spec = Gem::Specification.find_by_name(uri.hostname)
|
|
30
|
-
raise ArgumentError, "Gem not found
|
|
30
|
+
raise ArgumentError, _("Gem not found %{uri}") % { uri: uri }
|
|
31
31
|
end
|
|
32
32
|
# if path given append that, else append given subdir
|
|
33
33
|
if uri.path.empty?
|
|
@@ -42,7 +42,7 @@ module Puppet::Pops::Loader::GemSupport
|
|
|
42
42
|
#
|
|
43
43
|
def gem_dir_from_name(gem_name)
|
|
44
44
|
unless spec = Gem::Specification.find_by_name(gem_name)
|
|
45
|
-
raise ArgumentError, "Gem not found '
|
|
45
|
+
raise ArgumentError, _("Gem not found '%{gem_name}'") % { gem_name: gem_name }
|
|
46
46
|
end
|
|
47
47
|
spec.full_gem_path
|
|
48
48
|
end
|
|
@@ -21,8 +21,6 @@ module Loader
|
|
|
21
21
|
# @api private
|
|
22
22
|
#
|
|
23
23
|
module ModuleLoaders
|
|
24
|
-
ENVIRONMENT = 'environment'.freeze
|
|
25
|
-
|
|
26
24
|
def self.system_loader_from(parent_loader, loaders)
|
|
27
25
|
# Puppet system may be installed in a fixed location via RPM, installed as a Gem, via source etc.
|
|
28
26
|
# The only way to find this across the different ways puppet can be installed is
|
|
@@ -138,6 +136,21 @@ module ModuleLoaders
|
|
|
138
136
|
when :resource_type
|
|
139
137
|
when :resource_type_pp
|
|
140
138
|
when :type
|
|
139
|
+
if !global?
|
|
140
|
+
# Global name can only be the module typeset
|
|
141
|
+
return nil unless name_parts[0] == module_name
|
|
142
|
+
|
|
143
|
+
origin, smart_path = find_existing_path(init_typeset_name)
|
|
144
|
+
return nil unless smart_path
|
|
145
|
+
|
|
146
|
+
value = smart_path.instantiator.create(self, typed_name, origin, get_contents(origin))
|
|
147
|
+
if value.is_a?(Types::PTypeSetType)
|
|
148
|
+
# cache the entry and return it
|
|
149
|
+
return set_entry(typed_name, value, origin)
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
raise ArgumentError,"The code loaded from #{origin} does not define the TypeSet '#{module_name.capitalize}'"
|
|
153
|
+
end
|
|
141
154
|
else
|
|
142
155
|
# anything else cannot possibly be in this module
|
|
143
156
|
# TODO: should not be allowed anyway... may have to revisit this decision
|
|
@@ -148,17 +161,31 @@ module ModuleLoaders
|
|
|
148
161
|
# Get the paths that actually exist in this module (they are lazily processed once and cached).
|
|
149
162
|
# The result is an array (that may be empty).
|
|
150
163
|
# Find the file to instantiate, and instantiate the entity if file is found
|
|
151
|
-
origin =
|
|
152
|
-
if
|
|
153
|
-
origin = sp.effective_path(typed_name, global? ? 0 : 1)
|
|
154
|
-
existing_path(origin)
|
|
155
|
-
end)
|
|
164
|
+
origin, smart_path = find_existing_path(typed_name)
|
|
165
|
+
if smart_path
|
|
156
166
|
value = smart_path.instantiator.create(self, typed_name, origin, get_contents(origin))
|
|
157
167
|
# cache the entry and return it
|
|
158
|
-
set_entry(typed_name, value, origin)
|
|
159
|
-
|
|
160
|
-
|
|
168
|
+
return set_entry(typed_name, value, origin)
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
return nil unless typed_name.type == :type && typed_name.qualified?
|
|
172
|
+
|
|
173
|
+
# Search for TypeSet using parent name
|
|
174
|
+
ts_name = typed_name.parent
|
|
175
|
+
while ts_name
|
|
176
|
+
# Do not traverse parents here. This search must be confined to this loader
|
|
177
|
+
tse = get_entry(ts_name)
|
|
178
|
+
tse = find(ts_name) if tse.nil? || tse.value.nil?
|
|
179
|
+
if tse && (ts = tse.value).is_a?(Types::PTypeSetType)
|
|
180
|
+
# The TypeSet might be unresolved at this point. If so, it must be resolved using
|
|
181
|
+
# this loader. That in turn, adds all contained types to this loader.
|
|
182
|
+
ts.resolve(Types::TypeParser.singleton, self)
|
|
183
|
+
te = get_entry(typed_name)
|
|
184
|
+
return te unless te.nil?
|
|
185
|
+
end
|
|
186
|
+
ts_name = ts_name.parent
|
|
161
187
|
end
|
|
188
|
+
nil
|
|
162
189
|
end
|
|
163
190
|
|
|
164
191
|
# Abstract method that subclasses override that checks if it is meaningful to search using a generic smart path.
|
|
@@ -221,6 +248,28 @@ module ModuleLoaders
|
|
|
221
248
|
# that can only by called by puppet runtime - if so, it acts as the private loader directly.
|
|
222
249
|
@private_loader ||= (global? ? self : @loaders.private_loader_for_module(module_name))
|
|
223
250
|
end
|
|
251
|
+
|
|
252
|
+
private
|
|
253
|
+
|
|
254
|
+
# @return [TypedName] the fake typed name that maps to the init_typeset path for this module
|
|
255
|
+
def init_typeset_name
|
|
256
|
+
@init_typeset_name ||= TypedName.new(:type, "#{module_name}::init_typeset")
|
|
257
|
+
end
|
|
258
|
+
|
|
259
|
+
# Find an existing path for the given `typed_name`. Return `nil` if no such path is found
|
|
260
|
+
# @param typed_name [TypedName] the `typed_name` to find a path for
|
|
261
|
+
# @return [Array,nil] `nil`or a two element array an effective path `String` and the `SmartPath` that produced the effective path.
|
|
262
|
+
def find_existing_path(typed_name)
|
|
263
|
+
is_global = global?
|
|
264
|
+
smart_paths.effective_paths(typed_name.type).each do |sp|
|
|
265
|
+
origin = sp.effective_path(typed_name, is_global ? 0 : 1)
|
|
266
|
+
unless origin.nil?
|
|
267
|
+
existing = existing_path(origin)
|
|
268
|
+
return [origin, sp] unless existing.nil?
|
|
269
|
+
end
|
|
270
|
+
end
|
|
271
|
+
nil
|
|
272
|
+
end
|
|
224
273
|
end
|
|
225
274
|
|
|
226
275
|
# @api private
|
|
@@ -2,15 +2,10 @@ module Puppet::Pops::Loader
|
|
|
2
2
|
|
|
3
3
|
# A PredefinedLoader is a loader that is manually populated with loaded elements
|
|
4
4
|
# before being used. It never loads anything on its own.
|
|
5
|
-
# When searching for a type, it must exist or an error is raised
|
|
6
5
|
#
|
|
7
6
|
class PredefinedLoader < BaseLoader
|
|
8
7
|
def find(typed_name)
|
|
9
|
-
|
|
10
|
-
raise Puppet::Pops::Loaders::LoaderError, "Cannot load undefined type '#{typed_name.name.capitalize}'"
|
|
11
|
-
else
|
|
12
|
-
nil
|
|
13
|
-
end
|
|
8
|
+
nil
|
|
14
9
|
end
|
|
15
10
|
|
|
16
11
|
def to_s()
|
|
@@ -20,26 +20,26 @@ class PuppetFunctionInstantiator
|
|
|
20
20
|
# parse and validate
|
|
21
21
|
result = parser.parse_string(pp_code_string, source_ref)
|
|
22
22
|
# Only one function is allowed (and no other definitions)
|
|
23
|
-
case result.
|
|
23
|
+
case result.definitions.size
|
|
24
24
|
when 0
|
|
25
|
-
raise ArgumentError, "The code loaded from
|
|
25
|
+
raise ArgumentError, _("The code loaded from %{source_ref} does not define the function '%{func_name}' - it is empty.") % { source_ref: source_ref, func_name: typed_name.name }
|
|
26
26
|
when 1
|
|
27
27
|
# ok
|
|
28
28
|
else
|
|
29
|
-
raise ArgumentError, "The code loaded from
|
|
29
|
+
raise ArgumentError, _("The code loaded from %{source_ref} must contain only the function '%{type_name}' - it has additional definitions.") % { source_ref: source_ref, type_name: typed_name.name }
|
|
30
30
|
end
|
|
31
|
-
the_function_definition = result.
|
|
31
|
+
the_function_definition = result.definitions[0]
|
|
32
32
|
|
|
33
33
|
unless the_function_definition.is_a?(Model::FunctionDefinition)
|
|
34
|
-
raise ArgumentError, "The code loaded from
|
|
34
|
+
raise ArgumentError, _("The code loaded from %{source_ref} does not define the function '%{type_name}' - no function found.") % { source_ref: source_ref, type_name: typed_name.name }
|
|
35
35
|
end
|
|
36
36
|
unless the_function_definition.name == typed_name.name
|
|
37
37
|
expected = typed_name.name
|
|
38
38
|
actual = the_function_definition.name
|
|
39
|
-
raise ArgumentError, "The code loaded from
|
|
39
|
+
raise ArgumentError, _("The code loaded from %{source_ref} produced function with the wrong name, expected %{expected}, actual %{actual}") % { source_ref: source_ref, expected: expected, actual: actual }
|
|
40
40
|
end
|
|
41
|
-
unless result.
|
|
42
|
-
raise ArgumentError, "The code loaded from
|
|
41
|
+
unless result.body == the_function_definition
|
|
42
|
+
raise ArgumentError, _("The code loaded from %{source} contains additional logic - can only contain the function %{name}") % { source: source_ref, name: typed_name.name }
|
|
43
43
|
end
|
|
44
44
|
|
|
45
45
|
# Adapt the function definition with loader - this is used from logic contained in it body to find the
|
|
@@ -18,8 +18,7 @@ class PuppetResourceTypeImplInstantiator
|
|
|
18
18
|
parser = Parser::EvaluatingParser.new()
|
|
19
19
|
|
|
20
20
|
# parse and validate
|
|
21
|
-
|
|
22
|
-
model = result.model
|
|
21
|
+
model = parser.parse_string(pp_code_string, source_ref)
|
|
23
22
|
statements = if model.is_a?(Model::Program)
|
|
24
23
|
if model.body.is_a?(Model::BlockExpression)
|
|
25
24
|
statements = model.body.statements
|
|
@@ -31,10 +30,10 @@ class PuppetResourceTypeImplInstantiator
|
|
|
31
30
|
end
|
|
32
31
|
statements = statements.reject { |s| s.is_a?(Model::Nop) }
|
|
33
32
|
if statements.empty?
|
|
34
|
-
raise ArgumentError, "The code loaded from
|
|
33
|
+
raise ArgumentError, _("The code loaded from %{source_ref} does not create the resource type '%{type_name}' - it is empty") % { source_ref: source_ref, type_name: typed_name.name }
|
|
35
34
|
end
|
|
36
35
|
|
|
37
|
-
rname = Resource::ResourceTypeImpl.
|
|
36
|
+
rname = Resource::ResourceTypeImpl._pcore_type.name
|
|
38
37
|
unless statements.find do |s|
|
|
39
38
|
if s.is_a?(Model::CallMethodExpression)
|
|
40
39
|
functor_expr = s.functor_expr
|
|
@@ -42,30 +41,30 @@ class PuppetResourceTypeImplInstantiator
|
|
|
42
41
|
functor_expr.left_expr.is_a?(Model::QualifiedReference) &&
|
|
43
42
|
functor_expr.left_expr.cased_value == rname &&
|
|
44
43
|
functor_expr.right_expr.is_a?(Model::QualifiedName) &&
|
|
45
|
-
functor_expr.right_expr.value == 'new'
|
|
44
|
+
functor_expr.right_expr.value == _('new')
|
|
46
45
|
else
|
|
47
46
|
false
|
|
48
47
|
end
|
|
49
48
|
end
|
|
50
|
-
raise ArgumentError, "The code loaded from
|
|
49
|
+
raise ArgumentError, _("The code loaded from %{source_ref} does not create the resource type '%{type_name}' - no call to %{rname}.new found.") % { source_ref: source_ref, type_name: typed_name.name, rname: rname }
|
|
51
50
|
end
|
|
52
51
|
|
|
53
52
|
unless statements.size == 1
|
|
54
|
-
raise ArgumentError, "The code loaded from
|
|
53
|
+
raise ArgumentError, _("The code loaded from %{source_ref} must contain only the creation of resource type '%{type_name}' - it has additional logic.") % { source_ref: source_ref, type_name: typed_name.name }
|
|
55
54
|
end
|
|
56
55
|
|
|
57
56
|
closure_scope = Puppet.lookup(:global_scope) { {} }
|
|
58
|
-
resource_type_impl = parser.evaluate(closure_scope,
|
|
57
|
+
resource_type_impl = parser.evaluate(closure_scope, model)
|
|
59
58
|
|
|
60
59
|
unless resource_type_impl.is_a?(Puppet::Pops::Resource::ResourceTypeImpl)
|
|
61
60
|
got = resource_type.class
|
|
62
|
-
raise ArgumentError, "The code loaded from
|
|
61
|
+
raise ArgumentError, _("The code loaded from %{source_ref} does not define the resource type '%{type_name}' - got '%{got}'.") % { source_ref: source_ref, type_name: typed_name.name, got: got }
|
|
63
62
|
end
|
|
64
63
|
|
|
65
64
|
unless resource_type_impl.name == typed_name.name
|
|
66
65
|
expected = typed_name.name
|
|
67
66
|
actual = resource_type_impl.name
|
|
68
|
-
raise ArgumentError, "The code loaded from
|
|
67
|
+
raise ArgumentError, _("The code loaded from %{source_ref} produced resource type with the wrong name, expected '%{expected}', actual '%{actual}'") % { source_ref: source_ref, expected: expected, actual: actual }
|
|
69
68
|
end
|
|
70
69
|
|
|
71
70
|
# Adapt the resource type definition with loader - this is used from logic contained in it body to find the
|
|
@@ -14,17 +14,17 @@ class Puppet::Pops::Loader::RubyFunctionInstantiator
|
|
|
14
14
|
#
|
|
15
15
|
def self.create(loader, typed_name, source_ref, ruby_code_string)
|
|
16
16
|
unless ruby_code_string.is_a?(String) && ruby_code_string =~ /Puppet\:\:Functions\.create_function/
|
|
17
|
-
raise ArgumentError, "The code loaded from
|
|
17
|
+
raise ArgumentError, _("The code loaded from %{source_ref} does not seem to be a Puppet 4x API function - no create_function call.") % { source_ref: source_ref }
|
|
18
18
|
end
|
|
19
19
|
# make the private loader available in a binding to allow it to be passed on
|
|
20
20
|
loader_for_function = loader.private_loader
|
|
21
21
|
here = get_binding(loader_for_function)
|
|
22
22
|
created = eval(ruby_code_string, here, source_ref, 1)
|
|
23
23
|
unless created.is_a?(Class)
|
|
24
|
-
raise ArgumentError, "The code loaded from
|
|
24
|
+
raise ArgumentError, _("The code loaded from %{source_ref} did not produce a Function class when evaluated. Got '%{klass}'") % { source_ref: source_ref, klass: created.class }
|
|
25
25
|
end
|
|
26
26
|
unless created.name.to_s == typed_name.name()
|
|
27
|
-
raise ArgumentError, "The code loaded from
|
|
27
|
+
raise ArgumentError, _("The code loaded from %{source_ref} produced mis-matched name, expected '%{type_name}', got %{created_name}") % { source_ref: source_ref, type_name: typed_name.name, created_name: created.name }
|
|
28
28
|
end
|
|
29
29
|
# create the function instance - it needs closure (scope), and loader (i.e. where it should start searching for things
|
|
30
30
|
# when calling functions etc.
|
|
@@ -36,6 +36,7 @@ class StaticLoader < Loader
|
|
|
36
36
|
Nagios_serviceextinfo
|
|
37
37
|
Nagios_servicegroup
|
|
38
38
|
Nagios_timeperiod
|
|
39
|
+
Node
|
|
39
40
|
Notify
|
|
40
41
|
Package
|
|
41
42
|
Resources
|
|
@@ -60,11 +61,22 @@ class StaticLoader < Loader
|
|
|
60
61
|
|
|
61
62
|
BUILTIN_TYPE_NAMES_LC = Set.new(BUILTIN_TYPE_NAMES.map { |n| n.downcase }).freeze
|
|
62
63
|
|
|
64
|
+
BUILTIN_ALIASES = {
|
|
65
|
+
'Data' => 'Variant[ScalarData,Undef,Hash[String,Data],Array[Data]]',
|
|
66
|
+
'RichDataKey' => 'Variant[String,Numeric]',
|
|
67
|
+
'RichData' => 'Variant[Scalar,SemVerRange,Binary,Sensitive,Type,TypeSet,Undef,Hash[RichDataKey,RichData],Array[RichData]]',
|
|
68
|
+
|
|
69
|
+
# Backward compatible aliases.
|
|
70
|
+
'Puppet::LookupKey' => 'RichDataKey',
|
|
71
|
+
'Puppet::LookupValue' => 'RichData'
|
|
72
|
+
}.freeze
|
|
73
|
+
|
|
63
74
|
attr_reader :loaded
|
|
64
75
|
def initialize
|
|
65
76
|
@loaded = {}
|
|
66
|
-
create_built_in_types
|
|
67
|
-
create_resource_type_references
|
|
77
|
+
create_built_in_types
|
|
78
|
+
create_resource_type_references
|
|
79
|
+
register_aliases
|
|
68
80
|
end
|
|
69
81
|
|
|
70
82
|
def load_typed(typed_name)
|
|
@@ -75,6 +87,10 @@ class StaticLoader < Loader
|
|
|
75
87
|
load_constant(typed_name)
|
|
76
88
|
end
|
|
77
89
|
|
|
90
|
+
def set_entry(typed_name, value, origin = nil)
|
|
91
|
+
@loaded[typed_name] = Loader::NamedEntry.new(typed_name, value, origin)
|
|
92
|
+
end
|
|
93
|
+
|
|
78
94
|
def find(name)
|
|
79
95
|
# There is nothing to search for, everything this loader knows about is already available
|
|
80
96
|
nil
|
|
@@ -88,7 +104,7 @@ class StaticLoader < Loader
|
|
|
88
104
|
"(StaticLoader)"
|
|
89
105
|
end
|
|
90
106
|
|
|
91
|
-
def loaded_entry(typed_name,
|
|
107
|
+
def loaded_entry(typed_name, check_dependencies = false)
|
|
92
108
|
@loaded[typed_name]
|
|
93
109
|
end
|
|
94
110
|
|
|
@@ -102,8 +118,7 @@ class StaticLoader < Loader
|
|
|
102
118
|
origin_uri = URI("puppet:Puppet-Type-System/Static-Loader")
|
|
103
119
|
type_map = Puppet::Pops::Types::TypeParser.type_map
|
|
104
120
|
type_map.each do |name, type|
|
|
105
|
-
|
|
106
|
-
@loaded[ typed_name ] = NamedEntry.new(typed_name, type, origin_uri)#__FILE__)
|
|
121
|
+
set_entry(TypedName.new(:type, name), type, origin_uri)
|
|
107
122
|
end
|
|
108
123
|
end
|
|
109
124
|
|
|
@@ -112,68 +127,22 @@ class StaticLoader < Loader
|
|
|
112
127
|
# We are also not interested in their definition only that they exist.
|
|
113
128
|
# These types are in all environments.
|
|
114
129
|
#
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
Component
|
|
118
|
-
Computer
|
|
119
|
-
Cron
|
|
120
|
-
Exec
|
|
121
|
-
File
|
|
122
|
-
Filebucket
|
|
123
|
-
Group
|
|
124
|
-
Host
|
|
125
|
-
Interface
|
|
126
|
-
K5login
|
|
127
|
-
Macauthorization
|
|
128
|
-
Mailalias
|
|
129
|
-
Maillist
|
|
130
|
-
Mcx
|
|
131
|
-
Mount
|
|
132
|
-
Nagios_command
|
|
133
|
-
Nagios_contact
|
|
134
|
-
Nagios_contactgroup
|
|
135
|
-
Nagios_host
|
|
136
|
-
Nagios_hostdependency
|
|
137
|
-
Nagios_hostescalation
|
|
138
|
-
Nagios_hostgroup
|
|
139
|
-
Nagios_hostextinfo
|
|
140
|
-
Nagios_service
|
|
141
|
-
Nagios_servicedependency
|
|
142
|
-
Nagios_serviceescalation
|
|
143
|
-
Nagios_serviceextinfo
|
|
144
|
-
Nagios_servicegroup
|
|
145
|
-
Nagios_timeperiod
|
|
146
|
-
Notify
|
|
147
|
-
Package
|
|
148
|
-
Resources
|
|
149
|
-
Router
|
|
150
|
-
Schedule
|
|
151
|
-
Scheduled_task
|
|
152
|
-
Selboolean
|
|
153
|
-
Selmodule
|
|
154
|
-
Service
|
|
155
|
-
Ssh_authorized_key
|
|
156
|
-
Sshkey
|
|
157
|
-
Stage
|
|
158
|
-
Tidy
|
|
159
|
-
User
|
|
160
|
-
Vlan
|
|
161
|
-
Whit
|
|
162
|
-
Yumrepo
|
|
163
|
-
Zfs
|
|
164
|
-
Zone
|
|
165
|
-
Zpool
|
|
166
|
-
}.each { |name| create_resource_type_reference(name) }
|
|
130
|
+
BUILTIN_TYPE_NAMES.each { |name| create_resource_type_reference(name) }
|
|
131
|
+
end
|
|
167
132
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
133
|
+
def add_type(name, type)
|
|
134
|
+
set_entry(TypedName.new(:type, name), type)
|
|
135
|
+
type
|
|
171
136
|
end
|
|
172
137
|
|
|
173
138
|
def create_resource_type_reference(name)
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
139
|
+
add_type(name, Types::TypeFactory.resource(name))
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
def register_aliases
|
|
143
|
+
aliases = BUILTIN_ALIASES.map { |name, string| add_type(name, Types::PTypeAliasType.new(name, Types::TypeFactory.type_reference(string), nil)) }
|
|
144
|
+
parser = Types::TypeParser.singleton
|
|
145
|
+
aliases.each { |type| type.resolve(parser, self) }
|
|
177
146
|
end
|
|
178
147
|
end
|
|
179
148
|
end
|
|
@@ -6,35 +6,35 @@ class TypeDefinitionInstantiator
|
|
|
6
6
|
def self.create(loader, typed_name, source_ref, pp_code_string)
|
|
7
7
|
# parse and validate
|
|
8
8
|
parser = Parser::EvaluatingParser.new()
|
|
9
|
-
model = parser.parse_string(pp_code_string, source_ref)
|
|
9
|
+
model = parser.parse_string(pp_code_string, source_ref)
|
|
10
10
|
# Only one type is allowed (and no other definitions)
|
|
11
11
|
|
|
12
12
|
name = typed_name.name
|
|
13
13
|
case model.definitions.size
|
|
14
14
|
when 0
|
|
15
|
-
raise ArgumentError, "The code loaded from
|
|
15
|
+
raise ArgumentError, _("The code loaded from %{source_ref} does not define the type '%{name}' - it is empty.") % { source_ref: source_ref, name: name }
|
|
16
16
|
when 1
|
|
17
17
|
# ok
|
|
18
18
|
else
|
|
19
19
|
raise ArgumentError,
|
|
20
|
-
"The code loaded from
|
|
20
|
+
_("The code loaded from %{source_ref} must contain only the type '%{name}' - it has additional definitions.") % { source_ref: source_ref, name: name }
|
|
21
21
|
end
|
|
22
22
|
type_definition = model.definitions[0]
|
|
23
23
|
|
|
24
24
|
unless type_definition.is_a?(Model::TypeAlias) || type_definition.is_a?(Model::TypeDefinition)
|
|
25
25
|
raise ArgumentError,
|
|
26
|
-
"The code loaded from
|
|
26
|
+
_("The code loaded from %{source_ref} does not define the type '%{name}' - no type alias or type definition found.") % { source_ref: source_ref, name: name }
|
|
27
27
|
end
|
|
28
28
|
|
|
29
29
|
actual_name = type_definition.name
|
|
30
30
|
unless name == actual_name.downcase
|
|
31
31
|
raise ArgumentError,
|
|
32
|
-
"The code loaded from
|
|
32
|
+
_("The code loaded from %{source_ref} produced type with the wrong name, expected '%{name}', actual '%{actual_name}'") % { source_ref: source_ref, name: name, actual_name: actual_name }
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
unless model.body == type_definition
|
|
36
36
|
raise ArgumentError,
|
|
37
|
-
"The code loaded from
|
|
37
|
+
_("The code loaded from %{source_ref} contains additional logic - can only contain the type '%{name}'") % { source_ref: source_ref, name: name }
|
|
38
38
|
end
|
|
39
39
|
|
|
40
40
|
# Adapt the type definition with loader - this is used from logic contained in its body to find the
|
|
@@ -46,12 +46,12 @@ class TypeDefinitionInstantiator
|
|
|
46
46
|
end
|
|
47
47
|
|
|
48
48
|
def self.create_from_model(type_definition, loader)
|
|
49
|
-
typed_name = TypedName.new(:type, type_definition.name
|
|
49
|
+
typed_name = TypedName.new(:type, type_definition.name)
|
|
50
50
|
type = create_runtime_type(type_definition)
|
|
51
51
|
loader.set_entry(
|
|
52
52
|
typed_name,
|
|
53
53
|
type,
|
|
54
|
-
|
|
54
|
+
type_definition.locator.to_uri(type_definition))
|
|
55
55
|
type
|
|
56
56
|
end
|
|
57
57
|
|
|
@@ -12,6 +12,7 @@ class TypedName
|
|
|
12
12
|
attr_reader :compound_name
|
|
13
13
|
|
|
14
14
|
def initialize(type, name, name_authority = Pcore::RUNTIME_NAME_AUTHORITY)
|
|
15
|
+
name = name.downcase
|
|
15
16
|
@type = type
|
|
16
17
|
@name_authority = name_authority
|
|
17
18
|
# relativize the name (get rid of leading ::), and make the split string available
|
|
@@ -36,6 +37,11 @@ class TypedName
|
|
|
36
37
|
|
|
37
38
|
alias eql? ==
|
|
38
39
|
|
|
40
|
+
# @return the parent of this instance, or nil if this instance is not qualified
|
|
41
|
+
def parent
|
|
42
|
+
@name_parts.size > 1 ? self.class.new(@type, @name_parts[0...-1].join(DOUBLE_COLON), @name_authority) : nil
|
|
43
|
+
end
|
|
44
|
+
|
|
39
45
|
def qualified?
|
|
40
46
|
@name_parts.size > 1
|
|
41
47
|
end
|
data/lib/puppet/pops/loaders.rb
CHANGED
|
@@ -29,7 +29,7 @@ class Loaders
|
|
|
29
29
|
|
|
30
30
|
def initialize(environment, for_agent)
|
|
31
31
|
# Protect against environment havoc
|
|
32
|
-
raise ArgumentError.new("Attempt to redefine already initialized loaders for environment") unless environment.loaders.nil?
|
|
32
|
+
raise ArgumentError.new(_("Attempt to redefine already initialized loaders for environment")) unless environment.loaders.nil?
|
|
33
33
|
environment.loaders = self
|
|
34
34
|
@environment = environment
|
|
35
35
|
@loaders_by_name = {}
|
|
@@ -67,6 +67,8 @@ class Loaders
|
|
|
67
67
|
#
|
|
68
68
|
def self.clear
|
|
69
69
|
@@static_loader = nil
|
|
70
|
+
Model.class_variable_set(:@@pcore_ast_initialized, false)
|
|
71
|
+
Model.register_pcore_types
|
|
70
72
|
end
|
|
71
73
|
|
|
72
74
|
# Calls {#loaders} to obtain the {{Loaders}} instance and then uses it to find the appropriate loader
|
|
@@ -91,12 +93,20 @@ class Loaders
|
|
|
91
93
|
end
|
|
92
94
|
|
|
93
95
|
def register_implementations(obj_classes, name_authority)
|
|
94
|
-
loader = @private_environment_loader
|
|
96
|
+
self.class.register_implementations_with_loader(obj_classes, name_authority, loader = @private_environment_loader)
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
# Register implementations using the global static loader
|
|
100
|
+
def self.register_static_implementations(obj_classes)
|
|
101
|
+
register_implementations_with_loader(obj_classes, Pcore::RUNTIME_NAME_AUTHORITY, static_loader)
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
def self.register_implementations_with_loader(obj_classes, name_authority, loader)
|
|
95
105
|
types = obj_classes.map do |obj_class|
|
|
96
|
-
type = obj_class.
|
|
97
|
-
typed_name = Loader::TypedName.new(:type, type.name
|
|
106
|
+
type = obj_class._pcore_type
|
|
107
|
+
typed_name = Loader::TypedName.new(:type, type.name, name_authority)
|
|
98
108
|
entry = loader.loaded_entry(typed_name)
|
|
99
|
-
loader.set_entry(typed_name, type
|
|
109
|
+
loader.set_entry(typed_name, type) if entry.nil? || entry.value.nil?
|
|
100
110
|
type
|
|
101
111
|
end
|
|
102
112
|
# Resolve lazy so that all types can cross reference each other
|
|
@@ -119,7 +129,7 @@ class Loaders
|
|
|
119
129
|
|
|
120
130
|
name = name.to_s
|
|
121
131
|
caps_name = Types::TypeFormatter.singleton.capitalize_segments(name)
|
|
122
|
-
typed_name = Loader::TypedName.new(:type, name
|
|
132
|
+
typed_name = Loader::TypedName.new(:type, name)
|
|
123
133
|
rt3_loader.set_entry(typed_name, Types::PResourceType.new(caps_name), origin)
|
|
124
134
|
nil
|
|
125
135
|
end
|
|
@@ -157,7 +167,7 @@ class Loaders
|
|
|
157
167
|
if loader.nil?
|
|
158
168
|
# Unable to find the module private loader. Try resolving the module
|
|
159
169
|
loader = private_loader_for_module(loader_name[0..-9]) if loader_name.end_with?(' private')
|
|
160
|
-
raise Puppet::ParseError, "Unable to find loader named '
|
|
170
|
+
raise Puppet::ParseError, _("Unable to find loader named '%{loader_name}'") % { loader_name: loader_name } if loader.nil?
|
|
161
171
|
end
|
|
162
172
|
loader
|
|
163
173
|
end
|
|
@@ -170,15 +180,9 @@ class Loaders
|
|
|
170
180
|
# @raise [Puppet::ParseError] if no loader can be found
|
|
171
181
|
# @api private
|
|
172
182
|
def find_loader(module_name)
|
|
173
|
-
if module_name.nil? ||
|
|
174
|
-
#
|
|
175
|
-
|
|
176
|
-
# would see the definition.
|
|
177
|
-
#
|
|
178
|
-
# Use the private loader, this definition may see the environment's dependencies (currently, all modules)
|
|
179
|
-
loader = private_environment_loader()
|
|
180
|
-
raise Puppet::ParseError, 'Internal Error: did not find public loader' if loader.nil?
|
|
181
|
-
loader
|
|
183
|
+
if module_name.nil? || EMPTY_STRING == module_name
|
|
184
|
+
# Use the public environment loader
|
|
185
|
+
public_environment_loader
|
|
182
186
|
else
|
|
183
187
|
# TODO : Later check if definition is private, and then add it to private_loader_for_module
|
|
184
188
|
#
|
|
@@ -248,8 +252,6 @@ class Loaders
|
|
|
248
252
|
# available modules. (3x is everyone sees everything).
|
|
249
253
|
# Puppet binder currently reads confdir/bindings - that is bad, it should be using the new environment support.
|
|
250
254
|
|
|
251
|
-
# The environment is not a namespace, so give it a nil "module_name"
|
|
252
|
-
loader_name = "environment:#{environment.name}"
|
|
253
255
|
# env_conf is setup from the environment_dir value passed into Puppet::Environments::Directories.new
|
|
254
256
|
env_conf = Puppet.lookup(:environments).get_conf(environment.name)
|
|
255
257
|
env_path = env_conf.nil? || !env_conf.is_a?(Puppet::Settings::EnvironmentConf) ? nil : env_conf.path_to_env
|
|
@@ -259,7 +261,7 @@ class Loaders
|
|
|
259
261
|
|
|
260
262
|
if env_path.nil?
|
|
261
263
|
# Not a real directory environment, cannot work as a module TODO: Drop when legacy env are dropped?
|
|
262
|
-
loader = add_loader_by_name(Loader::SimpleEnvironmentLoader.new(@runtime3_type_loader,
|
|
264
|
+
loader = add_loader_by_name(Loader::SimpleEnvironmentLoader.new(@runtime3_type_loader, Loader::ENVIRONMENT))
|
|
263
265
|
else
|
|
264
266
|
# View the environment as a module to allow loading from it - this module is always called 'environment'
|
|
265
267
|
loader = Loader::ModuleLoaders.environment_loader_from(@runtime3_type_loader, self, env_path)
|
|
@@ -273,7 +275,7 @@ class Loaders
|
|
|
273
275
|
# Code in the environment gets to see all modules (since there is no metadata for the environment)
|
|
274
276
|
# but since this is not given to the module loaders, they can not load global code (since they can not
|
|
275
277
|
# have prior knowledge about this
|
|
276
|
-
loader = add_loader_by_name(Loader::DependencyLoader.new(loader,
|
|
278
|
+
loader = add_loader_by_name(Loader::DependencyLoader.new(loader, Loader::ENVIRONMENT_PRIVATE, @module_resolver.all_module_loaders()))
|
|
277
279
|
|
|
278
280
|
# The module loader gets the private loader via a lazy operation to look up the module's private loader.
|
|
279
281
|
# This does not work for an environment since it is not resolved the same way.
|
|
@@ -11,24 +11,9 @@ module DataProvider
|
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
def self.register_types(loader)
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
# The Pcore type for all values and sub-values in a data hash. The
|
|
19
|
-
# type is self-recursive to enforce the same constraint on values contained
|
|
20
|
-
# in arrays and hashes
|
|
21
|
-
'Puppet::LookupValue' => <<-PUPPET
|
|
22
|
-
Variant[
|
|
23
|
-
Scalar,
|
|
24
|
-
Undef,
|
|
25
|
-
Sensitive,
|
|
26
|
-
Type,
|
|
27
|
-
Hash[Puppet::LookupKey, Puppet::LookupValue],
|
|
28
|
-
Array[Puppet::LookupValue]
|
|
29
|
-
]
|
|
30
|
-
PUPPET
|
|
31
|
-
}, Pcore::RUNTIME_NAME_AUTHORITY, loader)
|
|
14
|
+
tp = Types::TypeParser.singleton
|
|
15
|
+
@key_type = tp.parse('RichDataKey', loader)
|
|
16
|
+
@value_type = tp.parse('RichData', loader)
|
|
32
17
|
end
|
|
33
18
|
|
|
34
19
|
# Performs a lookup with an endless recursion check.
|
|
@@ -17,7 +17,7 @@ class EnvironmentDataProvider < ConfiguredDataProvider
|
|
|
17
17
|
if Puppet[:strict] == :error
|
|
18
18
|
config.fail(Issues::HIERA_VERSION_3_NOT_GLOBAL, :where => 'environment')
|
|
19
19
|
else
|
|
20
|
-
Puppet.warn_once(:hiera_v3_at_env_root, config.config_path, 'hiera.yaml version 3 found at the environment root was ignored')
|
|
20
|
+
Puppet.warn_once(:hiera_v3_at_env_root, config.config_path, _('hiera.yaml version 3 found at the environment root was ignored'), config.config_path)
|
|
21
21
|
end
|
|
22
22
|
nil
|
|
23
23
|
end
|