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
|
@@ -32,11 +32,8 @@ EMPTY_STRING = Puppet::Pops::EMPTY_STRING
|
|
|
32
32
|
|
|
33
33
|
# The Types model is a model of Puppet Language types.
|
|
34
34
|
#
|
|
35
|
-
# The
|
|
36
|
-
#
|
|
37
|
-
# infer the type by simply looking at the inheritance hierarchy. The {TypeCalculator} should
|
|
38
|
-
# be used to answer questions about types. The {TypeFactory} should be used to create an instance
|
|
39
|
-
# of a type whenever one is needed.
|
|
35
|
+
# The {TypeCalculator} should be used to answer questions about types. The {TypeFactory} or {TypeParser} should be used
|
|
36
|
+
# to create an instance of a type whenever one is needed.
|
|
40
37
|
#
|
|
41
38
|
# The implementation of the Types model contains methods that are required for the type objects to behave as
|
|
42
39
|
# expected when comparing them and using them as keys in hashes. (No other logic is, or should be included directly in
|
|
@@ -44,13 +41,12 @@ EMPTY_STRING = Puppet::Pops::EMPTY_STRING
|
|
|
44
41
|
#
|
|
45
42
|
# @api public
|
|
46
43
|
#
|
|
47
|
-
# TODO: See PUP-2978 for possible performance optimization
|
|
48
44
|
class TypedModelObject < Object
|
|
49
45
|
include PuppetObject
|
|
50
46
|
include Visitable
|
|
51
47
|
include Adaptable
|
|
52
48
|
|
|
53
|
-
def self.
|
|
49
|
+
def self._pcore_type
|
|
54
50
|
@type
|
|
55
51
|
end
|
|
56
52
|
|
|
@@ -59,7 +55,10 @@ class TypedModelObject < Object
|
|
|
59
55
|
end
|
|
60
56
|
|
|
61
57
|
def self.register_ptypes(loader, ir)
|
|
62
|
-
types = [
|
|
58
|
+
types = [
|
|
59
|
+
Annotation.register_ptype(loader, ir),
|
|
60
|
+
RubyMethod.register_ptype(loader, ir)
|
|
61
|
+
]
|
|
63
62
|
Types.constants.each do |c|
|
|
64
63
|
cls = Types.const_get(c)
|
|
65
64
|
next unless cls.is_a?(Class) && cls < self
|
|
@@ -80,6 +79,11 @@ class PAnyType < TypedModelObject
|
|
|
80
79
|
@type = Pcore::create_object_type(loader, ir, self, 'Pcore::AnyType', 'Any', EMPTY_HASH)
|
|
81
80
|
end
|
|
82
81
|
|
|
82
|
+
def self.create(*args)
|
|
83
|
+
# NOTE! Important to use self::DEFAULT and not just DEFAULT since the latter yields PAnyType::DEFAULT
|
|
84
|
+
args.empty? ? self::DEFAULT : new(*args)
|
|
85
|
+
end
|
|
86
|
+
|
|
83
87
|
# Accept a visitor that will be sent the message `visit`, once with `self` as the
|
|
84
88
|
# argument. The visitor will then visit all types that this type contains.
|
|
85
89
|
#
|
|
@@ -320,6 +324,13 @@ class PAnyType < TypedModelObject
|
|
|
320
324
|
raise ArgumentError.new("Creation of new instance of type '#{instance.to_s}' is not supported")
|
|
321
325
|
end
|
|
322
326
|
|
|
327
|
+
# Answers the question if instances of this type can represent themselves as a string that
|
|
328
|
+
# can then be passed to the create method
|
|
329
|
+
#
|
|
330
|
+
# @return [Boolean] wether or not the instance has a canonical string representation
|
|
331
|
+
def roundtrip_with_string?
|
|
332
|
+
false
|
|
333
|
+
end
|
|
323
334
|
|
|
324
335
|
# The default instance of this type. Each type in the type system has this constant
|
|
325
336
|
# declared.
|
|
@@ -637,76 +648,66 @@ class PDefaultType < PAnyType
|
|
|
637
648
|
end
|
|
638
649
|
end
|
|
639
650
|
|
|
640
|
-
#
|
|
641
|
-
#
|
|
651
|
+
# Type that is a Scalar
|
|
642
652
|
# @api public
|
|
643
653
|
#
|
|
644
|
-
class
|
|
654
|
+
class PScalarType < PAnyType
|
|
645
655
|
def self.register_ptype(loader, ir)
|
|
646
656
|
create_ptype(loader, ir, 'AnyType')
|
|
647
657
|
end
|
|
648
658
|
|
|
649
|
-
def
|
|
650
|
-
|
|
659
|
+
def instance?(o, guard = nil)
|
|
660
|
+
if o.is_a?(String) || o.is_a?(Numeric) || o.is_a?(TrueClass) || o.is_a?(FalseClass) || o.is_a?(Regexp)
|
|
661
|
+
true
|
|
662
|
+
elsif o.instance_of?(Array) || o.instance_of?(Hash) || o.is_a?(PAnyType) || o.is_a?(NilClass)
|
|
663
|
+
false
|
|
664
|
+
else
|
|
665
|
+
assignable?(TypeCalculator.infer(o))
|
|
666
|
+
end
|
|
651
667
|
end
|
|
652
668
|
|
|
653
|
-
def
|
|
654
|
-
|
|
669
|
+
def roundtrip_with_string?
|
|
670
|
+
true
|
|
655
671
|
end
|
|
656
672
|
|
|
657
|
-
DEFAULT =
|
|
673
|
+
DEFAULT = PScalarType.new
|
|
658
674
|
|
|
659
675
|
protected
|
|
660
676
|
|
|
661
|
-
# Data is assignable by other Data and by Array[Data] and Hash[Scalar, Data]
|
|
662
677
|
# @api private
|
|
663
678
|
def _assignable?(o, guard)
|
|
664
|
-
|
|
665
|
-
case o
|
|
666
|
-
when Types::PDataType
|
|
667
|
-
true
|
|
668
|
-
when Types::PNotUndefType
|
|
669
|
-
assignable?(o.type || PUndefType::DEFAULT, guard)
|
|
670
|
-
else
|
|
671
|
-
PVariantType::DATA.assignable?(o, guard)
|
|
672
|
-
end
|
|
679
|
+
o.is_a?(PScalarType)
|
|
673
680
|
end
|
|
674
681
|
end
|
|
675
682
|
|
|
676
|
-
#
|
|
683
|
+
# Like Scalar but limited to Json Data.
|
|
677
684
|
# @api public
|
|
678
685
|
#
|
|
679
|
-
class
|
|
686
|
+
class PScalarDataType < PScalarType
|
|
680
687
|
def self.register_ptype(loader, ir)
|
|
681
|
-
create_ptype(loader, ir, '
|
|
688
|
+
create_ptype(loader, ir, 'ScalarType')
|
|
682
689
|
end
|
|
683
690
|
|
|
684
691
|
def instance?(o, guard = nil)
|
|
685
|
-
|
|
686
|
-
true
|
|
687
|
-
elsif o.is_a?(Array) || o.is_a?(Hash) || o.is_a?(PAnyType) || o.is_a?(NilClass)
|
|
688
|
-
false
|
|
689
|
-
else
|
|
690
|
-
assignable?(TypeCalculator.infer(o))
|
|
691
|
-
end
|
|
692
|
+
return o.is_a?(String) || o.is_a?(Integer) || o.is_a?(Float) || o.is_a?(TrueClass) || o.is_a?(FalseClass)
|
|
692
693
|
end
|
|
693
694
|
|
|
694
|
-
DEFAULT =
|
|
695
|
+
DEFAULT = PScalarDataType.new
|
|
695
696
|
|
|
696
697
|
protected
|
|
697
698
|
|
|
698
699
|
# @api private
|
|
699
700
|
def _assignable?(o, guard)
|
|
700
|
-
o.is_a?(
|
|
701
|
+
o.is_a?(PScalarDataType)
|
|
701
702
|
end
|
|
702
703
|
end
|
|
703
704
|
|
|
704
705
|
# A string type describing the set of strings having one of the given values
|
|
705
706
|
# @api public
|
|
706
707
|
#
|
|
707
|
-
class PEnumType <
|
|
708
|
+
class PEnumType < PScalarDataType
|
|
708
709
|
def self.register_ptype(loader, ir)
|
|
709
|
-
create_ptype(loader, ir, '
|
|
710
|
+
create_ptype(loader, ir, 'ScalarDataType', 'values' => PArrayType.new(PStringType::NON_EMPTY))
|
|
710
711
|
end
|
|
711
712
|
|
|
712
713
|
attr_reader :values
|
|
@@ -776,72 +777,11 @@ class PEnumType < PScalarType
|
|
|
776
777
|
end
|
|
777
778
|
end
|
|
778
779
|
|
|
779
|
-
# Abstract class that encapsulates behavior common to PNumericType and PAbstractTimeDataType
|
|
780
|
-
# @api public
|
|
781
|
-
class PAbstractRangeType < PScalarType
|
|
782
|
-
def initialize(from, to = Float::INFINITY)
|
|
783
|
-
from = -Float::INFINITY if from.nil? || from == :default
|
|
784
|
-
to = Float::INFINITY if to.nil? || to == :default
|
|
785
|
-
raise ArgumentError, "'from' must be less or equal to 'to'. Got (#{from}, #{to}" if from.is_a?(Numeric) && to.is_a?(Numeric) && from > to
|
|
786
|
-
@from = from
|
|
787
|
-
@to = to
|
|
788
|
-
end
|
|
789
|
-
|
|
790
|
-
# Checks if this numeric range intersects with another
|
|
791
|
-
#
|
|
792
|
-
# @param o [PNumericType] the range to compare with
|
|
793
|
-
# @return [Boolean] `true` if this range intersects with the other range
|
|
794
|
-
# @api public
|
|
795
|
-
def intersect?(o)
|
|
796
|
-
self.class == o.class && !(@to < o.numeric_from || o.numeric_to < @from)
|
|
797
|
-
end
|
|
798
|
-
|
|
799
|
-
# Returns the lower bound of the numeric range or `nil` if no lower bound is set.
|
|
800
|
-
# @return [Float,Integer]
|
|
801
|
-
def from
|
|
802
|
-
@from == -Float::INFINITY ? nil : @from
|
|
803
|
-
end
|
|
804
|
-
|
|
805
|
-
# Returns the upper bound of the numeric range or `nil` if no upper bound is set.
|
|
806
|
-
# @return [Float,Integer]
|
|
807
|
-
def to
|
|
808
|
-
@to == Float::INFINITY ? nil : @to
|
|
809
|
-
end
|
|
810
|
-
|
|
811
|
-
# Same as #from but will return `-Float::Infinity` instead of `nil` if no lower bound is set.
|
|
812
|
-
# @return [Float,Integer]
|
|
813
|
-
def numeric_from
|
|
814
|
-
@from
|
|
815
|
-
end
|
|
816
|
-
|
|
817
|
-
# Same as #to but will return `Float::Infinity` instead of `nil` if no lower bound is set.
|
|
818
|
-
# @return [Float,Integer]
|
|
819
|
-
def numeric_to
|
|
820
|
-
@to
|
|
821
|
-
end
|
|
822
|
-
|
|
823
|
-
def hash
|
|
824
|
-
@from.hash ^ @to.hash
|
|
825
|
-
end
|
|
826
|
-
|
|
827
|
-
def eql?(o)
|
|
828
|
-
self.class == o.class && @from == o.numeric_from && @to == o.numeric_to
|
|
829
|
-
end
|
|
830
|
-
|
|
831
|
-
def instance?(o, guard = nil)
|
|
832
|
-
o.is_a?(Numeric) && o >= @from && o <= @to
|
|
833
|
-
end
|
|
834
|
-
|
|
835
|
-
def unbounded?
|
|
836
|
-
@from == -Float::INFINITY && @to == Float::INFINITY
|
|
837
|
-
end
|
|
838
|
-
end
|
|
839
|
-
|
|
840
780
|
# @api public
|
|
841
781
|
#
|
|
842
|
-
class PNumericType <
|
|
782
|
+
class PNumericType < PScalarDataType
|
|
843
783
|
def self.register_ptype(loader, ir)
|
|
844
|
-
create_ptype(loader, ir, '
|
|
784
|
+
create_ptype(loader, ir, 'ScalarDataType',
|
|
845
785
|
'from' => { KEY_TYPE => POptionalType.new(PNumericType::DEFAULT), KEY_VALUE => nil },
|
|
846
786
|
'to' => { KEY_TYPE => POptionalType.new(PNumericType::DEFAULT), KEY_VALUE => nil }
|
|
847
787
|
)
|
|
@@ -906,6 +846,63 @@ class PNumericType < PAbstractRangeType
|
|
|
906
846
|
end
|
|
907
847
|
end
|
|
908
848
|
|
|
849
|
+
def initialize(from, to = Float::INFINITY)
|
|
850
|
+
from = -Float::INFINITY if from.nil? || from == :default
|
|
851
|
+
to = Float::INFINITY if to.nil? || to == :default
|
|
852
|
+
raise ArgumentError, "'from' must be less or equal to 'to'. Got (#{from}, #{to}" if from > to
|
|
853
|
+
@from = from
|
|
854
|
+
@to = to
|
|
855
|
+
end
|
|
856
|
+
|
|
857
|
+
# Checks if this numeric range intersects with another
|
|
858
|
+
#
|
|
859
|
+
# @param o [PNumericType] the range to compare with
|
|
860
|
+
# @return [Boolean] `true` if this range intersects with the other range
|
|
861
|
+
# @api public
|
|
862
|
+
def intersect?(o)
|
|
863
|
+
self.class == o.class && !(@to < o.numeric_from || o.numeric_to < @from)
|
|
864
|
+
end
|
|
865
|
+
|
|
866
|
+
# Returns the lower bound of the numeric range or `nil` if no lower bound is set.
|
|
867
|
+
# @return [Float,Integer]
|
|
868
|
+
def from
|
|
869
|
+
@from == -Float::INFINITY ? nil : @from
|
|
870
|
+
end
|
|
871
|
+
|
|
872
|
+
# Returns the upper bound of the numeric range or `nil` if no upper bound is set.
|
|
873
|
+
# @return [Float,Integer]
|
|
874
|
+
def to
|
|
875
|
+
@to == Float::INFINITY ? nil : @to
|
|
876
|
+
end
|
|
877
|
+
|
|
878
|
+
# Same as #from but will return `-Float::Infinity` instead of `nil` if no lower bound is set.
|
|
879
|
+
# @return [Float,Integer]
|
|
880
|
+
def numeric_from
|
|
881
|
+
@from
|
|
882
|
+
end
|
|
883
|
+
|
|
884
|
+
# Same as #to but will return `Float::Infinity` instead of `nil` if no lower bound is set.
|
|
885
|
+
# @return [Float,Integer]
|
|
886
|
+
def numeric_to
|
|
887
|
+
@to
|
|
888
|
+
end
|
|
889
|
+
|
|
890
|
+
def hash
|
|
891
|
+
@from.hash ^ @to.hash
|
|
892
|
+
end
|
|
893
|
+
|
|
894
|
+
def eql?(o)
|
|
895
|
+
self.class == o.class && @from == o.numeric_from && @to == o.numeric_to
|
|
896
|
+
end
|
|
897
|
+
|
|
898
|
+
def instance?(o, guard = nil)
|
|
899
|
+
o.is_a?(Numeric) && o >= @from && o <= @to
|
|
900
|
+
end
|
|
901
|
+
|
|
902
|
+
def unbounded?
|
|
903
|
+
@from == -Float::INFINITY && @to == Float::INFINITY
|
|
904
|
+
end
|
|
905
|
+
|
|
909
906
|
protected
|
|
910
907
|
|
|
911
908
|
# @api_private
|
|
@@ -1215,7 +1212,8 @@ class PCollectionType < PAnyType
|
|
|
1215
1212
|
end
|
|
1216
1213
|
|
|
1217
1214
|
def instance?(o, guard = nil)
|
|
1218
|
-
|
|
1215
|
+
# The inferred type of a class derived from Array or Hash is either Runtime or Object. It's not assignable to the Collection type.
|
|
1216
|
+
if o.instance_of?(Array) || o.instance_of?(Hash)
|
|
1219
1217
|
@size_type.nil? || @size_type.instance?(o.size)
|
|
1220
1218
|
else
|
|
1221
1219
|
false
|
|
@@ -1372,9 +1370,9 @@ end
|
|
|
1372
1370
|
|
|
1373
1371
|
# @api public
|
|
1374
1372
|
#
|
|
1375
|
-
class PStringType <
|
|
1373
|
+
class PStringType < PScalarDataType
|
|
1376
1374
|
def self.register_ptype(loader, ir)
|
|
1377
|
-
create_ptype(loader, ir, '
|
|
1375
|
+
create_ptype(loader, ir, 'ScalarDataType',
|
|
1378
1376
|
'size_type_or_value' => {
|
|
1379
1377
|
KEY_TYPE => POptionalType.new(PVariantType.new([PStringType::DEFAULT, PType.new(PIntegerType::DEFAULT)])),
|
|
1380
1378
|
KEY_VALUE => nil
|
|
@@ -1386,7 +1384,7 @@ class PStringType < PScalarType
|
|
|
1386
1384
|
def initialize(size_type_or_value, deprecated_multi_args = EMPTY_ARRAY)
|
|
1387
1385
|
unless deprecated_multi_args.empty?
|
|
1388
1386
|
if Puppet[:strict] != :off
|
|
1389
|
-
Puppet.warn_once(
|
|
1387
|
+
Puppet.warn_once('deprecations', "PStringType#initialize_multi_args", "Passing more than one argument to PStringType#initialize is deprecated")
|
|
1390
1388
|
end
|
|
1391
1389
|
size_type_or_value = deprecated_multi_args[0]
|
|
1392
1390
|
end
|
|
@@ -1439,7 +1437,7 @@ class PStringType < PScalarType
|
|
|
1439
1437
|
# @api private
|
|
1440
1438
|
def values
|
|
1441
1439
|
if Puppet[:strict] != :off
|
|
1442
|
-
Puppet.warn_once(
|
|
1440
|
+
Puppet.warn_once('deprecations', "PStringType#values", "Method PStringType#values is deprecated. Use #value instead")
|
|
1443
1441
|
end
|
|
1444
1442
|
@value.is_a?(String) ? [@value] : EMPTY_ARRAY
|
|
1445
1443
|
end
|
|
@@ -1555,6 +1553,22 @@ class PRegexpType < PScalarType
|
|
|
1555
1553
|
KEY_VALUE => nil
|
|
1556
1554
|
})
|
|
1557
1555
|
end
|
|
1556
|
+
|
|
1557
|
+
|
|
1558
|
+
# Returns a new function that produces a Regexp instance
|
|
1559
|
+
#
|
|
1560
|
+
def self.new_function(_, loader)
|
|
1561
|
+
@new_function ||= Puppet::Functions.create_loaded_function(:new_float, loader) do
|
|
1562
|
+
dispatch :from_string do
|
|
1563
|
+
param 'String', :pattern
|
|
1564
|
+
end
|
|
1565
|
+
|
|
1566
|
+
def from_string(pattern)
|
|
1567
|
+
Regexp.new(pattern)
|
|
1568
|
+
end
|
|
1569
|
+
end
|
|
1570
|
+
end
|
|
1571
|
+
|
|
1558
1572
|
attr_reader :pattern
|
|
1559
1573
|
|
|
1560
1574
|
def initialize(pattern)
|
|
@@ -1598,9 +1612,9 @@ end
|
|
|
1598
1612
|
#
|
|
1599
1613
|
# @api public
|
|
1600
1614
|
#
|
|
1601
|
-
class PPatternType <
|
|
1615
|
+
class PPatternType < PScalarDataType
|
|
1602
1616
|
def self.register_ptype(loader, ir)
|
|
1603
|
-
create_ptype(loader, ir, '
|
|
1617
|
+
create_ptype(loader, ir, 'ScalarDataType', 'patterns' => PArrayType.new(PRegexpType::DEFAULT))
|
|
1604
1618
|
end
|
|
1605
1619
|
|
|
1606
1620
|
attr_reader :patterns
|
|
@@ -1668,9 +1682,9 @@ end
|
|
|
1668
1682
|
|
|
1669
1683
|
# @api public
|
|
1670
1684
|
#
|
|
1671
|
-
class PBooleanType <
|
|
1685
|
+
class PBooleanType < PScalarDataType
|
|
1672
1686
|
def self.register_ptype(loader, ir)
|
|
1673
|
-
create_ptype(loader, ir, '
|
|
1687
|
+
create_ptype(loader, ir, 'ScalarDataType')
|
|
1674
1688
|
end
|
|
1675
1689
|
|
|
1676
1690
|
def instance?(o, guard = nil)
|
|
@@ -1778,6 +1792,14 @@ class PStructElement < TypedModelObject
|
|
|
1778
1792
|
def ==(o)
|
|
1779
1793
|
self.class == o.class && value_type == o.value_type && key_type == o.key_type
|
|
1780
1794
|
end
|
|
1795
|
+
|
|
1796
|
+
# Special boostrap method to overcome the hen and egg problem with the Object initializer that contains
|
|
1797
|
+
# types that are derived from Object (such as Annotation)
|
|
1798
|
+
#
|
|
1799
|
+
# @api private
|
|
1800
|
+
def replace_value_type(new_type)
|
|
1801
|
+
@value_type = new_type
|
|
1802
|
+
end
|
|
1781
1803
|
end
|
|
1782
1804
|
|
|
1783
1805
|
# @api public
|
|
@@ -1866,7 +1888,8 @@ class PStructType < PAnyType
|
|
|
1866
1888
|
end
|
|
1867
1889
|
|
|
1868
1890
|
def instance?(o, guard = nil)
|
|
1869
|
-
|
|
1891
|
+
# The inferred type of a class derived from Hash is either Runtime or Object. It's not assignable to the Struct type.
|
|
1892
|
+
return false unless o.instance_of?(Hash)
|
|
1870
1893
|
matched = 0
|
|
1871
1894
|
@elements.all? do |e|
|
|
1872
1895
|
key = e.name
|
|
@@ -2038,7 +2061,8 @@ class PTupleType < PAnyType
|
|
|
2038
2061
|
end
|
|
2039
2062
|
|
|
2040
2063
|
def instance?(o, guard = nil)
|
|
2041
|
-
|
|
2064
|
+
# The inferred type of a class derived from Array is either Runtime or Object. It's not assignable to the Tuple type.
|
|
2065
|
+
return false unless o.instance_of?(Array)
|
|
2042
2066
|
if @size_type
|
|
2043
2067
|
return false unless @size_type.instance?(o.size, guard)
|
|
2044
2068
|
else
|
|
@@ -2097,7 +2121,6 @@ class PTupleType < PAnyType
|
|
|
2097
2121
|
PArrayType.new_function(self, loader)
|
|
2098
2122
|
end
|
|
2099
2123
|
|
|
2100
|
-
DATA = PTupleType.new([PDataType::DEFAULT], PCollectionType::DEFAULT_SIZE)
|
|
2101
2124
|
DEFAULT = PTupleType.new(EMPTY_ARRAY)
|
|
2102
2125
|
|
|
2103
2126
|
protected
|
|
@@ -2307,7 +2330,7 @@ class PArrayType < PCollectionType
|
|
|
2307
2330
|
create_ptype(loader, ir, 'CollectionType',
|
|
2308
2331
|
'element_type' => {
|
|
2309
2332
|
KEY_TYPE => POptionalType.new(PType::DEFAULT),
|
|
2310
|
-
KEY_VALUE =>
|
|
2333
|
+
KEY_VALUE => PAnyType::DEFAULT
|
|
2311
2334
|
}
|
|
2312
2335
|
)
|
|
2313
2336
|
end
|
|
@@ -2319,13 +2342,13 @@ class PArrayType < PCollectionType
|
|
|
2319
2342
|
if !size_type.nil? && size_type.from == 0 && size_type.to == 0
|
|
2320
2343
|
@element_type = PUnitType::DEFAULT
|
|
2321
2344
|
else
|
|
2322
|
-
@element_type = element_type
|
|
2345
|
+
@element_type = element_type.nil? ? PAnyType::DEFAULT : element_type
|
|
2323
2346
|
end
|
|
2324
2347
|
end
|
|
2325
2348
|
|
|
2326
2349
|
def accept(visitor, guard)
|
|
2327
2350
|
super
|
|
2328
|
-
@element_type.accept(visitor, guard)
|
|
2351
|
+
@element_type.accept(visitor, guard)
|
|
2329
2352
|
end
|
|
2330
2353
|
|
|
2331
2354
|
# @api private
|
|
@@ -2337,9 +2360,7 @@ class PArrayType < PCollectionType
|
|
|
2337
2360
|
end
|
|
2338
2361
|
|
|
2339
2362
|
def generalize
|
|
2340
|
-
if
|
|
2341
|
-
self
|
|
2342
|
-
elsif @element_type.nil?
|
|
2363
|
+
if PAnyType::DEFAULT.eql?(@element_type)
|
|
2343
2364
|
DEFAULT
|
|
2344
2365
|
else
|
|
2345
2366
|
ge_type = @element_type.generalize
|
|
@@ -2356,9 +2377,7 @@ class PArrayType < PCollectionType
|
|
|
2356
2377
|
end
|
|
2357
2378
|
|
|
2358
2379
|
def normalize(guard = nil)
|
|
2359
|
-
if
|
|
2360
|
-
self
|
|
2361
|
-
elsif @element_type.nil?
|
|
2380
|
+
if PAnyType::DEFAULT.eql?(@element_type)
|
|
2362
2381
|
DEFAULT
|
|
2363
2382
|
else
|
|
2364
2383
|
ne_type = @element_type.normalize(guard)
|
|
@@ -2367,21 +2386,20 @@ class PArrayType < PCollectionType
|
|
|
2367
2386
|
end
|
|
2368
2387
|
|
|
2369
2388
|
def resolve(type_parser, loader)
|
|
2370
|
-
relement_type = @element_type
|
|
2371
|
-
relement_type = relement_type.resolve(type_parser, loader) unless relement_type.nil?
|
|
2389
|
+
relement_type = @element_type.resolve(type_parser, loader)
|
|
2372
2390
|
relement_type.equal?(@element_type) ? self : self.class.new(relement_type, @size_type)
|
|
2373
2391
|
end
|
|
2374
2392
|
|
|
2375
2393
|
def instance?(o, guard = nil)
|
|
2376
|
-
|
|
2377
|
-
|
|
2378
|
-
return false unless
|
|
2394
|
+
# The inferred type of a class derived from Array is either Runtime or Object. It's not assignable to the Array type.
|
|
2395
|
+
return false unless o.instance_of?(Array)
|
|
2396
|
+
return false unless o.all? {|element| @element_type.instance?(element, guard) }
|
|
2379
2397
|
size_t = size_type
|
|
2380
2398
|
size_t.nil? || size_t.instance?(o.size, guard)
|
|
2381
2399
|
end
|
|
2382
2400
|
|
|
2383
2401
|
def iterable_type(guard = nil)
|
|
2384
|
-
@element_type
|
|
2402
|
+
PAnyType::DEFAULT.eql?(@element_type) ? PIterableType::DEFAULT : PIterableType.new(@element_type)
|
|
2385
2403
|
end
|
|
2386
2404
|
|
|
2387
2405
|
# Returns a new function that produces an Array
|
|
@@ -2427,7 +2445,6 @@ class PArrayType < PCollectionType
|
|
|
2427
2445
|
end
|
|
2428
2446
|
end
|
|
2429
2447
|
|
|
2430
|
-
DATA = PArrayType.new(PDataType::DEFAULT, DEFAULT_SIZE)
|
|
2431
2448
|
DEFAULT = PArrayType.new(nil)
|
|
2432
2449
|
EMPTY = PArrayType.new(PUnitType::DEFAULT, ZERO_SIZE)
|
|
2433
2450
|
|
|
@@ -2436,12 +2453,7 @@ class PArrayType < PCollectionType
|
|
|
2436
2453
|
# Array is assignable if o is an Array and o's element type is assignable, or if o is a Tuple
|
|
2437
2454
|
# @api private
|
|
2438
2455
|
def _assignable?(o, guard)
|
|
2439
|
-
s_entry = element_type
|
|
2440
2456
|
if o.is_a?(PTupleType)
|
|
2441
|
-
# If s_entry is nil, this Array type has no opinion on element types. Therefore any
|
|
2442
|
-
# tuple can be assigned.
|
|
2443
|
-
return true if s_entry.nil?
|
|
2444
|
-
|
|
2445
2457
|
o_types = o.types
|
|
2446
2458
|
size_s = size_type || DEFAULT_SIZE
|
|
2447
2459
|
size_o = o.size_type
|
|
@@ -2449,9 +2461,9 @@ class PArrayType < PCollectionType
|
|
|
2449
2461
|
type_count = o_types.size
|
|
2450
2462
|
size_o = PIntegerType.new(type_count, type_count)
|
|
2451
2463
|
end
|
|
2452
|
-
size_s.assignable?(size_o) && o_types.all? { |ot|
|
|
2464
|
+
size_s.assignable?(size_o) && o_types.all? { |ot| @element_type.assignable?(ot, guard) }
|
|
2453
2465
|
elsif o.is_a?(PArrayType)
|
|
2454
|
-
super &&
|
|
2466
|
+
super && @element_type.assignable?(o.element_type, guard)
|
|
2455
2467
|
else
|
|
2456
2468
|
false
|
|
2457
2469
|
end
|
|
@@ -2466,11 +2478,11 @@ class PHashType < PCollectionType
|
|
|
2466
2478
|
create_ptype(loader, ir, 'CollectionType',
|
|
2467
2479
|
'key_type' => {
|
|
2468
2480
|
KEY_TYPE => POptionalType.new(PType::DEFAULT),
|
|
2469
|
-
KEY_VALUE =>
|
|
2481
|
+
KEY_VALUE => PAnyType::DEFAULT
|
|
2470
2482
|
},
|
|
2471
2483
|
'value_type' => {
|
|
2472
2484
|
KEY_TYPE => POptionalType.new(PType::DEFAULT),
|
|
2473
|
-
KEY_VALUE =>
|
|
2485
|
+
KEY_VALUE => PAnyType::DEFAULT
|
|
2474
2486
|
}
|
|
2475
2487
|
)
|
|
2476
2488
|
end
|
|
@@ -2483,45 +2495,43 @@ class PHashType < PCollectionType
|
|
|
2483
2495
|
@key_type = PUnitType::DEFAULT
|
|
2484
2496
|
@value_type = PUnitType::DEFAULT
|
|
2485
2497
|
else
|
|
2486
|
-
@key_type = key_type
|
|
2487
|
-
@value_type = value_type
|
|
2498
|
+
@key_type = key_type.nil? ? PAnyType::DEFAULT : key_type
|
|
2499
|
+
@value_type = value_type.nil? ? PAnyType::DEFAULT : value_type
|
|
2488
2500
|
end
|
|
2489
2501
|
end
|
|
2490
2502
|
|
|
2491
2503
|
def accept(visitor, guard)
|
|
2492
2504
|
super
|
|
2493
|
-
@key_type.accept(visitor, guard)
|
|
2494
|
-
@value_type.accept(visitor, guard)
|
|
2505
|
+
@key_type.accept(visitor, guard)
|
|
2506
|
+
@value_type.accept(visitor, guard)
|
|
2495
2507
|
end
|
|
2496
2508
|
|
|
2497
2509
|
def element_type
|
|
2498
2510
|
if Puppet[:strict] != :off
|
|
2499
|
-
Puppet.warn_once(
|
|
2511
|
+
Puppet.warn_once('deprecations', 'Puppet::Pops::Types::PHashType#element_type',
|
|
2500
2512
|
'Puppet::Pops::Types::PHashType#element_type is deprecated, use #value_type instead')
|
|
2501
2513
|
end
|
|
2502
2514
|
@value_type
|
|
2503
2515
|
end
|
|
2504
2516
|
|
|
2505
2517
|
def generalize
|
|
2506
|
-
if self == DEFAULT || self ==
|
|
2518
|
+
if self == DEFAULT || self == EMPTY
|
|
2507
2519
|
self
|
|
2508
2520
|
else
|
|
2509
2521
|
key_t = @key_type
|
|
2510
|
-
key_t = key_t.generalize
|
|
2522
|
+
key_t = key_t.generalize
|
|
2511
2523
|
value_t = @value_type
|
|
2512
|
-
value_t = value_t.generalize
|
|
2524
|
+
value_t = value_t.generalize
|
|
2513
2525
|
@size_type.nil? && @key_type.equal?(key_t) && @value_type.equal?(value_t) ? self : PHashType.new(key_t, value_t, nil)
|
|
2514
2526
|
end
|
|
2515
2527
|
end
|
|
2516
2528
|
|
|
2517
2529
|
def normalize(guard = nil)
|
|
2518
|
-
if self == DEFAULT || self ==
|
|
2530
|
+
if self == DEFAULT || self == EMPTY
|
|
2519
2531
|
self
|
|
2520
2532
|
else
|
|
2521
|
-
key_t = @key_type
|
|
2522
|
-
|
|
2523
|
-
value_t = @value_type
|
|
2524
|
-
value_t = value_t.normalize(guard) unless value_t.nil?
|
|
2533
|
+
key_t = @key_type.normalize(guard)
|
|
2534
|
+
value_t = @value_type.normalize(guard)
|
|
2525
2535
|
@size_type.nil? && @key_type.equal?(key_t) && @value_type.equal?(value_t) ? self : PHashType.new(key_t, value_t, @size_type)
|
|
2526
2536
|
end
|
|
2527
2537
|
end
|
|
@@ -2531,11 +2541,9 @@ class PHashType < PCollectionType
|
|
|
2531
2541
|
end
|
|
2532
2542
|
|
|
2533
2543
|
def instance?(o, guard = nil)
|
|
2534
|
-
|
|
2535
|
-
|
|
2536
|
-
|
|
2537
|
-
if (key_t.nil? || o.keys.all? {|key| key_t.instance?(key, guard) }) &&
|
|
2538
|
-
(value_t.nil? || o.values.all? {|value| value_t.instance?(value, guard) })
|
|
2544
|
+
# The inferred type of a class derived from Hash is either Runtime or Object. It's not assignable to the Hash type.
|
|
2545
|
+
return false unless o.instance_of?(Hash)
|
|
2546
|
+
if o.keys.all? {|key| @key_type.instance?(key, guard) } && o.values.all? {|value| @value_type.instance?(value, guard) }
|
|
2539
2547
|
size_t = size_type
|
|
2540
2548
|
size_t.nil? || size_t.instance?(o.size, guard)
|
|
2541
2549
|
else
|
|
@@ -2564,10 +2572,8 @@ class PHashType < PCollectionType
|
|
|
2564
2572
|
end
|
|
2565
2573
|
|
|
2566
2574
|
def resolve(type_parser, loader)
|
|
2567
|
-
rkey_type = @key_type
|
|
2568
|
-
|
|
2569
|
-
rvalue_type = @value_type
|
|
2570
|
-
rvalue_type = rvalue_type.resolve(type_parser, loader) unless rvalue_type.nil?
|
|
2575
|
+
rkey_type = @key_type.resolve(type_parser, loader)
|
|
2576
|
+
rvalue_type = @value_type.resolve(type_parser, loader)
|
|
2571
2577
|
rkey_type.equal?(@key_type) && rvalue_type.equal?(@value_type) ? self : self.class.new(rkey_type, rvalue_type, @size_type)
|
|
2572
2578
|
end
|
|
2573
2579
|
|
|
@@ -2621,7 +2627,6 @@ class PHashType < PCollectionType
|
|
|
2621
2627
|
DEFAULT = PHashType.new(nil, nil)
|
|
2622
2628
|
KEY_PAIR_TUPLE_SIZE = PIntegerType.new(2,2)
|
|
2623
2629
|
DEFAULT_KEY_PAIR_TUPLE = PTupleType.new([PUnitType::DEFAULT, PUnitType::DEFAULT], KEY_PAIR_TUPLE_SIZE)
|
|
2624
|
-
DATA = PHashType.new(PScalarType::DEFAULT, PDataType::DEFAULT, DEFAULT_SIZE)
|
|
2625
2630
|
EMPTY = PHashType.new(PUnitType::DEFAULT, PUnitType::DEFAULT, PIntegerType.new(0, 0))
|
|
2626
2631
|
|
|
2627
2632
|
protected
|
|
@@ -2630,20 +2635,20 @@ class PHashType < PCollectionType
|
|
|
2630
2635
|
# @api private
|
|
2631
2636
|
def _assignable?(o, guard)
|
|
2632
2637
|
case o
|
|
2633
|
-
|
|
2634
|
-
|
|
2635
|
-
|
|
2636
|
-
|
|
2637
|
-
|
|
2638
|
-
|
|
2639
|
-
|
|
2640
|
-
|
|
2641
|
-
|
|
2642
|
-
|
|
2643
|
-
|
|
2644
|
-
|
|
2645
|
-
|
|
2646
|
-
|
|
2638
|
+
when PHashType
|
|
2639
|
+
size_s = size_type
|
|
2640
|
+
return true if (size_s.nil? || size_s.from == 0) && o.is_the_empty_hash?
|
|
2641
|
+
return false unless @key_type.assignable?(o.key_type, guard) && @value_type.assignable?(o.value_type, guard)
|
|
2642
|
+
super
|
|
2643
|
+
when PStructType
|
|
2644
|
+
# hash must accept String as key type
|
|
2645
|
+
# hash must accept all value types
|
|
2646
|
+
# hash must accept the size of the struct
|
|
2647
|
+
o_elements = o.elements
|
|
2648
|
+
(size_type || DEFAULT_SIZE).instance?(o_elements.size, guard) &&
|
|
2649
|
+
o_elements.all? {|e| @key_type.instance?(e.name, guard) && @value_type.assignable?(e.value_type, guard) }
|
|
2650
|
+
else
|
|
2651
|
+
false
|
|
2647
2652
|
end
|
|
2648
2653
|
end
|
|
2649
2654
|
end
|
|
@@ -2691,7 +2696,7 @@ class PVariantType < PAnyType
|
|
|
2691
2696
|
end
|
|
2692
2697
|
|
|
2693
2698
|
def generalize
|
|
2694
|
-
if self == DEFAULT
|
|
2699
|
+
if self == DEFAULT
|
|
2695
2700
|
self
|
|
2696
2701
|
else
|
|
2697
2702
|
alter_type_array(@types, :generalize) { |altered| PVariantType.maybe_create(altered) }
|
|
@@ -2699,7 +2704,7 @@ class PVariantType < PAnyType
|
|
|
2699
2704
|
end
|
|
2700
2705
|
|
|
2701
2706
|
def normalize(guard = nil)
|
|
2702
|
-
if self == DEFAULT ||
|
|
2707
|
+
if self == DEFAULT || @types.empty?
|
|
2703
2708
|
self
|
|
2704
2709
|
else
|
|
2705
2710
|
# Normalize all contained types
|
|
@@ -2778,27 +2783,20 @@ class PVariantType < PAnyType
|
|
|
2778
2783
|
end
|
|
2779
2784
|
|
|
2780
2785
|
def eql?(o)
|
|
2781
|
-
o = DATA if o.is_a?(PDataType)
|
|
2782
2786
|
self.class == o.class && @types.size == o.types.size && (@types - o.types).empty?
|
|
2783
2787
|
end
|
|
2784
2788
|
|
|
2785
|
-
# Variant compatible with the Data type.
|
|
2786
|
-
DATA = PVariantType.new([PHashType::DATA, PArrayType::DATA, PScalarType::DEFAULT, PUndefType::DEFAULT, PTupleType::DATA])
|
|
2787
|
-
|
|
2788
2789
|
DEFAULT = PVariantType.new(EMPTY_ARRAY)
|
|
2789
2790
|
|
|
2790
2791
|
protected
|
|
2791
2792
|
|
|
2792
2793
|
# @api private
|
|
2793
2794
|
def _assignable?(o, guard)
|
|
2794
|
-
# Data is a specific variant
|
|
2795
|
-
o = DATA if o.is_a?(PDataType)
|
|
2796
2795
|
if o.is_a?(PVariantType)
|
|
2797
2796
|
# A variant is assignable if all of its options are assignable to one of this type's options
|
|
2798
2797
|
return true if self == o
|
|
2799
2798
|
o.types.all? do |other|
|
|
2800
2799
|
# if the other is a Variant, all of its options, but be assignable to one of this type's options
|
|
2801
|
-
other = other.is_a?(PDataType) ? DATA : other
|
|
2802
2800
|
if other.is_a?(PVariantType)
|
|
2803
2801
|
assignable?(other, guard)
|
|
2804
2802
|
else
|
|
@@ -3382,6 +3380,8 @@ require 'puppet/pops/pcore'
|
|
|
3382
3380
|
require_relative 'annotatable'
|
|
3383
3381
|
require_relative 'p_meta_type'
|
|
3384
3382
|
require_relative 'p_object_type'
|
|
3383
|
+
require_relative 'annotation'
|
|
3384
|
+
require_relative 'ruby_method'
|
|
3385
3385
|
require_relative 'p_runtime_type'
|
|
3386
3386
|
require_relative 'p_sem_ver_type'
|
|
3387
3387
|
require_relative 'p_sem_ver_range_type'
|