puppet 3.6.2 → 3.7.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.
- checksums.yaml +4 -4
- data/CONTRIBUTING.md +2 -3
- data/Gemfile +14 -10
- data/README.md +1 -1
- data/ext/build_defaults.yaml +16 -1
- data/ext/debian/control +3 -2
- data/ext/debian/puppet-common.dirs +1 -0
- data/ext/debian/puppet-common.postinst +8 -8
- data/ext/debian/puppet-common.postrm +2 -1
- data/ext/project_data.yaml +16 -12
- data/ext/rack/example-passenger-vhost.conf +2 -2
- data/ext/redhat/puppet.spec.erb +6 -3
- data/ext/windows/service/daemon.rb +47 -41
- data/install.rb +1 -1
- data/lib/puppet.rb +34 -24
- data/lib/puppet/application.rb +34 -1
- data/lib/puppet/application/agent.rb +9 -8
- data/lib/puppet/application/apply.rb +14 -5
- data/lib/puppet/application/doc.rb +4 -11
- data/lib/puppet/application/master.rb +19 -17
- data/lib/puppet/application/queue.rb +1 -1
- data/lib/puppet/application/resource.rb +0 -1
- data/lib/puppet/configurer.rb +39 -2
- data/lib/puppet/configurer/downloader.rb +5 -10
- data/lib/puppet/configurer/downloader_factory.rb +34 -0
- data/lib/puppet/configurer/plugin_handler.rb +11 -17
- data/lib/puppet/defaults.rb +244 -119
- data/lib/puppet/environments.rb +8 -0
- data/lib/puppet/external/nagios/base.rb +1 -1
- data/lib/puppet/external/pson/pure/generator.rb +1 -8
- data/lib/puppet/face/ca.rb +7 -0
- data/lib/puppet/face/file/download.rb +5 -2
- data/lib/puppet/face/file/store.rb +1 -1
- data/lib/puppet/face/instrumentation_data.rb +2 -1
- data/lib/puppet/face/instrumentation_listener.rb +2 -1
- data/lib/puppet/face/instrumentation_probe.rb +2 -1
- data/lib/puppet/face/module/build.rb +2 -2
- data/lib/puppet/face/module/generate.rb +20 -12
- data/lib/puppet/face/module/install.rb +4 -3
- data/lib/puppet/face/module/uninstall.rb +7 -0
- data/lib/puppet/face/module/upgrade.rb +11 -3
- data/lib/puppet/face/node/clean.rb +1 -1
- data/lib/puppet/face/parser.rb +99 -7
- data/lib/puppet/feature/base.rb +18 -12
- data/lib/puppet/feature/cfacter.rb +14 -0
- data/lib/puppet/feature/pe_license.rb +4 -0
- data/lib/puppet/file_bucket/dipper.rb +19 -12
- data/lib/puppet/file_bucket/file.rb +73 -10
- data/lib/puppet/file_serving/configuration/parser.rb +3 -3
- data/lib/puppet/file_system.rb +1 -1
- data/lib/puppet/file_system/file19.rb +41 -0
- data/lib/puppet/file_system/file19windows.rb +0 -1
- data/lib/puppet/file_system/uniquefile.rb +190 -0
- data/lib/puppet/forge.rb +34 -7
- data/lib/puppet/forge/errors.rb +5 -6
- data/lib/puppet/forge/repository.rb +14 -2
- data/lib/puppet/functions.rb +19 -12
- data/lib/puppet/functions/assert_type.rb +27 -10
- data/lib/puppet/functions/each.rb +111 -0
- data/lib/puppet/functions/epp.rb +54 -0
- data/lib/puppet/functions/filter.rb +113 -0
- data/lib/puppet/functions/inline_epp.rb +88 -0
- data/lib/puppet/functions/map.rb +97 -0
- data/lib/puppet/functions/match.rb +102 -0
- data/lib/puppet/functions/reduce.rb +94 -0
- data/lib/puppet/functions/slice.rb +126 -0
- data/lib/puppet/functions/with.rb +23 -0
- data/lib/puppet/indirector/catalog/compiler.rb +4 -4
- data/lib/puppet/indirector/data_binding/hiera.rb +2 -45
- data/lib/puppet/indirector/facts/couch.rb +3 -1
- data/lib/puppet/indirector/facts/facter.rb +52 -65
- data/lib/puppet/indirector/file_bucket_file/file.rb +6 -3
- data/lib/puppet/indirector/hiera.rb +48 -0
- data/lib/puppet/indirector/indirection.rb +1 -1
- data/lib/puppet/indirector/request.rb +9 -3
- data/lib/puppet/indirector/resource/ral.rb +1 -1
- data/lib/puppet/indirector/rest.rb +7 -3
- data/lib/puppet/loaders.rb +0 -1
- data/lib/puppet/module.rb +2 -1
- data/lib/puppet/module_tool.rb +2 -0
- data/lib/puppet/module_tool/applications/application.rb +4 -5
- data/lib/puppet/module_tool/applications/builder.rb +64 -5
- data/lib/puppet/module_tool/applications/uninstaller.rb +3 -2
- data/lib/puppet/module_tool/applications/unpacker.rb +14 -0
- data/lib/puppet/module_tool/applications/upgrader.rb +23 -13
- data/lib/puppet/module_tool/dependency.rb +12 -0
- data/lib/puppet/module_tool/errors/shared.rb +1 -1
- data/lib/puppet/module_tool/errors/upgrader.rb +20 -0
- data/lib/puppet/module_tool/installed_modules.rb +6 -1
- data/lib/puppet/module_tool/metadata.rb +53 -3
- data/lib/puppet/module_tool/modulefile.rb +1 -1
- data/lib/puppet/module_tool/skeleton/templates/generator/Gemfile +7 -0
- data/lib/puppet/module_tool/skeleton/templates/generator/manifests/init.pp.erb +1 -1
- data/lib/puppet/module_tool/skeleton/templates/generator/spec/spec_helper.rb +1 -17
- data/lib/puppet/module_tool/tar/mini.rb +20 -2
- data/lib/puppet/network/http.rb +5 -0
- data/lib/puppet/network/http/api/v1.rb +2 -2
- data/lib/puppet/network/http/api/v2/environments.rb +15 -1
- data/lib/puppet/network/http/connection.rb +54 -68
- data/lib/puppet/network/http/factory.rb +44 -0
- data/lib/puppet/network/http/handler.rb +12 -6
- data/lib/puppet/network/http/nocache_pool.rb +21 -0
- data/lib/puppet/network/http/pool.rb +120 -0
- data/lib/puppet/network/http/rack/rest.rb +3 -1
- data/lib/puppet/network/http/session.rb +17 -0
- data/lib/puppet/network/http/site.rb +39 -0
- data/lib/puppet/network/http/webrick/rest.rb +3 -1
- data/lib/puppet/network/http_pool.rb +3 -4
- data/lib/puppet/node.rb +19 -6
- data/lib/puppet/node/environment.rb +34 -8
- data/lib/puppet/parser/ast/collection.rb +4 -0
- data/lib/puppet/parser/ast/collexpr.rb +1 -1
- data/lib/puppet/parser/ast/node.rb +5 -0
- data/lib/puppet/parser/ast/pops_bridge.rb +49 -6
- data/lib/puppet/parser/compiler.rb +66 -38
- data/lib/puppet/parser/e4_parser_adapter.rb +2 -2
- data/lib/puppet/parser/files.rb +76 -33
- data/lib/puppet/parser/functions.rb +1 -7
- data/lib/puppet/parser/functions/assert_type.rb +31 -0
- data/lib/puppet/parser/functions/contain.rb +15 -5
- data/lib/puppet/parser/functions/create_resources.rb +5 -1
- data/lib/puppet/parser/functions/digest.rb +5 -0
- data/lib/puppet/parser/functions/each.rb +46 -107
- data/lib/puppet/parser/functions/epp.rb +13 -9
- data/lib/puppet/parser/functions/file.rb +20 -12
- data/lib/puppet/parser/functions/filter.rb +32 -88
- data/lib/puppet/parser/functions/include.rb +12 -24
- data/lib/puppet/parser/functions/inline_epp.rb +9 -12
- data/lib/puppet/parser/functions/lookup.rb +1 -1
- data/lib/puppet/parser/functions/map.rb +30 -83
- data/lib/puppet/parser/functions/match.rb +28 -0
- data/lib/puppet/parser/functions/reduce.rb +69 -98
- data/lib/puppet/parser/functions/require.rb +13 -5
- data/lib/puppet/parser/functions/search.rb +6 -1
- data/lib/puppet/parser/functions/slice.rb +35 -103
- data/lib/puppet/parser/functions/template.rb +12 -5
- data/lib/puppet/parser/functions/with.rb +21 -0
- data/lib/puppet/parser/lexer.rb +1 -1
- data/lib/puppet/parser/parser_factory.rb +21 -33
- data/lib/puppet/parser/resource.rb +2 -3
- data/lib/puppet/parser/scope.rb +85 -15
- data/lib/puppet/pops.rb +9 -11
- data/lib/puppet/pops/adapters.rb +2 -1
- data/lib/puppet/pops/binder/bindings_checker.rb +4 -4
- data/lib/puppet/pops/binder/bindings_factory.rb +6 -6
- data/lib/puppet/pops/binder/bindings_label_provider.rb +1 -1
- data/lib/puppet/pops/binder/bindings_loader.rb +2 -2
- data/lib/puppet/pops/binder/bindings_model.rb +58 -191
- data/lib/puppet/pops/binder/bindings_model_dumper.rb +1 -1
- data/lib/puppet/pops/binder/bindings_model_meta.rb +215 -0
- data/lib/puppet/pops/binder/injector.rb +9 -9
- data/lib/puppet/pops/binder/key_factory.rb +2 -2
- data/lib/puppet/pops/binder/lookup.rb +14 -6
- data/lib/puppet/pops/binder/producers.rb +9 -12
- data/lib/puppet/pops/evaluator/access_operator.rb +35 -29
- data/lib/puppet/pops/evaluator/callable_mismatch_describer.rb +175 -0
- data/lib/puppet/pops/evaluator/callable_signature.rb +1 -2
- data/lib/puppet/pops/evaluator/closure.rb +151 -35
- data/lib/puppet/pops/evaluator/compare_operator.rb +26 -22
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +16 -15
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +277 -229
- data/lib/puppet/pops/evaluator/relationship_operator.rb +3 -2
- data/lib/puppet/pops/evaluator/runtime3_support.rb +86 -53
- data/lib/puppet/pops/functions/dispatch.rb +9 -4
- data/lib/puppet/pops/functions/dispatcher.rb +2 -169
- data/lib/puppet/pops/issue_reporter.rb +14 -6
- data/lib/puppet/pops/issues.rb +96 -21
- data/lib/puppet/pops/loader/base_loader.rb +3 -3
- data/lib/puppet/pops/loader/loader.rb +1 -1
- data/lib/puppet/pops/loader/loader_paths.rb +2 -21
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -1
- data/lib/puppet/pops/loader/static_loader.rb +12 -2
- data/lib/puppet/pops/model/ast_transformer.rb +4 -24
- data/lib/puppet/pops/model/factory.rb +72 -10
- data/lib/puppet/pops/model/model.rb +82 -574
- data/lib/puppet/pops/model/model_label_provider.rb +4 -2
- data/lib/puppet/pops/model/model_meta.rb +576 -0
- data/lib/puppet/pops/model/model_tree_dumper.rb +27 -5
- data/lib/puppet/pops/parser/egrammar.ra +209 -221
- data/lib/puppet/pops/parser/eparser.rb +1459 -1431
- data/lib/puppet/pops/parser/evaluating_parser.rb +15 -75
- data/lib/puppet/pops/parser/lexer2.rb +14 -10
- data/lib/puppet/pops/parser/lexer_support.rb +6 -0
- data/lib/puppet/pops/parser/locator.rb +1 -1
- data/lib/puppet/pops/parser/parser_support.rb +31 -49
- data/lib/puppet/pops/patterns.rb +10 -10
- data/lib/puppet/pops/semantic_error.rb +1 -1
- data/lib/puppet/pops/types/class_loader.rb +24 -13
- data/lib/puppet/pops/types/type_calculator.rb +188 -87
- data/lib/puppet/pops/types/type_factory.rb +79 -53
- data/lib/puppet/pops/types/type_parser.rb +22 -16
- data/lib/puppet/pops/types/types.rb +283 -392
- data/lib/puppet/pops/types/types_meta.rb +223 -0
- data/lib/puppet/pops/utils.rb +16 -14
- data/lib/puppet/pops/validation/checker4_0.rb +264 -18
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +0 -1
- data/lib/puppet/pops/visitor.rb +0 -103
- data/lib/puppet/provider/exec.rb +10 -1
- data/lib/puppet/provider/file/windows.rb +3 -4
- data/lib/puppet/provider/group/windows_adsi.rb +10 -10
- data/lib/puppet/provider/nameservice/directoryservice.rb +3 -4
- data/lib/puppet/provider/package/apt.rb +5 -1
- data/lib/puppet/provider/package/gem.rb +7 -3
- data/lib/puppet/provider/package/openbsd.rb +84 -7
- data/lib/puppet/provider/package/pacman.rb +29 -4
- data/lib/puppet/provider/package/rpm.rb +5 -7
- data/lib/puppet/provider/package/sun.rb +5 -1
- data/lib/puppet/provider/package/windows.rb +6 -1
- data/lib/puppet/provider/package/windows/exe_package.rb +1 -1
- data/lib/puppet/provider/package/windows/msi_package.rb +1 -1
- data/lib/puppet/provider/package/windows/package.rb +13 -1
- data/lib/puppet/provider/package/yum.rb +7 -3
- data/lib/puppet/provider/package/zypper.rb +5 -1
- data/lib/puppet/provider/parsedfile.rb +17 -1
- data/lib/puppet/provider/scheduled_task/win32_taskscheduler.rb +6 -12
- data/lib/puppet/provider/service/freebsd.rb +12 -12
- data/lib/puppet/provider/service/init.rb +5 -0
- data/lib/puppet/provider/service/launchd.rb +0 -3
- data/lib/puppet/provider/service/openbsd.rb +8 -7
- data/lib/puppet/provider/ssh_authorized_key/parsed.rb +2 -2
- data/lib/puppet/provider/sshkey/parsed.rb +5 -0
- data/lib/puppet/provider/user/user_role_add.rb +5 -4
- data/lib/puppet/provider/user/windows_adsi.rb +8 -8
- data/lib/puppet/provider/zone/solaris.rb +1 -1
- data/lib/puppet/reference/metaparameter.rb +8 -6
- data/lib/puppet/reports/store.rb +4 -9
- data/lib/puppet/resource.rb +75 -11
- data/lib/puppet/resource/catalog.rb +9 -7
- data/lib/puppet/resource/type.rb +27 -0
- data/lib/puppet/settings.rb +61 -41
- data/lib/puppet/settings/base_setting.rb +9 -3
- data/lib/puppet/settings/environment_conf.rb +32 -4
- data/lib/puppet/settings/file_setting.rb +9 -1
- data/lib/puppet/settings/priority_setting.rb +5 -5
- data/lib/puppet/ssl.rb +1 -0
- data/lib/puppet/ssl/certificate_authority.rb +15 -6
- data/lib/puppet/ssl/certificate_authority/autosign_command.rb +2 -1
- data/lib/puppet/ssl/host.rb +3 -2
- data/lib/puppet/ssl/inventory.rb +11 -6
- data/lib/puppet/ssl/validator/default_validator.rb +1 -0
- data/lib/puppet/ssl/validator/no_validator.rb +3 -0
- data/lib/puppet/transaction.rb +29 -0
- data/lib/puppet/transaction/resource_harness.rb +16 -3
- data/lib/puppet/type.rb +71 -49
- data/lib/puppet/type/exec.rb +36 -8
- data/lib/puppet/type/file.rb +56 -16
- data/lib/puppet/type/file/content.rb +3 -3
- data/lib/puppet/type/file/mode.rb +12 -3
- data/lib/puppet/type/file/source.rb +4 -1
- data/lib/puppet/type/group.rb +1 -1
- data/lib/puppet/type/mount.rb +1 -3
- data/lib/puppet/type/resources.rb +59 -35
- data/lib/puppet/type/ssh_authorized_key.rb +54 -16
- data/lib/puppet/type/sshkey.rb +1 -1
- data/lib/puppet/type/user.rb +17 -11
- data/lib/puppet/type/yumrepo.rb +59 -8
- data/lib/puppet/type/zone.rb +3 -6
- data/lib/puppet/util.rb +64 -55
- data/lib/puppet/util/autoload.rb +2 -2
- data/lib/puppet/util/colors.rb +61 -19
- data/lib/puppet/util/command_line.rb +21 -4
- data/lib/puppet/util/execution.rb +41 -29
- data/lib/puppet/util/feature.rb +15 -4
- data/lib/puppet/util/filetype.rb +6 -2
- data/lib/puppet/util/http_proxy.rb +29 -2
- data/lib/puppet/util/lockfile.rb +1 -1
- data/lib/puppet/util/log/destinations.rb +7 -3
- data/lib/puppet/util/logging.rb +44 -14
- data/lib/puppet/util/pidlock.rb +11 -5
- data/lib/puppet/util/posix.rb +21 -31
- data/lib/puppet/util/profiler.rb +17 -9
- data/lib/puppet/util/profiler/aggregate.rb +85 -0
- data/lib/puppet/util/profiler/around_profiler.rb +67 -0
- data/lib/puppet/util/profiler/logging.rb +12 -11
- data/lib/puppet/util/profiler/wall_clock.rb +7 -6
- data/lib/puppet/util/rdoc.rb +8 -1
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
- data/lib/puppet/util/suidmanager.rb +1 -8
- data/lib/puppet/util/windows.rb +14 -3
- data/lib/puppet/util/windows/access_control_list.rb +4 -4
- data/lib/puppet/util/{adsi.rb → windows/adsi.rb} +99 -37
- data/lib/puppet/util/windows/api_types.rb +255 -0
- data/lib/puppet/util/windows/com.rb +224 -0
- data/lib/puppet/util/windows/error.rb +72 -5
- data/lib/puppet/util/windows/file.rb +254 -132
- data/lib/puppet/util/windows/process.rb +293 -177
- data/lib/puppet/util/windows/registry.rb +12 -2
- data/lib/puppet/util/windows/root_certs.rb +16 -9
- data/lib/puppet/util/windows/security.rb +501 -232
- data/lib/puppet/util/windows/sid.rb +80 -36
- data/lib/puppet/util/windows/string.rb +2 -0
- data/lib/puppet/util/windows/taskscheduler.rb +1241 -0
- data/lib/puppet/util/windows/user.rb +241 -57
- data/lib/puppet/vendor.rb +3 -1
- data/lib/puppet/vendor/load_pathspec.rb +1 -0
- data/lib/puppet/vendor/load_rgen.rb +1 -0
- data/lib/puppet/vendor/pathspec/CHANGELOG.md +2 -0
- data/lib/puppet/vendor/pathspec/LICENSE +201 -0
- data/lib/puppet/vendor/pathspec/PUPPET_README.md +6 -0
- data/lib/puppet/vendor/pathspec/README.md +53 -0
- data/lib/puppet/vendor/pathspec/lib/pathspec.rb +121 -0
- data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +275 -0
- data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +17 -0
- data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +14 -0
- data/lib/puppet/vendor/require_vendored.rb +2 -0
- data/lib/puppet/vendor/rgen/CHANGELOG +197 -0
- data/lib/puppet/vendor/rgen/MIT-LICENSE +20 -0
- data/lib/puppet/vendor/rgen/PUPPET_README.md +6 -0
- data/lib/puppet/vendor/rgen/README.rdoc +78 -0
- data/lib/puppet/vendor/rgen/Rakefile +41 -0
- data/lib/puppet/vendor/rgen/TODO +41 -0
- data/lib/puppet/vendor/rgen/anounce.txt +61 -0
- data/lib/puppet/vendor/rgen/design_rationale.txt +71 -0
- data/lib/puppet/vendor/rgen/lib/ea_support/ea_support.rb +54 -0
- data/lib/puppet/vendor/rgen/lib/ea_support/id_store.rb +32 -0
- data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_metamodel.rb +562 -0
- data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_metamodel_ext.rb +45 -0
- data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_metamodel_generator.rb +43 -0
- data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_to_uml13.rb +103 -0
- data/lib/puppet/vendor/rgen/lib/ea_support/uml13_to_uml13_ea.rb +89 -0
- data/lib/puppet/vendor/rgen/lib/metamodels/uml13_metamodel.rb +559 -0
- data/lib/puppet/vendor/rgen/lib/metamodels/uml13_metamodel_ext.rb +26 -0
- data/lib/puppet/vendor/rgen/lib/mmgen/metamodel_generator.rb +20 -0
- data/lib/puppet/vendor/rgen/lib/mmgen/mm_ext/ecore_mmgen_ext.rb +91 -0
- data/lib/puppet/vendor/rgen/lib/mmgen/mmgen.rb +28 -0
- data/lib/puppet/vendor/rgen/lib/mmgen/templates/annotations.tpl +37 -0
- data/lib/puppet/vendor/rgen/lib/mmgen/templates/metamodel_generator.tpl +172 -0
- data/lib/puppet/vendor/rgen/lib/rgen/array_extensions.rb +45 -0
- data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore.rb +218 -0
- data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_builder_methods.rb +81 -0
- data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_ext.rb +69 -0
- data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_interface.rb +47 -0
- data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_to_ruby.rb +167 -0
- data/lib/puppet/vendor/rgen/lib/rgen/ecore/ruby_to_ecore.rb +91 -0
- data/lib/puppet/vendor/rgen/lib/rgen/environment.rb +129 -0
- data/lib/puppet/vendor/rgen/lib/rgen/fragment/dump_file_cache.rb +63 -0
- data/lib/puppet/vendor/rgen/lib/rgen/fragment/fragmented_model.rb +140 -0
- data/lib/puppet/vendor/rgen/lib/rgen/fragment/model_fragment.rb +289 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/abstract_instantiator.rb +66 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/abstract_xml_instantiator.rb +66 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/default_xml_instantiator.rb +117 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/ecore_xml_instantiator.rb +169 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/json_instantiator.rb +126 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/json_parser.rb +331 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/json_parser.y +94 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/nodebased_xml_instantiator.rb +137 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/qualified_name_resolver.rb +97 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/reference_resolver.rb +128 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/resolution_helper.rb +47 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/xmi11_instantiator.rb +168 -0
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder.rb +224 -0
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/builder_extensions.rb +556 -0
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/builder_runtime.rb +174 -0
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/constant_order_helper.rb +89 -0
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/data_types.rb +77 -0
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/intermediate/annotation.rb +30 -0
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/intermediate/feature.rb +168 -0
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/mm_multiple.rb +23 -0
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/module_extension.rb +42 -0
- data/lib/puppet/vendor/rgen/lib/rgen/model_builder.rb +32 -0
- data/lib/puppet/vendor/rgen/lib/rgen/model_builder/builder_context.rb +334 -0
- data/lib/puppet/vendor/rgen/lib/rgen/model_builder/model_serializer.rb +225 -0
- data/lib/puppet/vendor/rgen/lib/rgen/model_builder/reference_resolver.rb +156 -0
- data/lib/puppet/vendor/rgen/lib/rgen/serializer/json_serializer.rb +121 -0
- data/lib/puppet/vendor/rgen/lib/rgen/serializer/opposite_reference_filter.rb +18 -0
- data/lib/puppet/vendor/rgen/lib/rgen/serializer/qualified_name_provider.rb +47 -0
- data/lib/puppet/vendor/rgen/lib/rgen/serializer/xmi11_serializer.rb +116 -0
- data/lib/puppet/vendor/rgen/lib/rgen/serializer/xmi20_serializer.rb +71 -0
- data/lib/puppet/vendor/rgen/lib/rgen/serializer/xml_serializer.rb +98 -0
- data/lib/puppet/vendor/rgen/lib/rgen/template_language.rb +297 -0
- data/lib/puppet/vendor/rgen/lib/rgen/template_language/directory_template_container.rb +83 -0
- data/lib/puppet/vendor/rgen/lib/rgen/template_language/output_handler.rb +87 -0
- data/lib/puppet/vendor/rgen/lib/rgen/template_language/template_container.rb +234 -0
- data/lib/puppet/vendor/rgen/lib/rgen/template_language/template_helper.rb +26 -0
- data/lib/puppet/vendor/rgen/lib/rgen/transformer.rb +475 -0
- data/lib/puppet/vendor/rgen/lib/rgen/util/auto_class_creator.rb +61 -0
- data/lib/puppet/vendor/rgen/lib/rgen/util/cached_glob.rb +67 -0
- data/lib/puppet/vendor/rgen/lib/rgen/util/file_cache_map.rb +124 -0
- data/lib/puppet/vendor/rgen/lib/rgen/util/file_change_detector.rb +84 -0
- data/lib/puppet/vendor/rgen/lib/rgen/util/method_delegation.rb +114 -0
- data/lib/puppet/vendor/rgen/lib/rgen/util/model_comparator.rb +68 -0
- data/lib/puppet/vendor/rgen/lib/rgen/util/model_comparator_base.rb +142 -0
- data/lib/puppet/vendor/rgen/lib/rgen/util/model_dumper.rb +29 -0
- data/lib/puppet/vendor/rgen/lib/rgen/util/name_helper.rb +42 -0
- data/lib/puppet/vendor/rgen/lib/rgen/util/pattern_matcher.rb +329 -0
- data/lib/puppet/vendor/rgen/lib/transformers/ecore_to_uml13.rb +79 -0
- data/lib/puppet/vendor/rgen/lib/transformers/uml13_to_ecore.rb +127 -0
- data/lib/puppet/vendor/rgen/test/array_extensions_test.rb +64 -0
- data/lib/puppet/vendor/rgen/test/ea_instantiator_test.rb +35 -0
- data/lib/puppet/vendor/rgen/test/ea_serializer_test.rb +23 -0
- data/lib/puppet/vendor/rgen/test/ecore_self_test.rb +54 -0
- data/lib/puppet/vendor/rgen/test/environment_test.rb +90 -0
- data/lib/puppet/vendor/rgen/test/json_test.rb +171 -0
- data/lib/puppet/vendor/rgen/test/metamodel_builder_test.rb +1482 -0
- data/lib/puppet/vendor/rgen/test/metamodel_from_ecore_test.rb +57 -0
- data/lib/puppet/vendor/rgen/test/metamodel_order_test.rb +131 -0
- data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test.rb +98 -0
- data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/TestModel.rb +70 -0
- data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/houseMetamodel.ecore +42 -0
- data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/houseMetamodel_from_ecore.rb +44 -0
- data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/using_builtin_types.ecore +9 -0
- data/lib/puppet/vendor/rgen/test/method_delegation_test.rb +178 -0
- data/lib/puppet/vendor/rgen/test/model_builder/builder_context_test.rb +59 -0
- data/lib/puppet/vendor/rgen/test/model_builder/builder_test.rb +242 -0
- data/lib/puppet/vendor/rgen/test/model_builder/ecore_original.rb +163 -0
- data/lib/puppet/vendor/rgen/test/model_builder/ecore_original_regenerated.rb +163 -0
- data/lib/puppet/vendor/rgen/test/model_builder/reference_resolver_test.rb +156 -0
- data/lib/puppet/vendor/rgen/test/model_builder/serializer_test.rb +94 -0
- data/lib/puppet/vendor/rgen/test/model_builder/statemachine_metamodel.rb +42 -0
- data/lib/puppet/vendor/rgen/test/model_builder/test_model/statemachine1.rb +23 -0
- data/lib/puppet/vendor/rgen/test/model_builder_test.rb +6 -0
- data/lib/puppet/vendor/rgen/test/model_fragment_test.rb +30 -0
- data/lib/puppet/vendor/rgen/test/output_handler_test.rb +58 -0
- data/lib/puppet/vendor/rgen/test/qualified_name_provider_test.rb +48 -0
- data/lib/puppet/vendor/rgen/test/qualified_name_resolver_test.rb +102 -0
- data/lib/puppet/vendor/rgen/test/reference_resolver_test.rb +117 -0
- data/lib/puppet/vendor/rgen/test/rgen_test.rb +26 -0
- data/lib/puppet/vendor/rgen/test/template_language_test.rb +163 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/expected_result1.txt +29 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/expected_result2.txt +9 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/expected_result3.txt +4 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/indentStringTestDefaultIndent.out +1 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/indentStringTestTabIndent.out +1 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/callback_indent_test/a.tpl +12 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/callback_indent_test/b.tpl +5 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/code/array.tpl +11 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/content/author.tpl +7 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/content/chapter.tpl +5 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/define_local_test/local.tpl +8 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/define_local_test/test.tpl +8 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/evaluate_test/test.tpl +7 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/indent_string_test.tpl +12 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/index/c/cmod.tpl +1 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/index/chapter.tpl +3 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_backslash_r_test.tpl +5 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/no_indent.tpl +3 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/sub1/no_indent.tpl +3 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/test.tpl +24 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/test2.tpl +13 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/test3.tpl +10 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/null_context_test.tpl +17 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/root.tpl +31 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/template_resolution_test/sub1.tpl +9 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/template_resolution_test/sub1/sub1.tpl +3 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/template_resolution_test/test.tpl +4 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/testout.txt +29 -0
- data/lib/puppet/vendor/rgen/test/testmodel/class_model_checker.rb +119 -0
- data/lib/puppet/vendor/rgen/test/testmodel/ea_testmodel.eap +0 -0
- data/lib/puppet/vendor/rgen/test/testmodel/ea_testmodel.xml +1029 -0
- data/lib/puppet/vendor/rgen/test/testmodel/ea_testmodel_partial.xml +317 -0
- data/lib/puppet/vendor/rgen/test/testmodel/ecore_model_checker.rb +101 -0
- data/lib/puppet/vendor/rgen/test/testmodel/manual_testmodel.xml +22 -0
- data/lib/puppet/vendor/rgen/test/testmodel/object_model_checker.rb +67 -0
- data/lib/puppet/vendor/rgen/test/transformer_test.rb +254 -0
- data/lib/puppet/vendor/rgen/test/util/file_cache_map_test.rb +99 -0
- data/lib/puppet/vendor/rgen/test/util/pattern_matcher_test.rb +97 -0
- data/lib/puppet/vendor/rgen/test/util_test.rb +5 -0
- data/lib/puppet/vendor/rgen/test/xml_instantiator_test.rb +160 -0
- data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_ecore_model_checker.rb +94 -0
- data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_ecore_instantiator.rb +53 -0
- data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_metamodel.rb +49 -0
- data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_to_ecore.rb +75 -0
- data/lib/puppet/vendor/safe_yaml/PUPPET_README.md +6 -0
- data/lib/puppet/vendor/semantic/PUPPET_README.md +6 -0
- data/lib/puppet/version.rb +1 -1
- data/spec/fixtures/integration/node/environment/sitedir2/00_a.pp +2 -0
- data/spec/fixtures/integration/node/environment/sitedir2/02_folder/01_b.pp +6 -0
- data/spec/fixtures/integration/node/environment/sitedir2/03_c.pp +1 -0
- data/spec/fixtures/integration/node/environment/sitedir2/04_include.pp +2 -0
- data/spec/fixtures/releases/jamtur01-apache/manifests/vhost.pp +1 -1
- data/spec/fixtures/unit/indirector/hiera/global.yaml +10 -0
- data/spec/fixtures/unit/indirector/hiera/invalid.yaml +1 -0
- data/spec/fixtures/unit/parser/functions/create_resources/foo/manifests/init.pp +3 -0
- data/spec/fixtures/unit/parser/functions/create_resources/foo/manifests/wrongdefine.pp +3 -0
- data/spec/fixtures/unit/parser/lexer/argumentdefaults.pp +2 -2
- data/spec/fixtures/unit/parser/lexer/casestatement.pp +14 -14
- data/spec/fixtures/unit/parser/lexer/classheirarchy.pp +3 -3
- data/spec/fixtures/unit/parser/lexer/classincludes.pp +3 -3
- data/spec/fixtures/unit/parser/lexer/classpathtest.pp +1 -1
- data/spec/fixtures/unit/parser/lexer/collection_override.pp +1 -1
- data/spec/fixtures/unit/parser/lexer/componentrequire.pp +2 -2
- data/spec/fixtures/unit/parser/lexer/deepclassheirarchy.pp +5 -5
- data/spec/fixtures/unit/parser/lexer/defineoverrides.pp +2 -2
- data/spec/fixtures/unit/parser/lexer/filecreate.pp +2 -2
- data/spec/fixtures/unit/parser/lexer/ifexpression.pp +1 -1
- data/spec/fixtures/unit/parser/lexer/implicititeration.pp +4 -4
- data/spec/fixtures/unit/parser/lexer/multipleinstances.pp +3 -3
- data/spec/fixtures/unit/parser/lexer/multisubs.pp +2 -2
- data/spec/fixtures/unit/parser/lexer/namevartest.pp +2 -2
- data/spec/fixtures/unit/parser/lexer/simpledefaults.pp +1 -1
- data/spec/fixtures/unit/pops/parser/lexer/argumentdefaults.pp +1 -1
- data/spec/fixtures/unit/pops/parser/lexer/casestatement.pp +14 -14
- data/spec/fixtures/unit/pops/parser/lexer/classheirarchy.pp +3 -3
- data/spec/fixtures/unit/pops/parser/lexer/classincludes.pp +3 -3
- data/spec/fixtures/unit/pops/parser/lexer/classpathtest.pp +1 -1
- data/spec/fixtures/unit/pops/parser/lexer/collection_override.pp +1 -1
- data/spec/fixtures/unit/pops/parser/lexer/componentrequire.pp +2 -2
- data/spec/fixtures/unit/pops/parser/lexer/deepclassheirarchy.pp +5 -5
- data/spec/fixtures/unit/pops/parser/lexer/defineoverrides.pp +2 -2
- data/spec/fixtures/unit/pops/parser/lexer/filecreate.pp +2 -2
- data/spec/fixtures/unit/pops/parser/lexer/ifexpression.pp +1 -1
- data/spec/fixtures/unit/pops/parser/lexer/implicititeration.pp +4 -4
- data/spec/fixtures/unit/pops/parser/lexer/multipleinstances.pp +3 -3
- data/spec/fixtures/unit/pops/parser/lexer/multisubs.pp +2 -2
- data/spec/fixtures/unit/pops/parser/lexer/namevartest.pp +2 -2
- data/spec/fixtures/unit/pops/parser/lexer/simpledefaults.pp +1 -1
- data/spec/fixtures/unit/provider/package/gem/gem-list-single-package +4 -0
- data/spec/fixtures/unit/type/user/authorized_keys +1 -1
- data/spec/integration/agent/logging_spec.rb +4 -0
- data/spec/integration/application/doc_spec.rb +4 -3
- data/spec/integration/configurer_spec.rb +0 -14
- data/spec/integration/defaults_spec.rb +26 -0
- data/spec/integration/environments/default_manifest_spec.rb +274 -0
- data/spec/integration/faces/documentation_spec.rb +0 -4
- data/spec/integration/file_bucket/file_spec.rb +21 -0
- data/spec/integration/indirector/catalog/compiler_spec.rb +0 -2
- data/spec/integration/indirector/catalog/queue_spec.rb +0 -2
- data/spec/integration/indirector/facts/facter_spec.rb +1 -1
- data/spec/integration/indirector/file_content/file_server_spec.rb +2 -2
- data/spec/integration/node/environment_spec.rb +24 -8
- data/spec/integration/parser/catalog_spec.rb +10 -10
- data/spec/integration/parser/class_spec.rb +37 -0
- data/spec/integration/parser/collector_spec.rb +234 -75
- data/spec/integration/parser/compiler_spec.rb +385 -401
- data/spec/integration/parser/conditionals_spec.rb +117 -0
- data/spec/integration/parser/future_compiler_spec.rb +359 -8
- data/spec/integration/parser/node_spec.rb +185 -0
- data/spec/integration/parser/resource_expressions_spec.rb +286 -0
- data/spec/integration/parser/ruby_manifest_spec.rb +0 -4
- data/spec/integration/parser/scope_spec.rb +94 -151
- data/spec/integration/provider/cron/crontab_spec.rb +137 -148
- data/spec/integration/ssl/certificate_authority_spec.rb +26 -0
- data/spec/integration/ssl/certificate_request_spec.rb +0 -6
- data/spec/integration/ssl/certificate_revocation_list_spec.rb +0 -2
- data/spec/integration/ssl/host_spec.rb +0 -2
- data/spec/integration/transaction_spec.rb +16 -0
- data/spec/integration/type/file_spec.rb +14 -13
- data/spec/integration/type/nagios_spec.rb +6 -15
- data/spec/integration/type/sshkey_spec.rb +22 -0
- data/spec/integration/type/tidy_spec.rb +3 -0
- data/spec/integration/type/user_spec.rb +8 -3
- data/spec/integration/util/autoload_spec.rb +6 -6
- data/spec/integration/util/rdoc/parser_spec.rb +7 -0
- data/spec/integration/util/windows/process_spec.rb +12 -0
- data/spec/integration/util/windows/security_spec.rb +36 -35
- data/spec/integration/util/windows/user_spec.rb +75 -9
- data/spec/integration/util_spec.rb +2 -2
- data/spec/lib/matchers/resource.rb +1 -0
- data/spec/lib/puppet_spec/compiler.rb +15 -2
- data/spec/lib/puppet_spec/files.rb +10 -0
- data/spec/lib/puppet_spec/language.rb +74 -0
- data/spec/lib/puppet_spec/matchers.rb +59 -32
- data/spec/lib/puppet_spec/module_tool/stub_source.rb +3 -0
- data/spec/shared_behaviours/hiera_indirections.rb +99 -0
- data/spec/shared_behaviours/iterative_functions.rb +69 -0
- data/spec/unit/application/apply_spec.rb +4 -2
- data/spec/unit/application/doc_spec.rb +17 -13
- data/spec/unit/application/master_spec.rb +35 -27
- data/spec/unit/application/resource_spec.rb +0 -5
- data/spec/unit/configurer/downloader_factory_spec.rb +96 -0
- data/spec/unit/configurer/downloader_spec.rb +3 -24
- data/spec/unit/configurer/plugin_handler_spec.rb +22 -22
- data/spec/unit/configurer_spec.rb +0 -4
- data/spec/unit/defaults_spec.rb +30 -0
- data/spec/unit/face/config_spec.rb +2 -1
- data/spec/unit/face/module/build_spec.rb +2 -2
- data/spec/unit/face/module/install_spec.rb +8 -8
- data/spec/unit/face/parser_spec.rb +71 -33
- data/spec/unit/file_bucket/file_spec.rb +2 -2
- data/spec/unit/file_system/uniquefile_spec.rb +184 -0
- data/spec/unit/forge/errors_spec.rb +4 -6
- data/spec/unit/forge/module_release_spec.rb +178 -89
- data/spec/unit/forge/repository_spec.rb +110 -2
- data/spec/unit/forge_spec.rb +39 -3
- data/spec/unit/functions/assert_type_spec.rb +22 -3
- data/spec/unit/{parser/methods → functions}/each_spec.rb +21 -1
- data/spec/unit/{parser/functions → functions}/epp_spec.rb +61 -9
- data/spec/unit/{parser/methods → functions}/filter_spec.rb +34 -38
- data/spec/unit/{parser/functions → functions}/inline_epp_spec.rb +18 -3
- data/spec/unit/functions/map_spec.rb +169 -0
- data/spec/unit/functions/match_spec.rb +57 -0
- data/spec/unit/{parser/methods → functions}/reduce_spec.rb +23 -5
- data/spec/unit/{parser/methods → functions}/slice_spec.rb +34 -21
- data/spec/unit/functions/with_spec.rb +35 -0
- data/spec/unit/functions4_spec.rb +7 -8
- data/spec/unit/indirector/catalog/compiler_spec.rb +0 -2
- data/spec/unit/indirector/catalog/static_compiler_spec.rb +11 -0
- data/spec/unit/indirector/data_binding/hiera_spec.rb +1 -96
- data/spec/unit/indirector/facts/facter_spec.rb +69 -102
- data/spec/unit/indirector/hiera_spec.rb +17 -0
- data/spec/unit/indirector/request_spec.rb +2 -4
- data/spec/unit/indirector/resource/ral_spec.rb +5 -0
- data/spec/unit/indirector/resource_type/parser_spec.rb +17 -12
- data/spec/unit/indirector/rest_spec.rb +36 -6
- data/spec/unit/interface/face_collection_spec.rb +2 -2
- data/spec/unit/module_tool/applications/builder_spec.rb +364 -14
- data/spec/unit/module_tool/applications/uninstaller_spec.rb +22 -0
- data/spec/unit/module_tool/applications/unpacker_spec.rb +40 -0
- data/spec/unit/module_tool/applications/upgrader_spec.rb +22 -0
- data/spec/unit/module_tool/installed_modules_spec.rb +49 -0
- data/spec/unit/module_tool/metadata_spec.rb +72 -4
- data/spec/unit/module_tool/tar/mini_spec.rb +2 -1
- data/spec/unit/network/authentication_spec.rb +4 -0
- data/spec/unit/network/http/api/v2/environments_spec.rb +24 -3
- data/spec/unit/network/http/connection_spec.rb +127 -92
- data/spec/unit/network/http/factory_spec.rb +82 -0
- data/spec/unit/network/http/handler_spec.rb +23 -13
- data/spec/unit/network/http/nocache_pool_spec.rb +43 -0
- data/spec/unit/network/http/pool_spec.rb +269 -0
- data/spec/unit/network/http/rack/rest_spec.rb +1 -1
- data/spec/unit/network/http/session_spec.rb +43 -0
- data/spec/unit/network/http/site_spec.rb +90 -0
- data/spec/unit/network/http/webrick_spec.rb +1 -1
- data/spec/unit/network/http_pool_spec.rb +9 -6
- data/spec/unit/network/http_spec.rb +10 -0
- data/spec/unit/node/environment_spec.rb +54 -0
- data/spec/unit/node_spec.rb +3 -5
- data/spec/unit/parser/compiler_spec.rb +9 -2
- data/spec/unit/parser/files_spec.rb +19 -0
- data/spec/unit/parser/functions/contain_spec.rb +51 -0
- data/spec/unit/parser/functions/create_resources_spec.rb +8 -1
- data/spec/unit/parser/functions/digest_spec.rb +31 -0
- data/spec/unit/parser/functions/file_spec.rb +48 -5
- data/spec/unit/parser/functions/include_spec.rb +15 -1
- data/spec/unit/parser/functions/realize_spec.rb +43 -35
- data/spec/unit/parser/functions/require_spec.rb +19 -5
- data/spec/unit/parser/functions/search_spec.rb +5 -0
- data/spec/unit/parser/functions/shared.rb +82 -0
- data/spec/unit/parser/functions_spec.rb +1 -1
- data/spec/unit/parser/lexer_spec.rb +10 -1
- data/spec/unit/parser/type_loader_spec.rb +0 -1
- data/spec/unit/pops/benchmark_spec.rb +1 -1
- data/spec/unit/pops/binder/bindings_composer_spec.rb +24 -22
- data/spec/unit/pops/binder/injector_spec.rb +8 -6
- data/spec/unit/pops/evaluator/access_ops_spec.rb +3 -3
- data/spec/unit/pops/evaluator/comparison_ops_spec.rb +7 -4
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +250 -30
- data/spec/unit/pops/evaluator/logical_ops_spec.rb +2 -2
- data/spec/unit/pops/evaluator/variables_spec.rb +0 -105
- data/spec/unit/pops/issues_spec.rb +170 -0
- data/spec/unit/pops/loaders/dependency_loader_spec.rb +17 -0
- data/spec/unit/pops/loaders/loader_paths_spec.rb +4 -15
- data/spec/unit/pops/loaders/loaders_spec.rb +31 -11
- data/spec/unit/pops/loaders/module_loaders_spec.rb +0 -29
- data/spec/unit/pops/loaders/static_loader_spec.rb +6 -0
- data/spec/unit/pops/parser/epp_parser_spec.rb +38 -9
- data/spec/unit/pops/parser/evaluating_parser_spec.rb +0 -1
- data/spec/unit/pops/parser/lexer2_spec.rb +21 -4
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +5 -0
- data/spec/unit/pops/parser/parse_calls_spec.rb +6 -3
- data/spec/unit/pops/parser/parse_conditionals_spec.rb +12 -5
- data/spec/unit/pops/parser/parse_containers_spec.rb +62 -7
- data/spec/unit/pops/parser/parse_resource_spec.rb +155 -73
- data/spec/unit/pops/parser/parser_spec.rb +16 -0
- data/spec/unit/pops/parser/parsing_typed_parameters_spec.rb +72 -0
- data/spec/unit/pops/transformer/transform_calls_spec.rb +1 -1
- data/spec/unit/pops/types/type_calculator_spec.rb +254 -57
- data/spec/unit/pops/types/type_factory_spec.rb +8 -3
- data/spec/unit/pops/types/type_parser_spec.rb +26 -5
- data/spec/unit/pops/validator/validator_spec.rb +143 -27
- data/spec/unit/provider/exec/posix_spec.rb +22 -14
- data/spec/unit/provider/exec/shell_spec.rb +2 -2
- data/spec/unit/provider/file/windows_spec.rb +7 -7
- data/spec/unit/provider/group/windows_adsi_spec.rb +17 -17
- data/spec/unit/provider/package/gem_spec.rb +10 -0
- data/spec/unit/provider/package/openbsd_spec.rb +66 -9
- data/spec/unit/provider/package/pacman_spec.rb +90 -71
- data/spec/unit/provider/package/windows/package_spec.rb +21 -6
- data/spec/unit/provider/package/yum_spec.rb +1 -0
- data/spec/unit/provider/parsedfile_spec.rb +1 -1
- data/spec/unit/provider/scheduled_task/win32_taskscheduler_spec.rb +9 -9
- data/spec/unit/provider/service/openbsd_spec.rb +26 -2
- data/spec/unit/provider/service/upstart_spec.rb +12 -1
- data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +6 -0
- data/spec/unit/provider/user/user_role_add_spec.rb +23 -1
- data/spec/unit/provider/user/windows_adsi_spec.rb +17 -17
- data/spec/unit/reports/store_spec.rb +0 -16
- data/spec/unit/resource/catalog_spec.rb +0 -5
- data/spec/unit/resource_spec.rb +2 -2
- data/spec/unit/settings/autosign_setting_spec.rb +2 -2
- data/spec/unit/settings/environment_conf_spec.rb +77 -10
- data/spec/unit/settings/file_setting_spec.rb +5 -4
- data/spec/unit/settings/priority_setting_spec.rb +4 -4
- data/spec/unit/settings_spec.rb +41 -3
- data/spec/unit/ssl/certificate_authority_spec.rb +25 -2
- data/spec/unit/ssl/inventory_spec.rb +13 -0
- data/spec/unit/ssl/validator_spec.rb +0 -1
- data/spec/unit/transaction/resource_harness_spec.rb +64 -0
- data/spec/unit/transaction_spec.rb +98 -47
- data/spec/unit/type/cron_spec.rb +3 -3
- data/spec/unit/type/exec_spec.rb +9 -0
- data/spec/unit/type/file/content_spec.rb +54 -71
- data/spec/unit/type/file/mode_spec.rb +26 -1
- data/spec/unit/type/file/source_spec.rb +26 -4
- data/spec/unit/type/file_spec.rb +3 -3
- data/spec/unit/type/nagios_spec.rb +12 -3
- data/spec/unit/type/resources_spec.rb +64 -30
- data/spec/unit/type/user_spec.rb +1 -1
- data/spec/unit/type/yumrepo_spec.rb +136 -0
- data/spec/unit/type/zone_spec.rb +44 -1
- data/spec/unit/type_spec.rb +20 -0
- data/spec/unit/util/colors_spec.rb +14 -8
- data/spec/unit/util/command_line_spec.rb +11 -7
- data/spec/unit/util/execution_spec.rb +35 -42
- data/spec/unit/util/feature_spec.rb +12 -0
- data/spec/unit/util/http_proxy_spec.rb +43 -1
- data/spec/unit/util/log/destinations_spec.rb +45 -1
- data/spec/unit/util/logging_spec.rb +38 -0
- data/spec/unit/util/pidlock_spec.rb +37 -1
- data/spec/unit/util/profiler/aggregate_spec.rb +59 -0
- data/spec/unit/util/profiler/around_profiler_spec.rb +61 -0
- data/spec/unit/util/profiler/logging_spec.rb +18 -29
- data/spec/unit/util/profiler/wall_clock_spec.rb +1 -1
- data/spec/unit/util/profiler_spec.rb +55 -0
- data/spec/unit/util/queue_spec.rb +0 -1
- data/spec/unit/util/rdoc/parser_spec.rb +14 -6
- data/spec/unit/util/tagging_spec.rb +1 -1
- data/spec/unit/util/windows/access_control_entry_spec.rb +1 -1
- data/spec/unit/util/{adsi_spec.rb → windows/adsi_spec.rb} +111 -108
- data/spec/unit/util/windows/api_types_spec.rb +28 -0
- data/spec/unit/util/windows/registry_spec.rb +7 -6
- data/spec/unit/util/windows/sid_spec.rb +3 -6
- data/spec/unit/util/windows/string_spec.rb +4 -0
- data/spec/unit/util/zaml_spec.rb +5 -1
- data/tasks/benchmark.rake +40 -5
- data/tasks/parser.rake +16 -2
- data/tasks/yard.rake +1 -1
- metadata +296 -68
- data/lib/puppet/file_system/tempfile.rb +0 -20
- data/lib/puppet/parser/e_parser_adapter.rb +0 -119
- data/lib/puppet/parser/functions/collect.rb +0 -15
- data/lib/puppet/parser/functions/select.rb +0 -15
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +0 -109
- data/lib/puppet/pops/parser/lexer.rb +0 -753
- data/lib/puppet/pops/parser/makefile +0 -6
- data/lib/puppet/pops/validation/checker3_1.rb +0 -558
- data/lib/puppet/pops/validation/validator_factory_3_1.rb +0 -31
- data/lib/puppet/util/profiler/none.rb +0 -8
- data/spec/unit/face/certificate_request_spec.rb +0 -7
- data/spec/unit/face/certificate_revocation_list_spec.rb +0 -7
- data/spec/unit/face/key_spec.rb +0 -7
- data/spec/unit/face/report_spec.rb +0 -7
- data/spec/unit/face/resource_spec.rb +0 -7
- data/spec/unit/face/resource_type_spec.rb +0 -7
- data/spec/unit/file_system/tempfile_spec.rb +0 -48
- data/spec/unit/parser/eparser_adapter_spec.rb +0 -407
- data/spec/unit/parser/methods/map_spec.rb +0 -184
- data/spec/unit/parser/methods/shared.rb +0 -45
- data/spec/unit/pops/parser/lexer_spec.rb +0 -840
- data/spec/unit/pops/transformer/transform_resource_spec.rb +0 -185
- data/spec/unit/util/profiler/none_spec.rb +0 -12
@@ -1,17 +1,25 @@
|
|
1
1
|
class Puppet::Pops::IssueReporter
|
2
2
|
|
3
3
|
# @param acceptor [Puppet::Pops::Validation::Acceptor] the acceptor containing reported issues
|
4
|
-
# @option options [String] :message (nil) A message text to use as prefix in
|
5
|
-
#
|
6
|
-
# @option options [Boolean] :
|
4
|
+
# @option options [String] :message (nil) A message text to use as prefix in
|
5
|
+
# a single Error message
|
6
|
+
# @option options [Boolean] :emit_warnings (false) whether warnings should be emitted
|
7
|
+
# @option options [Boolean] :emit_errors (true) whether errors should be
|
8
|
+
# emitted or only the given message
|
7
9
|
# @option options [Exception] :exception_class (Puppet::ParseError) The exception to raise
|
8
10
|
#
|
9
11
|
def self.assert_and_report(acceptor, options)
|
10
12
|
return unless acceptor
|
11
13
|
|
12
14
|
max_errors = Puppet[:max_errors]
|
13
|
-
max_warnings = Puppet[:max_warnings]
|
14
|
-
max_deprecations =
|
15
|
+
max_warnings = Puppet[:max_warnings]
|
16
|
+
max_deprecations =
|
17
|
+
if Puppet[:disable_warnings].include?('deprecations')
|
18
|
+
0
|
19
|
+
else
|
20
|
+
Puppet[:max_deprecations]
|
21
|
+
end
|
22
|
+
|
15
23
|
emit_warnings = options[:emit_warnings] || false
|
16
24
|
emit_errors = options[:emit_errors].nil? ? true : !!options[:emit_errors]
|
17
25
|
emit_message = options[:message]
|
@@ -35,7 +43,7 @@ class Puppet::Pops::IssueReporter
|
|
35
43
|
Puppet.warning(formatter.format(w)) if emitted_w < max_warnings
|
36
44
|
emitted_w += 1
|
37
45
|
end
|
38
|
-
break if emitted_w
|
46
|
+
break if emitted_w >= max_warnings && emitted_dw >= max_deprecations # but only then
|
39
47
|
end
|
40
48
|
end
|
41
49
|
|
data/lib/puppet/pops/issues.rb
CHANGED
@@ -174,17 +174,9 @@ module Puppet::Pops::Issues
|
|
174
174
|
"Illegal attempt to assign to the numeric match result variable '$#{varname}'. Numeric variables are not assignable"
|
175
175
|
end
|
176
176
|
|
177
|
-
APPEND_FAILED = issue :APPEND_FAILED, :message do
|
178
|
-
"Append assignment += failed with error: #{message}"
|
179
|
-
end
|
180
|
-
|
181
|
-
DELETE_FAILED = issue :DELETE_FAILED, :message do
|
182
|
-
"'Delete' assignment -= failed with error: #{message}"
|
183
|
-
end
|
184
|
-
|
185
177
|
# parameters cannot have numeric names, clashes with match result variables
|
186
178
|
ILLEGAL_NUMERIC_PARAMETER = issue :ILLEGAL_NUMERIC_PARAMETER, :name do
|
187
|
-
"The numeric parameter name '$#{
|
179
|
+
"The numeric parameter name '$#{name}' cannot be used (clashes with numeric match result variables)"
|
188
180
|
end
|
189
181
|
|
190
182
|
# In certain versions of Puppet it may be allowed to assign to a not already assigned key
|
@@ -202,9 +194,20 @@ module Puppet::Pops::Issues
|
|
202
194
|
"Illegal attempt to assign to #{label.a_an(semantic)} via [index/key]. Not an assignable reference"
|
203
195
|
end
|
204
196
|
|
205
|
-
|
197
|
+
APPENDS_DELETES_NO_LONGER_SUPPORTED = hard_issue :APPENDS_DELETES_NO_LONGER_SUPPORTED, :operator do
|
198
|
+
"The operator '#{operator}' is no longer supported. See http://links.puppetlabs.com/remove-plus-equals"
|
199
|
+
end
|
200
|
+
|
201
|
+
# For unsupported operators (e.g. += and -= in puppet 4).
|
206
202
|
#
|
207
203
|
UNSUPPORTED_OPERATOR = hard_issue :UNSUPPORTED_OPERATOR, :operator do
|
204
|
+
"The operator '#{operator}' is not supported."
|
205
|
+
end
|
206
|
+
|
207
|
+
# For operators that are not supported in specific contexts (e.g. '* =>' in
|
208
|
+
# resource defaults)
|
209
|
+
#
|
210
|
+
UNSUPPORTED_OPERATOR_IN_CONTEXT = hard_issue :UNSUPPORTED_OPERATOR_IN_CONTEXT, :operator do
|
208
211
|
"The operator '#{operator}' in #{label.a_an(semantic)} is not supported."
|
209
212
|
end
|
210
213
|
|
@@ -292,8 +295,7 @@ module Puppet::Pops::Issues
|
|
292
295
|
"Illegal expression. #{label.a_an_uc(semantic)} is unacceptable as #{feature} in #{label.a_an(container)}"
|
293
296
|
end
|
294
297
|
|
295
|
-
# Issues when
|
296
|
-
# E.g. an arithmetic expression where a hostname is expected.
|
298
|
+
# Issues when a variable is not a NAME
|
297
299
|
#
|
298
300
|
ILLEGAL_VARIABLE_EXPRESSION = hard_issue :ILLEGAL_VARIABLE_EXPRESSION do
|
299
301
|
"Illegal variable expression. #{label.a_an_uc(semantic)} did not produce a variable name (String or Numeric)."
|
@@ -319,10 +321,6 @@ module Puppet::Pops::Issues
|
|
319
321
|
"Attempt to use unsupported range in #{label.a_an(semantic)}, #{count} values given for max 1"
|
320
322
|
end
|
321
323
|
|
322
|
-
DEPRECATED_NAME_AS_TYPE = issue :DEPRECATED_NAME_AS_TYPE, :name do
|
323
|
-
"Resource references should now be capitalized. The given '#{name}' does not have the correct form"
|
324
|
-
end
|
325
|
-
|
326
324
|
ILLEGAL_RELATIONSHIP_OPERAND_TYPE = issue :ILLEGAL_RELATIONSHIP_OPERAND_TYPE, :operand do
|
327
325
|
"Illegal relationship operand, can not form a relationship with #{label.a_an(operand)}. A Catalog type is required."
|
328
326
|
end
|
@@ -411,15 +409,24 @@ module Puppet::Pops::Issues
|
|
411
409
|
"Illegal Class name in class reference. #{label.a_an_uc(name)} cannot be used where a String is expected"
|
412
410
|
end
|
413
411
|
|
414
|
-
# Issues when an expression is used where it is not legal.
|
415
|
-
# E.g. an arithmetic expression where a hostname is expected.
|
416
|
-
#
|
417
412
|
ILLEGAL_DEFINITION_NAME = hard_issue :ILLEGAL_DEFINTION_NAME, :name do
|
418
413
|
"Unacceptable name. The name '#{name}' is unacceptable as the name of #{label.a_an(semantic)}"
|
419
414
|
end
|
420
415
|
|
421
|
-
|
422
|
-
"
|
416
|
+
CAPTURES_REST_NOT_LAST = hard_issue :CAPTURES_REST_NOT_LAST, :param_name do
|
417
|
+
"Parameter $#{param_name} is not last, and has 'captures rest'"
|
418
|
+
end
|
419
|
+
|
420
|
+
CAPTURES_REST_NOT_SUPPORTED = hard_issue :CAPTURES_REST_NOT_SUPPORTED, :container, :param_name do
|
421
|
+
"Parameter $#{param_name} has 'captures rest' - not supported in #{label.a_an(container)}"
|
422
|
+
end
|
423
|
+
|
424
|
+
REQUIRED_PARAMETER_AFTER_OPTIONAL = hard_issue :REQUIRED_PARAMETER_AFTER_OPTIONAL, :param_name do
|
425
|
+
"Parameter $#{param_name} is required but appears after optional parameters"
|
426
|
+
end
|
427
|
+
|
428
|
+
MISSING_REQUIRED_PARAMETER = hard_issue :MISSING_REQUIRED_PARAMETER, :param_name do
|
429
|
+
"Parameter $#{param_name} is required but no value was given"
|
423
430
|
end
|
424
431
|
|
425
432
|
NOT_NUMERIC = issue :NOT_NUMERIC, :value do
|
@@ -442,6 +449,34 @@ module Puppet::Pops::Issues
|
|
442
449
|
"Resource type not found: #{type_name.capitalize}"
|
443
450
|
end
|
444
451
|
|
452
|
+
ILLEGAL_RESOURCE_TYPE = hard_issue :ILLEGAL_RESOURCE_TYPE, :actual do
|
453
|
+
"Illegal Resource Type expression, expected result to be a type name, or untitled Resource, got #{actual}"
|
454
|
+
end
|
455
|
+
|
456
|
+
DUPLICATE_TITLE = issue :DUPLICATE_TITLE, :title do
|
457
|
+
"The title '#{title}' has already been used in this resource expression"
|
458
|
+
end
|
459
|
+
|
460
|
+
DUPLICATE_ATTRIBUTE = issue :DUPLICATE_ATTRIBUE, :attribute do
|
461
|
+
"The attribute '#{attribute}' has already been set in this resource body"
|
462
|
+
end
|
463
|
+
|
464
|
+
MISSING_TITLE = hard_issue :MISSING_TITLE do
|
465
|
+
"Missing title. The title expression resulted in undef"
|
466
|
+
end
|
467
|
+
|
468
|
+
MISSING_TITLE_AT = hard_issue :MISSING_TITLE_AT, :index do
|
469
|
+
"Missing title at index #{index}. The title expression resulted in an undef title"
|
470
|
+
end
|
471
|
+
|
472
|
+
ILLEGAL_TITLE_TYPE_AT = hard_issue :ILLEGAL_TITLE_TYPE_AT, :index, :actual do
|
473
|
+
"Illegal title type at index #{index}. Expected String, got #{actual}"
|
474
|
+
end
|
475
|
+
|
476
|
+
EMPTY_STRING_TITLE_AT = hard_issue :EMPTY_STRING_TITLE_AT, :index do
|
477
|
+
"Empty string title at #{index}. Title strings must have a length greater than zero."
|
478
|
+
end
|
479
|
+
|
445
480
|
UNKNOWN_RESOURCE = issue :UNKNOWN_RESOURCE, :type_name, :title do
|
446
481
|
"Resource not found: #{type_name.capitalize}['#{title}']"
|
447
482
|
end
|
@@ -470,4 +505,44 @@ module Puppet::Pops::Issues
|
|
470
505
|
DISCONTINUED_IMPORT = hard_issue :DISCONTINUED_IMPORT do
|
471
506
|
"Use of 'import' has been discontinued in favor of a manifest directory. See http://links.puppetlabs.com/puppet-import-deprecation"
|
472
507
|
end
|
508
|
+
|
509
|
+
IDEM_EXPRESSION_NOT_LAST = issue :IDEM_EXPRESSION_NOT_LAST do
|
510
|
+
"This #{label.label(semantic)} is not productive. A non productive construct may only be placed last in a block/sequence"
|
511
|
+
end
|
512
|
+
|
513
|
+
IDEM_NOT_ALLOWED_LAST = hard_issue :IDEM_NOT_ALLOWED_LAST, :container do
|
514
|
+
"This #{label.label(semantic)} is not productive. #{label.a_an_uc(container)} can not end with a non productive construct"
|
515
|
+
end
|
516
|
+
|
517
|
+
RESERVED_WORD = hard_issue :RESERVED_WORD, :word do
|
518
|
+
"Use of reserved word: #{word}, must be quoted if intended to be a String value"
|
519
|
+
end
|
520
|
+
|
521
|
+
RESERVED_TYPE_NAME = hard_issue :RESERVED_TYPE_NAME, :name do
|
522
|
+
"The name: '#{name}' is already defined by Puppet and can not be used as the name of #{label.a_an(semantic)}."
|
523
|
+
end
|
524
|
+
|
525
|
+
UNMATCHED_SELECTOR = hard_issue :UNMATCHED_SELECTOR, :param_value do
|
526
|
+
"No matching entry for selector parameter with value '#{param_value}'"
|
527
|
+
end
|
528
|
+
|
529
|
+
ILLEGAL_NODE_INHERITANCE = issue :ILLEGAL_NODE_INHERITANCE do
|
530
|
+
"Node inheritance is not supported in Puppet >= 4.0.0. See http://links.puppetlabs.com/puppet-node-inheritance-deprecation"
|
531
|
+
end
|
532
|
+
|
533
|
+
ILLEGAL_OVERRIDEN_TYPE = issue :ILLEGAL_OVERRIDEN_TYPE, :actual do
|
534
|
+
"Resource Override can only operate on resources, got: #{label.label(actual)}"
|
535
|
+
end
|
536
|
+
|
537
|
+
RESERVED_PARAMETER = hard_issue :RESERVED_PARAMETER, :container, :param_name do
|
538
|
+
"The parameter $#{param_name} redefines a built in parameter in #{label.the(container)}"
|
539
|
+
end
|
540
|
+
|
541
|
+
TYPE_MISMATCH = hard_issue :TYPE_MISMATCH, :expected, :actual do
|
542
|
+
"Expected value of type #{expected}, got #{actual}"
|
543
|
+
end
|
544
|
+
|
545
|
+
MULTIPLE_ATTRIBUTES_UNFOLD = hard_issue :MULTIPLE_ATTRIBUTES_UNFOLD do
|
546
|
+
"Unfolding of attributes from Hash can only be used once per resource body"
|
547
|
+
end
|
473
548
|
end
|
@@ -65,7 +65,7 @@ class Puppet::Pops::Loader::BaseLoader < Puppet::Pops::Loader::Loader
|
|
65
65
|
#
|
66
66
|
def promote_entry(named_entry)
|
67
67
|
typed_name = named_entry.typed_name
|
68
|
-
if entry = @named_values[typed_name] then
|
68
|
+
if entry = @named_values[typed_name] then fail_redefine(entry); end
|
69
69
|
@named_values[typed_name] = named_entry
|
70
70
|
end
|
71
71
|
|
@@ -73,7 +73,7 @@ class Puppet::Pops::Loader::BaseLoader < Puppet::Pops::Loader::Loader
|
|
73
73
|
|
74
74
|
def fail_redefine(entry)
|
75
75
|
origin_info = entry.origin ? " Originally set at #{origin_label(entry.origin)}." : "unknown location"
|
76
|
-
raise ArgumentError, "Attempt to redefine entity '#{entry.typed_name}' originally set at #{
|
76
|
+
raise ArgumentError, "Attempt to redefine entity '#{entry.typed_name}' originally set at #{origin_info}"
|
77
77
|
end
|
78
78
|
|
79
79
|
# TODO: Should not really be here?? - TODO: A Label provider ? semantics for the URI?
|
@@ -84,7 +84,7 @@ class Puppet::Pops::Loader::BaseLoader < Puppet::Pops::Loader::Loader
|
|
84
84
|
elsif origin.respond_to?(:uri)
|
85
85
|
origin.uri.to_s
|
86
86
|
else
|
87
|
-
|
87
|
+
origin
|
88
88
|
end
|
89
89
|
end
|
90
90
|
|
@@ -11,18 +11,11 @@ module Puppet::Pops::Loader::LoaderPaths
|
|
11
11
|
# and existence checks). The smart paths in the array appear in precedence order. The returned array may be
|
12
12
|
# mutated.
|
13
13
|
#
|
14
|
-
def self.relative_paths_for_type(type, loader)
|
14
|
+
def self.relative_paths_for_type(type, loader)
|
15
15
|
result =
|
16
|
-
case type
|
16
|
+
case type
|
17
17
|
when :function
|
18
|
-
if Puppet[:biff] == true
|
19
|
-
[FunctionPath4x.new(loader), FunctionPath3x.new(loader)]
|
20
|
-
else
|
21
18
|
[FunctionPath4x.new(loader)]
|
22
|
-
end
|
23
|
-
|
24
|
-
# when :xxx # TODO: Add all other types
|
25
|
-
|
26
19
|
else
|
27
20
|
# unknown types, simply produce an empty result; no paths to check, nothing to find... move along...
|
28
21
|
[]
|
@@ -93,18 +86,6 @@ module Puppet::Pops::Loader::LoaderPaths
|
|
93
86
|
end
|
94
87
|
end
|
95
88
|
|
96
|
-
class FunctionPath3x < RubySmartPath
|
97
|
-
FUNCTION_PATH_3X = File.join('lib', 'puppet', 'parser', 'functions')
|
98
|
-
|
99
|
-
def relative_path
|
100
|
-
FUNCTION_PATH_3X
|
101
|
-
end
|
102
|
-
|
103
|
-
def instantiator()
|
104
|
-
Puppet::Pops::Loader::RubyLegacyFunctionInstantiator
|
105
|
-
end
|
106
|
-
end
|
107
|
-
|
108
89
|
# SmartPaths
|
109
90
|
# ===
|
110
91
|
# Holds effective SmartPath instances per type
|
@@ -16,7 +16,7 @@ class Puppet::Pops::Loader::RubyFunctionInstantiator
|
|
16
16
|
unless ruby_code_string.is_a?(String) && ruby_code_string =~ /Puppet\:\:Functions\.create_function/
|
17
17
|
raise ArgumentError, "The code loaded from #{source_ref} does not seem to be a Puppet 4x API function - no create_function call."
|
18
18
|
end
|
19
|
-
created = eval(ruby_code_string)
|
19
|
+
created = eval(ruby_code_string, nil, source_ref, 1)
|
20
20
|
unless created.is_a?(Class)
|
21
21
|
raise ArgumentError, "The code loaded from #{source_ref} did not produce a Function class when evaluated. Got '#{created.class}'"
|
22
22
|
end
|
@@ -49,14 +49,24 @@ class Puppet::Pops::Loader::StaticLoader < Puppet::Pops::Loader::Loader
|
|
49
49
|
|
50
50
|
# Logs per the specified level, outputs formatted information for arrays, hashes etc.
|
51
51
|
# Overrides the implementation in Function that uses dispatching. This is not needed here
|
52
|
-
# since it accepts 0-n
|
52
|
+
# since it accepts 0-n Object.
|
53
53
|
#
|
54
54
|
define_method(:call) do |scope, *vals|
|
55
55
|
# NOTE: 3x, does this: vals.join(" ")
|
56
56
|
# New implementation uses the evaluator to get proper formatting per type
|
57
57
|
# TODO: uses a fake scope (nil) - fix when :scopes are available via settings
|
58
58
|
mapped = vals.map {|v| Puppet::Pops::Evaluator::EvaluatorImpl.new.string(v, nil) }
|
59
|
-
|
59
|
+
|
60
|
+
# Bypass Puppet.<level> call since it picks up source from "self" which is not applicable in the 4x
|
61
|
+
# Function API.
|
62
|
+
# TODO: When a function can obtain the file, line, pos of the call merge those in (3x supports
|
63
|
+
# options :file, :line. (These were never output when calling the 3x logging functions since
|
64
|
+
# 3x scope does not know about the calling location at that detailed level, nor do they
|
65
|
+
# appear in a report to stdout/error when included). Now, the output simply uses scope (like 3x)
|
66
|
+
# as this is good enough, but does not reflect the true call-stack, but is a rough estimate
|
67
|
+
# of where the logging call originates from).
|
68
|
+
#
|
69
|
+
Puppet::Util::Log.create({:level => level, :source => scope, :message => mapped.join(" ")})
|
60
70
|
end
|
61
71
|
end
|
62
72
|
|
@@ -519,23 +519,7 @@ class Puppet::Pops::Model::AstTransformer
|
|
519
519
|
# the "titles" to be an ASTArray.
|
520
520
|
#
|
521
521
|
def transform_ResourceOverrideExpression(o)
|
522
|
-
|
523
|
-
raise "Unacceptable expression for resource override" unless resource_ref.is_a? Model::AccessExpression
|
524
|
-
|
525
|
-
type = case resource_ref.left_expr
|
526
|
-
when Model::QualifiedName
|
527
|
-
# This is deprecated "Resource references should now be capitalized" - this is caught elsewhere
|
528
|
-
resource_ref.left_expr.value
|
529
|
-
when Model::QualifiedReference
|
530
|
-
resource_ref.left_expr.value
|
531
|
-
else
|
532
|
-
raise "Unacceptable expression for resource override; need NAME or CLASSREF"
|
533
|
-
end
|
534
|
-
|
535
|
-
result_ref = ast o, AST::ResourceReference, :type => type, :title => transform(resource_ref.keys)
|
536
|
-
|
537
|
-
# title is one or more expressions, if more than one it should be an ASTArray
|
538
|
-
ast o, AST::ResourceOverride, :object => result_ref, :parameters => transform(o.operations)
|
522
|
+
raise "Unsupported transformation - use the new evaluator"
|
539
523
|
end
|
540
524
|
|
541
525
|
# Parameter is a parameter in a definition of some kind.
|
@@ -614,22 +598,18 @@ class Puppet::Pops::Model::AstTransformer
|
|
614
598
|
end
|
615
599
|
|
616
600
|
def transform_ResourceBody(o)
|
617
|
-
|
618
|
-
ast o, AST::ResourceInstance, :title => transform(o.title), :parameters => transform(o.operations)
|
601
|
+
raise "Unsupported transformation - use the new evaluator"
|
619
602
|
end
|
620
603
|
|
621
604
|
def transform_ResourceDefaultsExpression(o)
|
622
|
-
|
605
|
+
raise "Unsupported transformation - use the new evaluator"
|
623
606
|
end
|
624
607
|
|
625
608
|
# Transformation of ResourceExpression requires calling a method on the resulting
|
626
609
|
# AST::Resource if it is virtual or exported
|
627
610
|
#
|
628
611
|
def transform_ResourceExpression(o)
|
629
|
-
raise "
|
630
|
-
resource = ast o, AST::Resource, :type => o.type_name.value, :instances => transform(o.bodies)
|
631
|
-
resource.send("#{o.form}=", true) unless o.form == :regular
|
632
|
-
resource
|
612
|
+
raise "Unsupported transformation - use the new evaluator"
|
633
613
|
end
|
634
614
|
|
635
615
|
# Transformation of SelectorExpression is limited to certain types of expressions.
|
@@ -70,6 +70,11 @@ class Puppet::Pops::Model::Factory
|
|
70
70
|
o
|
71
71
|
end
|
72
72
|
|
73
|
+
def build_AttributesOperation(o, value)
|
74
|
+
o.expr = build(value)
|
75
|
+
o
|
76
|
+
end
|
77
|
+
|
73
78
|
def build_AccessExpression(o, left, *keys)
|
74
79
|
o.left_expr = to_ops(left)
|
75
80
|
keys.each {|expr| o.addKeys(to_ops(expr)) }
|
@@ -146,6 +151,11 @@ class Puppet::Pops::Model::Factory
|
|
146
151
|
o
|
147
152
|
end
|
148
153
|
|
154
|
+
def build_ReservedWord(o, name)
|
155
|
+
o.word = name
|
156
|
+
o
|
157
|
+
end
|
158
|
+
|
149
159
|
def build_KeyedEntry(o, k, v)
|
150
160
|
o.key = to_ops(k)
|
151
161
|
o.value = to_ops(v)
|
@@ -329,6 +339,10 @@ class Puppet::Pops::Model::Factory
|
|
329
339
|
o
|
330
340
|
end
|
331
341
|
|
342
|
+
def build_TokenValue(o)
|
343
|
+
raise "Factory can not deal with a Lexer Token. Got token: #{o}. Probably caused by wrong index in grammar val[n]."
|
344
|
+
end
|
345
|
+
|
332
346
|
# Puppet::Pops::Model::Factory helpers
|
333
347
|
def f_build_unary(klazz, expr)
|
334
348
|
Puppet::Pops::Model::Factory.new(build(klazz.new, expr))
|
@@ -369,6 +383,8 @@ class Puppet::Pops::Model::Factory
|
|
369
383
|
|
370
384
|
def minus(); f_build_unary(Model::UnaryMinusExpression, self); end
|
371
385
|
|
386
|
+
def unfold(); f_build_unary(Model::UnfoldExpression, self); end
|
387
|
+
|
372
388
|
def text(); f_build_unary(Model::TextExpression, self); end
|
373
389
|
|
374
390
|
def var(); f_build_unary(Model::VariableExpression, self); end
|
@@ -483,7 +499,18 @@ class Puppet::Pops::Model::Factory
|
|
483
499
|
Puppet::Pops::Adapters::SourcePosAdapter.adapt(current)
|
484
500
|
end
|
485
501
|
|
486
|
-
#
|
502
|
+
# Sets the form of the resource expression (:regular (the default), :virtual, or :exported).
|
503
|
+
# Produces true if the expression was a resource expression, false otherwise.
|
504
|
+
#
|
505
|
+
def self.set_resource_form(expr, form)
|
506
|
+
expr = expr.current if expr.is_a?(Puppet::Pops::Model::Factory)
|
507
|
+
# Note: Validation handles illegal combinations
|
508
|
+
return false unless expr.is_a?(Puppet::Pops::Model::AbstractResource)
|
509
|
+
expr.form = form
|
510
|
+
return true
|
511
|
+
end
|
512
|
+
|
513
|
+
# Returns symbolic information about an expected shape of a resource expression given the LHS of a resource expr.
|
487
514
|
#
|
488
515
|
# * `name { }` => `:resource`, create a resource of the given type
|
489
516
|
# * `Name { }` => ':defaults`, set defaults for the referenced type
|
@@ -498,7 +525,12 @@ class Puppet::Pops::Model::Factory
|
|
498
525
|
when Model::QualifiedReference
|
499
526
|
:defaults
|
500
527
|
when Model::AccessExpression
|
501
|
-
|
528
|
+
# if Resource[e], then it is not resource specific
|
529
|
+
if expr.left_expr.is_a?(Model::QualifiedReference) && expr.left_expr.value == 'resource' && expr.keys.size == 1
|
530
|
+
:defaults
|
531
|
+
else
|
532
|
+
:override
|
533
|
+
end
|
502
534
|
when 'class'
|
503
535
|
:class
|
504
536
|
else
|
@@ -511,6 +543,8 @@ class Puppet::Pops::Model::Factory
|
|
511
543
|
|
512
544
|
def self.minus(o); new(o).minus; end
|
513
545
|
|
546
|
+
def self.unfold(o); new(o).unfold; end
|
547
|
+
|
514
548
|
def self.var(o); new(o).var; end
|
515
549
|
|
516
550
|
def self.block(*args); new(Model::BlockExpression, *args); end
|
@@ -539,7 +573,6 @@ class Puppet::Pops::Model::Factory
|
|
539
573
|
|
540
574
|
def self.HASH(entries); new(Model::LiteralHash, *entries); end
|
541
575
|
|
542
|
-
# TODO_HEREDOC
|
543
576
|
def self.HEREDOC(name, expr); new(Model::HeredocExpression, name, expr); end
|
544
577
|
|
545
578
|
def self.SUBLOCATE(token, expr) new(Model::SubLocatedExpression, token, expr); end
|
@@ -550,6 +583,19 @@ class Puppet::Pops::Model::Factory
|
|
550
583
|
|
551
584
|
def self.NODE(hosts, parent, body); new(Model::NodeDefinition, hosts, parent, body); end
|
552
585
|
|
586
|
+
|
587
|
+
# Parameters
|
588
|
+
|
589
|
+
# Mark parameter as capturing the rest of arguments
|
590
|
+
def captures_rest()
|
591
|
+
current.captures_rest = true
|
592
|
+
end
|
593
|
+
|
594
|
+
# Set Expression that should evaluate to the parameter's type
|
595
|
+
def type_expr(o)
|
596
|
+
current.type_expr = to_ops(o)
|
597
|
+
end
|
598
|
+
|
553
599
|
# Creates a QualifiedName representation of o, unless o already represents a QualifiedName in which
|
554
600
|
# case it is returned.
|
555
601
|
#
|
@@ -582,13 +628,18 @@ class Puppet::Pops::Model::Factory
|
|
582
628
|
end
|
583
629
|
|
584
630
|
def self.EPP(parameters, body)
|
585
|
-
see_scope = false
|
586
|
-
params = parameters
|
587
631
|
if parameters.nil?
|
588
632
|
params = []
|
589
|
-
|
633
|
+
parameters_specified = false
|
634
|
+
else
|
635
|
+
params = parameters
|
636
|
+
parameters_specified = true
|
590
637
|
end
|
591
|
-
LAMBDA(params, new(Model::EppExpression,
|
638
|
+
LAMBDA(params, new(Model::EppExpression, parameters_specified, body))
|
639
|
+
end
|
640
|
+
|
641
|
+
def self.RESERVED(name)
|
642
|
+
new(Model::ReservedWord, name)
|
592
643
|
end
|
593
644
|
|
594
645
|
# TODO: This is the same a fqn factory method, don't know if callers to fqn and QNAME can live with the
|
@@ -643,6 +694,10 @@ class Puppet::Pops::Model::Factory
|
|
643
694
|
new(Model::AttributeOperation, name, op, expr)
|
644
695
|
end
|
645
696
|
|
697
|
+
def self.ATTRIBUTES_OP(expr)
|
698
|
+
new(Model::AttributesOperation, expr)
|
699
|
+
end
|
700
|
+
|
646
701
|
def self.CALL_NAMED(name, rval_required, argument_list)
|
647
702
|
unless name.kind_of?(Model::PopsObject)
|
648
703
|
name = Puppet::Pops::Model::Factory.fqn(name) unless name.is_a?(Puppet::Pops::Model::Factory)
|
@@ -712,6 +767,7 @@ class Puppet::Pops::Model::Factory
|
|
712
767
|
'realize' => true,
|
713
768
|
'include' => true,
|
714
769
|
'contain' => true,
|
770
|
+
'tag' => true,
|
715
771
|
|
716
772
|
'debug' => true,
|
717
773
|
'info' => true,
|
@@ -763,8 +819,9 @@ class Puppet::Pops::Model::Factory
|
|
763
819
|
# Transforms a left expression followed by an untitled resource (in the form of attribute_operations)
|
764
820
|
# @param left [Factory, Expression] the lhs followed what may be a hash
|
765
821
|
def self.transform_resource_wo_title(left, attribute_ops)
|
822
|
+
# Returning nil means accepting the given as a potential resource expression
|
766
823
|
return nil unless attribute_ops.is_a? Array
|
767
|
-
|
824
|
+
return nil unless left.current.is_a?(Puppet::Pops::Model::QualifiedName)
|
768
825
|
keyed_entries = attribute_ops.map do |ao|
|
769
826
|
return nil if ao.operator == :'+>'
|
770
827
|
KEY_ENTRY(ao.attribute_name, ao.value_expr)
|
@@ -819,8 +876,8 @@ class Puppet::Pops::Model::Factory
|
|
819
876
|
x
|
820
877
|
end
|
821
878
|
|
822
|
-
def build_EppExpression(o,
|
823
|
-
o.
|
879
|
+
def build_EppExpression(o, parameters_specified, body)
|
880
|
+
o.parameters_specified = parameters_specified
|
824
881
|
b = f_build_body(body)
|
825
882
|
o.body = b.current if b
|
826
883
|
o
|
@@ -833,6 +890,7 @@ class Puppet::Pops::Model::Factory
|
|
833
890
|
|
834
891
|
# Creates a String literal, unless the symbol is one of the special :undef, or :default
|
835
892
|
# which instead creates a LiterlUndef, or a LiteralDefault.
|
893
|
+
# Supports :undef because nil creates a no-op instruction.
|
836
894
|
def build_Symbol(o)
|
837
895
|
case o
|
838
896
|
when :undef
|
@@ -975,4 +1033,8 @@ class Puppet::Pops::Model::Factory
|
|
975
1033
|
end
|
976
1034
|
end.join(''))
|
977
1035
|
end
|
1036
|
+
|
1037
|
+
def to_s
|
1038
|
+
Puppet::Pops::Model::ModelTreeDumper.new.dump(self)
|
1039
|
+
end
|
978
1040
|
end
|