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
@@ -13,659 +13,745 @@ describe "Two step scoping for variables" do
|
|
13
13
|
Puppet.expects(:deprecation_warning).never
|
14
14
|
end
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
$
|
22
|
-
|
23
|
-
|
24
|
-
|
16
|
+
context 'using current parser' do
|
17
|
+
describe "using plussignment to change in a new scope" do
|
18
|
+
it "does not change a string in the parent scope" do
|
19
|
+
# Expects to be able to concatenate string using +=
|
20
|
+
expect_the_message_to_be('top_msg') do <<-MANIFEST
|
21
|
+
$var = "top_msg"
|
22
|
+
class override {
|
23
|
+
$var += "override"
|
24
|
+
include foo
|
25
|
+
}
|
26
|
+
class foo {
|
27
|
+
notify { 'something': message => $var, }
|
28
|
+
}
|
29
|
+
|
30
|
+
include override
|
31
|
+
MANIFEST
|
32
|
+
end
|
25
33
|
end
|
26
34
|
end
|
27
35
|
end
|
28
36
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
$c = "topscope"
|
33
|
-
class c { }
|
34
|
-
node default {
|
35
|
-
include c
|
36
|
-
notify { 'something': message => $c }
|
37
|
-
}
|
38
|
-
MANIFEST
|
39
|
-
end
|
37
|
+
context 'using future parser' do
|
38
|
+
before(:each) do
|
39
|
+
Puppet[:parser] = 'future'
|
40
40
|
end
|
41
41
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
42
|
+
describe "using plussignment to change in a new scope" do
|
43
|
+
it "does not change a string in the parent scope" do
|
44
|
+
# Expects to be able to concatenate string using +=
|
45
|
+
expect do
|
46
|
+
catalog = compile_to_catalog(<<-MANIFEST, Puppet::Node.new('the node'))
|
47
|
+
$var = "top_msg"
|
48
|
+
class override {
|
49
|
+
$var += "override"
|
50
|
+
include foo
|
51
|
+
}
|
52
|
+
class foo {
|
53
|
+
notify { 'something': message => $var, }
|
54
|
+
}
|
53
55
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
node default {
|
58
|
-
$c = "nodescope"
|
59
|
-
include c
|
60
|
-
notify { 'something': message => $c::b }
|
61
|
-
}
|
62
|
-
MANIFEST
|
56
|
+
include override
|
57
|
+
MANIFEST
|
58
|
+
end.to raise_error(/The value 'top_msg' cannot be converted to Numeric/)
|
63
59
|
end
|
64
60
|
end
|
65
61
|
|
66
|
-
it "
|
67
|
-
expect_the_message_to_be('
|
68
|
-
$c = "topscope"
|
69
|
-
class c { $b = "class" }
|
62
|
+
it "when using a template ignores the dynamic value of the var when using the @varname syntax" do
|
63
|
+
expect_the_message_to_be('node_msg') do <<-MANIFEST
|
70
64
|
node default {
|
71
|
-
|
72
|
-
notify { 'something': message => $::c::b }
|
73
|
-
}
|
74
|
-
MANIFEST
|
75
|
-
end
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
describe "when using shadowing and inheritance" do
|
80
|
-
it "finds value define in the inherited node" do
|
81
|
-
expect_the_message_to_be('parent_msg') do <<-MANIFEST
|
82
|
-
$var = "top_msg"
|
83
|
-
node parent {
|
84
|
-
$var = "parent_msg"
|
85
|
-
}
|
86
|
-
node default inherits parent {
|
65
|
+
$var = "node_msg"
|
87
66
|
include foo
|
88
67
|
}
|
89
68
|
class foo {
|
90
|
-
|
69
|
+
$var = "foo_msg"
|
70
|
+
include bar
|
71
|
+
}
|
72
|
+
class bar {
|
73
|
+
notify { 'something': message => inline_template("<%= @var %>"), }
|
91
74
|
}
|
92
75
|
MANIFEST
|
93
76
|
end
|
94
77
|
end
|
78
|
+
end
|
95
79
|
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
MANIFEST
|
80
|
+
shared_examples_for "the scope" do
|
81
|
+
|
82
|
+
describe "fully qualified variable names" do
|
83
|
+
it "keeps nodescope separate from topscope" do
|
84
|
+
expect_the_message_to_be('topscope') do <<-MANIFEST
|
85
|
+
$c = "topscope"
|
86
|
+
node default {
|
87
|
+
$c = "nodescope"
|
88
|
+
notify { 'something': message => $::c }
|
89
|
+
}
|
90
|
+
MANIFEST
|
91
|
+
end
|
109
92
|
end
|
110
93
|
end
|
111
94
|
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
}
|
124
|
-
MANIFEST
|
95
|
+
describe "when colliding class and variable names" do
|
96
|
+
it "finds a topscope variable with the same name as a class" do
|
97
|
+
expect_the_message_to_be('topscope') do <<-MANIFEST
|
98
|
+
$c = "topscope"
|
99
|
+
class c { }
|
100
|
+
node default {
|
101
|
+
include c
|
102
|
+
notify { 'something': message => $c }
|
103
|
+
}
|
104
|
+
MANIFEST
|
105
|
+
end
|
125
106
|
end
|
126
|
-
end
|
127
107
|
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
}
|
139
|
-
class baz {
|
140
|
-
include bar
|
141
|
-
}
|
142
|
-
MANIFEST
|
108
|
+
it "finds a node scope variable with the same name as a class" do
|
109
|
+
expect_the_message_to_be('nodescope') do <<-MANIFEST
|
110
|
+
class c { }
|
111
|
+
node default {
|
112
|
+
$c = "nodescope"
|
113
|
+
include c
|
114
|
+
notify { 'something': message => $c }
|
115
|
+
}
|
116
|
+
MANIFEST
|
117
|
+
end
|
143
118
|
end
|
144
|
-
end
|
145
119
|
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
}
|
157
|
-
class baz {
|
158
|
-
include bar
|
159
|
-
}
|
160
|
-
MANIFEST
|
120
|
+
it "finds a class variable when the class collides with a nodescope variable" do
|
121
|
+
expect_the_message_to_be('class') do <<-MANIFEST
|
122
|
+
class c { $b = "class" }
|
123
|
+
node default {
|
124
|
+
$c = "nodescope"
|
125
|
+
include c
|
126
|
+
notify { 'something': message => $c::b }
|
127
|
+
}
|
128
|
+
MANIFEST
|
129
|
+
end
|
161
130
|
end
|
162
|
-
end
|
163
131
|
|
164
|
-
|
165
|
-
|
166
|
-
|
132
|
+
it "finds a class variable when the class collides with a topscope variable" do
|
133
|
+
expect_the_message_to_be('class') do <<-MANIFEST
|
134
|
+
$c = "topscope"
|
135
|
+
class c { $b = "class" }
|
136
|
+
node default {
|
137
|
+
include c
|
138
|
+
notify { 'something': message => $::c::b }
|
139
|
+
}
|
140
|
+
MANIFEST
|
141
|
+
end
|
142
|
+
end
|
143
|
+
end
|
167
144
|
|
168
|
-
|
169
|
-
|
170
|
-
|
145
|
+
describe "when using shadowing and inheritance" do
|
146
|
+
it "finds value define in the inherited node" do
|
147
|
+
expect_the_message_to_be('parent_msg') do <<-MANIFEST
|
148
|
+
$var = "top_msg"
|
149
|
+
node parent {
|
150
|
+
$var = "parent_msg"
|
151
|
+
}
|
152
|
+
node default inherits parent {
|
153
|
+
include foo
|
154
|
+
}
|
155
|
+
class foo {
|
156
|
+
notify { 'something': message => $var, }
|
157
|
+
}
|
158
|
+
MANIFEST
|
159
|
+
end
|
160
|
+
end
|
171
161
|
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
162
|
+
it "finds top scope when the class is included before the node defines the var" do
|
163
|
+
expect_the_message_to_be('top_msg') do <<-MANIFEST
|
164
|
+
$var = "top_msg"
|
165
|
+
node parent {
|
166
|
+
include foo
|
167
|
+
}
|
168
|
+
node default inherits parent {
|
169
|
+
$var = "default_msg"
|
170
|
+
}
|
171
|
+
class foo {
|
172
|
+
notify { 'something': message => $var, }
|
173
|
+
}
|
174
|
+
MANIFEST
|
175
|
+
end
|
177
176
|
end
|
178
|
-
end
|
179
177
|
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
178
|
+
it "finds top scope when the class is included before the node defines the var" do
|
179
|
+
expect_the_message_to_be('top_msg') do <<-MANIFEST
|
180
|
+
$var = "top_msg"
|
181
|
+
node parent {
|
182
|
+
include foo
|
183
|
+
}
|
184
|
+
node default inherits parent {
|
185
|
+
$var = "default_msg"
|
186
|
+
}
|
187
|
+
class foo {
|
188
|
+
notify { 'something': message => $var, }
|
189
|
+
}
|
190
|
+
MANIFEST
|
191
|
+
end
|
192
|
+
end
|
185
193
|
|
186
|
-
|
194
|
+
it "finds values in its local scope" do
|
195
|
+
expect_the_message_to_be('local_msg') do <<-MANIFEST
|
196
|
+
node default {
|
197
|
+
include baz
|
198
|
+
}
|
199
|
+
class foo {
|
200
|
+
}
|
201
|
+
class bar inherits foo {
|
202
|
+
$var = "local_msg"
|
203
|
+
notify { 'something': message => $var, }
|
204
|
+
}
|
205
|
+
class baz {
|
206
|
+
include bar
|
207
|
+
}
|
208
|
+
MANIFEST
|
209
|
+
end
|
210
|
+
end
|
187
211
|
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
212
|
+
it "finds values in its inherited scope" do
|
213
|
+
expect_the_message_to_be('foo_msg') do <<-MANIFEST
|
214
|
+
node default {
|
215
|
+
include baz
|
216
|
+
}
|
217
|
+
class foo {
|
218
|
+
$var = "foo_msg"
|
219
|
+
}
|
220
|
+
class bar inherits foo {
|
221
|
+
notify { 'something': message => $var, }
|
222
|
+
}
|
223
|
+
class baz {
|
224
|
+
include bar
|
225
|
+
}
|
226
|
+
MANIFEST
|
227
|
+
end
|
194
228
|
end
|
195
|
-
end
|
196
229
|
|
197
|
-
|
198
|
-
|
199
|
-
node default {
|
200
|
-
include baz
|
201
|
-
}
|
202
|
-
class foo {
|
203
|
-
$var = "foo_msg"
|
204
|
-
}
|
205
|
-
class bar inherits ::foo {
|
206
|
-
notify { 'something': message => $var, }
|
207
|
-
}
|
208
|
-
class baz {
|
230
|
+
it "prefers values in its local scope over values in the inherited scope" do
|
231
|
+
expect_the_message_to_be('local_msg') do <<-MANIFEST
|
209
232
|
include bar
|
210
|
-
|
211
|
-
|
233
|
+
|
234
|
+
class foo {
|
235
|
+
$var = "inherited"
|
236
|
+
}
|
237
|
+
|
238
|
+
class bar inherits foo {
|
239
|
+
$var = "local_msg"
|
240
|
+
notify { 'something': message => $var, }
|
241
|
+
}
|
242
|
+
MANIFEST
|
243
|
+
end
|
212
244
|
end
|
213
|
-
end
|
214
245
|
|
215
|
-
|
216
|
-
|
217
|
-
|
246
|
+
it "finds a qualified variable by following parent scopes of the specified scope" do
|
247
|
+
expect_the_message_to_be("from node") do <<-MANIFEST
|
248
|
+
class c {
|
249
|
+
notify { 'something': message => "$a::b" }
|
250
|
+
}
|
218
251
|
|
219
|
-
|
220
|
-
$var = "inherited"
|
221
|
-
}
|
252
|
+
class a { }
|
222
253
|
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
254
|
+
node default {
|
255
|
+
$b = "from node"
|
256
|
+
include a
|
257
|
+
include c
|
258
|
+
}
|
259
|
+
MANIFEST
|
260
|
+
end
|
228
261
|
end
|
229
|
-
end
|
230
262
|
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
263
|
+
it "finds values in its inherited scope when the inherited class is qualified to the top" do
|
264
|
+
expect_the_message_to_be('foo_msg') do <<-MANIFEST
|
265
|
+
node default {
|
266
|
+
include baz
|
267
|
+
}
|
268
|
+
class foo {
|
269
|
+
$var = "foo_msg"
|
270
|
+
}
|
271
|
+
class bar inherits ::foo {
|
272
|
+
notify { 'something': message => $var, }
|
273
|
+
}
|
274
|
+
class baz {
|
275
|
+
include bar
|
276
|
+
}
|
277
|
+
MANIFEST
|
278
|
+
end
|
279
|
+
end
|
236
280
|
|
237
|
-
|
238
|
-
|
239
|
-
|
281
|
+
it "prefers values in its local scope over values in the inherited scope when the inherited class is fully qualified" do
|
282
|
+
expect_the_message_to_be('local_msg') do <<-MANIFEST
|
283
|
+
include bar
|
240
284
|
|
241
|
-
|
242
|
-
|
285
|
+
class foo {
|
286
|
+
$var = "inherited"
|
287
|
+
}
|
288
|
+
|
289
|
+
class bar inherits ::foo {
|
290
|
+
$var = "local_msg"
|
291
|
+
notify { 'something': message => $var, }
|
292
|
+
}
|
293
|
+
MANIFEST
|
294
|
+
end
|
243
295
|
end
|
244
|
-
end
|
245
296
|
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
}
|
251
|
-
class baz {
|
252
|
-
$var = "top baz"
|
253
|
-
}
|
254
|
-
class foo {
|
255
|
-
class baz {
|
256
|
-
$var = "inner baz"
|
297
|
+
it "finds values in top scope when the inherited class is qualified to the top" do
|
298
|
+
expect_the_message_to_be('top msg') do <<-MANIFEST
|
299
|
+
$var = "top msg"
|
300
|
+
class foo {
|
257
301
|
}
|
258
302
|
|
259
|
-
class bar inherits
|
303
|
+
class bar inherits ::foo {
|
260
304
|
notify { 'something': message => $var, }
|
261
305
|
}
|
262
|
-
|
263
|
-
|
306
|
+
|
307
|
+
include bar
|
308
|
+
MANIFEST
|
309
|
+
end
|
264
310
|
end
|
265
|
-
end
|
266
311
|
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
312
|
+
it "finds values in its inherited scope when the inherited class is a nested class that shadows another class at the top" do
|
313
|
+
expect_the_message_to_be('inner baz') do <<-MANIFEST
|
314
|
+
node default {
|
315
|
+
include foo::bar
|
316
|
+
}
|
317
|
+
class baz {
|
318
|
+
$var = "top baz"
|
319
|
+
}
|
320
|
+
class foo {
|
321
|
+
class baz {
|
322
|
+
$var = "inner baz"
|
323
|
+
}
|
324
|
+
|
325
|
+
class bar inherits baz {
|
326
|
+
notify { 'something': message => $var, }
|
327
|
+
}
|
328
|
+
}
|
329
|
+
MANIFEST
|
330
|
+
end
|
331
|
+
end
|
332
|
+
|
333
|
+
it "finds values in its inherited scope when the inherited class is qualified to a nested class and qualified to the top" do
|
334
|
+
expect_the_message_to_be('top baz') do <<-MANIFEST
|
335
|
+
node default {
|
336
|
+
include foo::bar
|
337
|
+
}
|
276
338
|
class baz {
|
277
|
-
$var = "
|
339
|
+
$var = "top baz"
|
340
|
+
}
|
341
|
+
class foo {
|
342
|
+
class baz {
|
343
|
+
$var = "inner baz"
|
344
|
+
}
|
345
|
+
|
346
|
+
class bar inherits ::baz {
|
347
|
+
notify { 'something': message => $var, }
|
348
|
+
}
|
278
349
|
}
|
350
|
+
MANIFEST
|
351
|
+
end
|
352
|
+
end
|
279
353
|
|
280
|
-
|
354
|
+
it "finds values in its inherited scope when the inherited class is qualified" do
|
355
|
+
expect_the_message_to_be('foo_msg') do <<-MANIFEST
|
356
|
+
node default {
|
357
|
+
include bar
|
358
|
+
}
|
359
|
+
class foo {
|
360
|
+
class baz {
|
361
|
+
$var = "foo_msg"
|
362
|
+
}
|
363
|
+
}
|
364
|
+
class bar inherits foo::baz {
|
281
365
|
notify { 'something': message => $var, }
|
282
366
|
}
|
283
|
-
|
284
|
-
|
367
|
+
MANIFEST
|
368
|
+
end
|
285
369
|
end
|
286
|
-
end
|
287
370
|
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
class
|
371
|
+
it "prefers values in its inherited scope over those in the node (with intermediate inclusion)" do
|
372
|
+
expect_the_message_to_be('foo_msg') do <<-MANIFEST
|
373
|
+
node default {
|
374
|
+
$var = "node_msg"
|
375
|
+
include baz
|
376
|
+
}
|
377
|
+
class foo {
|
295
378
|
$var = "foo_msg"
|
296
379
|
}
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
380
|
+
class bar inherits foo {
|
381
|
+
notify { 'something': message => $var, }
|
382
|
+
}
|
383
|
+
class baz {
|
384
|
+
include bar
|
385
|
+
}
|
386
|
+
MANIFEST
|
387
|
+
end
|
302
388
|
end
|
303
|
-
end
|
304
389
|
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
}
|
320
|
-
MANIFEST
|
390
|
+
it "prefers values in its inherited scope over those in the node (without intermediate inclusion)" do
|
391
|
+
expect_the_message_to_be('foo_msg') do <<-MANIFEST
|
392
|
+
node default {
|
393
|
+
$var = "node_msg"
|
394
|
+
include bar
|
395
|
+
}
|
396
|
+
class foo {
|
397
|
+
$var = "foo_msg"
|
398
|
+
}
|
399
|
+
class bar inherits foo {
|
400
|
+
notify { 'something': message => $var, }
|
401
|
+
}
|
402
|
+
MANIFEST
|
403
|
+
end
|
321
404
|
end
|
322
|
-
end
|
323
405
|
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
406
|
+
it "prefers values in its inherited scope over those from where it is included" do
|
407
|
+
expect_the_message_to_be('foo_msg') do <<-MANIFEST
|
408
|
+
node default {
|
409
|
+
include baz
|
410
|
+
}
|
411
|
+
class foo {
|
412
|
+
$var = "foo_msg"
|
413
|
+
}
|
414
|
+
class bar inherits foo {
|
415
|
+
notify { 'something': message => $var, }
|
416
|
+
}
|
417
|
+
class baz {
|
418
|
+
$var = "baz_msg"
|
419
|
+
include bar
|
420
|
+
}
|
421
|
+
MANIFEST
|
422
|
+
end
|
337
423
|
end
|
338
|
-
end
|
339
424
|
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
425
|
+
it "does not used variables from classes included in the inherited scope" do
|
426
|
+
expect_the_message_to_be('node_msg') do <<-MANIFEST
|
427
|
+
node default {
|
428
|
+
$var = "node_msg"
|
429
|
+
include bar
|
430
|
+
}
|
431
|
+
class quux {
|
432
|
+
$var = "quux_msg"
|
433
|
+
}
|
434
|
+
class foo inherits quux {
|
435
|
+
}
|
436
|
+
class baz {
|
437
|
+
include foo
|
438
|
+
}
|
439
|
+
class bar inherits baz {
|
440
|
+
notify { 'something': message => $var, }
|
441
|
+
}
|
442
|
+
MANIFEST
|
443
|
+
end
|
356
444
|
end
|
357
|
-
end
|
358
445
|
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
class bar inherits baz {
|
374
|
-
notify { 'something': message => $var, }
|
375
|
-
}
|
376
|
-
MANIFEST
|
446
|
+
it "does not use a variable from a scope lexically enclosing it" do
|
447
|
+
expect_the_message_to_be('node_msg') do <<-MANIFEST
|
448
|
+
node default {
|
449
|
+
$var = "node_msg"
|
450
|
+
include other::bar
|
451
|
+
}
|
452
|
+
class other {
|
453
|
+
$var = "other_msg"
|
454
|
+
class bar {
|
455
|
+
notify { 'something': message => $var, }
|
456
|
+
}
|
457
|
+
}
|
458
|
+
MANIFEST
|
459
|
+
end
|
377
460
|
end
|
378
|
-
end
|
379
461
|
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
class bar {
|
462
|
+
it "finds values in its node scope" do
|
463
|
+
expect_the_message_to_be('node_msg') do <<-MANIFEST
|
464
|
+
node default {
|
465
|
+
$var = "node_msg"
|
466
|
+
include baz
|
467
|
+
}
|
468
|
+
class foo {
|
469
|
+
}
|
470
|
+
class bar inherits foo {
|
389
471
|
notify { 'something': message => $var, }
|
390
472
|
}
|
391
|
-
|
392
|
-
|
473
|
+
class baz {
|
474
|
+
include bar
|
475
|
+
}
|
476
|
+
MANIFEST
|
477
|
+
end
|
393
478
|
end
|
394
|
-
end
|
395
479
|
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
480
|
+
it "finds values in its top scope" do
|
481
|
+
expect_the_message_to_be('top_msg') do <<-MANIFEST
|
482
|
+
$var = "top_msg"
|
483
|
+
node default {
|
484
|
+
include baz
|
485
|
+
}
|
486
|
+
class foo {
|
487
|
+
}
|
488
|
+
class bar inherits foo {
|
489
|
+
notify { 'something': message => $var, }
|
490
|
+
}
|
491
|
+
class baz {
|
492
|
+
include bar
|
493
|
+
}
|
494
|
+
MANIFEST
|
495
|
+
end
|
411
496
|
end
|
412
|
-
end
|
413
497
|
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
include bar
|
427
|
-
}
|
428
|
-
MANIFEST
|
498
|
+
it "prefers variables from the node over those in the top scope" do
|
499
|
+
expect_the_message_to_be('node_msg') do <<-MANIFEST
|
500
|
+
$var = "top_msg"
|
501
|
+
node default {
|
502
|
+
$var = "node_msg"
|
503
|
+
include foo
|
504
|
+
}
|
505
|
+
class foo {
|
506
|
+
notify { 'something': message => $var, }
|
507
|
+
}
|
508
|
+
MANIFEST
|
509
|
+
end
|
429
510
|
end
|
430
|
-
end
|
431
511
|
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
512
|
+
it "finds top scope variables referenced inside a defined type" do
|
513
|
+
expect_the_message_to_be('top_msg') do <<-MANIFEST
|
514
|
+
$var = "top_msg"
|
515
|
+
node default {
|
516
|
+
foo { "testing": }
|
517
|
+
}
|
518
|
+
define foo() {
|
519
|
+
notify { 'something': message => $var, }
|
520
|
+
}
|
521
|
+
MANIFEST
|
522
|
+
end
|
443
523
|
end
|
444
|
-
end
|
445
524
|
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
525
|
+
it "finds node scope variables referenced inside a defined type" do
|
526
|
+
expect_the_message_to_be('node_msg') do <<-MANIFEST
|
527
|
+
$var = "top_msg"
|
528
|
+
node default {
|
529
|
+
$var = "node_msg"
|
530
|
+
foo { "testing": }
|
531
|
+
}
|
532
|
+
define foo() {
|
533
|
+
notify { 'something': message => $var, }
|
534
|
+
}
|
535
|
+
MANIFEST
|
536
|
+
end
|
456
537
|
end
|
457
538
|
end
|
458
539
|
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
540
|
+
describe "in situations that used to have dynamic lookup" do
|
541
|
+
it "ignores the dynamic value of the var" do
|
542
|
+
expect_the_message_to_be('node_msg') do <<-MANIFEST
|
543
|
+
node default {
|
544
|
+
$var = "node_msg"
|
545
|
+
include foo
|
546
|
+
}
|
547
|
+
class baz {
|
548
|
+
$var = "baz_msg"
|
549
|
+
include bar
|
550
|
+
}
|
551
|
+
class foo inherits baz {
|
552
|
+
}
|
553
|
+
class bar {
|
554
|
+
notify { 'something': message => $var, }
|
555
|
+
}
|
556
|
+
MANIFEST
|
557
|
+
end
|
470
558
|
end
|
471
|
-
end
|
472
|
-
end
|
473
559
|
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
|
490
|
-
MANIFEST
|
560
|
+
it "finds nil when the only set variable is in the dynamic scope" do
|
561
|
+
expect_the_message_to_be(nil) do <<-MANIFEST
|
562
|
+
node default {
|
563
|
+
include baz
|
564
|
+
}
|
565
|
+
class foo {
|
566
|
+
}
|
567
|
+
class bar inherits foo {
|
568
|
+
notify { 'something': message => $var, }
|
569
|
+
}
|
570
|
+
class baz {
|
571
|
+
$var = "baz_msg"
|
572
|
+
include bar
|
573
|
+
}
|
574
|
+
MANIFEST
|
575
|
+
end
|
491
576
|
end
|
492
|
-
end
|
493
577
|
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
578
|
+
it "ignores the value in the dynamic scope for a defined type" do
|
579
|
+
expect_the_message_to_be('node_msg') do <<-MANIFEST
|
580
|
+
node default {
|
581
|
+
$var = "node_msg"
|
582
|
+
include foo
|
583
|
+
}
|
584
|
+
class foo {
|
585
|
+
$var = "foo_msg"
|
586
|
+
bar { "testing": }
|
587
|
+
}
|
588
|
+
define bar() {
|
589
|
+
notify { 'something': message => $var, }
|
590
|
+
}
|
591
|
+
MANIFEST
|
592
|
+
end
|
509
593
|
end
|
510
|
-
end
|
511
594
|
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
517
|
-
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
|
524
|
-
|
525
|
-
|
595
|
+
it "when using a template ignores the dynamic value of the var when using scope.lookupvar" do
|
596
|
+
expect_the_message_to_be('node_msg') do <<-MANIFEST
|
597
|
+
node default {
|
598
|
+
$var = "node_msg"
|
599
|
+
include foo
|
600
|
+
}
|
601
|
+
class foo {
|
602
|
+
$var = "foo_msg"
|
603
|
+
include bar
|
604
|
+
}
|
605
|
+
class bar {
|
606
|
+
notify { 'something': message => inline_template("<%= scope.lookupvar('var') %>"), }
|
607
|
+
}
|
608
|
+
MANIFEST
|
609
|
+
end
|
526
610
|
end
|
527
611
|
end
|
528
|
-
end
|
529
612
|
|
530
|
-
|
531
|
-
it "does not change a string in the parent scope" do
|
532
|
-
expect_the_message_to_be('top_msg') do <<-MANIFEST
|
533
|
-
$var = "top_msg"
|
534
|
-
class override {
|
535
|
-
$var += "override"
|
536
|
-
include foo
|
537
|
-
}
|
538
|
-
class foo {
|
539
|
-
notify { 'something': message => $var, }
|
540
|
-
}
|
613
|
+
describe "using plussignment to change in a new scope" do
|
541
614
|
|
542
|
-
|
543
|
-
MANIFEST
|
615
|
+
it "does not change an array in the parent scope" do
|
616
|
+
expect_the_message_to_be('top_msg') do <<-MANIFEST
|
617
|
+
$var = ["top_msg"]
|
618
|
+
class override {
|
619
|
+
$var += ["override"]
|
620
|
+
include foo
|
621
|
+
}
|
622
|
+
class foo {
|
623
|
+
notify { 'something': message => $var, }
|
624
|
+
}
|
625
|
+
|
626
|
+
include override
|
627
|
+
MANIFEST
|
628
|
+
end
|
544
629
|
end
|
545
|
-
end
|
546
630
|
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
|
554
|
-
class foo {
|
555
|
-
notify { 'something': message => $var, }
|
556
|
-
}
|
631
|
+
it "concatenates two arrays" do
|
632
|
+
expect_the_message_to_be(['top_msg', 'override']) do <<-MANIFEST
|
633
|
+
$var = ["top_msg"]
|
634
|
+
class override {
|
635
|
+
$var += ["override"]
|
636
|
+
notify { 'something': message => $var, }
|
637
|
+
}
|
557
638
|
|
558
|
-
|
559
|
-
|
639
|
+
include override
|
640
|
+
MANIFEST
|
641
|
+
end
|
560
642
|
end
|
561
|
-
end
|
562
643
|
|
563
|
-
|
564
|
-
|
565
|
-
|
566
|
-
|
567
|
-
|
568
|
-
|
569
|
-
|
644
|
+
it "leaves an array of arrays unflattened" do
|
645
|
+
expect_the_message_to_be([['top_msg'], ['override']]) do <<-MANIFEST
|
646
|
+
$var = [["top_msg"]]
|
647
|
+
class override {
|
648
|
+
$var += [["override"]]
|
649
|
+
notify { 'something': message => $var, }
|
650
|
+
}
|
570
651
|
|
571
|
-
|
572
|
-
|
652
|
+
include override
|
653
|
+
MANIFEST
|
654
|
+
end
|
573
655
|
end
|
574
|
-
end
|
575
656
|
|
576
|
-
|
577
|
-
|
578
|
-
|
579
|
-
|
580
|
-
|
581
|
-
|
582
|
-
|
657
|
+
it "does not change a hash in the parent scope" do
|
658
|
+
expect_the_message_to_be({"key"=>"top_msg"}) do <<-MANIFEST
|
659
|
+
$var = { "key" => "top_msg" }
|
660
|
+
class override {
|
661
|
+
$var += { "other" => "override" }
|
662
|
+
include foo
|
663
|
+
}
|
664
|
+
class foo {
|
665
|
+
notify { 'something': message => $var, }
|
666
|
+
}
|
583
667
|
|
584
|
-
|
585
|
-
|
668
|
+
include override
|
669
|
+
MANIFEST
|
670
|
+
end
|
586
671
|
end
|
587
|
-
end
|
588
672
|
|
589
|
-
|
590
|
-
|
591
|
-
|
592
|
-
|
593
|
-
|
594
|
-
|
595
|
-
|
596
|
-
class foo {
|
597
|
-
notify { 'something': message => $var, }
|
598
|
-
}
|
673
|
+
it "replaces a value of a key in the hash instead of merging the values" do
|
674
|
+
expect_the_message_to_be({"key"=>"override"}) do <<-MANIFEST
|
675
|
+
$var = { "key" => "top_msg" }
|
676
|
+
class override {
|
677
|
+
$var += { "key" => "override" }
|
678
|
+
notify { 'something': message => $var, }
|
679
|
+
}
|
599
680
|
|
600
|
-
|
601
|
-
|
681
|
+
include override
|
682
|
+
MANIFEST
|
683
|
+
end
|
602
684
|
end
|
603
685
|
end
|
604
686
|
|
605
|
-
|
606
|
-
|
607
|
-
|
608
|
-
|
609
|
-
|
687
|
+
describe "when using an enc" do
|
688
|
+
it "places enc parameters in top scope" do
|
689
|
+
enc_node = Puppet::Node.new("the node", { :parameters => { "var" => 'from_enc' } })
|
690
|
+
|
691
|
+
expect_the_message_to_be('from_enc', enc_node) do <<-MANIFEST
|
610
692
|
notify { 'something': message => $var, }
|
611
|
-
|
693
|
+
MANIFEST
|
694
|
+
end
|
695
|
+
end
|
612
696
|
|
613
|
-
|
614
|
-
|
697
|
+
it "does not allow the enc to specify an existing top scope var" do
|
698
|
+
enc_node = Puppet::Node.new("the_node", { :parameters => { "var" => 'from_enc' } })
|
699
|
+
|
700
|
+
expect {
|
701
|
+
compile_to_catalog("$var = 'top scope'", enc_node)
|
702
|
+
}.to raise_error(
|
703
|
+
Puppet::Error,
|
704
|
+
/Cannot reassign variable var at line 1(\:6)? on node the_node/
|
705
|
+
)
|
615
706
|
end
|
616
|
-
end
|
617
|
-
end
|
618
707
|
|
619
|
-
|
620
|
-
|
621
|
-
enc_node = Puppet::Node.new("the node", { :parameters => { "var" => 'from_enc' } })
|
708
|
+
it "evaluates enc classes in top scope when there is no node" do
|
709
|
+
enc_node = Puppet::Node.new("the node", { :classes => ['foo'], :parameters => { "var" => 'from_enc' } })
|
622
710
|
|
623
|
-
|
624
|
-
|
625
|
-
|
711
|
+
expect_the_message_to_be('from_enc', enc_node) do <<-MANIFEST
|
712
|
+
class foo {
|
713
|
+
notify { 'something': message => $var, }
|
714
|
+
}
|
715
|
+
MANIFEST
|
716
|
+
end
|
626
717
|
end
|
627
|
-
end
|
628
718
|
|
629
|
-
|
630
|
-
|
719
|
+
it "evaluates enc classes in the node scope when there is a matching node" do
|
720
|
+
enc_node = Puppet::Node.new("the_node", { :classes => ['foo'] })
|
631
721
|
|
632
|
-
|
633
|
-
|
634
|
-
|
635
|
-
|
636
|
-
"Cannot reassign variable var at line 1 on node the_node"
|
637
|
-
)
|
638
|
-
end
|
722
|
+
expect_the_message_to_be('from matching node', enc_node) do <<-MANIFEST
|
723
|
+
node inherited {
|
724
|
+
$var = "from inherited"
|
725
|
+
}
|
639
726
|
|
640
|
-
|
641
|
-
|
727
|
+
node the_node inherits inherited {
|
728
|
+
$var = "from matching node"
|
729
|
+
}
|
642
730
|
|
643
|
-
|
644
|
-
|
645
|
-
|
646
|
-
|
647
|
-
|
731
|
+
class foo {
|
732
|
+
notify { 'something': message => $var, }
|
733
|
+
}
|
734
|
+
MANIFEST
|
735
|
+
end
|
648
736
|
end
|
649
737
|
end
|
738
|
+
end
|
650
739
|
|
651
|
-
|
652
|
-
|
653
|
-
|
654
|
-
|
655
|
-
|
656
|
-
|
657
|
-
|
658
|
-
|
659
|
-
node the_node inherits inherited {
|
660
|
-
$var = "from matching node"
|
661
|
-
}
|
740
|
+
describe 'using classic parser' do
|
741
|
+
before :each do
|
742
|
+
Puppet[:parser] = 'current'
|
743
|
+
end
|
744
|
+
it_behaves_like 'the scope' do
|
745
|
+
end
|
746
|
+
end
|
662
747
|
|
663
|
-
|
664
|
-
|
665
|
-
|
666
|
-
|
667
|
-
|
748
|
+
describe 'using future parser' do
|
749
|
+
before :each do
|
750
|
+
Puppet[:parser] = 'future'
|
751
|
+
end
|
752
|
+
it_behaves_like 'the scope' do
|
668
753
|
end
|
669
754
|
end
|
755
|
+
|
670
756
|
end
|
671
757
|
|