puppet 3.4.3 → 3.5.0.rc1
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 +6 -6
- data/Gemfile +22 -16
- data/LICENSE +1 -1
- data/README.md +33 -11
- data/Rakefile +1 -1
- data/conf/auth.conf +4 -0
- data/ext/build_defaults.yaml +1 -1
- data/ext/debian/control +6 -6
- data/ext/ips/transforms +1 -1
- data/ext/nagios/naggen +1 -1
- data/ext/project_data.yaml +21 -1
- data/ext/puppet-test +3 -3
- data/ext/redhat/puppet.spec.erb +28 -2
- data/ext/suse/puppet.spec +1 -1
- data/ext/upload_facts.rb +1 -1
- data/ext/windows/service/daemon.rb +99 -20
- data/lib/hiera_puppet.rb +2 -2
- data/lib/puppet.rb +68 -5
- data/lib/puppet/agent.rb +5 -1
- data/lib/puppet/application.rb +20 -11
- data/lib/puppet/application/agent.rb +1 -1
- data/lib/puppet/application/apply.rb +61 -41
- data/lib/puppet/application/cert.rb +3 -3
- data/lib/puppet/application/device.rb +7 -8
- data/lib/puppet/application/doc.rb +1 -1
- data/lib/puppet/application/filebucket.rb +3 -3
- data/lib/puppet/application/kick.rb +2 -2
- data/lib/puppet/application/master.rb +1 -1
- data/lib/puppet/application/queue.rb +9 -9
- data/lib/puppet/application/resource.rb +2 -2
- data/lib/puppet/bindings.rb +6 -6
- data/lib/puppet/configurer.rb +17 -14
- data/lib/puppet/configurer/fact_handler.rb +1 -1
- data/lib/puppet/confine/any.rb +26 -0
- data/lib/puppet/confine/exists.rb +1 -1
- data/lib/puppet/confiner.rb +1 -0
- data/lib/puppet/context.rb +55 -0
- data/lib/puppet/context/trusted_information.rb +56 -0
- data/lib/puppet/defaults.rb +97 -26
- data/lib/puppet/environments.rb +187 -0
- data/lib/puppet/error.rb +2 -1
- data/lib/puppet/external/pson/common.rb +1 -1
- data/lib/puppet/external/pson/pure/generator.rb +1 -1
- data/lib/puppet/external/pson/pure/parser.rb +1 -1
- data/lib/puppet/face/config.rb +73 -15
- data/lib/puppet/face/file/store.rb +1 -1
- data/lib/puppet/face/help.rb +2 -1
- data/lib/puppet/face/help/action.erb +1 -0
- data/lib/puppet/face/help/face.erb +1 -0
- data/lib/puppet/face/help/global.erb +1 -0
- data/lib/puppet/face/help/man.erb +9 -8
- data/lib/puppet/face/module/list.rb +13 -7
- data/lib/puppet/face/node/clean.rb +2 -2
- data/lib/puppet/face/parser.rb +11 -5
- data/lib/puppet/face/status.rb +1 -1
- data/lib/puppet/feature/external_facts.rb +2 -2
- data/lib/puppet/feature/libuser.rb +1 -1
- data/lib/puppet/feature/msgpack.rb +2 -0
- data/lib/puppet/feature/rails.rb +2 -2
- data/lib/puppet/file_bucket/dipper.rb +9 -9
- data/lib/puppet/file_bucket/file.rb +9 -5
- data/lib/puppet/file_serving/base.rb +1 -1
- data/lib/puppet/file_serving/configuration.rb +1 -1
- data/lib/puppet/file_serving/configuration/parser.rb +3 -3
- data/lib/puppet/file_serving/content.rb +2 -2
- data/lib/puppet/file_serving/fileset.rb +4 -4
- data/lib/puppet/file_serving/metadata.rb +69 -15
- data/lib/puppet/file_serving/mount/file.rb +1 -1
- data/lib/puppet/file_system.rb +361 -1
- data/lib/puppet/file_system/file18.rb +3 -3
- data/lib/puppet/file_system/file19.rb +3 -3
- data/lib/puppet/file_system/file19windows.rb +18 -23
- data/lib/puppet/file_system/file_impl.rb +145 -0
- data/lib/puppet/file_system/memory_file.rb +23 -9
- data/lib/puppet/file_system/memory_impl.rb +64 -0
- data/lib/puppet/forge.rb +4 -3
- data/lib/puppet/forge/repository.rb +0 -1
- data/lib/puppet/graph/relationship_graph.rb +7 -7
- data/lib/puppet/indirector.rb +1 -0
- data/lib/puppet/indirector/catalog/compiler.rb +3 -30
- data/lib/puppet/indirector/catalog/msgpack.rb +6 -0
- data/lib/puppet/indirector/catalog/static_compiler.rb +3 -7
- data/lib/puppet/indirector/data_binding/hiera.rb +1 -1
- data/lib/puppet/indirector/direct_file_server.rb +2 -2
- data/lib/puppet/indirector/exec.rb +1 -1
- data/lib/puppet/indirector/face.rb +3 -2
- data/lib/puppet/indirector/facts/facter.rb +1 -1
- data/lib/puppet/indirector/file_bucket_file/file.rb +25 -15
- data/lib/puppet/indirector/file_metadata/file.rb +1 -1
- data/lib/puppet/indirector/file_server.rb +1 -1
- data/lib/puppet/indirector/indirection.rb +1 -1
- data/lib/puppet/indirector/json.rb +4 -4
- data/lib/puppet/indirector/key/file.rb +8 -5
- data/lib/puppet/indirector/ldap.rb +1 -1
- data/lib/puppet/indirector/memory.rb +4 -0
- data/lib/puppet/indirector/msgpack.rb +82 -0
- data/lib/puppet/indirector/node/exec.rb +1 -1
- data/lib/puppet/indirector/node/ldap.rb +3 -3
- data/lib/puppet/indirector/node/msgpack.rb +7 -0
- data/lib/puppet/indirector/node/yaml.rb +15 -0
- data/lib/puppet/indirector/queue.rb +3 -2
- data/lib/puppet/indirector/report/msgpack.rb +11 -0
- data/lib/puppet/indirector/request.rb +17 -20
- data/lib/puppet/indirector/resource/rest.rb +1 -1
- data/lib/puppet/indirector/resource_type/parser.rb +3 -13
- data/lib/puppet/indirector/rest.rb +6 -7
- data/lib/puppet/indirector/ssl_file.rb +7 -7
- data/lib/puppet/indirector/yaml.rb +9 -13
- data/lib/puppet/metatype/manager.rb +12 -7
- data/lib/puppet/module.rb +14 -9
- data/lib/puppet/module_tool.rb +21 -26
- data/lib/puppet/module_tool/applications/application.rb +1 -1
- data/lib/puppet/module_tool/applications/generator.rb +2 -1
- data/lib/puppet/module_tool/applications/installer.rb +9 -4
- data/lib/puppet/module_tool/applications/uninstaller.rb +10 -7
- data/lib/puppet/module_tool/applications/unpacker.rb +1 -1
- data/lib/puppet/module_tool/applications/upgrader.rb +11 -8
- data/lib/puppet/module_tool/checksums.rb +1 -1
- data/lib/puppet/module_tool/contents_description.rb +2 -0
- data/lib/puppet/module_tool/dependency.rb +4 -5
- data/lib/puppet/module_tool/errors.rb +2 -0
- data/lib/puppet/module_tool/install_directory.rb +3 -0
- data/lib/puppet/module_tool/metadata.rb +3 -5
- data/lib/puppet/module_tool/modulefile.rb +3 -0
- data/lib/puppet/module_tool/shared_behaviors.rb +6 -1
- data/lib/puppet/module_tool/skeleton.rb +3 -0
- data/lib/puppet/module_tool/tar.rb +3 -0
- data/lib/puppet/network/auth_config_parser.rb +1 -1
- data/lib/puppet/network/authconfig.rb +5 -2
- data/lib/puppet/network/authentication.rb +7 -2
- data/lib/puppet/network/authorization.rb +2 -2
- data/lib/puppet/network/format_support.rb +4 -0
- data/lib/puppet/network/formats.rb +9 -14
- data/lib/puppet/network/http.rb +11 -0
- data/lib/puppet/network/http/api.rb +0 -2
- data/lib/puppet/network/http/api/v1.rb +146 -11
- data/lib/puppet/network/http/api/v2.rb +32 -0
- data/lib/puppet/network/http/api/v2/authorization.rb +13 -0
- data/lib/puppet/network/http/api/v2/environments.rb +21 -0
- data/lib/puppet/network/http/connection.rb +94 -37
- data/lib/puppet/network/http/error.rb +69 -0
- data/lib/puppet/network/http/handler.rb +28 -196
- data/lib/puppet/network/http/issues.rb +9 -0
- data/lib/puppet/network/http/memory_response.rb +13 -0
- data/lib/puppet/network/http/rack/rest.rb +10 -18
- data/lib/puppet/network/http/request.rb +56 -0
- data/lib/puppet/network/http/response.rb +11 -0
- data/lib/puppet/network/http/route.rb +91 -0
- data/lib/puppet/network/http/webrick.rb +1 -1
- data/lib/puppet/network/http/webrick/rest.rb +7 -12
- data/lib/puppet/network/http_pool.rb +3 -3
- data/lib/puppet/network/rights.rb +4 -4
- data/lib/puppet/node.rb +23 -14
- data/lib/puppet/node/environment.rb +149 -125
- data/lib/puppet/node/facts.rb +6 -5
- data/lib/puppet/parameter.rb +1 -1
- data/lib/puppet/parser/ast.rb +1 -1
- data/lib/puppet/parser/ast/block_expression.rb +1 -6
- data/lib/puppet/parser/ast/collexpr.rb +54 -2
- data/lib/puppet/parser/ast/lambda.rb +9 -0
- data/lib/puppet/parser/ast/leaf.rb +15 -0
- data/lib/puppet/parser/ast/pops_bridge.rb +168 -0
- data/lib/puppet/parser/code_merger.rb +13 -0
- data/lib/puppet/parser/collector.rb +1 -1
- data/lib/puppet/parser/compiler.rb +28 -30
- data/lib/puppet/parser/e4_parser_adapter.rb +81 -0
- data/lib/puppet/parser/e_parser_adapter.rb +0 -1
- data/lib/puppet/parser/files.rb +12 -7
- data/lib/puppet/parser/functions.rb +36 -29
- data/lib/puppet/parser/functions/collect.rb +1 -1
- data/lib/puppet/parser/functions/defined.rb +40 -16
- data/lib/puppet/parser/functions/each.rb +55 -41
- data/lib/puppet/parser/functions/epp.rb +41 -0
- data/lib/puppet/parser/functions/extlookup.rb +2 -2
- data/lib/puppet/parser/functions/file.rb +1 -1
- data/lib/puppet/parser/functions/filter.rb +68 -16
- data/lib/puppet/parser/functions/generate.rb +1 -1
- data/lib/puppet/parser/functions/include.rb +3 -2
- data/lib/puppet/parser/functions/inline_epp.rb +79 -0
- data/lib/puppet/parser/functions/inline_template.rb +1 -1
- data/lib/puppet/parser/functions/lookup.rb +127 -27
- data/lib/puppet/parser/functions/map.rb +64 -12
- data/lib/puppet/parser/functions/reduce.rb +40 -16
- data/lib/puppet/parser/functions/select.rb +1 -1
- data/lib/puppet/parser/functions/slice.rb +42 -23
- data/lib/puppet/parser/grammar.ra +3 -0
- data/lib/puppet/parser/lexer.rb +10 -9
- data/lib/puppet/parser/parser.rb +15 -12
- data/lib/puppet/parser/parser_factory.rb +26 -1
- data/lib/puppet/parser/parser_support.rb +13 -4
- data/lib/puppet/parser/resource.rb +1 -1
- data/lib/puppet/parser/scope.rb +246 -97
- data/lib/puppet/parser/templatewrapper.rb +1 -1
- data/lib/puppet/parser/type_loader.rb +13 -2
- data/lib/puppet/pops.rb +15 -1
- data/lib/puppet/pops/adapters.rb +64 -32
- data/lib/puppet/pops/binder/binder.rb +122 -150
- data/lib/puppet/pops/binder/binder_issues.rb +1 -21
- data/lib/puppet/pops/binder/bindings_checker.rb +0 -20
- data/lib/puppet/pops/binder/bindings_composer.rb +4 -70
- data/lib/puppet/pops/binder/bindings_factory.rb +16 -58
- data/lib/puppet/pops/binder/bindings_label_provider.rb +0 -3
- data/lib/puppet/pops/binder/bindings_loader.rb +13 -4
- data/lib/puppet/pops/binder/bindings_model.rb +17 -31
- data/lib/puppet/pops/binder/bindings_model_dumper.rb +2 -20
- data/lib/puppet/pops/binder/config/binder_config.rb +8 -40
- data/lib/puppet/pops/binder/config/binder_config_checker.rb +2 -43
- data/lib/puppet/pops/binder/config/issues.rb +1 -21
- data/lib/puppet/pops/binder/injector.rb +86 -7
- data/lib/puppet/pops/binder/injector_entry.rb +6 -2
- data/lib/puppet/pops/binder/key_factory.rb +7 -1
- data/lib/puppet/pops/binder/lookup.rb +191 -0
- data/lib/puppet/pops/binder/producers.rb +5 -5
- data/lib/puppet/pops/binder/scheme_handler/symbolic_scheme.rb +2 -3
- data/lib/puppet/pops/binder/system_bindings.rb +4 -16
- data/lib/puppet/pops/containment.rb +72 -5
- data/lib/puppet/pops/evaluator/access_operator.rb +548 -0
- data/lib/puppet/pops/evaluator/closure.rb +57 -0
- data/lib/puppet/pops/evaluator/compare_operator.rb +168 -0
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +87 -0
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +1069 -0
- data/lib/puppet/pops/evaluator/external_syntax_support.rb +49 -0
- data/lib/puppet/pops/evaluator/relationship_operator.rb +156 -0
- data/lib/puppet/pops/evaluator/runtime3_support.rb +489 -0
- data/lib/puppet/pops/issue_reporter.rb +8 -4
- data/lib/puppet/pops/issues.rb +199 -4
- data/lib/puppet/pops/label_provider.rb +5 -0
- data/lib/puppet/pops/model/ast_transformer.rb +55 -31
- data/lib/puppet/pops/model/ast_tree_dumper.rb +9 -1
- data/lib/puppet/pops/model/factory.rb +265 -111
- data/lib/puppet/pops/model/model.rb +179 -140
- data/lib/puppet/pops/model/model_label_provider.rb +38 -9
- data/lib/puppet/pops/model/model_tree_dumper.rb +38 -13
- data/lib/puppet/pops/parser/code_merger.rb +17 -0
- data/lib/puppet/pops/parser/egrammar.ra +110 -61
- data/lib/puppet/pops/parser/eparser.rb +1415 -1092
- data/lib/puppet/pops/parser/epp_parser.rb +51 -0
- data/lib/puppet/pops/parser/epp_support.rb +247 -0
- data/lib/puppet/pops/parser/evaluating_parser.rb +53 -15
- data/lib/puppet/pops/parser/heredoc_support.rb +139 -0
- data/lib/puppet/pops/parser/interpolation_support.rb +227 -0
- data/lib/puppet/pops/parser/lexer.rb +83 -192
- data/lib/puppet/pops/parser/lexer2.rb +684 -0
- data/lib/puppet/pops/parser/lexer_support.rb +107 -0
- data/lib/puppet/pops/parser/locatable.rb +23 -0
- data/lib/puppet/pops/parser/locator.rb +291 -0
- data/lib/puppet/pops/parser/makefile +1 -8
- data/lib/puppet/pops/parser/parser_support.rb +76 -48
- data/lib/puppet/pops/parser/slurp_support.rb +95 -0
- data/lib/puppet/pops/patterns.rb +13 -4
- data/lib/puppet/pops/types/class_loader.rb +2 -2
- data/lib/puppet/pops/types/enumeration.rb +34 -0
- data/lib/puppet/pops/types/type_calculator.rb +983 -58
- data/lib/puppet/pops/types/type_factory.rb +203 -15
- data/lib/puppet/pops/types/type_parser.rb +355 -12
- data/lib/puppet/pops/types/types.rb +314 -24
- data/lib/puppet/pops/utils.rb +23 -7
- data/lib/puppet/pops/validation.rb +14 -8
- data/lib/puppet/pops/validation/checker3_1.rb +17 -12
- data/lib/puppet/pops/validation/checker4_0.rb +514 -0
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +31 -0
- data/lib/puppet/pops/visitor.rb +146 -4
- data/lib/puppet/property.rb +1 -1
- data/lib/puppet/property/ensure.rb +1 -1
- data/lib/puppet/provider.rb +47 -26
- data/lib/puppet/provider/aixobject.rb +3 -3
- data/lib/puppet/provider/augeas/augeas.rb +11 -11
- data/lib/puppet/provider/cron/crontab.rb +10 -1
- data/lib/puppet/provider/exec.rb +1 -1
- data/lib/puppet/provider/exec/posix.rb +1 -1
- data/lib/puppet/provider/exec/windows.rb +1 -1
- data/lib/puppet/provider/file/posix.rb +2 -2
- data/lib/puppet/provider/file/windows.rb +15 -9
- data/lib/puppet/provider/group/aix.rb +2 -2
- data/lib/puppet/provider/macauthorization/macauthorization.rb +3 -3
- data/lib/puppet/provider/mount.rb +7 -0
- data/lib/puppet/provider/mount/parsed.rb +0 -1
- data/lib/puppet/provider/naginator.rb +1 -1
- data/lib/puppet/provider/nameservice.rb +3 -3
- data/lib/puppet/provider/nameservice/directoryservice.rb +3 -3
- data/lib/puppet/provider/package/aix.rb +1 -1
- data/lib/puppet/provider/package/appdmg.rb +1 -4
- data/lib/puppet/provider/package/apple.rb +1 -1
- data/lib/puppet/provider/package/apt.rb +1 -1
- data/lib/puppet/provider/package/blastwave.rb +1 -1
- data/lib/puppet/provider/package/fink.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +3 -3
- data/lib/puppet/provider/package/openbsd.rb +6 -4
- data/lib/puppet/provider/package/pacman.rb +58 -5
- data/lib/puppet/provider/package/pip.rb +2 -2
- data/lib/puppet/provider/package/pkgdmg.rb +25 -10
- data/lib/puppet/provider/package/pkgin.rb +48 -23
- data/lib/puppet/provider/package/pkgutil.rb +1 -1
- data/lib/puppet/provider/package/ports.rb +1 -1
- data/lib/puppet/provider/package/portupgrade.rb +7 -7
- data/lib/puppet/provider/package/rpm.rb +16 -8
- data/lib/puppet/provider/package/windows.rb +1 -1
- data/lib/puppet/provider/package/windows/package.rb +1 -1
- data/lib/puppet/provider/parsedfile.rb +1 -1
- data/lib/puppet/provider/selboolean/getsetsebool.rb +1 -1
- data/lib/puppet/provider/selmodule/semodule.rb +5 -5
- data/lib/puppet/provider/service/base.rb +1 -1
- data/lib/puppet/provider/service/bsd.rb +3 -3
- data/lib/puppet/provider/service/daemontools.rb +20 -20
- data/lib/puppet/provider/service/debian.rb +1 -1
- data/lib/puppet/provider/service/freebsd.rb +3 -3
- data/lib/puppet/provider/service/gentoo.rb +2 -2
- data/lib/puppet/provider/service/init.rb +5 -5
- data/lib/puppet/provider/service/launchd.rb +4 -4
- data/lib/puppet/provider/service/redhat.rb +2 -2
- data/lib/puppet/provider/service/runit.rb +4 -4
- data/lib/puppet/provider/service/service.rb +3 -4
- data/lib/puppet/provider/service/smf.rb +1 -1
- data/lib/puppet/provider/service/src.rb +3 -3
- data/lib/puppet/provider/service/systemd.rb +4 -4
- data/lib/puppet/provider/service/upstart.rb +22 -7
- data/lib/puppet/provider/service/windows.rb +7 -7
- data/lib/puppet/provider/ssh_authorized_key/parsed.rb +3 -3
- data/lib/puppet/provider/user/aix.rb +5 -5
- data/lib/puppet/provider/user/directoryservice.rb +8 -5
- data/lib/puppet/provider/user/ldap.rb +1 -1
- data/lib/puppet/provider/user/pw.rb +1 -1
- data/lib/puppet/provider/user/user_role_add.rb +2 -2
- data/lib/puppet/provider/user/useradd.rb +19 -5
- data/lib/puppet/provider/yumrepo/inifile.rb +187 -0
- data/lib/puppet/provider/zone/solaris.rb +4 -4
- data/lib/puppet/rails.rb +16 -11
- data/lib/puppet/rails/benchmark.rb +1 -1
- data/lib/puppet/rails/resource.rb +5 -1
- data/lib/puppet/reference/configuration.rb +1 -1
- data/lib/puppet/reference/report.rb +1 -1
- data/lib/puppet/relationship.rb +10 -5
- data/lib/puppet/reports/http.rb +8 -2
- data/lib/puppet/reports/rrdgraph.rb +1 -1
- data/lib/puppet/reports/store.rb +3 -3
- data/lib/puppet/reports/tagmail.rb +4 -4
- data/lib/puppet/resource.rb +37 -44
- data/lib/puppet/resource/catalog.rb +18 -20
- data/lib/puppet/resource/status.rb +7 -6
- data/lib/puppet/resource/type.rb +6 -5
- data/lib/puppet/resource/type_collection.rb +2 -2
- data/lib/puppet/run.rb +9 -8
- data/lib/puppet/settings.rb +395 -244
- data/lib/puppet/settings/base_setting.rb +10 -4
- data/lib/puppet/settings/config_file.rb +81 -44
- data/lib/puppet/settings/directory_setting.rb +1 -2
- data/lib/puppet/settings/file_setting.rb +12 -5
- data/lib/puppet/settings/ini_file.rb +171 -0
- data/lib/puppet/ssl/base.rb +4 -0
- data/lib/puppet/ssl/certificate_authority.rb +16 -11
- data/lib/puppet/ssl/certificate_authority/interface.rb +3 -2
- data/lib/puppet/ssl/certificate_factory.rb +50 -5
- data/lib/puppet/ssl/certificate_request.rb +2 -2
- data/lib/puppet/ssl/certificate_request_attributes.rb +1 -1
- data/lib/puppet/ssl/certificate_revocation_list.rb +3 -1
- data/lib/puppet/ssl/host.rb +9 -8
- data/lib/puppet/ssl/inventory.rb +1 -1
- data/lib/puppet/ssl/key.rb +1 -1
- data/lib/puppet/ssl/validator/default_validator.rb +1 -1
- data/lib/puppet/status.rb +8 -7
- data/lib/puppet/test/test_helper.rb +35 -4
- data/lib/puppet/transaction/event.rb +6 -5
- data/lib/puppet/transaction/report.rb +10 -10
- data/lib/puppet/type.rb +1 -3
- data/lib/puppet/type/augeas.rb +2 -1
- data/lib/puppet/type/cron.rb +41 -11
- data/lib/puppet/type/exec.rb +5 -5
- data/lib/puppet/type/file.rb +42 -4
- data/lib/puppet/type/file/content.rb +5 -6
- data/lib/puppet/type/file/ensure.rb +3 -3
- data/lib/puppet/type/file/source.rb +12 -6
- data/lib/puppet/type/file/target.rb +5 -5
- data/lib/puppet/type/k5login.rb +4 -4
- data/lib/puppet/type/mount.rb +1 -1
- data/lib/puppet/type/package.rb +79 -3
- data/lib/puppet/type/resources.rb +34 -5
- data/lib/puppet/type/selboolean.rb +1 -1
- data/lib/puppet/type/selmodule.rb +1 -1
- data/lib/puppet/type/ssh_authorized_key.rb +2 -1
- data/lib/puppet/type/sshkey.rb +2 -1
- data/lib/puppet/type/tidy.rb +1 -1
- data/lib/puppet/type/user.rb +4 -1
- data/lib/puppet/type/yumrepo.rb +219 -344
- data/lib/puppet/type/zone.rb +15 -5
- data/lib/puppet/util.rb +14 -13
- data/lib/puppet/util/adsi.rb +19 -3
- data/lib/puppet/util/autoload.rb +27 -24
- data/lib/puppet/util/backups.rb +6 -6
- data/lib/puppet/util/checksums.rb +2 -2
- data/lib/puppet/util/classgen.rb +1 -1
- data/lib/puppet/util/colors.rb +4 -12
- data/lib/puppet/util/command_line.rb +2 -2
- data/lib/puppet/util/command_line/trollop.rb +3 -3
- data/lib/puppet/util/docs.rb +2 -2
- data/lib/puppet/util/errors.rb +8 -1
- data/lib/puppet/util/execution.rb +12 -5
- data/lib/puppet/util/filetype.rb +5 -5
- data/lib/puppet/util/inifile.rb +19 -4
- data/lib/puppet/util/instrumentation/data.rb +5 -0
- data/lib/puppet/util/instrumentation/indirection_probe.rb +6 -1
- data/lib/puppet/util/instrumentation/listener.rb +6 -1
- data/lib/puppet/util/json_lockfile.rb +4 -1
- data/lib/puppet/util/ldap/connection.rb +1 -1
- data/lib/puppet/util/lockfile.rb +10 -6
- data/lib/puppet/util/log.rb +6 -1
- data/lib/puppet/util/log/destinations.rb +2 -2
- data/lib/puppet/util/metric.rb +9 -4
- data/lib/puppet/util/nagios_maker.rb +26 -1
- data/lib/puppet/util/network_device.rb +1 -1
- data/lib/puppet/util/network_device/config.rb +1 -1
- data/lib/puppet/util/network_device/transport/ssh.rb +3 -3
- data/lib/puppet/util/plugins.rb +1 -1
- data/lib/puppet/util/profiler.rb +13 -1
- data/lib/puppet/util/pson.rb +1 -1
- data/lib/puppet/util/queue/stomp.rb +2 -2
- data/lib/puppet/util/rdoc.rb +1 -1
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +1 -1
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +19 -19
- data/lib/puppet/util/reference.rb +1 -1
- data/lib/puppet/util/resource_template.rb +1 -1
- data/lib/puppet/util/retryaction.rb +1 -1
- data/lib/puppet/util/selinux.rb +2 -2
- data/lib/puppet/util/storage.rb +3 -3
- data/lib/puppet/util/symbolic_file_mode.rb +1 -1
- data/lib/puppet/util/tag_set.rb +15 -3
- data/lib/puppet/util/tagging.rb +12 -17
- data/lib/puppet/util/watched_file.rb +1 -1
- data/lib/puppet/util/watcher.rb +1 -1
- data/lib/puppet/util/windows/error.rb +2 -2
- data/lib/puppet/util/windows/file.rb +20 -4
- data/lib/puppet/util/windows/registry.rb +2 -2
- data/lib/puppet/vendor/safe_yaml/CHANGES.md +1 -1
- data/lib/puppet/version.rb +1 -1
- data/lib/puppetx.rb +1 -21
- data/lib/puppetx/puppet/syntax_checker.rb +1 -1
- data/lib/puppetx/puppetlabs/syntax_checkers/json.rb +9 -11
- data/spec/fixtures/integration/node/environment/sitedir/00_a.pp +2 -0
- data/spec/fixtures/integration/node/environment/sitedir/01_b.pp +6 -0
- data/spec/fixtures/{unit/pops/binder/hiera2/yaml_backend/empty/common.yaml → integration/node/environment/sitedir/03_empty.pp} +0 -0
- data/spec/fixtures/integration/node/environment/sitedir/04_include.pp +2 -0
- data/spec/fixtures/integration/provider/cron/crontab/purged +8 -0
- data/spec/fixtures/releases/jamtur01-apache/lib/puppet/provider/a2mod/debian.rb +1 -1
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/binder_config.yaml +3 -12
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/lib/puppet/bindings/confdirtest.rb +10 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome2/lib/puppet/bindings/awesome2/default.rb +20 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/{awesome/lib/puppetx/awesome → awesome2/lib/puppetx/awesome2}/echo_scheme_handler.rb +2 -2
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/bad/lib/puppet/bindings/bad/default.rb +5 -0
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/good/lib/puppet/bindings/good/default.rb +6 -0
- data/spec/fixtures/unit/pops/binder/config/binder_config/ok/binder_config.yaml +2 -2
- data/spec/fixtures/unit/provider/service/systemd/{list_units → list_units_services} +0 -1
- data/spec/integration/agent/logging_spec.rb +1 -1
- data/spec/integration/application/apply_spec.rb +78 -3
- data/spec/integration/application/doc_spec.rb +3 -2
- data/spec/integration/configurer_spec.rb +5 -3
- data/spec/integration/directory_environments_spec.rb +50 -0
- data/spec/integration/indirector/direct_file_server_spec.rb +1 -1
- data/spec/integration/indirector/file_content/file_server_spec.rb +4 -5
- data/spec/integration/network/authconfig_spec.rb +4 -4
- data/spec/integration/network/formats_spec.rb +1 -1
- data/spec/integration/node/environment_spec.rb +67 -15
- data/spec/integration/node/facts_spec.rb +1 -1
- data/spec/integration/node_spec.rb +1 -1
- data/spec/integration/parser/catalog_spec.rb +100 -60
- data/spec/integration/parser/compiler_spec.rb +102 -13
- data/spec/integration/parser/future_compiler_spec.rb +416 -0
- data/spec/integration/parser/parser_spec.rb +44 -105
- data/spec/integration/parser/scope_spec.rb +614 -528
- data/spec/integration/provider/cron/crontab_spec.rb +21 -0
- data/spec/integration/provider/mount_spec.rb +15 -2
- data/spec/integration/resource/catalog_spec.rb +1 -1
- data/spec/integration/resource/type_collection_spec.rb +3 -4
- data/spec/integration/ssl/autosign_spec.rb +1 -1
- data/spec/integration/ssl/certificate_revocation_list_spec.rb +1 -1
- data/spec/integration/ssl/host_spec.rb +1 -1
- data/spec/integration/transaction_spec.rb +13 -13
- data/spec/integration/type/exec_spec.rb +2 -2
- data/spec/integration/type/file_spec.rb +114 -41
- data/spec/integration/type/nagios_spec.rb +80 -0
- data/spec/integration/type/tidy_spec.rb +2 -2
- data/spec/integration/util/execution_spec.rb +17 -0
- data/spec/integration/util/rdoc/parser_spec.rb +1 -1
- data/spec/integration/util/settings_spec.rb +1 -1
- data/spec/integration/util/windows/security_spec.rb +27 -2
- data/spec/lib/matchers/include.rb +27 -0
- data/spec/lib/matchers/include_spec.rb +32 -0
- data/spec/lib/matchers/json.rb +135 -79
- data/spec/lib/matchers/match_tokens2.rb +74 -0
- data/spec/lib/matchers/resource.rb +35 -0
- data/spec/lib/puppet/indirector/indirector_testing/memory.rb +7 -0
- data/spec/lib/puppet/indirector/indirector_testing/msgpack.rb +6 -0
- data/spec/lib/puppet/indirector_testing.rb +12 -2
- data/spec/lib/puppet_spec/files.rb +1 -0
- data/spec/lib/puppet_spec/matchers.rb +5 -0
- data/spec/lib/puppet_spec/modules.rb +1 -1
- data/spec/lib/puppet_spec/scope.rb +14 -0
- data/spec/shared_behaviours/file_server_terminus.rb +2 -2
- data/spec/spec_helper.rb +47 -17
- data/spec/unit/agent_spec.rb +8 -1
- data/spec/unit/application/agent_spec.rb +5 -4
- data/spec/unit/application/apply_spec.rb +34 -15
- data/spec/unit/application/device_spec.rb +27 -32
- data/spec/unit/application/doc_spec.rb +4 -4
- data/spec/unit/application/filebucket_spec.rb +1 -1
- data/spec/unit/application/master_spec.rb +2 -2
- data/spec/unit/application_spec.rb +1 -1
- data/spec/unit/configurer/downloader_spec.rb +1 -1
- data/spec/unit/configurer/fact_handler_spec.rb +5 -16
- data/spec/unit/configurer_spec.rb +2 -2
- data/spec/unit/confine/exists_spec.rb +5 -5
- data/spec/unit/context/trusted_information_spec.rb +124 -0
- data/spec/unit/context_spec.rb +74 -0
- data/spec/unit/environments_spec.rb +126 -0
- data/spec/unit/face/config_spec.rb +31 -16
- data/spec/unit/face/module/build_spec.rb +1 -0
- data/spec/unit/face/module/install_spec.rb +21 -104
- data/spec/unit/face/module/list_spec.rb +52 -36
- data/spec/unit/face/module/uninstall_spec.rb +18 -25
- data/spec/unit/face/parser_spec.rb +39 -23
- data/spec/unit/file_bucket/dipper_spec.rb +2 -2
- data/spec/unit/file_serving/base_spec.rb +9 -13
- data/spec/unit/file_serving/configuration/parser_spec.rb +8 -2
- data/spec/unit/file_serving/configuration_spec.rb +7 -7
- data/spec/unit/file_serving/content_spec.rb +7 -12
- data/spec/unit/file_serving/fileset_spec.rb +49 -53
- data/spec/unit/file_serving/metadata_spec.rb +83 -32
- data/spec/unit/file_serving/mount/file_spec.rb +10 -10
- data/spec/unit/file_system/tempfile_spec.rb +3 -3
- data/spec/unit/file_system_spec.rb +508 -0
- data/spec/unit/forge/errors_spec.rb +1 -1
- data/spec/unit/forge/repository_spec.rb +1 -3
- data/spec/unit/hiera/scope_spec.rb +6 -2
- data/spec/unit/hiera_puppet_spec.rb +13 -6
- data/spec/unit/indirector/catalog/msgpack_spec.rb +12 -0
- data/spec/unit/indirector/catalog/static_compiler_spec.rb +42 -11
- data/spec/unit/indirector/direct_file_server_spec.rb +6 -6
- data/spec/unit/indirector/facts/facter_spec.rb +5 -5
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +4 -4
- data/spec/unit/indirector/file_metadata/file_spec.rb +2 -2
- data/spec/unit/indirector/file_server_spec.rb +4 -4
- data/spec/unit/indirector/json_spec.rb +6 -6
- data/spec/unit/indirector/key/file_spec.rb +8 -8
- data/spec/unit/indirector/msgpack_spec.rb +191 -0
- data/spec/unit/indirector/node/active_record_spec.rb +1 -1
- data/spec/unit/indirector/node/ldap_spec.rb +16 -7
- data/spec/unit/indirector/node/msgpack_spec.rb +24 -0
- data/spec/unit/indirector/node/plain_spec.rb +1 -1
- data/spec/unit/indirector/queue_spec.rb +1 -1
- data/spec/unit/indirector/report/msgpack_spec.rb +28 -0
- data/spec/unit/indirector/request_spec.rb +16 -8
- data/spec/unit/indirector/rest_spec.rb +0 -4
- data/spec/unit/indirector/ssl_file_spec.rb +12 -11
- data/spec/unit/indirector/yaml_spec.rb +4 -4
- data/spec/unit/man_spec.rb +32 -0
- data/spec/unit/module_spec.rb +60 -46
- data/spec/unit/module_tool/applications/checksummer_spec.rb +1 -1
- data/spec/unit/module_tool/applications/installer_spec.rb +53 -16
- data/spec/unit/module_tool/applications/uninstaller_spec.rb +26 -25
- data/spec/unit/module_tool/tar_spec.rb +1 -1
- data/spec/unit/module_tool_spec.rb +17 -90
- data/spec/unit/network/authconfig_spec.rb +3 -4
- data/spec/unit/network/authentication_spec.rb +20 -6
- data/spec/unit/network/authorization_spec.rb +11 -1
- data/spec/unit/network/formats_spec.rb +32 -9
- data/spec/unit/network/http/api/v1_spec.rb +365 -62
- data/spec/unit/network/http/api/v2/authorization_spec.rb +57 -0
- data/spec/unit/network/http/api/v2/environments_spec.rb +42 -0
- data/spec/unit/network/http/api/v2_spec.rb +14 -0
- data/spec/unit/network/http/connection_spec.rb +39 -5
- data/spec/unit/network/http/error_spec.rb +30 -0
- data/spec/unit/network/http/handler_spec.rb +69 -419
- data/spec/unit/network/http/rack/rest_spec.rb +20 -28
- data/spec/unit/network/http/route_spec.rb +75 -0
- data/spec/unit/network/http/webrick/rest_spec.rb +21 -58
- data/spec/unit/network/http_pool_spec.rb +3 -3
- data/spec/unit/network/rights_spec.rb +2 -2
- data/spec/unit/node/environment_spec.rb +108 -89
- data/spec/unit/node/facts_spec.rb +5 -12
- data/spec/unit/node_spec.rb +22 -22
- data/spec/unit/parser/ast/collection_spec.rb +1 -1
- data/spec/unit/parser/ast/leaf_spec.rb +2 -0
- data/spec/unit/parser/ast/resource_spec.rb +1 -1
- data/spec/unit/parser/compiler_spec.rb +5 -3
- data/spec/unit/parser/files_spec.rb +40 -50
- data/spec/unit/parser/functions/defined_spec.rb +80 -18
- data/spec/unit/parser/functions/epp_spec.rb +88 -0
- data/spec/unit/parser/functions/fqdn_rand_spec.rb +4 -1
- data/spec/unit/parser/functions/generate_spec.rb +6 -2
- data/spec/unit/parser/functions/hiera_array_spec.rb +5 -2
- data/spec/unit/parser/functions/hiera_hash_spec.rb +4 -1
- data/spec/unit/parser/functions/hiera_include_spec.rb +6 -3
- data/spec/unit/parser/functions/hiera_spec.rb +5 -2
- data/spec/unit/parser/functions/include_spec.rb +0 -1
- data/spec/unit/parser/functions/inline_epp_spec.rb +82 -0
- data/spec/unit/parser/functions/lookup_spec.rb +66 -16
- data/spec/unit/parser/functions_spec.rb +25 -91
- data/spec/unit/parser/lexer_spec.rb +1 -1
- data/spec/unit/parser/methods/filter_spec.rb +56 -0
- data/spec/unit/parser/methods/map_spec.rb +94 -5
- data/spec/unit/parser/methods/reduce_spec.rb +10 -0
- data/spec/unit/parser/methods/shared.rb +2 -18
- data/spec/unit/parser/methods/slice_spec.rb +39 -1
- data/spec/unit/parser/parser_spec.rb +14 -10
- data/spec/unit/parser/resource_spec.rb +3 -9
- data/spec/unit/parser/scope_spec.rb +81 -78
- data/spec/unit/parser/type_loader_spec.rb +0 -4
- data/spec/unit/pops/benchmark_spec.rb +142 -0
- data/spec/unit/pops/binder/binder_spec.rb +15 -34
- data/spec/unit/pops/binder/bindings_checker_spec.rb +0 -41
- data/spec/unit/pops/binder/bindings_composer_spec.rb +6 -31
- data/spec/unit/pops/binder/config/binder_config_spec.rb +5 -18
- data/spec/unit/pops/binder/injector_spec.rb +76 -81
- data/spec/unit/pops/evaluator/access_ops_spec.rb +376 -0
- data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +77 -0
- data/spec/unit/pops/evaluator/basic_expressions_spec.rb +103 -0
- data/spec/unit/pops/evaluator/collections_ops_spec.rb +111 -0
- data/spec/unit/pops/evaluator/comparison_ops_spec.rb +256 -0
- data/spec/unit/pops/evaluator/conditionals_spec.rb +190 -0
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +1045 -0
- data/spec/unit/pops/evaluator/evaluator_rspec_helper.rb +75 -0
- data/spec/unit/pops/evaluator/logical_ops_spec.rb +90 -0
- data/spec/unit/pops/evaluator/string_interpolation_spec.rb +44 -0
- data/spec/unit/pops/evaluator/variables_spec.rb +194 -0
- data/spec/unit/pops/factory_spec.rb +6 -29
- data/spec/unit/pops/issues_spec.rb +1 -1
- data/spec/unit/pops/model/ast_transformer_spec.rb +6 -9
- data/spec/unit/pops/model/model_spec.rb +2 -2
- data/spec/unit/pops/parser/epp_parser_spec.rb +86 -0
- data/spec/unit/pops/parser/evaluating_parser_spec.rb +4 -2
- data/spec/unit/pops/parser/lexer2_spec.rb +428 -0
- data/spec/unit/pops/parser/lexer_spec.rb +25 -86
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +29 -4
- data/spec/unit/pops/parser/parse_calls_spec.rb +10 -6
- data/spec/unit/pops/parser/parse_conditionals_spec.rb +0 -9
- data/spec/unit/pops/parser/parse_containers_spec.rb +43 -12
- data/spec/unit/pops/parser/parse_heredoc_spec.rb +73 -0
- data/spec/unit/pops/parser/parse_resource_spec.rb +14 -0
- data/spec/unit/pops/parser/parser_spec.rb +3 -1
- data/spec/unit/pops/transformer/transform_basic_expressions_spec.rb +4 -4
- data/spec/unit/pops/transformer/transform_calls_spec.rb +41 -6
- data/spec/unit/pops/transformer/transform_conditionals_spec.rb +0 -9
- data/spec/unit/pops/transformer/transform_containers_spec.rb +12 -4
- data/spec/unit/pops/types/enumeration_spec.rb +50 -0
- data/spec/unit/pops/types/type_calculator_spec.rb +1171 -196
- data/spec/unit/pops/types/type_factory_spec.rb +108 -4
- data/spec/unit/pops/types/type_parser_spec.rb +114 -10
- data/spec/unit/pops/validator/validator_spec.rb +36 -1
- data/spec/unit/provider/augeas/augeas_spec.rb +39 -16
- data/spec/unit/provider/cron/parsed_spec.rb +27 -31
- data/spec/unit/provider/file/posix_spec.rb +2 -2
- data/spec/unit/provider/group/windows_adsi_spec.rb +1 -0
- data/spec/unit/provider/mount_spec.rb +12 -1
- data/spec/unit/provider/nameservice/directoryservice_spec.rb +3 -3
- data/spec/unit/provider/package/apt_spec.rb +1 -1
- data/spec/unit/provider/package/aptrpm_spec.rb +1 -1
- data/spec/unit/provider/package/gem_spec.rb +12 -0
- data/spec/unit/provider/package/msi_spec.rb +4 -0
- data/spec/unit/provider/package/openbsd_spec.rb +10 -10
- data/spec/unit/provider/package/pacman_spec.rb +36 -7
- data/spec/unit/provider/package/pkgin_spec.rb +57 -55
- data/spec/unit/provider/package/rpm_spec.rb +51 -6
- data/spec/unit/provider/service/base_spec.rb +4 -4
- data/spec/unit/provider/service/daemontools_spec.rb +8 -13
- data/spec/unit/provider/service/freebsd_spec.rb +3 -3
- data/spec/unit/provider/service/gentoo_spec.rb +24 -24
- data/spec/unit/provider/service/init_spec.rb +15 -15
- data/spec/unit/provider/service/openbsd_spec.rb +16 -16
- data/spec/unit/provider/service/openrc_spec.rb +20 -20
- data/spec/unit/provider/service/openwrt_spec.rb +1 -1
- data/spec/unit/provider/service/runit_spec.rb +5 -8
- data/spec/unit/provider/service/src_spec.rb +4 -4
- data/spec/unit/provider/service/systemd_spec.rb +24 -14
- data/spec/unit/provider/service/upstart_spec.rb +12 -4
- data/spec/unit/provider/service/windows_spec.rb +1 -1
- data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +21 -23
- data/spec/unit/provider/user/directoryservice_spec.rb +7 -7
- data/spec/unit/provider/user/useradd_spec.rb +43 -15
- data/spec/unit/provider/user/windows_adsi_spec.rb +1 -0
- data/spec/unit/provider/yumrepo/inifile_spec.rb +105 -0
- data/spec/unit/provider/zone/solaris_spec.rb +1 -1
- data/spec/unit/provider_spec.rb +120 -62
- data/spec/unit/rails/host_spec.rb +1 -1
- data/spec/unit/rails/param_value_spec.rb +4 -0
- data/spec/unit/relationship_spec.rb +4 -4
- data/spec/unit/reports/http_spec.rb +14 -3
- data/spec/unit/reports/rrdgraph_spec.rb +0 -1
- data/spec/unit/reports/store_spec.rb +2 -2
- data/spec/unit/resource/catalog_spec.rb +17 -29
- data/spec/unit/resource/status_spec.rb +1 -1
- data/spec/unit/resource/type_collection_spec.rb +28 -47
- data/spec/unit/resource/type_spec.rb +12 -23
- data/spec/unit/resource_spec.rb +54 -93
- data/spec/unit/run_spec.rb +3 -3
- data/spec/unit/settings/autosign_setting_spec.rb +1 -1
- data/spec/unit/settings/config_file_spec.rb +68 -15
- data/spec/unit/settings/file_setting_spec.rb +2 -2
- data/spec/unit/settings/ini_file_spec.rb +184 -0
- data/spec/unit/settings_spec.rb +137 -79
- data/spec/unit/ssl/certificate_authority/interface_spec.rb +3 -1
- data/spec/unit/ssl/certificate_authority_spec.rb +11 -9
- data/spec/unit/ssl/certificate_factory_spec.rb +19 -4
- data/spec/unit/ssl/certificate_request_attributes_spec.rb +1 -1
- data/spec/unit/ssl/certificate_revocation_list_spec.rb +101 -72
- data/spec/unit/ssl/host_spec.rb +8 -20
- data/spec/unit/ssl/inventory_spec.rb +2 -2
- data/spec/unit/ssl/key_spec.rb +4 -4
- data/spec/unit/status_spec.rb +6 -4
- data/spec/unit/transaction/additional_resource_generator_spec.rb +3 -11
- data/spec/unit/transaction/event_spec.rb +2 -2
- data/spec/unit/transaction/report_spec.rb +24 -15
- data/spec/unit/transaction/resource_harness_spec.rb +1 -1
- data/spec/unit/type/cron_spec.rb +39 -1
- data/spec/unit/type/file/content_spec.rb +4 -5
- data/spec/unit/type/file/ctime_spec.rb +1 -1
- data/spec/unit/type/file/mode_spec.rb +5 -4
- data/spec/unit/type/file/mtime_spec.rb +1 -1
- data/spec/unit/type/file/source_spec.rb +30 -7
- data/spec/unit/type/file_spec.rb +8 -8
- data/spec/unit/type/k5login_spec.rb +3 -3
- data/spec/unit/type/nagios_spec.rb +6 -0
- data/spec/unit/type/package/package_settings_spec.rb +135 -0
- data/spec/unit/type/package_spec.rb +13 -1
- data/spec/unit/type/resources_spec.rb +155 -0
- data/spec/unit/type/service_spec.rb +3 -3
- data/spec/unit/type/ssh_authorized_key_spec.rb +96 -93
- data/spec/unit/type/sshkey_spec.rb +39 -30
- data/spec/unit/type/tidy_spec.rb +19 -12
- data/spec/unit/type/user_spec.rb +47 -2
- data/spec/unit/type/whit_spec.rb +2 -2
- data/spec/unit/type/yumrepo_spec.rb +32 -177
- data/spec/unit/type/zone_spec.rb +2 -2
- data/spec/unit/type_spec.rb +11 -0
- data/spec/unit/util/adsi_spec.rb +48 -1
- data/spec/unit/util/autoload_spec.rb +24 -39
- data/spec/unit/util/backups_spec.rb +25 -28
- data/spec/unit/util/checksums_spec.rb +1 -3
- data/spec/unit/util/colors_spec.rb +14 -0
- data/spec/unit/util/docs_spec.rb +9 -0
- data/spec/unit/util/execution_spec.rb +1 -1
- data/spec/unit/util/filetype_spec.rb +7 -7
- data/spec/unit/util/instrumentation/data_spec.rb +3 -1
- data/spec/unit/util/instrumentation/indirection_probe_spec.rb +2 -0
- data/spec/unit/util/instrumentation/listener_spec.rb +3 -2
- data/spec/unit/util/json_lockfile_spec.rb +25 -4
- data/spec/unit/util/lockfile_spec.rb +49 -7
- data/spec/unit/util/log/destinations_spec.rb +1 -0
- data/spec/unit/util/log_spec.rb +1 -1
- data/spec/unit/util/metric_spec.rb +1 -1
- data/spec/unit/util/pidlock_spec.rb +6 -6
- data/spec/unit/util/pson_spec.rb +2 -2
- data/spec/unit/util/rdoc/parser_spec.rb +32 -29
- data/spec/unit/util/resource_template_spec.rb +3 -3
- data/spec/unit/util/selinux_spec.rb +5 -5
- data/spec/unit/util/storage_spec.rb +4 -4
- data/spec/unit/util/tag_set_spec.rb +1 -1
- data/spec/unit/util/watcher_spec.rb +1 -4
- data/spec/unit/util/yaml_spec.rb +2 -2
- data/spec/unit/util_spec.rb +7 -7
- data/tasks/benchmark.rake +0 -1
- data/tasks/parallel.rake +408 -0
- data/tasks/yard.rake +59 -0
- metadata +2889 -2782
- checksums.yaml +0 -7
- data/README_DEVELOPER.md +0 -809
- data/lib/puppet/file_system/file.rb +0 -271
- data/lib/puppet/network/http/rack/httphandler.rb +0 -13
- data/lib/puppet/pops/binder/hiera2.rb +0 -10
- data/lib/puppet/pops/binder/hiera2/bindings_provider.rb +0 -148
- data/lib/puppet/pops/binder/hiera2/config.rb +0 -69
- data/lib/puppet/pops/binder/hiera2/config_checker.rb +0 -68
- data/lib/puppet/pops/binder/hiera2/diagnostic_producer.rb +0 -36
- data/lib/puppet/pops/binder/hiera2/issues.rb +0 -67
- data/lib/puppet/pops/binder/hiera2/json_backend.rb +0 -18
- data/lib/puppet/pops/binder/hiera2/yaml_backend.rb +0 -21
- data/lib/puppet/pops/binder/scheme_handler/confdir_hiera_scheme.rb +0 -67
- data/lib/puppet/pops/binder/scheme_handler/module_hiera_scheme.rb +0 -92
- data/lib/puppet/pops/parser/grammar.ra +0 -746
- data/lib/puppet/provider/port/parsed.rb +0 -173
- data/lib/puppet/type/port.rb +0 -119
- data/lib/puppetx/puppet/hiera2_backend.rb +0 -31
- data/spec/fixtures/unit/pops/binder/bindings_composer/hiera1config/binder_config.yaml +0 -18
- data/spec/fixtures/unit/pops/binder/bindings_composer/hiera1config/hiera.yaml +0 -8
- data/spec/fixtures/unit/pops/binder/bindings_composer/hiera1config/modules/good/common.yaml +0 -1
- data/spec/fixtures/unit/pops/binder/bindings_composer/hiera1config/modules/good/hiera.yaml +0 -10
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/common.yaml +0 -1
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/hiera.yaml +0 -11
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/localhost.yaml +0 -1
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome/common.yaml +0 -3
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome/hiera.yaml +0 -13
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome/lib/puppet/bindings/awesome/default.rb +0 -4
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome/lib/puppetx/awesome/echo_backend.rb +0 -11
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome/localhost.yaml +0 -1
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/bad/common.yaml +0 -3
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/bad/hiera_config.yaml +0 -9
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/good/common.yaml +0 -2
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/good/hiera.yaml +0 -11
- data/spec/fixtures/unit/pops/binder/hiera2/bindings_provider/ok/hiera.yaml +0 -9
- data/spec/fixtures/unit/pops/binder/hiera2/bindings_provider/ok/node.example.com.json +0 -9
- data/spec/fixtures/unit/pops/binder/hiera2/bindings_provider/ok/node.example.com.yaml +0 -5
- data/spec/fixtures/unit/pops/binder/hiera2/config/bad_syntax/hiera.yaml +0 -10
- data/spec/fixtures/unit/pops/binder/hiera2/config/malformed_hierarchy/hiera.yaml +0 -8
- data/spec/fixtures/unit/pops/binder/hiera2/config/missing/foo.txt +0 -1
- data/spec/fixtures/unit/pops/binder/hiera2/config/no_backends/hiera.yaml +0 -7
- data/spec/fixtures/unit/pops/binder/hiera2/config/no_hierarchy/hiera.yaml +0 -4
- data/spec/fixtures/unit/pops/binder/hiera2/config/not_a_hash/hiera.yaml +0 -2
- data/spec/fixtures/unit/pops/binder/hiera2/config/ok/hiera.yaml +0 -8
- data/spec/fixtures/unit/pops/binder/hiera2/yaml_backend/invalid/common.yaml +0 -1
- data/spec/fixtures/unit/pops/binder/hiera2/yaml_backend/ok/common.yaml +0 -2
- data/spec/unit/file_system/file_spec.rb +0 -486
- data/spec/unit/pops/binder/hiera2/bindings_provider_spec.rb +0 -74
- data/spec/unit/pops/binder/hiera2/config_spec.rb +0 -61
- data/spec/unit/pops/binder/hiera2/yaml_backend_spec.rb +0 -33
@@ -8,17 +8,21 @@ class Puppet::Pops::Model::ModelLabelProvider < Puppet::Pops::LabelProvider
|
|
8
8
|
end
|
9
9
|
|
10
10
|
# Produces a label for the given objects type/operator without article.
|
11
|
+
# If a Class is given, its name is used as label
|
12
|
+
#
|
11
13
|
def label o
|
12
|
-
|
14
|
+
@@label_visitor.visit(o)
|
13
15
|
end
|
14
16
|
|
15
17
|
def label_Factory o ; label(o.current) end
|
16
|
-
def label_Array o ; "Array
|
17
|
-
def
|
18
|
+
def label_Array o ; "Array" end
|
19
|
+
def label_LiteralInteger o ; "Literal Integer" end
|
20
|
+
def label_LiteralFloat o ; "Literal Float" end
|
18
21
|
def label_ArithmeticExpression o ; "'#{o.operator}' expression" end
|
19
22
|
def label_AccessExpression o ; "'[]' expression" end
|
20
23
|
def label_MatchExpression o ; "'#{o.operator}' expression" end
|
21
24
|
def label_CollectExpression o ; label(o.query) end
|
25
|
+
def label_EppExpression o ; "Epp Template" end
|
22
26
|
def label_ExportedQuery o ; "Exported Query" end
|
23
27
|
def label_VirtualQuery o ; "Virtual Query" end
|
24
28
|
def label_QueryExpression o ; "Collect Query" end
|
@@ -26,16 +30,15 @@ class Puppet::Pops::Model::ModelLabelProvider < Puppet::Pops::LabelProvider
|
|
26
30
|
def label_AndExpression o ; "'and' expression" end
|
27
31
|
def label_OrExpression o ; "'or' expression" end
|
28
32
|
def label_InExpression o ; "'in' expression" end
|
29
|
-
def label_ImportExpression o ; "'import' expression" end
|
30
|
-
def label_InstanceReferences o ; "Resource Reference" end
|
31
33
|
def label_AssignmentExpression o ; "'#{o.operator}' expression" end
|
32
34
|
def label_AttributeOperation o ; "'#{o.operator}' expression" end
|
33
35
|
def label_LiteralList o ; "Array Expression" end
|
34
36
|
def label_LiteralHash o ; "Hash Expression" end
|
35
37
|
def label_KeyedEntry o ; "Hash Entry" end
|
36
38
|
def label_LiteralBoolean o ; "Boolean" end
|
39
|
+
def label_TrueClass o ; "Boolean" end
|
40
|
+
def label_FalseClass o ; "Boolean" end
|
37
41
|
def label_LiteralString o ; "String" end
|
38
|
-
def label_LiteralText o ; "Text in Interpolated String" end
|
39
42
|
def label_LambdaExpression o ; "Lambda" end
|
40
43
|
def label_LiteralDefault o ; "'default' expression" end
|
41
44
|
def label_LiteralUndef o ; "'undef' expression" end
|
@@ -49,6 +52,7 @@ class Puppet::Pops::Model::ModelLabelProvider < Puppet::Pops::LabelProvider
|
|
49
52
|
def label_UnaryMinusExpression o ; "Unary Minus" end
|
50
53
|
def label_BlockExpression o ; "Block Expression" end
|
51
54
|
def label_ConcatenatedString o ; "Double Quoted String" end
|
55
|
+
def label_HeredocExpression o ; "'@(#{o.syntax})' expression" end
|
52
56
|
def label_HostClassDefinition o ; "Host Class Definition" end
|
53
57
|
def label_NodeDefinition o ; "Node Definition" end
|
54
58
|
def label_ResourceTypeDefinition o ; "'define' expression" end
|
@@ -61,15 +65,40 @@ class Puppet::Pops::Model::ModelLabelProvider < Puppet::Pops::LabelProvider
|
|
61
65
|
def label_CallMethodExpression o ; "Method call" end
|
62
66
|
def label_CaseExpression o ; "'case' statement" end
|
63
67
|
def label_CaseOption o ; "Case Option" end
|
68
|
+
def label_RenderStringExpression o ; "Epp Text" end
|
69
|
+
def label_RenderExpression o ; "Epp Interpolated Expression" end
|
64
70
|
def label_RelationshipExpression o ; "'#{o.operator}' expression" end
|
65
71
|
def label_ResourceBody o ; "Resource Instance Definition" end
|
66
72
|
def label_ResourceDefaultsExpression o ; "Resource Defaults Expression" end
|
67
73
|
def label_ResourceExpression o ; "Resource Statement" end
|
68
74
|
def label_SelectorExpression o ; "Selector Expression" end
|
69
75
|
def label_SelectorEntry o ; "Selector Option" end
|
70
|
-
def
|
71
|
-
def
|
76
|
+
def label_Integer o ; "Integer" end
|
77
|
+
def label_Fixnum o ; "Integer" end
|
78
|
+
def label_Bignum o ; "Integer" end
|
79
|
+
def label_Float o ; "Float" end
|
80
|
+
def label_String o ; "String" end
|
81
|
+
def label_Regexp o ; "Regexp" end
|
82
|
+
def label_Object o ; "Object" end
|
83
|
+
def label_Hash o ; "Hash" end
|
72
84
|
def label_QualifiedName o ; "Name" end
|
73
|
-
def label_QualifiedReference o ; "Type
|
85
|
+
def label_QualifiedReference o ; "Type-Name" end
|
86
|
+
def label_PAbstractType o ; "#{Puppet::Pops::Types::TypeCalculator.string(o)}-Type" end
|
74
87
|
|
88
|
+
def label_PResourceType o
|
89
|
+
if o.title
|
90
|
+
"#{Puppet::Pops::Types::TypeCalculator.string(o)} Resource-Reference"
|
91
|
+
else
|
92
|
+
"#{Puppet::Pops::Types::TypeCalculator.string(o)}-Type"
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
def label_Class o
|
97
|
+
if o <= Puppet::Pops::Types::PAbstractType
|
98
|
+
simple_name = o.name.split('::').last
|
99
|
+
simple_name[1..-5] + "-Type"
|
100
|
+
else
|
101
|
+
o.name
|
102
|
+
end
|
103
|
+
end
|
75
104
|
end
|
@@ -7,7 +7,11 @@ class Puppet::Pops::Model::ModelTreeDumper < Puppet::Pops::Model::TreeDumper
|
|
7
7
|
o.collect {|e| do_dump(e) }
|
8
8
|
end
|
9
9
|
|
10
|
-
def
|
10
|
+
def dump_LiteralFloat o
|
11
|
+
o.value.to_s
|
12
|
+
end
|
13
|
+
|
14
|
+
def dump_LiteralInteger o
|
11
15
|
case o.radix
|
12
16
|
when 10
|
13
17
|
o.value.to_s
|
@@ -54,6 +58,17 @@ class Puppet::Pops::Model::ModelTreeDumper < Puppet::Pops::Model::TreeDumper
|
|
54
58
|
result
|
55
59
|
end
|
56
60
|
|
61
|
+
def dump_EppExpression o
|
62
|
+
result = ["epp"]
|
63
|
+
# result << ["parameters"] + o.parameters.collect {|p| do_dump(p) } if o.parameters.size() > 0
|
64
|
+
if o.body
|
65
|
+
result << do_dump(o.body)
|
66
|
+
else
|
67
|
+
result << []
|
68
|
+
end
|
69
|
+
result
|
70
|
+
end
|
71
|
+
|
57
72
|
def dump_ExportedQuery o
|
58
73
|
result = ["<<| |>>"]
|
59
74
|
result += dump_QueryExpression(o) unless is_nop?(o.expr)
|
@@ -86,14 +101,6 @@ class Puppet::Pops::Model::ModelTreeDumper < Puppet::Pops::Model::TreeDumper
|
|
86
101
|
["in", do_dump(o.left_expr), do_dump(o.right_expr)]
|
87
102
|
end
|
88
103
|
|
89
|
-
def dump_ImportExpression o
|
90
|
-
["import"] + o.files.collect {|f| do_dump(f) }
|
91
|
-
end
|
92
|
-
|
93
|
-
def dump_InstanceReferences o
|
94
|
-
["instances", do_dump(o.type_name)] + o.names.collect {|n| do_dump(n) }
|
95
|
-
end
|
96
|
-
|
97
104
|
def dump_AssignmentExpression o
|
98
105
|
[o.operator.to_s, do_dump(o.left_expr), do_dump(o.right_expr)]
|
99
106
|
end
|
@@ -123,10 +130,6 @@ class Puppet::Pops::Model::ModelTreeDumper < Puppet::Pops::Model::TreeDumper
|
|
123
130
|
"'#{o.value}'"
|
124
131
|
end
|
125
132
|
|
126
|
-
def dump_LiteralText o
|
127
|
-
o.value
|
128
|
-
end
|
129
|
-
|
130
133
|
def dump_LambdaExpression o
|
131
134
|
result = ["lambda"]
|
132
135
|
result << ["parameters"] + o.parameters.collect {|p| do_dump(p) } if o.parameters.size() > 0
|
@@ -188,6 +191,10 @@ class Puppet::Pops::Model::ModelTreeDumper < Puppet::Pops::Model::TreeDumper
|
|
188
191
|
["cat"] + o.segments.collect {|x| do_dump(x)}
|
189
192
|
end
|
190
193
|
|
194
|
+
def dump_HeredocExpression(o)
|
195
|
+
result = ["@(#{o.syntax})", :indent, :break, do_dump(o.text_expr), :dedent, :break]
|
196
|
+
end
|
197
|
+
|
191
198
|
def dump_HostClassDefinition o
|
192
199
|
result = ["class", o.name]
|
193
200
|
result << ["inherits", o.parent_class] if o.parent_class
|
@@ -245,6 +252,12 @@ class Puppet::Pops::Model::ModelTreeDumper < Puppet::Pops::Model::TreeDumper
|
|
245
252
|
do_dump(o.expr)
|
246
253
|
end
|
247
254
|
|
255
|
+
# Hides that Program exists in the output (only its body is shown), the definitions are just
|
256
|
+
# references to contained classes, resource types, and nodes
|
257
|
+
def dump_Program(o)
|
258
|
+
dump(o.body)
|
259
|
+
end
|
260
|
+
|
248
261
|
def dump_IfExpression o
|
249
262
|
result = ["if", do_dump(o.test), :indent, :break,
|
250
263
|
["then", :indent, do_dump(o.then_expr), :dedent]]
|
@@ -306,6 +319,14 @@ class Puppet::Pops::Model::ModelTreeDumper < Puppet::Pops::Model::TreeDumper
|
|
306
319
|
[o.operator.to_s, do_dump(o.left_expr), do_dump(o.right_expr)]
|
307
320
|
end
|
308
321
|
|
322
|
+
def dump_RenderStringExpression o
|
323
|
+
["render-s", " '#{o.value}'"]
|
324
|
+
end
|
325
|
+
|
326
|
+
def dump_RenderExpression o
|
327
|
+
["render", do_dump(o.expr)]
|
328
|
+
end
|
329
|
+
|
309
330
|
def dump_ResourceBody o
|
310
331
|
result = [do_dump(o.title), :indent]
|
311
332
|
o.operations.each do |p|
|
@@ -342,6 +363,10 @@ class Puppet::Pops::Model::ModelTreeDumper < Puppet::Pops::Model::TreeDumper
|
|
342
363
|
[do_dump(o.matching_expr), "=>", do_dump(o.value_expr)]
|
343
364
|
end
|
344
365
|
|
366
|
+
def dump_SubLocatedExpression o
|
367
|
+
["sublocated", do_dump(o.expr)]
|
368
|
+
end
|
369
|
+
|
345
370
|
def dump_Object o
|
346
371
|
[o.class.to_s, o.to_s]
|
347
372
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
|
2
|
+
class Puppet::Pops::Parser::CodeMerger
|
3
|
+
|
4
|
+
# Concatenates the logic in the array of parse results into one parse result.
|
5
|
+
# @return Puppet::Parser::AST::BlockExpression
|
6
|
+
#
|
7
|
+
def concatenate(parse_results)
|
8
|
+
# this is a bit brute force as the result is already 3x ast with wrapped 4x content
|
9
|
+
# this could be combined in a more elegant way, but it is only used to process a handful of files
|
10
|
+
# at the beginning of a puppet run. TODO: Revisit for Puppet 4x when there is no 3x ast at the top.
|
11
|
+
#
|
12
|
+
children = parse_results.select {|x| !x.nil? && x.code}.reduce([]) do |memo, parsed_class|
|
13
|
+
memo << parsed_class.code
|
14
|
+
end
|
15
|
+
Puppet::Parser::AST::BlockExpression.new(:children => children)
|
16
|
+
end
|
17
|
+
end
|
@@ -6,15 +6,18 @@ class Puppet::Pops::Parser::Parser
|
|
6
6
|
|
7
7
|
token STRING DQPRE DQMID DQPOST
|
8
8
|
token LBRACK RBRACK LBRACE RBRACE SYMBOL FARROW COMMA TRUE
|
9
|
-
token FALSE EQUALS APPENDS LESSEQUAL NOTEQUAL DOT COLON LLCOLLECT RRCOLLECT
|
9
|
+
token FALSE EQUALS APPENDS DELETES LESSEQUAL NOTEQUAL DOT COLON LLCOLLECT RRCOLLECT
|
10
10
|
token QMARK LPAREN RPAREN ISEQUAL GREATEREQUAL GREATERTHAN LESSTHAN
|
11
11
|
token IF ELSE
|
12
12
|
token DEFINE ELSIF VARIABLE CLASS INHERITS NODE BOOLEAN
|
13
|
-
token NAME SEMIC CASE DEFAULT AT LCOLLECT RCOLLECT CLASSREF
|
13
|
+
token NAME SEMIC CASE DEFAULT AT ATAT LCOLLECT RCOLLECT CLASSREF
|
14
14
|
token NOT OR AND UNDEF PARROW PLUS MINUS TIMES DIV LSHIFT RSHIFT UMINUS
|
15
15
|
token MATCH NOMATCH REGEX IN_EDGE OUT_EDGE IN_EDGE_SUB OUT_EDGE_SUB
|
16
16
|
token IN UNLESS PIPE
|
17
|
-
token SELBRACE
|
17
|
+
token LAMBDA SELBRACE
|
18
|
+
token NUMBER
|
19
|
+
token HEREDOC SUBLOCATE
|
20
|
+
token RENDER_STRING RENDER_EXPR EPP_START EPP_END EPP_END_TRIM
|
18
21
|
token LOW
|
19
22
|
|
20
23
|
prechigh
|
@@ -23,10 +26,12 @@ prechigh
|
|
23
26
|
left PIPE
|
24
27
|
left LPAREN
|
25
28
|
left RPAREN
|
26
|
-
left AT
|
29
|
+
left AT ATAT
|
27
30
|
left DOT
|
28
31
|
left CALL
|
29
|
-
|
32
|
+
nonassoc EPP_START
|
33
|
+
left LBRACK LISTSTART
|
34
|
+
left RBRACK
|
30
35
|
left QMARK
|
31
36
|
left LCOLLECT LLCOLLECT
|
32
37
|
right NOT
|
@@ -40,7 +45,7 @@ prechigh
|
|
40
45
|
left GREATEREQUAL GREATERTHAN LESSTHAN LESSEQUAL
|
41
46
|
left AND
|
42
47
|
left OR
|
43
|
-
right APPENDS EQUALS
|
48
|
+
right APPENDS DELETES EQUALS
|
44
49
|
left LBRACE
|
45
50
|
left SELBRACE
|
46
51
|
left RBRACE
|
@@ -49,13 +54,16 @@ prechigh
|
|
49
54
|
left CASE_COLON
|
50
55
|
left FARROW
|
51
56
|
left COMMA
|
57
|
+
nonassoc RENDER_EXPR
|
58
|
+
nonassoc RENDER_STRING
|
52
59
|
left LOW
|
53
60
|
preclow
|
54
61
|
|
55
62
|
rule
|
56
63
|
# Produces [Model::BlockExpression, Model::Expression, nil] depending on multiple statements, single statement or empty
|
57
64
|
program
|
58
|
-
: statements { result = Factory.block_or_expression(*val[0]) }
|
65
|
+
: statements { result = create_program(Factory.block_or_expression(*val[0])) }
|
66
|
+
| epp_expression { result = create_program(Factory.block_or_expression(*val[0])) }
|
59
67
|
| nil
|
60
68
|
|
61
69
|
# Produces a semantic model (non validated, but semantically adjusted).
|
@@ -92,8 +100,8 @@ expression
|
|
92
100
|
: higher_precedence
|
93
101
|
| expression LBRACK expressions RBRACK =LBRACK { result = val[0][*val[2]] ; loc result, val[0], val[3] }
|
94
102
|
| expression IN expression { result = val[0].in val[2] ; loc result, val[1] }
|
95
|
-
| expression MATCH
|
96
|
-
| expression NOMATCH
|
103
|
+
| expression MATCH expression { result = val[0] =~ val[2] ; loc result, val[1] }
|
104
|
+
| expression NOMATCH expression { result = val[0].mne val[2] ; loc result, val[1] }
|
97
105
|
| expression PLUS expression { result = val[0] + val[2] ; loc result, val[1] }
|
98
106
|
| expression MINUS expression { result = val[0] - val[2] ; loc result, val[1] }
|
99
107
|
| expression DIV expression { result = val[0] / val[2] ; loc result, val[1] }
|
@@ -113,6 +121,7 @@ expression
|
|
113
121
|
| expression OR expression { result = val[0].or val[2] ; loc result, val[1] }
|
114
122
|
| expression EQUALS expression { result = val[0].set(val[2]) ; loc result, val[1] }
|
115
123
|
| expression APPENDS expression { result = val[0].plus_set(val[2]) ; loc result, val[1] }
|
124
|
+
| expression DELETES expression { result = val[0].minus_set(val[2]); loc result, val[1] }
|
116
125
|
| expression QMARK selector_entries { result = val[0].select(*val[2]) ; loc result, val[0] }
|
117
126
|
| LPAREN expression RPAREN { result = val[1].paren() ; loc result, val[0] }
|
118
127
|
|
@@ -140,6 +149,7 @@ primary_expression
|
|
140
149
|
| definition_expression
|
141
150
|
| hostclass_expression
|
142
151
|
| node_definition_expression
|
152
|
+
| epp_render_expression
|
143
153
|
|
144
154
|
# Aleways have the same value
|
145
155
|
literal_expression
|
@@ -148,7 +158,8 @@ literal_expression
|
|
148
158
|
| default
|
149
159
|
| hash
|
150
160
|
| regex
|
151
|
-
| text_or_name
|
161
|
+
| text_or_name
|
162
|
+
| number
|
152
163
|
| type
|
153
164
|
| undef
|
154
165
|
|
@@ -334,10 +345,6 @@ case_expression
|
|
334
345
|
selector_entry
|
335
346
|
: expression FARROW expression { result = Factory.MAP(val[0], val[2]) ; loc result, val[1] }
|
336
347
|
|
337
|
-
# --- IMPORT
|
338
|
-
# IMPORT is handled as a non parenthesized call and is transformed to an ImportExpression.
|
339
|
-
# i.e. there is no special grammar for it - it is just a "call statement".
|
340
|
-
|
341
348
|
#---RESOURCE
|
342
349
|
#
|
343
350
|
# Produces [Model::ResourceExpression, Model::ResourceDefaultsExpression]
|
@@ -357,24 +364,20 @@ resource_expression
|
|
357
364
|
tmp.form = val[0]
|
358
365
|
tmp
|
359
366
|
when :defaults
|
360
|
-
error "A resource default can not be virtual or exported"
|
367
|
+
error val[1], "A resource default can not be virtual or exported"
|
361
368
|
when :override
|
362
|
-
error "A resource override can not be virtual or exported"
|
369
|
+
error val[1], "A resource override can not be virtual or exported"
|
363
370
|
else
|
364
|
-
error "Expression is not valid as a resource, resource-default, or resource-override"
|
371
|
+
error val[1], "Expression is not valid as a resource, resource-default, or resource-override"
|
365
372
|
end
|
366
373
|
loc result, val[1], val[4]
|
367
374
|
}
|
368
375
|
| at expression LBRACE attribute_operations endcomma RBRACE {
|
369
376
|
result = case Factory.resource_shape(val[1])
|
370
|
-
when :resource, :class
|
371
|
-
error "Defaults are not virtualizable"
|
372
|
-
when :defaults
|
373
|
-
error "Defaults are not virtualizable"
|
374
|
-
when :override
|
375
|
-
error "Defaults are not virtualizable"
|
377
|
+
when :resource, :class, :defaults, :override
|
378
|
+
error val[1], "Defaults are not virtualizable"
|
376
379
|
else
|
377
|
-
error "Expression is not valid as a resource, resource-default, or resource-override"
|
380
|
+
error val[1], "Expression is not valid as a resource, resource-default, or resource-override"
|
378
381
|
end
|
379
382
|
}
|
380
383
|
| expression LBRACE resourceinstances endsemi RBRACE {
|
@@ -382,11 +385,11 @@ resource_expression
|
|
382
385
|
when :resource, :class
|
383
386
|
Factory.RESOURCE(Factory.fqn(token_text(val[0])), val[2])
|
384
387
|
when :defaults
|
385
|
-
error "A resource default can not specify a resource name"
|
388
|
+
error val[1], "A resource default can not specify a resource name"
|
386
389
|
when :override
|
387
|
-
error "A resource override does not allow override of name of resource"
|
390
|
+
error val[1], "A resource override does not allow override of name of resource"
|
388
391
|
else
|
389
|
-
error "Expression is not valid as a resource, resource-default, or resource-override"
|
392
|
+
error val[1], "Expression is not valid as a resource, resource-default, or resource-override"
|
390
393
|
end
|
391
394
|
loc result, val[0], val[4]
|
392
395
|
}
|
@@ -394,17 +397,28 @@ resource_expression
|
|
394
397
|
result = case Factory.resource_shape(val[0])
|
395
398
|
when :resource, :class
|
396
399
|
# This catches deprecated syntax.
|
397
|
-
|
400
|
+
# If the attribute operations does not include +>, then the found expression
|
401
|
+
# is actually a LEFT followed by LITERAL_HASH
|
402
|
+
#
|
403
|
+
unless tmp = transform_resource_wo_title(val[0], val[2])
|
404
|
+
error val[1], "Syntax error resource body without title or hash with +>"
|
405
|
+
end
|
406
|
+
tmp
|
398
407
|
when :defaults
|
399
408
|
Factory.RESOURCE_DEFAULTS(val[0], val[2])
|
400
409
|
when :override
|
401
410
|
# This was only done for override in original - TODO shuld it be here at all
|
402
411
|
Factory.RESOURCE_OVERRIDE(val[0], val[2])
|
403
412
|
else
|
404
|
-
error "Expression is not valid as a resource, resource-default, or resource-override"
|
413
|
+
error val[0], "Expression is not valid as a resource, resource-default, or resource-override"
|
405
414
|
end
|
406
415
|
loc result, val[0], val[4]
|
407
416
|
}
|
417
|
+
| at CLASS LBRACE resourceinstances endsemi RBRACE {
|
418
|
+
result = Factory.RESOURCE(Factory.fqn(token_text(val[1])), val[3])
|
419
|
+
result.form = val[0]
|
420
|
+
loc result, val[1], val[5]
|
421
|
+
}
|
408
422
|
| CLASS LBRACE resourceinstances endsemi RBRACE {
|
409
423
|
result = Factory.RESOURCE(Factory.fqn(token_text(val[0])), val[2])
|
410
424
|
loc result, val[0], val[4]
|
@@ -424,6 +438,7 @@ resource_expression
|
|
424
438
|
at
|
425
439
|
: AT { result = :virtual }
|
426
440
|
| AT AT { result = :exported }
|
441
|
+
| ATAT { result = :exported }
|
427
442
|
|
428
443
|
#---COLLECTION
|
429
444
|
#
|
@@ -489,36 +504,36 @@ attribute_operations
|
|
489
504
|
# Produces Model::Definition
|
490
505
|
#
|
491
506
|
definition_expression
|
492
|
-
: DEFINE classname parameter_list LBRACE
|
493
|
-
result = Factory.DEFINITION(classname(val[1][:value]), val[2], val[4])
|
507
|
+
: DEFINE classname parameter_list LBRACE opt_statements RBRACE {
|
508
|
+
result = add_definition(Factory.DEFINITION(classname(val[1][:value]), val[2], val[4]))
|
494
509
|
loc result, val[0], val[5]
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
loc result, val[0], val[4]
|
500
|
-
@lexer.indefine = false
|
510
|
+
# New lexer does not keep track of this, this is done in validation
|
511
|
+
if @lexer.respond_to?(:'indefine=')
|
512
|
+
@lexer.indefine = false
|
513
|
+
end
|
501
514
|
}
|
502
515
|
|
503
516
|
#---HOSTCLASS
|
504
|
-
# ORIGINAL COMMENT: Our class gets defined in the parent namespace, not our own.
|
505
|
-
# WAT ??! This is way odd; should get its complete name, classnames do not nest
|
506
|
-
# Seems like the call to classname makes use of the name scope
|
507
|
-
# (This is uneccesary, since the parent name is known when evaluating)
|
508
517
|
#
|
509
518
|
# Produces Model::HostClassDefinition
|
510
519
|
#
|
511
520
|
hostclass_expression
|
512
|
-
: CLASS
|
513
|
-
|
514
|
-
|
521
|
+
: CLASS stacked_classname parameter_list classparent LBRACE opt_statements RBRACE {
|
522
|
+
# Remove this class' name from the namestack as all nested classes have been parsed
|
523
|
+
namepop
|
524
|
+
result = add_definition(Factory.HOSTCLASS(classname(val[1][:value]), val[2], token_text(val[3]), val[5]))
|
515
525
|
loc result, val[0], val[6]
|
516
526
|
}
|
517
|
-
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
527
|
+
|
528
|
+
# Record the classname so nested classes gets a fully qualified name at parse-time
|
529
|
+
# This is a separate rule since racc does not support intermediate actions.
|
530
|
+
#
|
531
|
+
stacked_classname
|
532
|
+
: classname { namestack(val[0][:value]) ; result = val[0] }
|
533
|
+
|
534
|
+
opt_statements
|
535
|
+
: statements
|
536
|
+
| nil
|
522
537
|
|
523
538
|
# Produces String, name or nil result
|
524
539
|
classparent
|
@@ -540,11 +555,11 @@ hostclass_expression
|
|
540
555
|
#
|
541
556
|
node_definition_expression
|
542
557
|
: NODE hostnames nodeparent LBRACE statements RBRACE {
|
543
|
-
result = Factory.NODE(val[1], val[2], val[4])
|
558
|
+
result = add_definition(Factory.NODE(val[1], val[2], val[4]))
|
544
559
|
loc result, val[0], val[5]
|
545
560
|
}
|
546
561
|
| NODE hostnames nodeparent LBRACE RBRACE {
|
547
|
-
result = Factory.NODE(val[1], val[2], nil)
|
562
|
+
result = add_definition(Factory.NODE(val[1], val[2], nil))
|
548
563
|
loc result, val[0], val[4]
|
549
564
|
}
|
550
565
|
|
@@ -560,21 +575,26 @@ node_definition_expression
|
|
560
575
|
# Produces a LiteralExpression (string, :default, or regexp)
|
561
576
|
# String with interpolation is validated for better error message
|
562
577
|
hostname
|
563
|
-
:
|
564
|
-
| quotedtext { result = val[0] }
|
578
|
+
: dotted_name { result = val[0] }
|
579
|
+
| quotedtext { result = val[0] }
|
565
580
|
| DEFAULT { result = Factory.literal(:default); loc result, val[0] }
|
566
581
|
| regex
|
567
582
|
|
583
|
+
dotted_name
|
584
|
+
: NAME { result = Factory.literal(val[0][:value]); loc result, val[0] }
|
585
|
+
| dotted_name DOT NAME { result = Factory.concat(val[0], '.', val[2][:value]); loc result, val[0], val[2] }
|
586
|
+
|
568
587
|
# Produces Expression, since hostname is an Expression
|
569
588
|
nodeparent
|
570
589
|
: nil
|
571
590
|
| INHERITS hostname { result = val[1] }
|
572
591
|
|
573
|
-
#---NAMES AND
|
574
|
-
# String
|
592
|
+
#---NAMES AND PARAMETERS COMMON TO SEVERAL RULES
|
593
|
+
# Produces String
|
594
|
+
#
|
575
595
|
classname
|
576
596
|
: NAME { result = val[0] }
|
577
|
-
| CLASS {
|
597
|
+
| CLASS { error val[0], "'class' is not a valid classname" }
|
578
598
|
|
579
599
|
# Produces Array<Model::Parameter>
|
580
600
|
parameter_list
|
@@ -595,10 +615,10 @@ parameter
|
|
595
615
|
#--RESTRICTED EXPRESSIONS
|
596
616
|
# i.e. where one could have expected an expression, but the set is limited
|
597
617
|
|
598
|
-
|
599
|
-
match_rvalue
|
600
|
-
: regex
|
601
|
-
| text_or_name
|
618
|
+
## What is allowed RHS of match operators (see expression)
|
619
|
+
#match_rvalue
|
620
|
+
# : regex
|
621
|
+
# | text_or_name
|
602
622
|
|
603
623
|
#--VARIABLE
|
604
624
|
#
|
@@ -612,6 +632,9 @@ array
|
|
612
632
|
: LBRACK expressions RBRACK { result = Factory.LIST(val[1]); loc result, val[0], val[2] }
|
613
633
|
| LBRACK expressions COMMA RBRACK { result = Factory.LIST(val[1]); loc result, val[0], val[3] }
|
614
634
|
| LBRACK RBRACK { result = Factory.literal([]) ; loc result, val[0] }
|
635
|
+
| LISTSTART expressions RBRACK { result = Factory.LIST(val[1]); loc result, val[0], val[2] }
|
636
|
+
| LISTSTART expressions COMMA RBRACK { result = Factory.LIST(val[1]); loc result, val[0], val[3] }
|
637
|
+
| LISTSTART RBRACK { result = Factory.literal([]) ; loc result, val[0] }
|
615
638
|
|
616
639
|
hash
|
617
640
|
: LBRACE hashpairs RBRACE { result = Factory.HASH(val[1]); loc result, val[0], val[2] }
|
@@ -623,11 +646,12 @@ hash
|
|
623
646
|
| hashpairs COMMA hashpair { result = val[0].push val[2] }
|
624
647
|
|
625
648
|
hashpair
|
626
|
-
:
|
649
|
+
: expression FARROW expression { result = Factory.KEY_ENTRY(val[0], val[2]); loc result, val[1] }
|
627
650
|
|
628
651
|
quotedtext
|
629
652
|
: string
|
630
653
|
| dq_string
|
654
|
+
| heredoc
|
631
655
|
|
632
656
|
string : STRING { result = Factory.literal(val[0][:value]) ; loc result, val[0] }
|
633
657
|
dq_string : dqpre dqrval { result = Factory.string(val[0], *val[1]) ; loc result, val[0], val[1][-1] }
|
@@ -641,6 +665,31 @@ dqtail
|
|
641
665
|
: dqpost { result = [val[0]] }
|
642
666
|
| dqmid dqrval { result = [val[0]] + val[1] }
|
643
667
|
|
668
|
+
heredoc
|
669
|
+
: HEREDOC sublocated_text { result = Factory.HEREDOC(val[0][:value], val[1]); loc result, val[0] }
|
670
|
+
|
671
|
+
sublocated_text
|
672
|
+
: SUBLOCATE string { result = Factory.SUBLOCATE(val[0], val[1]); loc result, val[0] }
|
673
|
+
| SUBLOCATE dq_string { result = Factory.SUBLOCATE(val[0], val[1]); loc result, val[0] }
|
674
|
+
|
675
|
+
epp_expression
|
676
|
+
: EPP_START epp_parameters_list statements { result = Factory.EPP(val[1], val[2]); loc result, val[0] }
|
677
|
+
|
678
|
+
epp_parameters_list
|
679
|
+
: =LOW{ result = nil }
|
680
|
+
| PIPE PIPE { result = [] }
|
681
|
+
| PIPE parameters endcomma PIPE { result = val[1] }
|
682
|
+
|
683
|
+
epp_render_expression
|
684
|
+
: RENDER_STRING { result = Factory.RENDER_STRING(val[0][:value]); loc result, val[0] }
|
685
|
+
| RENDER_EXPR expression epp_end { result = Factory.RENDER_EXPR(val[1]); loc result, val[0], val[2] }
|
686
|
+
| RENDER_EXPR LBRACE statements RBRACE epp_end { result = Factory.RENDER_EXPR(Factory.block_or_expression(*val[2])); loc result, val[0], val[4] }
|
687
|
+
|
688
|
+
epp_end
|
689
|
+
: EPP_END
|
690
|
+
| EPP_END_TRIM
|
691
|
+
|
692
|
+
number : NUMBER { result = Factory.NUMBER(val[0][:value]) ; loc result, val[0] }
|
644
693
|
name : NAME { result = Factory.QNAME_OR_NUMBER(val[0][:value]) ; loc result, val[0] }
|
645
694
|
type : CLASSREF { result = Factory.QREF(val[0][:value]) ; loc result, val[0] }
|
646
695
|
undef : UNDEF { result = Factory.literal(:undef); loc result, val[0] }
|