puppet 4.10.12 → 5.0.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- data/CONTRIBUTING.md +32 -15
- data/Gemfile +31 -14
- data/MAINTAINERS +0 -5
- data/README.md +11 -11
- 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 +4 -9
- 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.rb +7 -5
- data/lib/puppet/agent.rb +29 -38
- data/lib/puppet/agent/disabler.rb +3 -3
- data/lib/puppet/agent/locker.rb +3 -3
- data/lib/puppet/application.rb +12 -29
- data/lib/puppet/application/agent.rb +20 -18
- data/lib/puppet/application/apply.rb +22 -18
- data/lib/puppet/application/cert.rb +2 -7
- data/lib/puppet/application/config.rb +0 -1
- data/lib/puppet/application/describe.rb +1 -1
- data/lib/puppet/application/device.rb +94 -76
- data/lib/puppet/application/doc.rb +6 -6
- data/lib/puppet/application/face_base.rb +8 -13
- data/lib/puppet/application/filebucket.rb +12 -29
- data/lib/puppet/application/help.rb +0 -1
- data/lib/puppet/application/lookup.rb +106 -101
- data/lib/puppet/application/master.rb +14 -22
- data/lib/puppet/application/resource.rb +13 -10
- data/lib/puppet/application_support.rb +1 -6
- data/lib/puppet/configurer.rb +33 -45
- data/lib/puppet/configurer/downloader.rb +2 -2
- data/lib/puppet/configurer/fact_handler.rb +13 -4
- data/lib/puppet/context.rb +5 -5
- data/lib/puppet/context/trusted_information.rb +1 -1
- data/lib/puppet/defaults.rb +18 -131
- data/lib/puppet/environments.rb +1 -1
- data/lib/puppet/error.rb +1 -1
- data/lib/puppet/external/nagios/grammar.ry +1 -1
- data/lib/puppet/external/nagios/parser.rb +1 -1
- data/lib/puppet/external/pson/common.rb +4 -0
- data/lib/puppet/face/ca.rb +49 -42
- data/lib/puppet/face/catalog.rb +1 -1
- data/lib/puppet/face/catalog/select.rb +4 -4
- data/lib/puppet/face/certificate.rb +20 -20
- data/lib/puppet/face/config.rb +9 -22
- data/lib/puppet/face/epp.rb +59 -61
- data/lib/puppet/face/facts.rb +4 -4
- data/lib/puppet/face/generate.rb +8 -8
- data/lib/puppet/face/help.rb +7 -7
- data/lib/puppet/face/key.rb +2 -2
- data/lib/puppet/face/man.rb +5 -5
- data/lib/puppet/face/module.rb +2 -2
- 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/node.rb +5 -5
- data/lib/puppet/face/node/clean.rb +8 -8
- data/lib/puppet/face/parser.rb +16 -16
- data/lib/puppet/face/plugin.rb +6 -6
- data/lib/puppet/face/report.rb +9 -9
- data/lib/puppet/face/resource.rb +12 -12
- data/lib/puppet/face/status.rb +4 -4
- data/lib/puppet/feature/base.rb +3 -2
- 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.rb +3 -3
- data/lib/puppet/file_serving/configuration/parser.rb +12 -12
- 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 +7 -7
- data/lib/puppet/file_serving/mount.rb +1 -1
- 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/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.rb +8 -14
- data/lib/puppet/forge/errors.rb +12 -12
- data/lib/puppet/forge/repository.rb +1 -1
- data/lib/puppet/functions.rb +17 -45
- 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/each.rb +4 -10
- data/lib/puppet/functions/epp.rb +0 -3
- data/lib/puppet/functions/hiera_include.rb +1 -1
- data/lib/puppet/functions/hocon_data.rb +2 -2
- data/lib/puppet/functions/json_data.rb +1 -1
- data/lib/puppet/functions/lookup.rb +2 -2
- data/lib/puppet/functions/map.rb +3 -13
- data/lib/puppet/functions/match.rb +2 -2
- data/lib/puppet/functions/reduce.rb +0 -31
- 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/generate/models/type/property.rb +1 -1
- data/lib/puppet/generate/type.rb +12 -12
- data/lib/puppet/graph/relationship_graph.rb +4 -7
- data/lib/puppet/graph/simple_graph.rb +45 -66
- data/lib/puppet/indirector.rb +2 -2
- data/lib/puppet/indirector/catalog/compiler.rb +58 -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 +10 -9
- 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 +16 -18
- 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 +11 -23
- 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/info_service/class_information_service.rb +4 -5
- data/lib/puppet/interface.rb +2 -7
- data/lib/puppet/interface/face_collection.rb +6 -1
- data/lib/puppet/module.rb +10 -35
- data/lib/puppet/module_tool.rb +7 -3
- 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/tar.rb +2 -1
- data/lib/puppet/module_tool/tar/mini.rb +4 -57
- 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 -23
- data/lib/puppet/network/http/error.rb +14 -10
- data/lib/puppet/network/http/factory.rb +0 -12
- 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.rb +2 -2
- data/lib/puppet/network/http/rack/rest.rb +1 -1
- data/lib/puppet/network/http/request.rb +34 -20
- data/lib/puppet/network/http/response.rb +13 -1
- data/lib/puppet/network/http/webrick.rb +8 -6
- data/lib/puppet/network/http/webrick/rest.rb +2 -2
- data/lib/puppet/network/rights.rb +6 -6
- data/lib/puppet/network/server.rb +2 -2
- data/lib/puppet/node.rb +25 -23
- data/lib/puppet/node/environment.rb +21 -4
- data/lib/puppet/node/facts.rb +0 -14
- data/lib/puppet/parameter.rb +3 -28
- 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/parser/ast/leaf.rb +1 -1
- 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.rb +44 -117
- 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/e4_parser_adapter.rb +1 -2
- data/lib/puppet/parser/environment_compiler.rb +13 -15
- data/lib/puppet/parser/functions.rb +6 -6
- data/lib/puppet/parser/functions/assert_type.rb +1 -1
- data/lib/puppet/parser/functions/binary_file.rb +1 -1
- data/lib/puppet/parser/functions/break.rb +1 -1
- data/lib/puppet/parser/functions/contain.rb +1 -1
- data/lib/puppet/parser/functions/create_resources.rb +3 -3
- data/lib/puppet/parser/functions/defined.rb +1 -1
- data/lib/puppet/parser/functions/dig.rb +1 -1
- data/lib/puppet/parser/functions/each.rb +1 -1
- data/lib/puppet/parser/functions/epp.rb +1 -4
- data/lib/puppet/parser/functions/file.rb +1 -1
- data/lib/puppet/parser/functions/filter.rb +1 -1
- data/lib/puppet/parser/functions/find_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_epp.rb +1 -1
- data/lib/puppet/parser/functions/inline_template.rb +1 -1
- data/lib/puppet/parser/functions/lest.rb +1 -1
- data/lib/puppet/parser/functions/map.rb +1 -1
- data/lib/puppet/parser/functions/match.rb +1 -1
- data/lib/puppet/parser/functions/new.rb +45 -30
- data/lib/puppet/parser/functions/next.rb +1 -1
- data/lib/puppet/parser/functions/reduce.rb +1 -1
- data/lib/puppet/parser/functions/require.rb +1 -1
- data/lib/puppet/parser/functions/return.rb +2 -23
- data/lib/puppet/parser/functions/reverse_each.rb +1 -1
- data/lib/puppet/parser/functions/slice.rb +1 -1
- data/lib/puppet/parser/functions/sprintf.rb +3 -17
- data/lib/puppet/parser/functions/step.rb +1 -1
- data/lib/puppet/parser/functions/strftime.rb +1 -1
- data/lib/puppet/parser/functions/then.rb +1 -1
- data/lib/puppet/parser/functions/type.rb +1 -1
- data/lib/puppet/parser/functions/with.rb +1 -1
- data/lib/puppet/parser/parser_factory.rb +0 -30
- data/lib/puppet/parser/relationship.rb +49 -20
- data/lib/puppet/parser/resource.rb +31 -30
- data/lib/puppet/parser/resource/param.rb +0 -3
- data/lib/puppet/parser/scope.rb +122 -168
- 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.rb +7 -37
- data/lib/puppet/pops/adaptable.rb +8 -3
- data/lib/puppet/pops/adapters.rb +23 -83
- data/lib/puppet/pops/evaluator/access_operator.rb +10 -39
- data/lib/puppet/pops/evaluator/collector_transformer.rb +7 -12
- data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +1 -1
- 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 +46 -38
- 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_support.rb +13 -30
- data/lib/puppet/pops/functions/dispatch.rb +1 -6
- data/lib/puppet/pops/issues.rb +182 -162
- 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/module_loaders.rb +59 -8
- 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 +33 -64
- data/lib/puppet/pops/loader/type_definition_instantiator.rb +7 -7
- data/lib/puppet/pops/loader/typed_name.rb +5 -0
- data/lib/puppet/pops/loaders.rb +15 -5
- data/lib/puppet/pops/lookup.rb +4 -2
- data/lib/puppet/pops/lookup/context.rb +1 -1
- data/lib/puppet/pops/lookup/data_provider.rb +3 -18
- data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
- data/lib/puppet/pops/lookup/hiera_config.rb +12 -35
- data/lib/puppet/pops/lookup/interpolation.rb +1 -0
- data/lib/puppet/pops/lookup/invocation.rb +1 -1
- data/lib/puppet/pops/lookup/lookup_adapter.rb +20 -64
- data/lib/puppet/pops/lookup/lookup_key.rb +1 -1
- data/lib/puppet/pops/lookup/module_data_provider.rb +1 -1
- data/lib/puppet/pops/lookup/sub_lookup.rb +2 -1
- data/lib/puppet/pops/merge_strategy.rb +1 -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 +9 -8
- 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/heredoc_support.rb +1 -1
- data/lib/puppet/pops/parser/interpolation_support.rb +4 -4
- data/lib/puppet/pops/parser/lexer2.rb +7 -33
- data/lib/puppet/pops/parser/locator.rb +39 -16
- data/lib/puppet/pops/parser/parser_support.rb +25 -29
- data/lib/puppet/pops/patterns.rb +1 -2
- data/lib/puppet/pops/pcore.rb +26 -19
- data/lib/puppet/pops/resource/param.rb +1 -1
- data/lib/puppet/pops/resource/resource_type_impl.rb +2 -2
- data/lib/puppet/pops/serialization.rb +25 -1
- data/lib/puppet/pops/serialization/abstract_writer.rb +9 -1
- data/lib/puppet/pops/serialization/deserializer.rb +1 -1
- 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 +5 -5
- data/lib/puppet/pops/serialization/serializer.rb +23 -9
- data/lib/puppet/pops/serialization/to_data_converter.rb +292 -0
- 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 -4
- 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 +42 -34
- 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 +107 -30
- data/lib/puppet/pops/types/type_calculator.rb +56 -94
- data/lib/puppet/pops/types/type_factory.rb +34 -6
- data/lib/puppet/pops/types/type_formatter.rb +64 -16
- data/lib/puppet/pops/types/type_mismatch_describer.rb +13 -22
- data/lib/puppet/pops/types/type_parser.rb +28 -13
- data/lib/puppet/pops/types/type_set_reference.rb +6 -6
- data/lib/puppet/pops/types/types.rb +169 -245
- data/lib/puppet/pops/utils.rb +0 -24
- data/lib/puppet/pops/validation.rb +3 -9
- data/lib/puppet/pops/validation/checker4_0.rb +86 -76
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +0 -1
- data/lib/puppet/pops/visitor.rb +21 -0
- data/lib/puppet/property.rb +17 -14
- data/lib/puppet/property/ensure.rb +3 -3
- data/lib/puppet/property/list.rb +1 -10
- data/lib/puppet/provider.rb +2 -0
- 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.rb +4 -4
- data/lib/puppet/provider/exec/posix.rb +4 -4
- data/lib/puppet/provider/exec/windows.rb +3 -3
- 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/group/windows_adsi.rb +7 -4
- 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.rb +2 -1
- data/lib/puppet/provider/mount/parsed.rb +10 -8
- data/lib/puppet/provider/naginator.rb +1 -1
- data/lib/puppet/provider/nameservice.rb +8 -10
- data/lib/puppet/provider/nameservice/directoryservice.rb +11 -11
- data/lib/puppet/provider/network_device.rb +2 -1
- data/lib/puppet/provider/package/aix.rb +6 -6
- 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/dnf.rb +1 -1
- 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.rb +4 -4
- data/lib/puppet/provider/package/windows/package.rb +3 -3
- data/lib/puppet/provider/package/yum.rb +5 -6
- data/lib/puppet/provider/package/zypper.rb +1 -1
- data/lib/puppet/provider/parsedfile.rb +1 -1
- data/lib/puppet/provider/service/base.rb +8 -21
- data/lib/puppet/provider/service/smf.rb +2 -2
- data/lib/puppet/provider/service/systemd.rb +1 -2
- data/lib/puppet/provider/service/upstart.rb +1 -3
- data/lib/puppet/provider/user/aix.rb +2 -2
- data/lib/puppet/provider/user/ldap.rb +1 -1
- data/lib/puppet/provider/user/windows_adsi.rb +1 -1
- data/lib/puppet/provider/yumrepo/inifile.rb +3 -3
- data/lib/puppet/provider/zfs/zfs.rb +1 -5
- data/lib/puppet/reference/configuration.rb +0 -2
- 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 +8 -6
- data/lib/puppet/resource.rb +75 -134
- data/lib/puppet/resource/capability_finder.rb +1 -1
- data/lib/puppet/resource/catalog.rb +26 -34
- data/lib/puppet/resource/status.rb +13 -24
- data/lib/puppet/resource/type.rb +13 -61
- data/lib/puppet/resource/type_collection.rb +29 -23
- data/lib/puppet/settings.rb +1 -1
- 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 -10
- 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/ssl/base.rb +2 -2
- data/lib/puppet/ssl/certificate_authority.rb +21 -21
- data/lib/puppet/ssl/certificate_authority/interface.rb +13 -13
- 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.rb +38 -23
- 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 +34 -47
- data/lib/puppet/transaction/resource_harness.rb +14 -12
- data/lib/puppet/type.rb +9 -7
- data/lib/puppet/type/augeas.rb +2 -2
- data/lib/puppet/type/cron.rb +14 -31
- data/lib/puppet/type/exec.rb +16 -16
- data/lib/puppet/type/file.rb +21 -22
- 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 +6 -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 +5 -1
- 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 +9 -8
- 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 +16 -19
- data/lib/puppet/type/user.rb +35 -70
- 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/util.rb +16 -12
- data/lib/puppet/util/at_fork.rb +35 -0
- data/lib/puppet/util/at_fork/noop.rb +18 -0
- data/lib/puppet/util/at_fork/solaris.rb +158 -0
- data/lib/puppet/util/autoload.rb +2 -2
- data/lib/puppet/util/backups.rb +6 -6
- data/lib/puppet/util/classgen.rb +4 -4
- data/lib/puppet/util/command_line.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/diff.rb +1 -1
- data/lib/puppet/util/errors.rb +4 -4
- data/lib/puppet/util/execution.rb +9 -9
- 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 +7 -15
- 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.rb +23 -16
- data/lib/puppet/util/log/destinations.rb +10 -16
- data/lib/puppet/util/logging.rb +11 -8
- data/lib/puppet/util/metric.rb +9 -6
- data/lib/puppet/util/monkey_patches.rb +27 -66
- data/lib/puppet/util/network_device.rb +1 -1
- 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/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.rb +4 -4
- data/lib/puppet/util/reference.rb +14 -7
- 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.rb +2 -0
- data/lib/puppet/util/windows/adsi.rb +19 -16
- data/lib/puppet/util/windows/api_types.rb +7 -11
- 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 +13 -96
- data/lib/puppet/util/windows/principal.rb +6 -7
- data/lib/puppet/util/windows/process.rb +6 -14
- 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 +13 -66
- data/lib/puppet/util/windows/taskscheduler.rb +62 -62
- data/lib/puppet/util/windows/user.rb +6 -6
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet.rb +2 -10
- 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/locales → locales}/config.yaml +0 -0
- data/lib/puppet/version.rb +1 -1
- data/locales/config.yaml +1 -1
- data/locales/puppet.pot +7847 -112
- data/man/man5/puppet.conf.5 +55 -296
- data/man/man8/puppet-agent.8 +10 -32
- data/man/man8/puppet-apply.8 +6 -21
- data/man/man8/puppet-ca.8 +34 -48
- data/man/man8/puppet-catalog.8 +4 -4
- data/man/man8/puppet-cert.8 +6 -23
- data/man/man8/puppet-certificate.8 +28 -44
- data/man/man8/puppet-certificate_request.8 +4 -4
- data/man/man8/puppet-certificate_revocation_list.8 +4 -4
- data/man/man8/puppet-config.8 +5 -5
- data/man/man8/puppet-describe.8 +3 -3
- data/man/man8/puppet-device.8 +13 -23
- data/man/man8/puppet-doc.8 +5 -5
- data/man/man8/puppet-epp.8 +10 -16
- data/man/man8/puppet-facts.8 +4 -4
- data/man/man8/puppet-filebucket.8 +6 -63
- data/man/man8/puppet-help.8 +4 -4
- data/man/man8/puppet-inspect.8 +5 -8
- data/man/man8/puppet-key.8 +4 -4
- data/man/man8/puppet-man.8 +5 -5
- data/man/man8/puppet-master.8 +5 -5
- data/man/man8/puppet-module.8 +13 -22
- data/man/man8/puppet-node.8 +4 -4
- data/man/man8/puppet-parser.8 +4 -4
- data/man/man8/puppet-plugin.8 +4 -4
- data/man/man8/puppet-report.8 +4 -4
- data/man/man8/puppet-resource.8 +8 -4
- data/man/man8/puppet-status.8 +5 -5
- data/man/man8/puppet.8 +3 -12
- data/spec/fixtures/unit/application/environments/production/data/common.yaml +0 -2
- 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/agent/logging_spec.rb +0 -2
- data/spec/integration/application/apply_spec.rb +19 -23
- data/spec/integration/application/lookup_spec.rb +0 -21
- data/spec/integration/configurer_spec.rb +1 -1
- data/spec/integration/defaults_spec.rb +2 -2
- data/spec/integration/file_bucket/file_spec.rb +5 -20
- 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 +1 -1
- data/spec/integration/parser/scope_spec.rb +53 -4
- data/spec/integration/provider/cron/crontab_spec.rb +0 -1
- data/spec/integration/resource/catalog_spec.rb +0 -4
- data/spec/integration/transaction/report_spec.rb +2 -2
- data/spec/integration/transaction_spec.rb +4 -37
- data/spec/integration/type/package_spec.rb +7 -1
- data/spec/integration/util/execution_spec.rb +0 -8
- data/spec/integration/util/windows/adsi_spec.rb +1 -86
- data/spec/integration/util/windows/principal_spec.rb +1 -10
- data/spec/integration/util/windows/process_spec.rb +0 -45
- data/spec/lib/matchers/json.rb +3 -3
- data/spec/lib/puppet/indirector_testing.rb +4 -0
- data/spec/lib/puppet_spec/compiler.rb +1 -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 +28 -9
- data/spec/spec_helper.rb +0 -11
- data/spec/unit/agent_spec.rb +12 -34
- data/spec/unit/application/agent_spec.rb +16 -0
- data/spec/unit/application/apply_spec.rb +37 -13
- data/spec/unit/application/cert_spec.rb +1 -40
- data/spec/unit/application/config_spec.rb +0 -4
- 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/lookup_spec.rb +1 -31
- data/spec/unit/application/master_spec.rb +22 -6
- data/spec/unit/application/resource_spec.rb +17 -0
- data/spec/unit/application_spec.rb +0 -24
- data/spec/unit/capability_spec.rb +2 -6
- data/spec/unit/configurer/fact_handler_spec.rb +74 -41
- data/spec/unit/configurer/plugin_handler_spec.rb +13 -19
- data/spec/unit/configurer_spec.rb +36 -33
- data/spec/unit/defaults_spec.rb +0 -44
- data/spec/unit/environments_spec.rb +0 -15
- data/spec/unit/face/config_spec.rb +2 -1
- data/spec/unit/face/epp_face_spec.rb +0 -9
- 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 +14 -9
- data/spec/unit/forge/forge_spec.rb +2 -2
- data/spec/unit/forge_spec.rb +0 -105
- data/spec/unit/functions/annotate_spec.rb +175 -0
- data/spec/unit/functions/break_spec.rb +52 -83
- data/spec/unit/functions/call_spec.rb +77 -0
- data/spec/unit/functions/contain_spec.rb +1 -1
- data/spec/unit/functions/defined_spec.rb +2 -2
- data/spec/unit/functions/epp_spec.rb +0 -10
- data/spec/unit/functions/hiera_spec.rb +0 -5
- data/spec/unit/functions/lookup_fixture_spec.rb +1 -6
- data/spec/unit/functions/lookup_spec.rb +4 -97
- 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/relationship_graph_spec.rb +0 -15
- data/spec/unit/graph/simple_graph_spec.rb +58 -55
- data/spec/unit/indirector/catalog/compiler_spec.rb +206 -174
- 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 +4 -4
- data/spec/unit/indirector/file_server_spec.rb +17 -2
- data/spec/unit/indirector/indirection_spec.rb +3 -60
- 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 +0 -45
- data/spec/unit/indirector/rest_spec.rb +57 -15
- data/spec/unit/interface/face_collection_spec.rb +7 -7
- data/spec/unit/interface_spec.rb +0 -12
- data/spec/unit/module_spec.rb +10 -31
- 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/mini_spec.rb +5 -34
- 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 +62 -52
- 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/factory_spec.rb +9 -38
- data/spec/unit/network/http/handler_spec.rb +8 -12
- data/spec/unit/network/http/request_spec.rb +110 -0
- data/spec/unit/network/http/response_spec.rb +108 -0
- data/spec/unit/network/http/webrick_spec.rb +29 -30
- 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/ast/leaf_spec.rb +4 -3
- data/spec/unit/parser/compiler_spec.rb +1 -1
- data/spec/unit/parser/environment_compiler_spec.rb +0 -2
- data/spec/unit/parser/functions/sprintf_spec.rb +0 -26
- data/spec/unit/parser/resource_spec.rb +86 -24
- data/spec/unit/parser/scope_spec.rb +4 -81
- 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 +19 -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 +69 -1
- data/spec/unit/pops/loaders/static_loader_spec.rb +3 -7
- 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 +4 -59
- 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 +87 -1
- 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 +99 -13
- data/spec/unit/pops/types/p_timestamp_type_spec.rb +8 -8
- data/spec/unit/pops/types/p_type_set_type_spec.rb +1 -9
- data/spec/unit/pops/types/ruby_generator_spec.rb +57 -20
- data/spec/unit/pops/types/string_converter_spec.rb +78 -30
- data/spec/unit/pops/types/type_acceptor_spec.rb +2 -2
- data/spec/unit/pops/types/type_calculator_spec.rb +207 -123
- 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_mismatch_describer_spec.rb +0 -9
- data/spec/unit/pops/types/type_parser_spec.rb +6 -6
- data/spec/unit/pops/types/types_spec.rb +42 -2
- data/spec/unit/pops/validator/validator_spec.rb +25 -86
- 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/group/windows_adsi_spec.rb +22 -79
- data/spec/unit/provider/package/aix_spec.rb +0 -8
- data/spec/unit/provider/package/portage_spec.rb +103 -17
- data/spec/unit/provider/package/rpm_spec.rb +14 -1
- data/spec/unit/provider/package/yum_spec.rb +0 -10
- data/spec/unit/provider/service/base_spec.rb +0 -20
- data/spec/unit/provider/service/smf_spec.rb +4 -2
- data/spec/unit/provider/service/systemd_spec.rb +1 -15
- data/spec/unit/provider/user/directoryservice_spec.rb +7 -7
- data/spec/unit/provider/user/windows_adsi_spec.rb +4 -4
- data/spec/unit/provider/zfs/zfs_spec.rb +1 -7
- 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 +47 -49
- 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 -81
- 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/nagios_spec.rb +1 -21
- data/spec/unit/type/ssh_authorized_key_spec.rb +2 -2
- data/spec/unit/type/tidy_spec.rb +0 -14
- data/spec/unit/type/user_spec.rb +2 -4
- data/spec/unit/util/at_fork_spec.rb +150 -0
- data/spec/unit/util/execution_spec.rb +31 -2
- data/spec/unit/util/http_proxy_spec.rb +0 -37
- 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/adsi_spec.rb +27 -31
- data/spec/unit/util/windows/api_types_spec.rb +0 -51
- data/spec/unit/util/windows/eventlog_spec.rb +123 -0
- data/spec/unit/util/windows/sid_spec.rb +15 -86
- data/spec/unit/util_spec.rb +7 -1
- data/tasks/benchmark.rake +3 -3
- data/tasks/cfpropertylist.rake +1 -1
- data/tasks/generate_ast_model.rake +78 -0
- data/tasks/manpages.rake +1 -1
- data/tasks/parallel.rake +7 -12
- metadata +3436 -3695
- 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 -184
- data/lib/puppet/application/resource_type.rb +0 -7
- data/lib/puppet/data_providers.rb +0 -34
- 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/face/file.rb +0 -50
- data/lib/puppet/face/file/download.rb +0 -56
- data/lib/puppet/face/file/store.rb +0 -21
- 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.rb +0 -5
- data/lib/puppet/indirector/resource_type/parser.rb +0 -108
- data/lib/puppet/indirector/resource_type/rest.rb +0 -7
- data/lib/puppet/parser/yaml_trimmer.rb +0 -7
- data/lib/puppet/plugins/binding_schemes.rb +0 -140
- data/lib/puppet/plugins/data_providers.rb +0 -45
- data/lib/puppet/plugins/data_providers/data_provider.rb +0 -406
- data/lib/puppet/plugins/data_providers/registry.rb +0 -51
- 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.rb +0 -224
- 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/model_builder.rb +0 -32
- 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/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.rb +0 -297
- 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/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.rb +0 -98
- 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/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.rb +0 -163
- 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.tpl +0 -9
- 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/test.tpl +0 -4
- data/lib/puppet/vendor/rgen/test/template_language_test/testout.txt +0 -29
- 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.rb +0 -160
- 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_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-generate.8 +0 -84
- data/man/man8/puppet-lookup.8 +0 -87
- 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/fixtures/unit/provider/package/yum/yum-check-update-plugin-output.txt +0 -36
- data/spec/fixtures/unit/provider/service/base/ps_ef.mixed_encoding +0 -3
- data/spec/unit/application/inspect_spec.rb +0 -316
- 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
@@ -43,12 +43,11 @@ class Puppet::Pops::Model::AstTransformer
|
|
43
43
|
def merge_location(hash, o)
|
44
44
|
if o
|
45
45
|
pos = {}
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
end
|
46
|
+
locator = o.locator
|
47
|
+
offset = o.is_a?(Model::Program) ? 0 : o.offset
|
48
|
+
pos[:line] = locator.line_for_offset(offset)
|
49
|
+
pos[:pos] = locator.pos_on_line(offset)
|
50
|
+
pos[:file] = locator.file
|
52
51
|
if nil_or_empty?(pos[:file]) && !nil_or_empty?(@source_file)
|
53
52
|
pos[:file] = @source_file
|
54
53
|
end
|
@@ -64,7 +63,7 @@ class Puppet::Pops::Model::AstTransformer
|
|
64
63
|
rescue StandardError => e
|
65
64
|
loc_data = {}
|
66
65
|
merge_location(loc_data, o)
|
67
|
-
raise Puppet::ParseError.new("Error while transforming to Puppet 3 AST:
|
66
|
+
raise Puppet::ParseError.new(_("Error while transforming to Puppet 3 AST: %{message}") % { message: e.message },
|
68
67
|
loc_data[:file], loc_data[:line], loc_data[:pos], e)
|
69
68
|
end
|
70
69
|
end
|
@@ -83,7 +82,7 @@ class Puppet::Pops::Model::AstTransformer
|
|
83
82
|
# Ensures transformation fails if a 3.1 non supported object is encountered in a query expression
|
84
83
|
#
|
85
84
|
def query_Object(o)
|
86
|
-
raise "Not a valid expression in a collection query: "+o.class.name
|
85
|
+
raise _("Not a valid expression in a collection query: ")+o.class.name
|
87
86
|
end
|
88
87
|
|
89
88
|
# Transforms Array of host matching expressions into a (Ruby) array of AST::HostName
|
@@ -112,11 +111,11 @@ class Puppet::Pops::Model::AstTransformer
|
|
112
111
|
end
|
113
112
|
|
114
113
|
def hostname_Object(o)
|
115
|
-
raise "Illegal expression - unacceptable as a node name"
|
114
|
+
raise _("Illegal expression - unacceptable as a node name")
|
116
115
|
end
|
117
116
|
|
118
117
|
def transform_Object(o)
|
119
|
-
raise "Unacceptable transform - found an Object without a rule:
|
118
|
+
raise _("Unacceptable transform - found an Object without a rule: %{klass}") % { klass: o.class }
|
120
119
|
end
|
121
120
|
|
122
121
|
# Nil, nop
|
@@ -9,127 +9,182 @@
|
|
9
9
|
module Puppet::Pops
|
10
10
|
module Model
|
11
11
|
class Factory
|
12
|
-
|
12
|
+
# Shared build_visitor, since there are many instances of Factory being used
|
13
13
|
|
14
|
-
|
14
|
+
KEY_LENGTH = 'length'.freeze
|
15
|
+
KEY_OFFSET = 'offset'.freeze
|
16
|
+
KEY_LOCATOR = 'locator'.freeze
|
17
|
+
KEY_OPERATOR = 'operator'.freeze
|
18
|
+
|
19
|
+
KEY_VALUE = 'value'.freeze
|
20
|
+
KEY_KEYS = 'keys'.freeze
|
21
|
+
KEY_NAME = 'name'.freeze
|
22
|
+
KEY_BODY = 'body'.freeze
|
23
|
+
KEY_EXPR = 'expr'.freeze
|
24
|
+
KEY_LEFT_EXPR = 'left_expr'.freeze
|
25
|
+
KEY_RIGHT_EXPR = 'right_expr'.freeze
|
26
|
+
KEY_PARAMETERS = 'parameters'.freeze
|
27
|
+
|
28
|
+
BUILD_VISITOR = Visitor.new(self, 'build')
|
29
|
+
INFER_VISITOR = Visitor.new(self, 'infer')
|
30
|
+
INTERPOLATION_VISITOR = Visitor.new(self, 'interpolate')
|
31
|
+
|
32
|
+
def self.infer(o)
|
33
|
+
if o.instance_of?(Factory)
|
34
|
+
o
|
35
|
+
else
|
36
|
+
new(o)
|
37
|
+
end
|
38
|
+
end
|
15
39
|
|
16
|
-
|
17
|
-
|
18
|
-
|
40
|
+
attr_reader :model_class
|
41
|
+
|
42
|
+
def [](key)
|
43
|
+
@i12n[key]
|
44
|
+
end
|
45
|
+
|
46
|
+
def []=(key, value)
|
47
|
+
@i12n[key] = value
|
48
|
+
end
|
49
|
+
|
50
|
+
def all_factories(&block)
|
51
|
+
block.call(self)
|
52
|
+
@i12n.each_value { |value| value.all_factories(&block) if value.instance_of?(Factory) }
|
53
|
+
end
|
54
|
+
|
55
|
+
def model
|
56
|
+
if @current.nil?
|
57
|
+
# Assign a default Locator if it's missing. Should only happen when the factory is used by other
|
58
|
+
# means than from a parser (e.g. unit tests)
|
59
|
+
unless @i12n.include?(KEY_LOCATOR)
|
60
|
+
@i12n[KEY_LOCATOR] = Parser::Locator.locator('<no source>', 'no file')
|
61
|
+
unless @model_class <= Program
|
62
|
+
@i12n[KEY_OFFSET] = 0
|
63
|
+
@i12n[KEY_LENGTH] = 0
|
64
|
+
end
|
65
|
+
end
|
66
|
+
@current = create_model
|
67
|
+
end
|
68
|
+
@current
|
69
|
+
end
|
70
|
+
|
71
|
+
# Backward API compatibility
|
72
|
+
alias current model
|
73
|
+
|
74
|
+
def create_model
|
75
|
+
@i12n.each_pair { |key, elem| @i12n[key] = factory_to_model(elem) }
|
76
|
+
model_class.from_asserted_hash(@i12n)
|
77
|
+
end
|
19
78
|
|
20
79
|
# Initialize a factory with a single object, or a class with arguments applied to build of
|
21
80
|
# created instance
|
22
81
|
#
|
23
82
|
def initialize(o, *args)
|
24
|
-
@
|
25
|
-
|
26
|
-
|
27
|
-
o
|
28
|
-
elsif o.instance_of?(Factory)
|
29
|
-
o.current
|
83
|
+
@i12n = {}
|
84
|
+
if o.instance_of?(Class)
|
85
|
+
@model_class = o
|
86
|
+
BUILD_VISITOR.visit_this_class(self, o, args)
|
30
87
|
else
|
31
|
-
|
88
|
+
INFER_VISITOR.visit_this(self, o, EMPTY_ARRAY)
|
32
89
|
end
|
33
90
|
end
|
34
91
|
|
35
|
-
# Polymorphic build
|
36
|
-
def build(o, *args)
|
37
|
-
@@build_visitor.visit_this(self, o, args)
|
38
|
-
end
|
39
|
-
|
40
92
|
# Polymorphic interpolate
|
41
93
|
def interpolate()
|
42
|
-
|
94
|
+
INTERPOLATION_VISITOR.visit_this_class(self, @model_class, EMPTY_ARRAY)
|
43
95
|
end
|
44
96
|
|
45
97
|
# Building of Model classes
|
46
98
|
|
47
99
|
def build_Application(o, n, ps, body)
|
48
|
-
|
49
|
-
|
100
|
+
@i12n[KEY_NAME] = n
|
101
|
+
@i12n[KEY_PARAMETERS] = ps
|
50
102
|
b = f_build_body(body)
|
51
|
-
|
52
|
-
o
|
103
|
+
@i12n[KEY_BODY] = b unless b.nil?
|
53
104
|
end
|
54
105
|
|
55
106
|
def build_ArithmeticExpression(o, op, a, b)
|
56
|
-
|
107
|
+
@i12n[KEY_OPERATOR] = op
|
57
108
|
build_BinaryExpression(o, a, b)
|
58
109
|
end
|
59
110
|
|
60
111
|
def build_AssignmentExpression(o, op, a, b)
|
61
|
-
|
112
|
+
@i12n[KEY_OPERATOR] = op
|
62
113
|
build_BinaryExpression(o, a, b)
|
63
114
|
end
|
64
115
|
|
65
116
|
def build_AttributeOperation(o, name, op, value)
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
o
|
117
|
+
@i12n[KEY_OPERATOR] = op
|
118
|
+
@i12n['attribute_name'] = name.to_s # BOOLEAN is allowed in the grammar
|
119
|
+
@i12n['value_expr'] = value
|
70
120
|
end
|
71
121
|
|
72
122
|
def build_AttributesOperation(o, value)
|
73
|
-
|
74
|
-
o
|
123
|
+
@i12n[KEY_EXPR] = value
|
75
124
|
end
|
76
125
|
|
77
|
-
def build_AccessExpression(o, left,
|
78
|
-
|
79
|
-
|
80
|
-
o
|
126
|
+
def build_AccessExpression(o, left, keys)
|
127
|
+
@i12n[KEY_LEFT_EXPR] = left
|
128
|
+
@i12n[KEY_KEYS] = keys
|
81
129
|
end
|
82
130
|
|
83
131
|
def build_BinaryExpression(o, left, right)
|
84
|
-
|
85
|
-
|
86
|
-
o
|
132
|
+
@i12n[KEY_LEFT_EXPR] = left
|
133
|
+
@i12n[KEY_RIGHT_EXPR] = right
|
87
134
|
end
|
88
135
|
|
89
|
-
def build_BlockExpression(o,
|
90
|
-
|
91
|
-
o
|
136
|
+
def build_BlockExpression(o, args)
|
137
|
+
@i12n['statements'] = args
|
92
138
|
end
|
93
139
|
|
94
|
-
def
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
o
|
140
|
+
def build_EppExpression(o, parameters_specified, body)
|
141
|
+
@i12n['parameters_specified'] = parameters_specified
|
142
|
+
b = f_build_body(body)
|
143
|
+
@i12n[KEY_BODY] = b unless b.nil?
|
99
144
|
end
|
100
145
|
|
101
|
-
|
102
|
-
|
103
|
-
|
146
|
+
# @param rval_required [Boolean] if the call must produce a value
|
147
|
+
def build_CallExpression(o, functor, rval_required, args)
|
148
|
+
@i12n['functor_expr'] = functor
|
149
|
+
@i12n['rval_required'] = rval_required
|
150
|
+
@i12n['arguments'] = args
|
151
|
+
end
|
152
|
+
|
153
|
+
def build_CallMethodExpression(o, functor, rval_required, lambda, args)
|
154
|
+
build_CallExpression(o, functor, rval_required, args)
|
155
|
+
@i12n['lambda'] = lambda
|
104
156
|
end
|
105
157
|
|
106
|
-
def
|
107
|
-
|
108
|
-
|
158
|
+
def build_CaseExpression(o, test, args)
|
159
|
+
@i12n['test'] = test
|
160
|
+
@i12n['options'] = args
|
109
161
|
end
|
110
162
|
|
111
|
-
def
|
112
|
-
|
113
|
-
|
114
|
-
|
163
|
+
def build_CaseOption(o, value_list, then_expr)
|
164
|
+
value_list = [value_list] unless value_list.is_a?(Array)
|
165
|
+
@i12n['values'] = value_list
|
166
|
+
b = f_build_body(then_expr)
|
167
|
+
@i12n['then_expr'] = b unless b.nil?
|
168
|
+
end
|
169
|
+
|
170
|
+
def build_CollectExpression(o, type_expr, query_expr, attribute_operations)
|
171
|
+
@i12n['type_expr'] = type_expr
|
172
|
+
@i12n['query'] = query_expr
|
173
|
+
@i12n['operations'] = attribute_operations
|
115
174
|
end
|
116
175
|
|
117
|
-
def
|
118
|
-
|
119
|
-
o
|
120
|
-
o
|
176
|
+
def build_ComparisonExpression(o, op, a, b)
|
177
|
+
@i12n[KEY_OPERATOR] = op
|
178
|
+
build_BinaryExpression(o, a, b)
|
121
179
|
end
|
122
180
|
|
123
|
-
def
|
124
|
-
|
125
|
-
o.type = to_ops(datatype_expr)
|
126
|
-
o
|
181
|
+
def build_ConcatenatedString(o, args)
|
182
|
+
@i12n['segments'] = args
|
127
183
|
end
|
128
184
|
|
129
185
|
def build_HeredocExpression(o, name, expr)
|
130
|
-
|
131
|
-
|
132
|
-
o
|
186
|
+
@i12n['syntax'] = name
|
187
|
+
@i12n['text_expr'] = expr
|
133
188
|
end
|
134
189
|
|
135
190
|
# @param name [String] a valid classname
|
@@ -140,191 +195,213 @@ class Factory
|
|
140
195
|
#
|
141
196
|
def build_HostClassDefinition(o, name, parameters, parent_class_name, body)
|
142
197
|
build_NamedDefinition(o, name, parameters, body)
|
143
|
-
|
144
|
-
o
|
198
|
+
@i12n['parent_class'] = parent_class_name unless parent_class_name.nil?
|
145
199
|
end
|
146
200
|
|
147
201
|
def build_ResourceOverrideExpression(o, resources, attribute_operations)
|
148
|
-
|
149
|
-
|
150
|
-
o
|
202
|
+
@i12n['resources'] = resources
|
203
|
+
@i12n['operations'] = attribute_operations
|
151
204
|
end
|
152
205
|
|
153
206
|
def build_ReservedWord(o, name, future)
|
154
|
-
|
155
|
-
|
156
|
-
o
|
207
|
+
@i12n['word'] = name
|
208
|
+
@i12n['future'] = future
|
157
209
|
end
|
158
210
|
|
159
211
|
def build_KeyedEntry(o, k, v)
|
160
|
-
|
161
|
-
|
162
|
-
o
|
163
|
-
end
|
164
|
-
|
165
|
-
def build_LiteralHash(o, *keyed_entries)
|
166
|
-
o.entries = keyed_entries.map {|entry| build(entry) }
|
167
|
-
o
|
212
|
+
@i12n['key'] = k
|
213
|
+
@i12n[KEY_VALUE] = v
|
168
214
|
end
|
169
215
|
|
170
|
-
def
|
171
|
-
|
172
|
-
case o.word
|
173
|
-
when 'application', 'site', 'produces', 'consumes'
|
174
|
-
build(o.word)
|
175
|
-
else
|
176
|
-
o
|
177
|
-
end
|
178
|
-
else
|
179
|
-
o
|
180
|
-
end
|
216
|
+
def build_LiteralHash(o, keyed_entries)
|
217
|
+
@i12n['entries'] = keyed_entries
|
181
218
|
end
|
182
219
|
|
183
|
-
def build_LiteralList(o,
|
184
|
-
|
185
|
-
o
|
220
|
+
def build_LiteralList(o, values)
|
221
|
+
@i12n['values'] = values
|
186
222
|
end
|
187
223
|
|
188
224
|
def build_LiteralFloat(o, val)
|
189
|
-
|
190
|
-
o
|
225
|
+
@i12n[KEY_VALUE] = val
|
191
226
|
end
|
192
227
|
|
193
228
|
def build_LiteralInteger(o, val, radix)
|
194
|
-
|
195
|
-
|
196
|
-
|
229
|
+
@i12n[KEY_VALUE] = val
|
230
|
+
@i12n['radix'] = radix
|
231
|
+
end
|
232
|
+
|
233
|
+
def build_LiteralString(o, value)
|
234
|
+
@i12n[KEY_VALUE] = val
|
197
235
|
end
|
198
236
|
|
199
237
|
def build_IfExpression(o, t, ift, els)
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
o
|
238
|
+
@i12n['test'] = t
|
239
|
+
@i12n['then_expr'] = ift
|
240
|
+
@i12n['else_expr'] = els
|
204
241
|
end
|
205
242
|
|
206
243
|
def build_MatchExpression(o, op, a, b)
|
207
|
-
|
244
|
+
@i12n[KEY_OPERATOR] = op
|
208
245
|
build_BinaryExpression(o, a, b)
|
209
246
|
end
|
210
247
|
|
211
|
-
#
|
212
|
-
#
|
213
|
-
#
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
248
|
+
# Building model equivalences of Ruby objects
|
249
|
+
# Allows passing regular ruby objects to the factory to produce instructions
|
250
|
+
# that when evaluated produce the same thing.
|
251
|
+
|
252
|
+
def infer_String(o)
|
253
|
+
@model_class = LiteralString
|
254
|
+
@i12n[KEY_VALUE] = o
|
255
|
+
end
|
256
|
+
|
257
|
+
def infer_NilClass(o)
|
258
|
+
@model_class = Nop
|
259
|
+
end
|
260
|
+
|
261
|
+
def infer_TrueClass(o)
|
262
|
+
@model_class = LiteralBoolean
|
263
|
+
@i12n[KEY_VALUE] = o
|
264
|
+
end
|
265
|
+
|
266
|
+
def infer_FalseClass(o)
|
267
|
+
@model_class = LiteralBoolean
|
268
|
+
@i12n[KEY_VALUE] = o
|
269
|
+
end
|
270
|
+
|
271
|
+
def infer_Integer(o)
|
272
|
+
@model_class = LiteralInteger
|
273
|
+
@i12n[KEY_VALUE] = o
|
274
|
+
end
|
275
|
+
|
276
|
+
def infer_Float(o)
|
277
|
+
@model_class = LiteralFloat
|
278
|
+
@i12n[KEY_VALUE] = o
|
279
|
+
end
|
280
|
+
|
281
|
+
def infer_Regexp(o)
|
282
|
+
@model_class = LiteralRegularExpression
|
283
|
+
@i12n['pattern'] = o.inspect
|
284
|
+
@i12n[KEY_VALUE] = o
|
285
|
+
end
|
286
|
+
|
287
|
+
# Creates a String literal, unless the symbol is one of the special :undef, or :default
|
288
|
+
# which instead creates a LiterlUndef, or a LiteralDefault.
|
289
|
+
# Supports :undef because nil creates a no-op instruction.
|
290
|
+
def infer_Symbol(o)
|
291
|
+
case o
|
292
|
+
when :undef
|
293
|
+
@model_class = LiteralUndef
|
294
|
+
when :default
|
295
|
+
@model_class = LiteralDefault
|
296
|
+
else
|
297
|
+
infer_String(o.to_s)
|
298
|
+
end
|
299
|
+
end
|
300
|
+
|
301
|
+
# Creates a LiteralList instruction from an Array, where the entries are built.
|
302
|
+
def infer_Array(o)
|
303
|
+
@model_class = LiteralList
|
304
|
+
@i12n['values'] = o.map { |e| Factory.infer(e) }
|
305
|
+
end
|
306
|
+
|
307
|
+
# Create a LiteralHash instruction from a hash, where keys and values are built
|
308
|
+
# The hash entries are added in sorted order based on key.to_s
|
309
|
+
#
|
310
|
+
def infer_Hash(o)
|
311
|
+
@model_class = LiteralHash
|
312
|
+
@i12n['entries'] = o.sort_by { |k,_| k.to_s }.map { |k, v| Factory.new(KeyedEntry, Factory.infer(k), Factory.infer(v)) }
|
313
|
+
end
|
314
|
+
|
220
315
|
def f_build_body(body)
|
221
316
|
case body
|
222
317
|
when NilClass
|
223
318
|
nil
|
224
319
|
when Array
|
225
|
-
Factory.new(BlockExpression,
|
320
|
+
Factory.new(BlockExpression, body)
|
321
|
+
when Factory
|
322
|
+
body
|
226
323
|
else
|
227
|
-
|
324
|
+
Factory.infer(body)
|
228
325
|
end
|
229
326
|
end
|
230
327
|
|
231
328
|
def build_LambdaExpression(o, parameters, body, return_type)
|
232
|
-
|
329
|
+
@i12n[KEY_PARAMETERS] = parameters
|
233
330
|
b = f_build_body(body)
|
234
|
-
|
235
|
-
|
236
|
-
o
|
331
|
+
@i12n[KEY_BODY] = b unless b.nil?
|
332
|
+
@i12n['return_type'] = return_type unless return_type.nil?
|
237
333
|
end
|
238
334
|
|
239
335
|
def build_NamedDefinition(o, name, parameters, body)
|
240
|
-
|
336
|
+
@i12n[KEY_PARAMETERS] = parameters
|
241
337
|
b = f_build_body(body)
|
242
|
-
|
243
|
-
|
244
|
-
o
|
338
|
+
@i12n[KEY_BODY] = b unless b.nil?
|
339
|
+
@i12n[KEY_NAME] = name
|
245
340
|
end
|
246
341
|
|
247
342
|
def build_FunctionDefinition(o, name, parameters, body, return_type)
|
248
|
-
|
343
|
+
@i12n[KEY_PARAMETERS] = parameters
|
249
344
|
b = f_build_body(body)
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
o
|
345
|
+
@i12n[KEY_BODY] = b unless b.nil?
|
346
|
+
@i12n[KEY_NAME] = name
|
347
|
+
@i12n['return_type'] = return_type unless return_type.nil?
|
254
348
|
end
|
255
349
|
|
256
350
|
def build_CapabilityMapping(o, kind, component, capability, mappings)
|
257
|
-
|
258
|
-
component = component
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
end
|
264
|
-
|
265
|
-
# @param o [NodeDefinition]
|
266
|
-
# @param hosts [Array<Expression>] host matches
|
267
|
-
# @param parent [Expression] parent node matcher
|
268
|
-
# @param body [Object] see {#f_build_body}
|
351
|
+
@i12n['kind'] = kind
|
352
|
+
@i12n['component'] = component
|
353
|
+
@i12n['capability'] = capability
|
354
|
+
@i12n['mappings'] = mappings
|
355
|
+
end
|
356
|
+
|
269
357
|
def build_NodeDefinition(o, hosts, parent, body)
|
270
|
-
|
271
|
-
|
358
|
+
@i12n['host_matches'] = hosts
|
359
|
+
@i12n['parent'] = parent unless parent.nil? # no nop here
|
272
360
|
b = f_build_body(body)
|
273
|
-
|
274
|
-
o
|
361
|
+
@i12n[KEY_BODY] = b unless b.nil?
|
275
362
|
end
|
276
363
|
|
277
|
-
# @param o [SiteDefinition]
|
278
|
-
# @param body [Object] see {#f_build_body}
|
279
364
|
def build_SiteDefinition(o, body)
|
280
365
|
b = f_build_body(body)
|
281
|
-
|
282
|
-
o
|
366
|
+
@i12n[KEY_BODY] = b unless b.nil?
|
283
367
|
end
|
284
368
|
|
285
369
|
def build_Parameter(o, name, expr)
|
286
|
-
|
287
|
-
|
288
|
-
o
|
370
|
+
@i12n[KEY_NAME] = name
|
371
|
+
@i12n[KEY_VALUE] = expr
|
289
372
|
end
|
290
373
|
|
291
374
|
def build_QualifiedReference(o, name)
|
292
|
-
|
293
|
-
o
|
375
|
+
@i12n['cased_value'] = name.to_s
|
294
376
|
end
|
295
377
|
|
296
378
|
def build_RelationshipExpression(o, op, a, b)
|
297
|
-
|
379
|
+
@i12n[KEY_OPERATOR] = op
|
298
380
|
build_BinaryExpression(o, a, b)
|
299
381
|
end
|
300
382
|
|
301
383
|
def build_ResourceExpression(o, type_name, bodies)
|
302
|
-
|
303
|
-
|
304
|
-
o
|
384
|
+
@i12n['type_name'] = type_name
|
385
|
+
@i12n['bodies'] = bodies
|
305
386
|
end
|
306
387
|
|
307
388
|
def build_RenderStringExpression(o, string)
|
308
|
-
|
309
|
-
o
|
389
|
+
@i12n[KEY_VALUE] = string;
|
310
390
|
end
|
311
391
|
|
312
392
|
def build_ResourceBody(o, title_expression, attribute_operations)
|
313
|
-
|
314
|
-
|
315
|
-
o
|
393
|
+
@i12n['title'] = title_expression
|
394
|
+
@i12n['operations'] = attribute_operations
|
316
395
|
end
|
317
396
|
|
318
397
|
def build_ResourceDefaultsExpression(o, type_ref, attribute_operations)
|
319
|
-
|
320
|
-
|
321
|
-
o
|
398
|
+
@i12n['type_ref'] = type_ref
|
399
|
+
@i12n['operations'] = attribute_operations
|
322
400
|
end
|
323
401
|
|
324
402
|
def build_SelectorExpression(o, left, *selectors)
|
325
|
-
|
326
|
-
|
327
|
-
o
|
403
|
+
@i12n[KEY_LEFT_EXPR] = left
|
404
|
+
@i12n['selectors'] = selectors
|
328
405
|
end
|
329
406
|
|
330
407
|
# Builds a SubLocatedExpression - this wraps the expression in a sublocation configured
|
@@ -333,70 +410,56 @@ class Factory
|
|
333
410
|
# to what it describes.
|
334
411
|
#
|
335
412
|
def build_SubLocatedExpression(o, token, expression)
|
336
|
-
|
337
|
-
|
338
|
-
|
413
|
+
@i12n[KEY_EXPR] = expression
|
414
|
+
@i12n[KEY_OFFSET] = token.offset
|
415
|
+
@i12n[KEY_LENGTH] = token.length
|
339
416
|
locator = token.locator
|
340
|
-
|
341
|
-
|
342
|
-
|
417
|
+
@i12n[KEY_LOCATOR] = locator
|
418
|
+
@i12n['leading_line_count'] = locator.leading_line_count
|
419
|
+
@i12n['leading_line_offset'] = locator.leading_line_offset
|
343
420
|
# Index is held in sublocator's parent locator - needed to be able to reconstruct
|
344
|
-
|
345
|
-
o
|
421
|
+
@i12n['line_offsets'] = locator.locator.line_index
|
346
422
|
end
|
347
423
|
|
348
424
|
def build_SelectorEntry(o, matching, value)
|
349
|
-
|
350
|
-
|
351
|
-
o
|
425
|
+
@i12n['matching_expr'] = matching
|
426
|
+
@i12n['value_expr'] = value
|
352
427
|
end
|
353
428
|
|
354
429
|
def build_QueryExpression(o, expr)
|
355
|
-
|
356
|
-
o.expr = ops unless Factory.nop? ops
|
357
|
-
o
|
430
|
+
@i12n[KEY_EXPR] = expr unless Factory.nop?(expr)
|
358
431
|
end
|
359
432
|
|
360
433
|
def build_TypeAlias(o, name, type_expr)
|
361
|
-
|
362
|
-
|
363
|
-
o
|
434
|
+
@i12n['type_expr'] = type_expr
|
435
|
+
@i12n[KEY_NAME] = name
|
364
436
|
end
|
365
437
|
|
366
438
|
def build_TypeMapping(o, lhs, rhs)
|
367
|
-
|
368
|
-
|
369
|
-
o
|
439
|
+
@i12n['type_expr'] = lhs
|
440
|
+
@i12n['mapping_expr'] = rhs
|
370
441
|
end
|
371
442
|
|
372
443
|
def build_TypeDefinition(o, name, parent, body)
|
373
444
|
b = f_build_body(body)
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
o
|
445
|
+
@i12n[KEY_BODY] = b unless b.nil?
|
446
|
+
@i12n['parent'] = parent
|
447
|
+
@i12n[KEY_NAME] = name
|
378
448
|
end
|
379
449
|
|
380
450
|
def build_UnaryExpression(o, expr)
|
381
|
-
|
382
|
-
o.expr = ops unless Factory.nop? ops
|
383
|
-
o
|
451
|
+
@i12n[KEY_EXPR] = expr unless Factory.nop?(expr)
|
384
452
|
end
|
385
453
|
|
386
454
|
def build_Program(o, body, definitions, locator)
|
387
|
-
|
455
|
+
@i12n[KEY_BODY] = body
|
388
456
|
# non containment
|
389
|
-
|
390
|
-
|
391
|
-
o.source_text = locator.string
|
392
|
-
o.line_offsets = locator.line_index
|
393
|
-
o.locator = locator
|
394
|
-
o
|
457
|
+
@i12n['definitions'] = definitions
|
458
|
+
@i12n[KEY_LOCATOR] = locator
|
395
459
|
end
|
396
460
|
|
397
461
|
def build_QualifiedName(o, name)
|
398
|
-
|
399
|
-
o
|
462
|
+
@i12n[KEY_VALUE] = name
|
400
463
|
end
|
401
464
|
|
402
465
|
def build_TokenValue(o)
|
@@ -405,172 +468,152 @@ class Factory
|
|
405
468
|
|
406
469
|
# Factory helpers
|
407
470
|
def f_build_unary(klazz, expr)
|
408
|
-
Factory.new(
|
471
|
+
Factory.new(klazz, expr)
|
409
472
|
end
|
410
473
|
|
411
474
|
def f_build_binary_op(klazz, op, left, right)
|
412
|
-
Factory.new(
|
475
|
+
Factory.new(klazz, op, left, right)
|
413
476
|
end
|
414
477
|
|
415
478
|
def f_build_binary(klazz, left, right)
|
416
|
-
Factory.new(
|
417
|
-
end
|
418
|
-
|
419
|
-
def f_build_vararg(klazz, left, *arg)
|
420
|
-
Factory.new(build(klazz, left, *arg))
|
479
|
+
Factory.new(klazz, left, right)
|
421
480
|
end
|
422
481
|
|
423
482
|
def f_arithmetic(op, r)
|
424
|
-
f_build_binary_op(ArithmeticExpression, op,
|
483
|
+
f_build_binary_op(ArithmeticExpression, op, self, r)
|
425
484
|
end
|
426
485
|
|
427
486
|
def f_comparison(op, r)
|
428
|
-
f_build_binary_op(ComparisonExpression, op,
|
487
|
+
f_build_binary_op(ComparisonExpression, op, self, r)
|
429
488
|
end
|
430
489
|
|
431
490
|
def f_match(op, r)
|
432
|
-
f_build_binary_op(MatchExpression, op,
|
491
|
+
f_build_binary_op(MatchExpression, op, self, r)
|
433
492
|
end
|
434
493
|
|
435
494
|
# Operator helpers
|
436
|
-
def in(r) f_build_binary(InExpression,
|
495
|
+
def in(r) f_build_binary(InExpression, self, r); end
|
437
496
|
|
438
|
-
def or(r) f_build_binary(OrExpression,
|
497
|
+
def or(r) f_build_binary(OrExpression, self, r); end
|
439
498
|
|
440
|
-
def and(r) f_build_binary(AndExpression,
|
499
|
+
def and(r) f_build_binary(AndExpression, self, r); end
|
441
500
|
|
442
|
-
def not(); f_build_unary(NotExpression, self);
|
501
|
+
def not(); f_build_unary(NotExpression, self); end
|
443
502
|
|
444
|
-
def minus(); f_build_unary(UnaryMinusExpression, self);
|
503
|
+
def minus(); f_build_unary(UnaryMinusExpression, self); end
|
445
504
|
|
446
|
-
def unfold(); f_build_unary(UnfoldExpression, self);
|
505
|
+
def unfold(); f_build_unary(UnfoldExpression, self); end
|
447
506
|
|
448
|
-
def text(); f_build_unary(TextExpression, self);
|
507
|
+
def text(); f_build_unary(TextExpression, self); end
|
449
508
|
|
450
|
-
def var(); f_build_unary(VariableExpression, self);
|
509
|
+
def var(); f_build_unary(VariableExpression, self); end
|
451
510
|
|
452
|
-
def
|
511
|
+
def access(r); f_build_binary(AccessExpression, self, r); end
|
453
512
|
|
454
|
-
def dot r; f_build_binary(NamedAccessExpression,
|
513
|
+
def dot r; f_build_binary(NamedAccessExpression, self, r); end
|
455
514
|
|
456
|
-
def + r; f_arithmetic(
|
515
|
+
def + r; f_arithmetic('+', r); end
|
457
516
|
|
458
|
-
def - r; f_arithmetic(
|
517
|
+
def - r; f_arithmetic('-', r); end
|
459
518
|
|
460
|
-
def / r; f_arithmetic(
|
519
|
+
def / r; f_arithmetic('/', r); end
|
461
520
|
|
462
|
-
def * r; f_arithmetic(
|
521
|
+
def * r; f_arithmetic('*', r); end
|
463
522
|
|
464
|
-
def % r; f_arithmetic(
|
523
|
+
def % r; f_arithmetic('%', r); end
|
465
524
|
|
466
|
-
def << r; f_arithmetic(
|
525
|
+
def << r; f_arithmetic('<<', r); end
|
467
526
|
|
468
|
-
def >> r; f_arithmetic(
|
527
|
+
def >> r; f_arithmetic('>>', r); end
|
469
528
|
|
470
|
-
def < r; f_comparison(
|
529
|
+
def < r; f_comparison('<', r); end
|
471
530
|
|
472
|
-
def <= r; f_comparison(
|
531
|
+
def <= r; f_comparison('<=', r); end
|
473
532
|
|
474
|
-
def > r; f_comparison(
|
533
|
+
def > r; f_comparison('>', r); end
|
475
534
|
|
476
|
-
def >= r; f_comparison(
|
535
|
+
def >= r; f_comparison('>=', r); end
|
477
536
|
|
478
|
-
def
|
537
|
+
def eq r; f_comparison('==', r); end
|
479
538
|
|
480
|
-
def ne r; f_comparison(
|
539
|
+
def ne r; f_comparison('!=', r); end
|
481
540
|
|
482
|
-
def =~ r; f_match(
|
541
|
+
def =~ r; f_match('=~', r); end
|
483
542
|
|
484
|
-
def mne r; f_match(
|
543
|
+
def mne r; f_match('!~', r); end
|
485
544
|
|
486
|
-
def paren
|
545
|
+
def paren; f_build_unary(ParenthesizedExpression, self); end
|
487
546
|
|
488
|
-
def relop
|
489
|
-
f_build_binary_op(RelationshipExpression, op
|
547
|
+
def relop(op, r)
|
548
|
+
f_build_binary_op(RelationshipExpression, op, self, r)
|
490
549
|
end
|
491
550
|
|
492
|
-
def select
|
493
|
-
Factory.new(
|
551
|
+
def select(*args)
|
552
|
+
Factory.new(SelectorExpression, self, *args)
|
553
|
+
end
|
554
|
+
|
555
|
+
# Same as access, but with varargs and arguments that must be inferred. For testing purposes
|
556
|
+
def access_at(*r)
|
557
|
+
f_build_binary(AccessExpression, self, r.map { |arg| Factory.infer(arg) })
|
494
558
|
end
|
495
559
|
|
496
560
|
# For CaseExpression, setting the default for an already build CaseExpression
|
497
|
-
def default
|
498
|
-
|
561
|
+
def default(r)
|
562
|
+
@i12n['options'] << Factory.WHEN(Factory.infer(:default), r)
|
499
563
|
self
|
500
564
|
end
|
501
565
|
|
502
566
|
def lambda=(lambda)
|
503
|
-
|
567
|
+
@i12n['lambda'] = lambda
|
504
568
|
self
|
505
569
|
end
|
506
570
|
|
507
571
|
# Assignment =
|
508
572
|
def set(r)
|
509
|
-
f_build_binary_op(AssignmentExpression,
|
573
|
+
f_build_binary_op(AssignmentExpression, '=', self, r)
|
510
574
|
end
|
511
575
|
|
512
576
|
# Assignment +=
|
513
577
|
def plus_set(r)
|
514
|
-
f_build_binary_op(AssignmentExpression,
|
578
|
+
f_build_binary_op(AssignmentExpression, '+=', self, r)
|
515
579
|
end
|
516
580
|
|
517
581
|
# Assignment -=
|
518
582
|
def minus_set(r)
|
519
|
-
f_build_binary_op(AssignmentExpression,
|
583
|
+
f_build_binary_op(AssignmentExpression, '-=', self, r)
|
520
584
|
end
|
521
585
|
|
522
586
|
def attributes(*args)
|
523
|
-
|
587
|
+
@i12n['attributes'] = args
|
524
588
|
self
|
525
589
|
end
|
526
590
|
|
527
|
-
# Catch all delegation to current
|
528
|
-
def method_missing(meth, *args, &block)
|
529
|
-
if current.respond_to?(meth)
|
530
|
-
current.send(meth, *args, &block)
|
531
|
-
else
|
532
|
-
super
|
533
|
-
end
|
534
|
-
end
|
535
|
-
|
536
|
-
def respond_to?(meth, include_all=false)
|
537
|
-
current.respond_to?(meth, include_all) || super
|
538
|
-
end
|
539
|
-
|
540
|
-
def self.record_position(o, start_locatable, end_locateable)
|
541
|
-
new(o).record_position(start_locatable, end_locateable)
|
542
|
-
end
|
543
|
-
|
544
591
|
def offset
|
545
|
-
@
|
592
|
+
@i12n[KEY_OFFSET]
|
546
593
|
end
|
547
594
|
|
548
595
|
def length
|
549
|
-
@
|
596
|
+
@i12n[KEY_LENGTH]
|
550
597
|
end
|
551
598
|
|
552
599
|
# Records the position (start -> end) and computes the resulting length.
|
553
600
|
#
|
554
|
-
def record_position(start_locatable, end_locatable)
|
601
|
+
def record_position(locator, start_locatable, end_locatable)
|
555
602
|
# record information directly in the Positioned object
|
556
603
|
start_offset = start_locatable.offset
|
557
|
-
@
|
604
|
+
@i12n[KEY_LOCATOR] = locator
|
605
|
+
@i12n[KEY_OFFSET] = start_offset
|
606
|
+
@i12n[KEY_LENGTH] = end_locatable.nil? ? start_locatable.length : end_locatable.offset + end_locatable.length - start_offset
|
558
607
|
self
|
559
608
|
end
|
560
609
|
|
561
|
-
# @return [Puppet::Pops::Adapters::SourcePosAdapter] with location information
|
562
|
-
def loc()
|
563
|
-
Adapters::SourcePosAdapter.adapt(current)
|
564
|
-
end
|
565
|
-
|
566
610
|
# Sets the form of the resource expression (:regular (the default), :virtual, or :exported).
|
567
611
|
# Produces true if the expression was a resource expression, false otherwise.
|
568
612
|
#
|
569
613
|
def self.set_resource_form(expr, form)
|
570
|
-
expr = expr.current if expr.instance_of?(Factory)
|
571
614
|
# Note: Validation handles illegal combinations
|
572
|
-
return false unless expr.
|
573
|
-
expr
|
615
|
+
return false unless expr.instance_of?(self) && expr.model_class <= AbstractResource
|
616
|
+
expr['form'] = form
|
574
617
|
return true
|
575
618
|
end
|
576
619
|
|
@@ -582,105 +625,102 @@ class Factory
|
|
582
625
|
# * _any other_ => ':error', all other are considered illegal
|
583
626
|
#
|
584
627
|
def self.resource_shape(expr)
|
585
|
-
|
586
|
-
|
587
|
-
|
588
|
-
|
589
|
-
|
590
|
-
|
591
|
-
|
592
|
-
# if Resource[e], then it is not resource specific
|
593
|
-
if expr.left_expr.is_a?(QualifiedReference) && expr.left_expr.value == 'resource' && expr.keys.size == 1
|
628
|
+
if expr == 'class'
|
629
|
+
:class
|
630
|
+
elsif expr.instance_of?(self)
|
631
|
+
mc = expr.model_class
|
632
|
+
if mc <= QualifiedName
|
633
|
+
:resource
|
634
|
+
elsif mc <= QualifiedReference
|
594
635
|
:defaults
|
636
|
+
elsif mc <= AccessExpression
|
637
|
+
# if Resource[e], then it is not resource specific
|
638
|
+
lhs = expr[KEY_LEFT_EXPR]
|
639
|
+
if lhs.model_class <= QualifiedReference && lhs[KEY_VALUE] == 'resource' && expr[KEY_KEYS].size == 1
|
640
|
+
:defaults
|
641
|
+
else
|
642
|
+
:override
|
643
|
+
end
|
595
644
|
else
|
596
|
-
:
|
645
|
+
:error
|
597
646
|
end
|
598
|
-
when 'class'
|
599
|
-
:class
|
600
647
|
else
|
601
648
|
:error
|
602
649
|
end
|
603
650
|
end
|
604
|
-
# Factory starting points
|
605
|
-
|
606
|
-
def self.literal(o); new(o); end
|
607
651
|
|
608
|
-
|
652
|
+
# Factory starting points
|
609
653
|
|
610
|
-
def self.
|
654
|
+
def self.literal(o); infer(o); end
|
611
655
|
|
612
|
-
def self.
|
656
|
+
def self.minus(o); infer(o).minus; end
|
613
657
|
|
614
|
-
def self.
|
658
|
+
def self.unfold(o); infer(o).unfold; end
|
615
659
|
|
616
|
-
def self.
|
660
|
+
def self.var(o); infer(o).var; end
|
617
661
|
|
618
|
-
def self.
|
662
|
+
def self.block(*args); new(BlockExpression, args.map { |arg| infer(arg) }); end
|
619
663
|
|
620
|
-
def self.
|
664
|
+
def self.string(*args); new(ConcatenatedString, args.map { |arg| infer(arg) }); end
|
621
665
|
|
622
|
-
def self.
|
666
|
+
def self.text(o); infer(o).text; end
|
623
667
|
|
624
|
-
def self.
|
668
|
+
def self.IF(test_e,then_e,else_e); new(IfExpression, test_e, then_e, else_e); end
|
625
669
|
|
626
|
-
def self.
|
670
|
+
def self.UNLESS(test_e,then_e,else_e); new(UnlessExpression, test_e, then_e, else_e); end
|
627
671
|
|
628
|
-
def self.
|
672
|
+
def self.CASE(test_e,*options); new(CaseExpression, test_e, options); end
|
629
673
|
|
630
|
-
def self.
|
674
|
+
def self.WHEN(values_list, block); new(CaseOption, values_list, block); end
|
631
675
|
|
632
|
-
def self.
|
676
|
+
def self.MAP(match, value); new(SelectorEntry, match, value); end
|
633
677
|
|
634
|
-
def self.
|
678
|
+
def self.KEY_ENTRY(key, val); new(KeyedEntry, key, val); end
|
635
679
|
|
636
|
-
def self.
|
680
|
+
def self.HASH(entries); new(LiteralHash, entries); end
|
637
681
|
|
638
|
-
def self.
|
682
|
+
def self.HEREDOC(name, expr); new(HeredocExpression, name, expr); end
|
639
683
|
|
640
|
-
def self.
|
684
|
+
def self.STRING(*args); new(ConcatenatedString, args); end
|
641
685
|
|
642
|
-
def self.SUBLOCATE(token, expr) new(SubLocatedExpression, token, expr);
|
686
|
+
def self.SUBLOCATE(token, expr) new(SubLocatedExpression, token, expr); end
|
643
687
|
|
644
|
-
def self.LIST(entries); new(LiteralList,
|
688
|
+
def self.LIST(entries); new(LiteralList, entries); end
|
645
689
|
|
646
|
-
def self.PARAM(name, expr=nil); new(Parameter, name, expr);
|
690
|
+
def self.PARAM(name, expr=nil); new(Parameter, name, expr); end
|
647
691
|
|
648
|
-
def self.NODE(hosts, parent, body); new(NodeDefinition, hosts, parent, body);
|
692
|
+
def self.NODE(hosts, parent, body); new(NodeDefinition, hosts, parent, body); end
|
649
693
|
|
650
|
-
def self.SITE(body); new(SiteDefinition, body);
|
694
|
+
def self.SITE(body); new(SiteDefinition, body); end
|
651
695
|
|
652
696
|
# Parameters
|
653
697
|
|
654
698
|
# Mark parameter as capturing the rest of arguments
|
655
|
-
def captures_rest
|
656
|
-
|
699
|
+
def captures_rest
|
700
|
+
@i12n['captures_rest'] = true
|
657
701
|
end
|
658
702
|
|
659
703
|
# Set Expression that should evaluate to the parameter's type
|
660
704
|
def type_expr(o)
|
661
|
-
|
705
|
+
@i12n['type_expr'] = o
|
662
706
|
end
|
663
707
|
|
664
708
|
# Creates a QualifiedName representation of o, unless o already represents a QualifiedName in which
|
665
709
|
# case it is returned.
|
666
710
|
#
|
667
711
|
def self.fqn(o)
|
668
|
-
o
|
669
|
-
o = new(QualifiedName, o) unless o.is_a? QualifiedName
|
670
|
-
o
|
712
|
+
o.instance_of?(Factory) && o.model_class <= QualifiedName ? self : new(QualifiedName, o)
|
671
713
|
end
|
672
714
|
|
673
715
|
# Creates a QualifiedName representation of o, unless o already represents a QualifiedName in which
|
674
716
|
# case it is returned.
|
675
717
|
#
|
676
718
|
def self.fqr(o)
|
677
|
-
o
|
678
|
-
o = new(QualifiedReference, o) unless o.is_a? QualifiedReference
|
679
|
-
o
|
719
|
+
o.instance_of?(Factory) && o.model_class <= QualifiedReference ? self : new(QualifiedReference, o)
|
680
720
|
end
|
681
721
|
|
682
722
|
def self.TEXT(expr)
|
683
|
-
new(TextExpression,
|
723
|
+
new(TextExpression, infer(expr).interpolate)
|
684
724
|
end
|
685
725
|
|
686
726
|
# TODO_EPP
|
@@ -763,15 +803,17 @@ class Factory
|
|
763
803
|
new(AttributesOperation, expr)
|
764
804
|
end
|
765
805
|
|
806
|
+
# Same as CALL_NAMED but with inference and varargs (for testing purposes)
|
807
|
+
def self.call_named(name, rval_required, *argument_list)
|
808
|
+
new(CallNamedFunctionExpression, fqn(name), rval_required, argument_list.map { |arg| infer(arg) })
|
809
|
+
end
|
810
|
+
|
766
811
|
def self.CALL_NAMED(name, rval_required, argument_list)
|
767
|
-
|
768
|
-
name = Factory.fqn(name) unless name.instance_of?(Factory)
|
769
|
-
end
|
770
|
-
new(CallNamedFunctionExpression, name, rval_required, *argument_list)
|
812
|
+
new(CallNamedFunctionExpression, name, rval_required, argument_list)
|
771
813
|
end
|
772
814
|
|
773
815
|
def self.CALL_METHOD(functor, argument_list)
|
774
|
-
new(CallMethodExpression, functor, true, nil,
|
816
|
+
new(CallMethodExpression, functor, true, nil, argument_list)
|
775
817
|
end
|
776
818
|
|
777
819
|
def self.COLLECT(type_expr, query_expr, attribute_operations)
|
@@ -803,12 +845,8 @@ class Factory
|
|
803
845
|
end
|
804
846
|
|
805
847
|
# Builds a BlockExpression if args size > 1, else the single expression/value in args
|
806
|
-
def self.block_or_expression(
|
807
|
-
|
808
|
-
new(BlockExpression, *args)
|
809
|
-
else
|
810
|
-
new(args[0])
|
811
|
-
end
|
848
|
+
def self.block_or_expression(args)
|
849
|
+
args.size > 1 ? new(BlockExpression, args) : args[0]
|
812
850
|
end
|
813
851
|
|
814
852
|
def self.HOSTCLASS(name, parameters, parent, body)
|
@@ -836,10 +874,10 @@ class Factory
|
|
836
874
|
end
|
837
875
|
|
838
876
|
def self.TYPE_ASSIGNMENT(lhs, rhs)
|
839
|
-
if lhs.
|
877
|
+
if lhs.model_class <= AccessExpression
|
840
878
|
new(TypeMapping, lhs, rhs)
|
841
879
|
else
|
842
|
-
new(TypeAlias, lhs, rhs)
|
880
|
+
new(TypeAlias, lhs['cased_value'], rhs)
|
843
881
|
end
|
844
882
|
end
|
845
883
|
|
@@ -848,7 +886,7 @@ class Factory
|
|
848
886
|
end
|
849
887
|
|
850
888
|
def self.nop? o
|
851
|
-
o.nil? || o.
|
889
|
+
o.nil? || o.instance_of?(Factory) && o.model_class <= Nop
|
852
890
|
end
|
853
891
|
|
854
892
|
STATEMENT_CALLS = {
|
@@ -869,12 +907,13 @@ class Factory
|
|
869
907
|
'break' => true,
|
870
908
|
'next' => true,
|
871
909
|
'return' => true
|
872
|
-
}
|
910
|
+
}.freeze
|
911
|
+
|
873
912
|
# Returns true if the given name is a "statement keyword" (require, include, contain,
|
874
913
|
# error, notice, info, debug
|
875
914
|
#
|
876
|
-
def name_is_statement(name)
|
877
|
-
STATEMENT_CALLS
|
915
|
+
def self.name_is_statement?(name)
|
916
|
+
STATEMENT_CALLS.include?(name)
|
878
917
|
end
|
879
918
|
|
880
919
|
class ArgsToNonCallError < RuntimeError
|
@@ -890,17 +929,16 @@ class Factory
|
|
890
929
|
#
|
891
930
|
def self.transform_calls(expressions)
|
892
931
|
expressions.reduce([]) do |memo, expr|
|
893
|
-
expr = expr.current if expr.instance_of?(Factory)
|
894
932
|
name = memo[-1]
|
895
|
-
if name.
|
933
|
+
if name.instance_of?(Factory) && name.model_class <= QualifiedName && name_is_statement?(name[KEY_VALUE])
|
896
934
|
if expr.is_a?(Array)
|
897
|
-
expr = expr.reject {|e| e.is_a?(Parser::LexerSupport::TokenValue) }
|
935
|
+
expr = expr.reject { |e| e.is_a?(Parser::LexerSupport::TokenValue) }
|
898
936
|
else
|
899
937
|
expr = [expr]
|
900
938
|
end
|
901
|
-
the_call =
|
939
|
+
the_call = self.CALL_NAMED(name, false, expr)
|
902
940
|
# last positioned is last arg if there are several
|
903
|
-
record_position(
|
941
|
+
the_call.record_position(name[KEY_LOCATOR], name, expr[-1])
|
904
942
|
memo[-1] = the_call
|
905
943
|
if expr.is_a?(CallNamedFunctionExpression)
|
906
944
|
# Patch statement function call to expression style
|
@@ -912,15 +950,14 @@ class Factory
|
|
912
950
|
raise ArgsToNonCallError.new(expr, name)
|
913
951
|
else
|
914
952
|
memo << expr
|
915
|
-
if expr.
|
953
|
+
if expr.model_class <= CallNamedFunctionExpression
|
916
954
|
# Patch rvalue expression function call to statement style.
|
917
955
|
# This is not really required but done to be AST model compliant
|
918
|
-
expr
|
956
|
+
expr['rval_required'] = false
|
919
957
|
end
|
920
958
|
end
|
921
959
|
memo
|
922
960
|
end
|
923
|
-
|
924
961
|
end
|
925
962
|
|
926
963
|
# Transforms a left expression followed by an untitled resource (in the form of attribute_operations)
|
@@ -928,223 +965,113 @@ class Factory
|
|
928
965
|
def self.transform_resource_wo_title(left, attribute_ops, lbrace_token, rbrace_token)
|
929
966
|
# Returning nil means accepting the given as a potential resource expression
|
930
967
|
return nil unless attribute_ops.is_a? Array
|
931
|
-
return nil unless left.
|
968
|
+
return nil unless left.model_class <= QualifiedName
|
932
969
|
keyed_entries = attribute_ops.map do |ao|
|
933
|
-
return nil if ao
|
934
|
-
KEY_ENTRY(ao
|
970
|
+
return nil if ao[KEY_OPERATOR] == '+>'
|
971
|
+
KEY_ENTRY(infer(ao['attribute_name']), ao['value_expr'])
|
935
972
|
end
|
936
973
|
a_hash = HASH(keyed_entries)
|
937
|
-
a_hash.record_position(lbrace_token, rbrace_token)
|
938
|
-
result = block_or_expression(
|
974
|
+
a_hash.record_position(left[KEY_LOCATOR], lbrace_token, rbrace_token)
|
975
|
+
result = block_or_expression(transform_calls([left, a_hash]))
|
939
976
|
result
|
940
977
|
end
|
941
978
|
|
942
|
-
|
943
|
-
|
944
|
-
# Allows passing regular ruby objects to the factory to produce instructions
|
945
|
-
# that when evaluated produce the same thing.
|
946
|
-
|
947
|
-
def build_String(o)
|
948
|
-
x = LiteralString.new
|
949
|
-
x.value = o;
|
950
|
-
x
|
951
|
-
end
|
952
|
-
|
953
|
-
def build_NilClass(o)
|
954
|
-
x = Nop.new
|
955
|
-
x
|
956
|
-
end
|
957
|
-
|
958
|
-
def build_TrueClass(o)
|
959
|
-
x = LiteralBoolean.new
|
960
|
-
x.value = o
|
961
|
-
x
|
962
|
-
end
|
963
|
-
|
964
|
-
def build_FalseClass(o)
|
965
|
-
x = LiteralBoolean.new
|
966
|
-
x.value = o
|
967
|
-
x
|
968
|
-
end
|
969
|
-
|
970
|
-
def build_Fixnum(o)
|
971
|
-
x = LiteralInteger.new
|
972
|
-
x.value = o;
|
973
|
-
x
|
974
|
-
end
|
975
|
-
|
976
|
-
def build_Float(o)
|
977
|
-
x = LiteralFloat.new
|
978
|
-
x.value = o;
|
979
|
-
x
|
980
|
-
end
|
981
|
-
|
982
|
-
def build_Regexp(o)
|
983
|
-
x = LiteralRegularExpression.new
|
984
|
-
x.value = o;
|
985
|
-
x
|
986
|
-
end
|
987
|
-
|
988
|
-
def build_EppExpression(o, parameters_specified, body)
|
989
|
-
o.parameters_specified = parameters_specified
|
990
|
-
b = f_build_body(body)
|
991
|
-
o.body = b.current if b
|
992
|
-
o
|
993
|
-
end
|
994
|
-
|
995
|
-
# If building a factory, simply unwrap the model oject contained in the factory.
|
996
|
-
def build_Factory(o)
|
997
|
-
o.current
|
998
|
-
end
|
999
|
-
|
1000
|
-
# Creates a String literal, unless the symbol is one of the special :undef, or :default
|
1001
|
-
# which instead creates a LiterlUndef, or a LiteralDefault.
|
1002
|
-
# Supports :undef because nil creates a no-op instruction.
|
1003
|
-
def build_Symbol(o)
|
1004
|
-
case o
|
1005
|
-
when :undef
|
1006
|
-
LiteralUndef.new
|
1007
|
-
when :default
|
1008
|
-
LiteralDefault.new
|
1009
|
-
else
|
1010
|
-
build_String(o.to_s)
|
1011
|
-
end
|
1012
|
-
end
|
1013
|
-
|
1014
|
-
# Creates a LiteralList instruction from an Array, where the entries are built.
|
1015
|
-
def build_Array(o)
|
1016
|
-
x = LiteralList.new
|
1017
|
-
o.each { |v| x.addValues(build(v)) }
|
1018
|
-
x
|
1019
|
-
end
|
1020
|
-
|
1021
|
-
# Create a LiteralHash instruction from a hash, where keys and values are built
|
1022
|
-
# The hash entries are added in sorted order based on key.to_s
|
1023
|
-
#
|
1024
|
-
def build_Hash(o)
|
1025
|
-
x = LiteralHash.new
|
1026
|
-
(o.sort_by {|k,v| k.to_s}).each {|k,v| x.addEntries(build(KeyedEntry.new, k, v)) }
|
1027
|
-
x
|
1028
|
-
end
|
1029
|
-
|
1030
|
-
# @param rval_required [Boolean] if the call must produce a value
|
1031
|
-
def build_CallExpression(o, functor, rval_required, *args)
|
1032
|
-
o.functor_expr = to_ops(functor)
|
1033
|
-
o.rval_required = rval_required
|
1034
|
-
args.each {|x| o.addArguments(to_ops(x)) }
|
1035
|
-
o
|
1036
|
-
end
|
1037
|
-
|
1038
|
-
def build_CallMethodExpression(o, functor, rval_required, lambda, *args)
|
1039
|
-
build_CallExpression(o, functor, rval_required, *args)
|
1040
|
-
o.lambda = lambda
|
1041
|
-
o
|
1042
|
-
end
|
1043
|
-
|
1044
|
-
def build_CaseExpression(o, test, *args)
|
1045
|
-
o.test = build(test)
|
1046
|
-
args.each {|opt| o.addOptions(build(opt)) }
|
1047
|
-
o
|
1048
|
-
end
|
1049
|
-
|
1050
|
-
def build_CaseOption(o, value_list, then_expr)
|
1051
|
-
value_list = [value_list] unless value_list.is_a? Array
|
1052
|
-
value_list.each { |v| o.addValues(build(v)) }
|
1053
|
-
b = f_build_body(then_expr)
|
1054
|
-
o.then_expr = to_ops(b) if b
|
1055
|
-
o
|
1056
|
-
end
|
1057
|
-
|
1058
|
-
# Build a Class by creating an instance of it, and then calling build on the created instance
|
1059
|
-
# with the given arguments
|
1060
|
-
def build_Class(o, *args)
|
1061
|
-
build(o.new(), *args)
|
1062
|
-
end
|
1063
|
-
|
1064
|
-
def interpolate_Factory(o)
|
1065
|
-
interpolate(o.current)
|
979
|
+
def interpolate_Factory(c)
|
980
|
+
self
|
1066
981
|
end
|
1067
982
|
|
1068
|
-
def interpolate_LiteralInteger(
|
983
|
+
def interpolate_LiteralInteger(c)
|
1069
984
|
# convert number to a variable
|
1070
|
-
self.
|
985
|
+
self.var
|
1071
986
|
end
|
1072
987
|
|
1073
|
-
def interpolate_Object(
|
1074
|
-
|
988
|
+
def interpolate_Object(c)
|
989
|
+
self
|
1075
990
|
end
|
1076
991
|
|
1077
|
-
def interpolate_QualifiedName(
|
1078
|
-
self.
|
992
|
+
def interpolate_QualifiedName(c)
|
993
|
+
self.var
|
1079
994
|
end
|
1080
995
|
|
1081
996
|
# rewrite left expression to variable if it is name, number, and recurse if it is an access expression
|
1082
997
|
# this is for interpolation support in new lexer (${NAME}, ${NAME[}}, ${NUMBER}, ${NUMBER[]} - all
|
1083
998
|
# other expressions requires variables to be preceded with $
|
1084
999
|
#
|
1085
|
-
def interpolate_AccessExpression(
|
1086
|
-
|
1087
|
-
|
1000
|
+
def interpolate_AccessExpression(c)
|
1001
|
+
lhs = @i12n[KEY_LEFT_EXPR]
|
1002
|
+
if is_interop_rewriteable?(lhs)
|
1003
|
+
@i12n[KEY_LEFT_EXPR] = lhs.interpolate
|
1088
1004
|
end
|
1089
|
-
|
1005
|
+
self
|
1090
1006
|
end
|
1091
1007
|
|
1092
|
-
def interpolate_NamedAccessExpression(
|
1093
|
-
|
1094
|
-
|
1008
|
+
def interpolate_NamedAccessExpression(c)
|
1009
|
+
lhs = @i12n[KEY_LEFT_EXPR]
|
1010
|
+
if is_interop_rewriteable?(lhs)
|
1011
|
+
@i12n[KEY_LEFT_EXPR] = lhs.interpolate
|
1095
1012
|
end
|
1096
|
-
|
1013
|
+
self
|
1097
1014
|
end
|
1098
1015
|
|
1099
1016
|
# Rewrite method calls on the form ${x.each ...} to ${$x.each}
|
1100
|
-
def interpolate_CallMethodExpression(
|
1101
|
-
|
1102
|
-
|
1017
|
+
def interpolate_CallMethodExpression(c)
|
1018
|
+
functor_expr = @i12n['functor_expr']
|
1019
|
+
if is_interop_rewriteable?(functor_expr)
|
1020
|
+
@i12n['functor_expr'] = functor_expr.interpolate
|
1103
1021
|
end
|
1104
|
-
|
1022
|
+
self
|
1105
1023
|
end
|
1106
1024
|
|
1107
1025
|
def is_interop_rewriteable?(o)
|
1108
|
-
|
1109
|
-
|
1110
|
-
NamedAccessExpression, CallMethodExpression
|
1026
|
+
mc = o.model_class
|
1027
|
+
if mc <= AccessExpression || mc <= QualifiedName || mc <= NamedAccessExpression || mc <= CallMethodExpression
|
1111
1028
|
true
|
1112
|
-
|
1029
|
+
elsif mc <= LiteralInteger
|
1113
1030
|
# Only decimal integers can represent variables, else it is a number
|
1114
|
-
o
|
1031
|
+
o['radix'] == 10
|
1115
1032
|
else
|
1116
1033
|
false
|
1117
1034
|
end
|
1118
1035
|
end
|
1119
1036
|
|
1120
|
-
# Checks if the object is already a model object, or build it
|
1121
|
-
def to_ops(o, *args)
|
1122
|
-
case o
|
1123
|
-
when PopsObject
|
1124
|
-
o
|
1125
|
-
when Factory
|
1126
|
-
o.current
|
1127
|
-
else
|
1128
|
-
build(o, *args)
|
1129
|
-
end
|
1130
|
-
end
|
1131
|
-
|
1132
1037
|
def self.concat(*args)
|
1133
|
-
|
1134
|
-
|
1135
|
-
|
1136
|
-
|
1137
|
-
|
1138
|
-
|
1139
|
-
e
|
1038
|
+
result = ''
|
1039
|
+
args.each do |e|
|
1040
|
+
if e.instance_of?(Factory) && e.model_class <= LiteralString
|
1041
|
+
result << e[KEY_VALUE]
|
1042
|
+
elsif e.is_a?(String)
|
1043
|
+
result << e
|
1140
1044
|
else
|
1141
1045
|
raise ArgumentError, "can only concatenate strings, got #{e.class}"
|
1142
1046
|
end
|
1143
|
-
end
|
1047
|
+
end
|
1048
|
+
infer(result)
|
1144
1049
|
end
|
1145
1050
|
|
1146
1051
|
def to_s
|
1147
|
-
|
1052
|
+
"Factory for #{@model_class}"
|
1053
|
+
end
|
1054
|
+
|
1055
|
+
def factory_to_model(value)
|
1056
|
+
if value.instance_of?(Factory)
|
1057
|
+
value.contained_current(self)
|
1058
|
+
elsif value.instance_of?(Array)
|
1059
|
+
value.each_with_index { |el, idx| value[idx] = el.contained_current(self) if el.instance_of?(Factory) }
|
1060
|
+
else
|
1061
|
+
value
|
1062
|
+
end
|
1063
|
+
end
|
1064
|
+
|
1065
|
+
def contained_current(container)
|
1066
|
+
if @current.nil?
|
1067
|
+
unless @i12n.include?(KEY_LOCATOR)
|
1068
|
+
@i12n[KEY_LOCATOR] = container[KEY_LOCATOR]
|
1069
|
+
@i12n[KEY_OFFSET] = container[KEY_OFFSET] || 0
|
1070
|
+
@i12n[KEY_LENGTH] = 0
|
1071
|
+
end
|
1072
|
+
@current = create_model
|
1073
|
+
end
|
1074
|
+
@current
|
1148
1075
|
end
|
1149
1076
|
end
|
1150
1077
|
end
|