puppet 0.23.2 → 0.24.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- data/CHANGELOG +112 -1
- data/README +1 -1
- data/Rakefile +1 -2
- data/bin/filebucket +2 -3
- data/bin/puppet +55 -39
- data/bin/puppetca +20 -11
- data/bin/puppetd +30 -31
- data/bin/puppetdoc +27 -28
- data/bin/puppetmasterd +24 -42
- data/bin/puppetrun +3 -4
- data/bin/ralsh +5 -7
- data/conf/redhat/puppet.spec +4 -1
- data/conf/solaris/smf/svc-puppetd +1 -1
- data/conf/solaris/smf/svc-puppetmasterd +1 -1
- data/examples/code/allatonce +1 -1
- data/examples/code/assignments +1 -1
- data/examples/code/components +1 -1
- data/examples/code/file.bl +1 -1
- data/examples/code/filedefaults +1 -1
- data/examples/code/fileparsing +1 -1
- data/examples/code/filerecursion +1 -1
- data/examples/code/functions +1 -1
- data/examples/code/groups +1 -1
- data/examples/code/head +1 -1
- data/examples/code/importing +1 -1
- data/examples/code/modules/sample-module.pp +10 -0
- data/examples/code/modules/sample-module/README.txt +17 -0
- data/examples/code/modules/sample-module/lib/puppet/parser/functions/hostname_to_dn.rb +36 -0
- data/examples/code/modules/sample-module/manifests/init.pp +12 -0
- data/examples/code/modules/sample-module/templates/sample.erb +5 -0
- data/examples/code/nodes +1 -1
- data/examples/code/one +1 -1
- data/examples/code/relationships +1 -1
- data/examples/code/selectors +1 -1
- data/examples/code/simpletests +1 -1
- data/examples/root/etc/init.d/sleeper +1 -1
- data/examples/root/etc/puppet/fileserver.conf +1 -1
- data/ext/ldap/puppet.schema +1 -1
- data/ext/module_puppet +30 -21
- data/ext/puppet-test +3 -3
- data/ext/vim/filetype.vim +1 -1
- data/install.rb +1 -2
- data/lib/puppet.rb +20 -19
- data/lib/puppet/checksum.rb +57 -0
- data/lib/puppet/config_stores/rest.rb +1 -1
- data/lib/puppet/daemon.rb +0 -1
- data/lib/puppet/{configuration.rb → defaults.rb} +56 -23
- data/lib/puppet/dsl.rb +22 -116
- data/lib/puppet/error.rb +0 -9
- data/lib/puppet/event.rb +0 -1
- data/lib/puppet/external/gratr/rdot.rb +0 -1
- data/lib/puppet/external/lock.rb +0 -1
- data/lib/puppet/feature/base.rb +3 -2
- data/lib/puppet/feature/rails.rb +0 -1
- data/lib/puppet/file_serving.rb +7 -0
- data/lib/puppet/file_serving/configuration.rb +129 -0
- data/lib/puppet/file_serving/configuration/parser.rb +124 -0
- data/lib/puppet/file_serving/content.rb +34 -0
- data/lib/puppet/file_serving/file_base.rb +63 -0
- data/lib/puppet/file_serving/fileset.rb +138 -0
- data/lib/puppet/file_serving/indirection_hooks.rb +44 -0
- data/lib/puppet/file_serving/metadata.rb +69 -0
- data/lib/puppet/file_serving/mount.rb +186 -0
- data/lib/puppet/file_serving/terminus_helper.rb +19 -0
- data/lib/puppet/indirector.rb +68 -0
- data/lib/puppet/indirector/catalog/compiler.rb +173 -0
- data/lib/puppet/indirector/catalog/yaml.rb +24 -0
- data/lib/puppet/indirector/checksum/file.rb +33 -0
- data/lib/puppet/indirector/code.rb +6 -0
- data/lib/puppet/indirector/direct_file_server.rb +27 -0
- data/lib/puppet/indirector/exec.rb +57 -0
- data/lib/puppet/indirector/facts/facter.rb +65 -0
- data/lib/puppet/indirector/facts/memory.rb +9 -0
- data/lib/puppet/indirector/facts/yaml.rb +7 -0
- data/lib/puppet/indirector/file.rb +54 -0
- data/lib/puppet/indirector/file_content.rb +5 -0
- data/lib/puppet/indirector/file_content/file.rb +11 -0
- data/lib/puppet/indirector/file_content/file_server.rb +11 -0
- data/lib/puppet/indirector/file_content/modules.rb +11 -0
- data/lib/puppet/indirector/file_content/rest.rb +12 -0
- data/lib/puppet/indirector/file_metadata.rb +5 -0
- data/lib/puppet/indirector/file_metadata/file.rb +26 -0
- data/lib/puppet/indirector/file_metadata/file_server.rb +11 -0
- data/lib/puppet/indirector/file_metadata/modules.rb +17 -0
- data/lib/puppet/indirector/file_metadata/rest.rb +12 -0
- data/lib/puppet/indirector/file_server.rb +56 -0
- data/lib/puppet/indirector/indirection.rb +237 -0
- data/lib/puppet/indirector/ldap.rb +90 -0
- data/lib/puppet/indirector/memory.rb +21 -0
- data/lib/puppet/indirector/module_files.rb +82 -0
- data/lib/puppet/indirector/node/exec.rb +52 -0
- data/lib/puppet/indirector/node/ldap.rb +120 -0
- data/lib/puppet/indirector/node/memory.rb +10 -0
- data/lib/puppet/indirector/node/plain.rb +19 -0
- data/lib/puppet/indirector/node/rest.rb +7 -0
- data/lib/puppet/indirector/node/yaml.rb +7 -0
- data/lib/puppet/indirector/plain.rb +9 -0
- data/lib/puppet/indirector/report/processor.rb +50 -0
- data/lib/puppet/indirector/rest.rb +8 -0
- data/lib/puppet/indirector/ssl_rsa.rb +5 -0
- data/lib/puppet/indirector/ssl_rsa/file.rb +33 -0
- data/lib/puppet/indirector/terminus.rb +178 -0
- data/lib/puppet/indirector/yaml.rb +57 -0
- data/lib/puppet/metatype/attributes.rb +3 -3
- data/lib/puppet/metatype/closure.rb +0 -66
- data/lib/puppet/metatype/container.rb +0 -9
- data/lib/puppet/metatype/evaluation.rb +10 -2
- data/lib/puppet/metatype/instances.rb +16 -30
- data/lib/puppet/metatype/manager.rb +1 -2
- data/lib/puppet/metatype/metaparams.rb +27 -21
- data/lib/puppet/metatype/providers.rb +3 -2
- data/lib/puppet/metatype/relationships.rb +1 -2
- data/lib/puppet/metatype/schedules.rb +0 -1
- data/lib/puppet/metatype/tags.rb +0 -1
- data/lib/puppet/module.rb +60 -32
- data/lib/puppet/network/authconfig.rb +0 -1
- data/lib/puppet/network/authorization.rb +0 -1
- data/lib/puppet/network/authstore.rb +0 -1
- data/lib/puppet/network/client.rb +13 -4
- data/lib/puppet/network/client/ca.rb +4 -5
- data/lib/puppet/network/client/dipper.rb +0 -1
- data/lib/puppet/network/client/file.rb +0 -1
- data/lib/puppet/network/client/master.rb +127 -235
- data/lib/puppet/network/client/proxy.rb +0 -1
- data/lib/puppet/network/client/report.rb +0 -1
- data/lib/puppet/network/client/resource.rb +0 -1
- data/lib/puppet/network/client/runner.rb +0 -1
- data/lib/puppet/network/client/status.rb +0 -1
- data/lib/puppet/network/client_request.rb +0 -1
- data/lib/puppet/network/handler.rb +5 -2
- data/lib/puppet/network/handler/ca.rb +1 -2
- data/lib/puppet/network/handler/configuration.rb +184 -0
- data/lib/puppet/network/handler/filebucket.rb +1 -2
- data/lib/puppet/network/handler/fileserver.rb +279 -107
- data/lib/puppet/network/handler/master.rb +57 -152
- data/lib/puppet/network/handler/report.rb +6 -65
- data/lib/puppet/network/handler/resource.rb +5 -13
- data/lib/puppet/network/handler/runner.rb +3 -4
- data/lib/puppet/network/handler/status.rb +0 -1
- data/lib/puppet/network/http.rb +13 -0
- data/lib/puppet/network/http/handler.rb +109 -0
- data/lib/puppet/network/http/mongrel.rb +54 -0
- data/lib/puppet/network/http/mongrel/rest.rb +37 -0
- data/lib/puppet/network/http/mongrel/xmlrpc.rb +4 -0
- data/lib/puppet/network/http/webrick.rb +51 -0
- data/lib/puppet/network/http/webrick/rest.rb +41 -0
- data/lib/puppet/network/http/webrick/xmlrpc.rb +4 -0
- data/lib/puppet/network/http_server.rb +3 -0
- data/lib/puppet/network/{server → http_server}/mongrel.rb +11 -5
- data/lib/puppet/network/{server → http_server}/webrick.rb +9 -5
- data/lib/puppet/network/rest_controller.rb +2 -0
- data/lib/puppet/network/rights.rb +0 -1
- data/lib/puppet/network/server.rb +63 -3
- data/lib/puppet/network/xmlrpc/client.rb +90 -23
- data/lib/puppet/network/xmlrpc/processor.rb +0 -1
- data/lib/puppet/network/xmlrpc/server.rb +0 -1
- data/lib/puppet/network/xmlrpc/webrick_servlet.rb +0 -1
- data/lib/puppet/node.rb +165 -0
- data/lib/puppet/node/catalog.rb +480 -0
- data/lib/puppet/node/environment.rb +46 -0
- data/lib/puppet/node/facts.rb +36 -0
- data/lib/puppet/parameter.rb +34 -28
- data/lib/puppet/parser/ast.rb +0 -1
- data/lib/puppet/parser/ast/astarray.rb +30 -53
- data/lib/puppet/parser/ast/branch.rb +0 -10
- data/lib/puppet/parser/ast/caseopt.rb +0 -11
- data/lib/puppet/parser/ast/casestatement.rb +0 -12
- data/lib/puppet/parser/ast/collection.rb +1 -3
- data/lib/puppet/parser/ast/collexpr.rb +0 -2
- data/lib/puppet/parser/ast/{component.rb → definition.rb} +58 -72
- data/lib/puppet/parser/ast/else.rb +0 -10
- data/lib/puppet/parser/ast/function.rb +0 -2
- data/lib/puppet/parser/ast/hostclass.rb +21 -19
- data/lib/puppet/parser/ast/ifstatement.rb +0 -13
- data/lib/puppet/parser/ast/leaf.rb +0 -8
- data/lib/puppet/parser/ast/node.rb +13 -10
- data/lib/puppet/parser/ast/resource.rb +75 -0
- data/lib/puppet/parser/ast/{resourcedefaults.rb → resource_defaults.rb} +4 -20
- data/lib/puppet/parser/ast/{resourceoverride.rb → resource_override.rb} +3 -5
- data/lib/puppet/parser/ast/resource_reference.rb +66 -0
- data/lib/puppet/parser/ast/resourceparam.rb +0 -14
- data/lib/puppet/parser/ast/selector.rb +0 -10
- data/lib/puppet/parser/ast/tag.rb +0 -2
- data/lib/puppet/parser/ast/vardef.rb +0 -14
- data/lib/puppet/parser/collector.rb +83 -101
- data/lib/puppet/parser/compile.rb +509 -0
- data/lib/puppet/parser/functions.rb +10 -10
- data/lib/puppet/parser/interpreter.rb +44 -662
- data/lib/puppet/parser/lexer.rb +1 -3
- data/lib/puppet/parser/parser.rb +674 -701
- data/lib/puppet/parser/parser_support.rb +33 -24
- data/lib/puppet/parser/resource.rb +219 -162
- data/lib/puppet/parser/resource/param.rb +1 -2
- data/lib/puppet/parser/resource/reference.rb +24 -16
- data/lib/puppet/parser/scope.rb +48 -459
- data/lib/puppet/parser/templatewrapper.rb +4 -5
- data/lib/puppet/pgraph.rb +10 -13
- data/lib/puppet/property.rb +25 -41
- data/lib/puppet/propertychange.rb +0 -2
- data/lib/puppet/provider.rb +15 -11
- data/lib/puppet/provider/cron/crontab.rb +6 -7
- data/lib/puppet/provider/group/groupadd.rb +0 -1
- data/lib/puppet/provider/group/netinfo.rb +0 -1
- data/lib/puppet/provider/group/pw.rb +0 -1
- data/lib/puppet/provider/host/netinfo.rb +0 -1
- data/lib/puppet/provider/host/parsed.rb +0 -1
- data/lib/puppet/provider/interface/redhat.rb +90 -91
- data/lib/puppet/provider/interface/sunos.rb +98 -81
- data/lib/puppet/provider/mailalias/aliases.rb +0 -1
- data/lib/puppet/provider/maillist/mailman.rb +2 -3
- data/lib/puppet/provider/mount.rb +10 -9
- data/lib/puppet/provider/mount/netinfo.rb +0 -1
- data/lib/puppet/provider/mount/parsed.rb +0 -1
- data/lib/puppet/provider/nameservice.rb +0 -1
- data/lib/puppet/provider/nameservice/netinfo.rb +0 -1
- data/lib/puppet/provider/nameservice/objectadd.rb +0 -1
- data/lib/puppet/provider/nameservice/pw.rb +0 -1
- data/lib/puppet/provider/package.rb +0 -2
- data/lib/puppet/provider/package/appdmg.rb +0 -1
- data/lib/puppet/provider/package/apple.rb +0 -1
- data/lib/puppet/provider/package/apt.rb +0 -1
- data/lib/puppet/provider/package/aptitude.rb +0 -1
- data/lib/puppet/provider/package/aptrpm.rb +0 -1
- data/lib/puppet/provider/package/blastwave.rb +0 -1
- data/lib/puppet/provider/package/darwinport.rb +0 -1
- data/lib/puppet/provider/package/dpkg.rb +9 -1
- data/lib/puppet/provider/package/fink.rb +0 -1
- data/lib/puppet/provider/package/freebsd.rb +0 -1
- data/lib/puppet/provider/package/gem.rb +0 -1
- data/lib/puppet/provider/package/openbsd.rb +1 -2
- data/lib/puppet/provider/package/pkgdmg.rb +14 -15
- data/lib/puppet/provider/package/portage.rb +6 -7
- data/lib/puppet/provider/package/ports.rb +1 -4
- data/lib/puppet/provider/package/rpm.rb +31 -45
- data/lib/puppet/provider/package/sun.rb +0 -3
- data/lib/puppet/provider/package/sunfreeware.rb +0 -1
- data/lib/puppet/provider/package/up2date.rb +0 -1
- data/lib/puppet/provider/package/urpmi.rb +0 -1
- data/lib/puppet/provider/package/yum.rb +45 -14
- data/lib/puppet/provider/package/yumhelper.py +37 -0
- data/lib/puppet/provider/parsedfile.rb +2 -3
- data/lib/puppet/provider/port/parsed.rb +0 -1
- data/lib/puppet/provider/service/base.rb +4 -1
- data/lib/puppet/provider/service/debian.rb +5 -2
- data/lib/puppet/provider/service/freebsd.rb +51 -0
- data/lib/puppet/provider/service/init.rb +16 -40
- data/lib/puppet/provider/service/redhat.rb +1 -6
- data/lib/puppet/provider/service/smf.rb +0 -1
- data/lib/puppet/provider/sshkey/parsed.rb +0 -1
- data/lib/puppet/provider/user/netinfo.rb +0 -1
- data/lib/puppet/provider/user/pw.rb +0 -1
- data/lib/puppet/provider/user/useradd.rb +0 -1
- data/lib/puppet/provider/zone/solaris.rb +0 -1
- data/lib/puppet/rails.rb +35 -30
- data/lib/puppet/rails/database/schema.rb +0 -1
- data/lib/puppet/rails/host.rb +6 -15
- data/lib/puppet/rails/param_name.rb +1 -2
- data/lib/puppet/rails/param_value.rb +0 -1
- data/lib/puppet/rails/puppet_class.rb +0 -1
- data/lib/puppet/rails/resource.rb +3 -5
- data/lib/puppet/reference/configuration.rb +12 -6
- data/lib/puppet/reference/indirection.rb +34 -0
- data/lib/puppet/reference/node_source.rb +9 -0
- data/lib/puppet/relationship.rb +10 -8
- data/lib/puppet/reports.rb +51 -0
- data/lib/puppet/reports/log.rb +2 -3
- data/lib/puppet/reports/rrdgraph.rb +2 -5
- data/lib/puppet/reports/store.rb +6 -7
- data/lib/puppet/reports/tagmail.rb +2 -3
- data/lib/puppet/resource_reference.rb +79 -0
- data/lib/puppet/simple_graph.rb +251 -0
- data/lib/puppet/sslcertificates.rb +19 -15
- data/lib/puppet/sslcertificates/ca.rb +56 -15
- data/lib/puppet/sslcertificates/certificate.rb +0 -1
- data/lib/puppet/sslcertificates/inventory.rb +2 -6
- data/lib/puppet/sslcertificates/monkey_patch.rb +6 -0
- data/lib/puppet/sslcertificates/support.rb +4 -5
- data/lib/puppet/transaction.rb +93 -96
- data/lib/puppet/transaction/report.rb +5 -1
- data/lib/puppet/transportable.rb +79 -125
- data/lib/puppet/type.rb +44 -10
- data/lib/puppet/type/component.rb +25 -110
- data/lib/puppet/type/cron.rb +1 -2
- data/lib/puppet/type/exec.rb +19 -13
- data/lib/puppet/type/group.rb +0 -1
- data/lib/puppet/type/host.rb +0 -1
- data/lib/puppet/type/interface.rb +6 -3
- data/lib/puppet/type/k5login.rb +87 -0
- data/lib/puppet/type/mailalias.rb +0 -1
- data/lib/puppet/type/maillist.rb +0 -1
- data/lib/puppet/type/mount.rb +7 -13
- data/lib/puppet/type/notify.rb +0 -1
- data/lib/puppet/type/package.rb +7 -63
- data/lib/puppet/type/pfile.rb +25 -32
- data/lib/puppet/type/pfile/checksum.rb +0 -1
- data/lib/puppet/type/pfile/content.rb +18 -3
- data/lib/puppet/type/pfile/ensure.rb +5 -6
- data/lib/puppet/type/pfile/group.rb +4 -1
- data/lib/puppet/type/pfile/mode.rb +0 -1
- data/lib/puppet/type/pfile/owner.rb +6 -9
- data/lib/puppet/type/pfile/source.rb +28 -11
- data/lib/puppet/type/pfile/target.rb +2 -1
- data/lib/puppet/type/pfile/type.rb +0 -1
- data/lib/puppet/type/pfilebucket.rb +0 -1
- data/lib/puppet/type/port.rb +0 -1
- data/lib/puppet/type/resources.rb +0 -1
- data/lib/puppet/type/schedule.rb +17 -15
- data/lib/puppet/type/service.rb +23 -159
- data/lib/puppet/type/sshkey.rb +0 -1
- data/lib/puppet/type/tidy.rb +15 -7
- data/lib/puppet/type/user.rb +0 -1
- data/lib/puppet/type/zone.rb +0 -1
- data/lib/puppet/util.rb +1 -2
- data/lib/puppet/util/autoload.rb +21 -23
- data/lib/puppet/util/checksums.rb +37 -0
- data/lib/puppet/util/classgen.rb +0 -1
- data/lib/puppet/util/diff.rb +71 -0
- data/lib/puppet/util/docs.rb +8 -2
- data/lib/puppet/util/errors.rb +0 -1
- data/lib/puppet/util/execution.rb +0 -1
- data/lib/puppet/util/fact_store.rb +0 -1
- data/lib/puppet/util/feature.rb +31 -22
- data/lib/puppet/util/fileparsing.rb +3 -2
- data/lib/puppet/util/filetype.rb +30 -12
- data/lib/puppet/util/graph.rb +0 -1
- data/lib/puppet/util/inifile.rb +0 -1
- data/lib/puppet/util/instance_loader.rb +11 -4
- data/lib/puppet/util/loadedfile.rb +0 -1
- data/lib/puppet/util/log.rb +0 -1
- data/lib/puppet/util/log_paths.rb +0 -1
- data/lib/puppet/util/logging.rb +0 -1
- data/lib/puppet/util/metaid.rb +0 -1
- data/lib/puppet/util/methodhelper.rb +0 -2
- data/lib/puppet/util/metric.rb +1 -2
- data/lib/puppet/util/plist.rb +0 -1
- data/lib/puppet/util/plist/generator.rb +0 -1
- data/lib/puppet/util/plist/parser.rb +0 -1
- data/lib/puppet/util/posix.rb +7 -1
- data/lib/puppet/util/provider_features.rb +11 -12
- data/lib/puppet/util/rails/collection_merger.rb +0 -1
- data/lib/puppet/util/reference.rb +2 -3
- data/lib/puppet/util/{config.rb → settings.rb} +424 -300
- data/lib/puppet/util/storage.rb +1 -3
- data/lib/puppet/util/subclass_loader.rb +0 -1
- data/lib/puppet/util/suidmanager.rb +25 -42
- data/lib/puppet/util/uri_helper.rb +22 -0
- data/lib/puppet/util/variables.rb +0 -1
- data/lib/puppet/util/warnings.rb +0 -1
- data/test/Rakefile +1 -1
- data/test/certmgr/ca.rb +8 -2
- data/test/certmgr/certmgr.rb +14 -6
- data/test/certmgr/inventory.rb +18 -30
- data/test/certmgr/support.rb +3 -2
- data/test/executables/filebucket.rb +1 -2
- data/test/executables/puppetbin.rb +1 -2
- data/test/executables/puppetca.rb +7 -2
- data/test/executables/puppetd.rb +23 -29
- data/test/executables/puppetmasterd.rb +1 -2
- data/test/executables/puppetmodule.rb +1 -2
- data/test/language/ast.rb +24 -29
- data/test/language/ast/casestatement.rb +1 -2
- data/test/language/ast/definition.rb +166 -0
- data/test/language/ast/hostclass.rb +50 -29
- data/test/language/ast/resource.rb +59 -0
- data/test/language/ast/{resourceref.rb → resource_reference.rb} +30 -20
- data/test/language/ast/selector.rb +1 -2
- data/test/language/ast/variable.rb +1 -2
- data/test/language/compile.rb +569 -0
- data/test/language/functions.rb +57 -76
- data/test/language/lexer.rb +20 -3
- data/test/language/parser.rb +45 -33
- data/test/language/resource.rb +275 -308
- data/test/language/scope.rb +135 -410
- data/test/language/snippets.rb +19 -41
- data/test/language/transportable.rb +8 -29
- data/test/lib/mocha/auto_verify.rb +6 -6
- data/test/lib/mocha/deprecation.rb +22 -0
- data/test/lib/mocha/exception_raiser.rb +17 -0
- data/test/lib/mocha/expectation.rb +167 -84
- data/test/lib/mocha/infinite_range.rb +4 -6
- data/test/lib/mocha/inspect.rb +3 -1
- data/test/lib/mocha/is_a.rb +9 -0
- data/test/lib/mocha/missing_expectation.rb +27 -0
- data/test/lib/mocha/mock.rb +192 -5
- data/test/lib/mocha/multiple_yields.rb +20 -0
- data/test/lib/mocha/no_yields.rb +11 -0
- data/test/lib/mocha/object.rb +11 -1
- data/test/lib/mocha/parameter_matchers.rb +9 -0
- data/test/lib/mocha/parameter_matchers/all_of.rb +39 -0
- data/test/lib/mocha/parameter_matchers/any_of.rb +44 -0
- data/test/lib/mocha/parameter_matchers/anything.rb +30 -0
- data/test/lib/mocha/parameter_matchers/has_entry.rb +39 -0
- data/test/lib/mocha/parameter_matchers/has_key.rb +39 -0
- data/test/lib/mocha/parameter_matchers/has_value.rb +39 -0
- data/test/lib/mocha/parameter_matchers/includes.rb +37 -0
- data/test/lib/mocha/return_values.rb +31 -0
- data/test/lib/mocha/single_return_value.rb +24 -0
- data/test/lib/mocha/single_yield.rb +18 -0
- data/test/lib/mocha/standalone.rb +2 -0
- data/test/lib/mocha/stub.rb +18 -0
- data/test/lib/mocha/test_case_adapter.rb +3 -3
- data/test/lib/mocha/yield_parameters.rb +31 -0
- data/test/lib/puppettest.rb +38 -20
- data/test/lib/puppettest/certificates.rb +0 -1
- data/test/lib/puppettest/exetest.rb +0 -1
- data/test/lib/puppettest/fakes.rb +0 -1
- data/test/lib/puppettest/fileparsing.rb +8 -15
- data/test/lib/puppettest/filetesting.rb +0 -1
- data/test/lib/puppettest/parsertesting.rb +37 -23
- data/test/lib/puppettest/railstesting.rb +3 -6
- data/test/lib/puppettest/reporttesting.rb +0 -1
- data/test/lib/puppettest/resourcetesting.rb +6 -34
- data/test/lib/puppettest/runnable_test.rb +30 -0
- data/test/lib/puppettest/servertest.rb +2 -3
- data/test/lib/puppettest/support/assertions.rb +13 -41
- data/test/lib/puppettest/support/collection.rb +0 -1
- data/test/lib/puppettest/support/helpers.rb +0 -1
- data/test/lib/puppettest/support/resources.rb +17 -17
- data/test/lib/puppettest/support/utils.rb +45 -27
- data/test/lib/puppettest/testcase.rb +2 -21
- data/test/lib/rake/puppet_test_loader.rb +0 -1
- data/test/lib/rake/puppet_testtask.rb +0 -1
- data/test/network/authconfig.rb +1 -2
- data/test/network/authorization.rb +1 -2
- data/test/network/authstore.rb +1 -2
- data/test/network/client/ca.rb +12 -7
- data/test/network/client/client.rb +17 -22
- data/test/network/client/dipper.rb +1 -2
- data/test/network/client/master.rb +70 -184
- data/test/network/client/resource.rb +9 -2
- data/test/network/client_request.rb +1 -2
- data/test/network/daemon.rb +1 -2
- data/test/network/handler/bucket.rb +2 -31
- data/test/network/handler/ca.rb +9 -3
- data/test/network/handler/configuration.rb +160 -0
- data/test/network/handler/fileserver.rb +24 -5
- data/test/network/handler/handler.rb +1 -2
- data/test/network/handler/master.rb +38 -243
- data/test/network/handler/report.rb +2 -104
- data/test/network/handler/resource.rb +5 -3
- data/test/network/handler/runner.rb +22 -60
- data/test/network/rights.rb +1 -2
- data/test/network/server/mongrel_test.rb +2 -3
- data/test/network/server/webrick.rb +17 -11
- data/test/network/xmlrpc/client.rb +27 -12
- data/test/network/xmlrpc/processor.rb +3 -4
- data/test/network/xmlrpc/server.rb +1 -2
- data/test/network/xmlrpc/webrick_servlet.rb +8 -2
- data/test/other/dsl.rb +2 -4
- data/test/other/events.rb +14 -56
- data/test/other/overrides.rb +3 -6
- data/test/other/propertychange.rb +1 -2
- data/test/other/provider.rb +1 -2
- data/test/other/puppet.rb +1 -2
- data/test/other/relationships.rb +15 -17
- data/test/other/report.rb +14 -20
- data/test/other/transactions.rb +109 -192
- data/test/puppet/conffiles.rb +3 -5
- data/test/puppet/defaults.rb +1 -28
- data/test/puppet/errortest.rb +1 -2
- data/test/puppet/tc_suidmanager.rb +77 -63
- data/test/rails/ast.rb +4 -4
- data/test/rails/configuration.rb +71 -0
- data/test/rails/host.rb +19 -30
- data/test/rails/rails.rb +1 -2
- data/test/rails/railsparameter.rb +3 -4
- data/test/rails/railsresource.rb +6 -5
- data/test/ral/manager/attributes.rb +1 -2
- data/test/ral/manager/instances.rb +3 -3
- data/test/ral/manager/manager.rb +1 -2
- data/test/ral/manager/provider.rb +1 -2
- data/test/ral/manager/type.rb +89 -93
- data/test/ral/providers/cron/crontab.rb +9 -11
- data/test/ral/providers/group.rb +1 -2
- data/test/ral/providers/host/netinfo.rb +1 -2
- data/test/ral/providers/host/parsed.rb +1 -2
- data/test/ral/providers/mailalias/aliases.rb +1 -2
- data/test/ral/providers/mount/netinfo.rb +1 -2
- data/test/ral/providers/nameservice.rb +1 -2
- data/test/ral/providers/package.rb +5 -4
- data/test/ral/providers/package/apt.rb +0 -1
- data/test/ral/providers/package/aptrpm.rb +0 -1
- data/test/ral/providers/parsedfile.rb +1 -2
- data/test/ral/providers/port/parsed.rb +1 -2
- data/test/ral/providers/provider.rb +10 -5
- data/test/ral/providers/service/base.rb +1 -2
- data/test/ral/providers/service/debian.rb +58 -0
- data/test/ral/providers/sshkey/parsed.rb +1 -2
- data/test/ral/providers/user.rb +3 -2
- data/test/ral/providers/user/useradd.rb +0 -1
- data/test/ral/types/basic.rb +4 -9
- data/test/ral/types/cron.rb +6 -12
- data/test/ral/types/exec.rb +6 -7
- data/test/ral/types/file.rb +35 -14
- data/test/ral/types/file/target.rb +6 -5
- data/test/ral/types/filebucket.rb +3 -2
- data/test/ral/types/fileignoresource.rb +10 -42
- data/test/ral/types/filesources.rb +21 -60
- data/test/ral/types/group.rb +3 -3
- data/test/ral/types/host.rb +6 -3
- data/test/ral/types/mailalias.rb +1 -2
- data/test/ral/types/parameter.rb +5 -3
- data/test/ral/types/port.rb +1 -2
- data/test/ral/types/property.rb +3 -3
- data/test/ral/types/resources.rb +1 -2
- data/test/ral/types/service.rb +5 -3
- data/test/ral/types/sshkey.rb +5 -3
- data/test/ral/types/tidy.rb +63 -3
- data/test/ral/types/user.rb +10 -11
- data/test/ral/types/yumrepo.rb +1 -1
- data/test/ral/types/zone.rb +1 -2
- data/test/util/autoload.rb +23 -27
- data/test/util/classgen.rb +1 -2
- data/test/util/execution.rb +1 -2
- data/test/util/features.rb +1 -3
- data/test/util/fileparsing.rb +11 -3
- data/test/util/filetype.rb +1 -2
- data/test/util/inifile.rb +1 -1
- data/test/util/instance_loader.rb +5 -6
- data/test/util/loadedfile.rb +1 -2
- data/test/util/log.rb +1 -2
- data/test/util/metrics.rb +1 -2
- data/test/util/package.rb +1 -2
- data/test/util/posixtest.rb +1 -2
- data/test/util/{config.rb → settings.rb} +123 -265
- data/test/util/storage.rb +1 -2
- data/test/util/subclass_loader.rb +1 -2
- data/test/util/utiltest.rb +1 -111
- metadata +130 -112
- data/ext/tools/passwd2puppet +0 -45
- data/lib/puppet/fact_stores/yaml.rb +0 -42
- data/lib/puppet/network/handler/facts.rb +0 -70
- data/lib/puppet/parser/ast/resourcedef.rb +0 -222
- data/lib/puppet/parser/ast/resourceref.rb +0 -58
- data/test/language/ast/component.rb +0 -142
- data/test/language/collector.rb +0 -179
- data/test/language/interpreter.rb +0 -804
- data/test/language/node.rb +0 -126
- data/test/lib/mocha/mock_methods.rb +0 -122
- data/test/lib/puppettest/graph.rb +0 -41
- data/test/lib/spec.rb +0 -8
- data/test/lib/spec/callback.rb +0 -11
- data/test/lib/spec/callback/callback_container.rb +0 -60
- data/test/lib/spec/callback/extensions/module.rb +0 -24
- data/test/lib/spec/callback/extensions/object.rb +0 -37
- data/test/lib/spec/deprecated.rb +0 -3
- data/test/lib/spec/expectations.rb +0 -59
- data/test/lib/spec/expectations/differs/default.rb +0 -62
- data/test/lib/spec/expectations/errors.rb +0 -6
- data/test/lib/spec/expectations/extensions.rb +0 -3
- data/test/lib/spec/expectations/extensions/object.rb +0 -109
- data/test/lib/spec/expectations/extensions/proc.rb +0 -57
- data/test/lib/spec/expectations/extensions/string_and_symbol.rb +0 -17
- data/test/lib/spec/expectations/handler.rb +0 -47
- data/test/lib/spec/expectations/should.rb +0 -5
- data/test/lib/spec/expectations/should/base.rb +0 -64
- data/test/lib/spec/expectations/should/change.rb +0 -69
- data/test/lib/spec/expectations/should/have.rb +0 -128
- data/test/lib/spec/expectations/should/not.rb +0 -74
- data/test/lib/spec/expectations/should/should.rb +0 -81
- data/test/lib/spec/expectations/sugar.rb +0 -47
- data/test/lib/spec/matchers.rb +0 -160
- data/test/lib/spec/matchers/be.rb +0 -161
- data/test/lib/spec/matchers/be_close.rb +0 -37
- data/test/lib/spec/matchers/change.rb +0 -120
- data/test/lib/spec/matchers/eql.rb +0 -43
- data/test/lib/spec/matchers/equal.rb +0 -43
- data/test/lib/spec/matchers/has.rb +0 -44
- data/test/lib/spec/matchers/have.rb +0 -140
- data/test/lib/spec/matchers/include.rb +0 -50
- data/test/lib/spec/matchers/match.rb +0 -41
- data/test/lib/spec/matchers/raise_error.rb +0 -100
- data/test/lib/spec/matchers/respond_to.rb +0 -35
- data/test/lib/spec/matchers/satisfy.rb +0 -47
- data/test/lib/spec/matchers/throw_symbol.rb +0 -75
- data/test/lib/spec/mocks.rb +0 -232
- data/test/lib/spec/mocks/argument_expectation.rb +0 -132
- data/test/lib/spec/mocks/error_generator.rb +0 -85
- data/test/lib/spec/mocks/errors.rb +0 -10
- data/test/lib/spec/mocks/extensions/object.rb +0 -3
- data/test/lib/spec/mocks/message_expectation.rb +0 -231
- data/test/lib/spec/mocks/methods.rb +0 -40
- data/test/lib/spec/mocks/mock.rb +0 -26
- data/test/lib/spec/mocks/mock_handler.rb +0 -166
- data/test/lib/spec/mocks/order_group.rb +0 -29
- data/test/lib/spec/rake/spectask.rb +0 -173
- data/test/lib/spec/rake/verify_rcov.rb +0 -47
- data/test/lib/spec/runner.rb +0 -132
- data/test/lib/spec/runner/backtrace_tweaker.rb +0 -55
- data/test/lib/spec/runner/command_line.rb +0 -34
- data/test/lib/spec/runner/context.rb +0 -154
- data/test/lib/spec/runner/context_eval.rb +0 -142
- data/test/lib/spec/runner/context_runner.rb +0 -55
- data/test/lib/spec/runner/drb_command_line.rb +0 -21
- data/test/lib/spec/runner/execution_context.rb +0 -17
- data/test/lib/spec/runner/extensions/kernel.rb +0 -17
- data/test/lib/spec/runner/extensions/object.rb +0 -32
- data/test/lib/spec/runner/formatter.rb +0 -5
- data/test/lib/spec/runner/formatter/base_text_formatter.rb +0 -118
- data/test/lib/spec/runner/formatter/html_formatter.rb +0 -219
- data/test/lib/spec/runner/formatter/progress_bar_formatter.rb +0 -27
- data/test/lib/spec/runner/formatter/rdoc_formatter.rb +0 -22
- data/test/lib/spec/runner/formatter/specdoc_formatter.rb +0 -23
- data/test/lib/spec/runner/heckle_runner.rb +0 -71
- data/test/lib/spec/runner/heckle_runner_win.rb +0 -10
- data/test/lib/spec/runner/option_parser.rb +0 -224
- data/test/lib/spec/runner/reporter.rb +0 -105
- data/test/lib/spec/runner/spec_matcher.rb +0 -25
- data/test/lib/spec/runner/spec_parser.rb +0 -41
- data/test/lib/spec/runner/spec_should_raise_handler.rb +0 -74
- data/test/lib/spec/runner/specification.rb +0 -114
- data/test/lib/spec/translator.rb +0 -87
- data/test/lib/spec/version.rb +0 -30
- data/test/network/handler/facts.rb +0 -112
- data/test/other/pgraph.rb +0 -290
- data/test/other/relationship.rb +0 -74
- data/test/puppet/modules.rb +0 -59
- data/test/rails/collection.rb +0 -247
- data/test/rails/interpreter.rb +0 -91
- data/test/ral/providers/mount/parsed.rb +0 -251
- data/test/ral/providers/service.rb +0 -235
- data/test/ral/types/component.rb +0 -113
- data/test/ral/types/interface.rb +0 -40
- data/test/ral/types/mount.rb +0 -362
- data/test/ral/types/package.rb +0 -154
- data/test/ral/types/schedule.rb +0 -357
- data/test/tagging/tagging.rb +0 -170
- data/test/util/fact_store.rb +0 -67
- data/test/util/graph.rb +0 -108
data/test/language/scope.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
|
3
|
+
require File.dirname(__FILE__) + '/../lib/puppettest'
|
4
4
|
|
5
5
|
require 'mocha'
|
6
6
|
require 'puppettest'
|
@@ -27,79 +27,37 @@ class TestScope < Test::Unit::TestCase
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def test_variables
|
30
|
-
|
31
|
-
|
30
|
+
config = mkcompile
|
31
|
+
topscope = config.topscope
|
32
|
+
midscope = config.newscope(topscope)
|
33
|
+
botscope = config.newscope(midscope)
|
32
34
|
|
33
|
-
scopes =
|
34
|
-
vars = []
|
35
|
-
values = {}
|
36
|
-
ovalues = []
|
35
|
+
scopes = {:top => topscope, :mid => midscope, :bot => botscope}
|
37
36
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
var = "var%s" % index
|
44
|
-
value = rand(1000)
|
45
|
-
ovalue = rand(1000)
|
46
|
-
|
47
|
-
ovalues.push ovalue
|
48
|
-
|
49
|
-
vars.push var
|
50
|
-
values[var] = value
|
51
|
-
|
52
|
-
# set the variable in the current scope
|
53
|
-
assert_nothing_raised {
|
54
|
-
scope.setvar(var,value)
|
55
|
-
}
|
37
|
+
# Set a variable in the top and make sure all three can get it
|
38
|
+
topscope.setvar("first", "topval")
|
39
|
+
scopes.each do |name, scope|
|
40
|
+
assert_equal("topval", scope.lookupvar("first", false), "Could not find var in %s" % name)
|
41
|
+
end
|
56
42
|
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
43
|
+
# Now set a var in the midscope and make sure the mid and bottom can see it but not the top
|
44
|
+
midscope.setvar("second", "midval")
|
45
|
+
assert_equal(:undefined, scopes[:top].lookupvar("second", false), "Found child var in top scope")
|
46
|
+
[:mid, :bot].each do |name|
|
47
|
+
assert_equal("midval", scopes[name].lookupvar("second", false), "Could not find var in %s" % name)
|
48
|
+
end
|
61
49
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
val = nil
|
69
|
-
oval = nil
|
70
|
-
|
71
|
-
# look up the values using the bottom scope
|
72
|
-
assert_nothing_raised {
|
73
|
-
val = scope.lookupvar(v)
|
74
|
-
oval = scope.lookupvar(over)
|
75
|
-
}
|
76
|
-
|
77
|
-
# verify they're correct
|
78
|
-
assert_equal(values[v],val)
|
79
|
-
assert_equal(ovalue,oval)
|
80
|
-
|
81
|
-
# verify that we get the most recent value
|
82
|
-
assert_equal(ovalue,scope.lookupvar(over))
|
83
|
-
|
84
|
-
# verify that they aren't available in upper scopes
|
85
|
-
if parent = s.parent
|
86
|
-
val = nil
|
87
|
-
assert_nothing_raised {
|
88
|
-
val = parent.lookupvar(v)
|
89
|
-
}
|
90
|
-
assert_equal("", val, "Did not get empty string on missing var")
|
91
|
-
|
92
|
-
# and verify that the parent sees its correct value
|
93
|
-
assert_equal(ovalues[i - 1],parent.lookupvar(over))
|
94
|
-
end
|
95
|
-
i += 1
|
96
|
-
}
|
97
|
-
}
|
50
|
+
# And set something in the bottom, and make sure we only find it there.
|
51
|
+
botscope.setvar("third", "botval")
|
52
|
+
[:top, :mid].each do |name|
|
53
|
+
assert_equal(:undefined, scopes[name].lookupvar("third", false), "Found child var in top scope")
|
54
|
+
end
|
55
|
+
assert_equal("botval", scopes[:bot].lookupvar("third", false), "Could not find var in bottom scope")
|
98
56
|
end
|
99
57
|
|
100
58
|
def test_lookupvar
|
101
|
-
|
102
|
-
scope = mkscope :
|
59
|
+
parser = mkparser
|
60
|
+
scope = mkscope :parser => parser
|
103
61
|
|
104
62
|
# first do the plain lookups
|
105
63
|
assert_equal("", scope.lookupvar("var"), "scope did not default to string")
|
@@ -111,7 +69,7 @@ class TestScope < Test::Unit::TestCase
|
|
111
69
|
assert_equal("yep", scope.lookupvar("var"), "did not retrieve value correctly")
|
112
70
|
|
113
71
|
# Now test the parent lookups
|
114
|
-
subscope = mkscope :
|
72
|
+
subscope = mkscope :parser => parser
|
115
73
|
subscope.parent = scope
|
116
74
|
assert_equal("", subscope.lookupvar("nope"), "scope did not default to string with parent")
|
117
75
|
assert_equal("", subscope.lookupvar("nope", true), "scope ignored usestring setting with parent")
|
@@ -129,14 +87,14 @@ class TestScope < Test::Unit::TestCase
|
|
129
87
|
end
|
130
88
|
|
131
89
|
def test_lookup_qualified_var
|
132
|
-
|
133
|
-
scope = mkscope :
|
90
|
+
parser = mkparser
|
91
|
+
scope = mkscope :parser => parser
|
134
92
|
|
135
93
|
scopes = {}
|
136
94
|
classes = ["", "one", "one::two", "one::two::three"].each do |name|
|
137
|
-
klass =
|
138
|
-
|
139
|
-
scopes[name] = scope.class_scope(klass)
|
95
|
+
klass = parser.newclass(name)
|
96
|
+
Puppet::Parser::Resource.new(:type => "class", :title => name, :scope => scope, :source => mock('source')).evaluate
|
97
|
+
scopes[name] = scope.compile.class_scope(klass)
|
140
98
|
end
|
141
99
|
|
142
100
|
classes.each do |name|
|
@@ -149,7 +107,7 @@ class TestScope < Test::Unit::TestCase
|
|
149
107
|
|
150
108
|
def test_declarative
|
151
109
|
# set to declarative
|
152
|
-
top = mkscope
|
110
|
+
top = mkscope
|
153
111
|
sub = mkscope(:parent => top)
|
154
112
|
|
155
113
|
assert_nothing_raised {
|
@@ -166,97 +124,78 @@ class TestScope < Test::Unit::TestCase
|
|
166
124
|
}
|
167
125
|
end
|
168
126
|
|
169
|
-
def
|
170
|
-
|
171
|
-
top = mkscope(:declarative => false)
|
172
|
-
sub = mkscope(:parent => top)
|
127
|
+
def test_setdefaults
|
128
|
+
config = mkcompile
|
173
129
|
|
174
|
-
|
175
|
-
top.setvar("test","value")
|
176
|
-
}
|
177
|
-
assert_nothing_raised {
|
178
|
-
top.setvar("test","other")
|
179
|
-
}
|
180
|
-
assert_nothing_raised {
|
181
|
-
sub.setvar("test","later")
|
182
|
-
}
|
183
|
-
assert_nothing_raised {
|
184
|
-
sub.setvar("test","yayness")
|
185
|
-
}
|
186
|
-
end
|
130
|
+
scope = config.topscope
|
187
131
|
|
188
|
-
|
189
|
-
interp, scope, source = mkclassframing
|
132
|
+
defaults = scope.instance_variable_get("@defaults")
|
190
133
|
|
191
|
-
#
|
192
|
-
|
134
|
+
# First the case where there are no defaults and we pass a single param
|
135
|
+
param = stub :name => "myparam", :file => "f", :line => "l"
|
136
|
+
scope.setdefaults(:mytype, param)
|
137
|
+
assert_equal({"myparam" => param}, defaults[:mytype], "Did not set default correctly")
|
193
138
|
|
194
|
-
#
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
scope.setdefaults(:file, params)
|
200
|
-
end
|
139
|
+
# Now the case where we pass in multiple parameters
|
140
|
+
param1 = stub :name => "one", :file => "f", :line => "l"
|
141
|
+
param2 = stub :name => "two", :file => "f", :line => "l"
|
142
|
+
scope.setdefaults(:newtype, [param1, param2])
|
143
|
+
assert_equal({"one" => param1, "two" => param2}, defaults[:newtype], "Did not set multiple defaults correctly")
|
201
144
|
|
202
|
-
|
203
|
-
|
204
|
-
|
145
|
+
# And the case where there's actually a conflict. Use the first default for this.
|
146
|
+
newparam = stub :name => "myparam", :file => "f", :line => "l"
|
147
|
+
assert_raise(Puppet::ParseError, "Allowed resetting of defaults") do
|
148
|
+
scope.setdefaults(:mytype, param)
|
205
149
|
end
|
150
|
+
assert_equal({"myparam" => param}, defaults[:mytype], "Replaced default even though there was a failure")
|
151
|
+
end
|
206
152
|
|
207
|
-
|
153
|
+
def test_lookupdefaults
|
154
|
+
config = mkcompile
|
155
|
+
top = config.topscope
|
208
156
|
|
209
|
-
#
|
210
|
-
|
157
|
+
# Make a subscope
|
158
|
+
sub = config.newscope(top)
|
211
159
|
|
212
|
-
|
213
|
-
|
214
|
-
newscope.setdefaults(:file, newparams)
|
215
|
-
}
|
160
|
+
topdefs = top.instance_variable_get("@defaults")
|
161
|
+
subdefs = sub.instance_variable_get("@defaults")
|
216
162
|
|
217
|
-
#
|
218
|
-
|
219
|
-
|
220
|
-
newparams.each do |p| should[p.name] = p end
|
163
|
+
# First add some defaults to our top scope
|
164
|
+
topdefs[:t1] = {:p1 => :p2, :p3 => :p4}
|
165
|
+
topdefs[:t2] = {:p5 => :p6}
|
221
166
|
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
assert_equal(should, ret)
|
167
|
+
# Then the sub scope
|
168
|
+
subdefs[:t1] = {:p1 => :p7, :p8 => :p9}
|
169
|
+
subdefs[:t2] = {:p5 => :p10, :p11 => :p12}
|
227
170
|
|
228
|
-
#
|
229
|
-
|
230
|
-
|
171
|
+
# Now make sure we get the correct list back
|
172
|
+
result = nil
|
173
|
+
assert_nothing_raised("Could not get defaults") do
|
174
|
+
result = sub.lookupdefaults(:t1)
|
231
175
|
end
|
176
|
+
assert_equal(:p9, result[:p8], "Did not get child defaults")
|
177
|
+
assert_equal(:p4, result[:p3], "Did not override parent defaults with child default")
|
178
|
+
assert_equal(:p7, result[:p1], "Did not get parent defaults")
|
179
|
+
end
|
232
180
|
|
233
|
-
|
181
|
+
def test_parent
|
182
|
+
config = mkcompile
|
183
|
+
top = config.topscope
|
234
184
|
|
235
|
-
#
|
236
|
-
|
237
|
-
assert_equal(origshould, otherscope.lookupdefaults(:file))
|
185
|
+
# Make a subscope
|
186
|
+
sub = config.newscope(top)
|
238
187
|
|
239
|
-
|
240
|
-
|
241
|
-
assert_equal({}, sc.lookupdefaults(:exec))
|
242
|
-
end
|
188
|
+
assert_equal(top, sub.parent, "Did not find parent scope correctly")
|
189
|
+
assert_equal(top, sub.parent, "Did not find parent scope on second call")
|
243
190
|
end
|
244
191
|
|
245
192
|
def test_strinterp
|
246
193
|
# Make and evaluate our classes so the qualified lookups work
|
247
|
-
|
248
|
-
klass =
|
249
|
-
scope = mkscope(:
|
250
|
-
|
194
|
+
parser = mkparser
|
195
|
+
klass = parser.newclass("")
|
196
|
+
scope = mkscope(:parser => parser)
|
197
|
+
Puppet::Parser::Resource.new(:type => "class", :title => :main, :scope => scope, :source => mock('source')).evaluate
|
251
198
|
|
252
|
-
klass = interp.newclass("one")
|
253
|
-
klass.evaluate(:scope => scope)
|
254
|
-
|
255
|
-
klass = interp.newclass("one::two")
|
256
|
-
klass.evaluate(:scope => scope)
|
257
|
-
|
258
|
-
|
259
|
-
scope = scope.class_scope("")
|
260
199
|
assert_nothing_raised {
|
261
200
|
scope.setvar("test","value")
|
262
201
|
}
|
@@ -264,9 +203,9 @@ class TestScope < Test::Unit::TestCase
|
|
264
203
|
scopes = {"" => scope}
|
265
204
|
|
266
205
|
%w{one one::two one::two::three}.each do |name|
|
267
|
-
klass =
|
268
|
-
|
269
|
-
scopes[name] = scope.class_scope(klass)
|
206
|
+
klass = parser.newclass(name)
|
207
|
+
Puppet::Parser::Resource.new(:type => "class", :title => name, :scope => scope, :source => mock('source')).evaluate
|
208
|
+
scopes[name] = scope.compile.class_scope(klass)
|
270
209
|
scopes[name].setvar("test", "value-%s" % name.sub(/.+::/,''))
|
271
210
|
end
|
272
211
|
|
@@ -298,7 +237,7 @@ class TestScope < Test::Unit::TestCase
|
|
298
237
|
tests.each do |input, output|
|
299
238
|
assert_nothing_raised("Failed to scan %s" % input.inspect) do
|
300
239
|
assert_equal(output, scope.strinterp(input),
|
301
|
-
'did not
|
240
|
+
'did not parserret %s correctly' % input.inspect)
|
302
241
|
end
|
303
242
|
end
|
304
243
|
|
@@ -311,7 +250,7 @@ class TestScope < Test::Unit::TestCase
|
|
311
250
|
string = "\\" + l
|
312
251
|
assert_nothing_raised do
|
313
252
|
assert_equal(string, scope.strinterp(string),
|
314
|
-
'did not
|
253
|
+
'did not parserret %s correctly' % string)
|
315
254
|
end
|
316
255
|
|
317
256
|
assert(logs.detect { |m| m.message =~ /Unrecognised escape/ },
|
@@ -320,83 +259,21 @@ class TestScope < Test::Unit::TestCase
|
|
320
259
|
end
|
321
260
|
end
|
322
261
|
|
323
|
-
def test_setclass
|
324
|
-
interp, scope, source = mkclassframing
|
325
|
-
|
326
|
-
base = scope.findclass("base")
|
327
|
-
assert(base, "Could not find base class")
|
328
|
-
assert(! scope.class_scope(base), "Class incorrectly set")
|
329
|
-
assert(! scope.classlist.include?("base"), "Class incorrectly in classlist")
|
330
|
-
assert_nothing_raised do
|
331
|
-
scope.setclass base
|
332
|
-
end
|
333
|
-
|
334
|
-
assert(scope.class_scope(base), "Class incorrectly unset")
|
335
|
-
assert(scope.classlist.include?("base"), "Class not in classlist")
|
336
|
-
|
337
|
-
# Make sure we can retrieve the scope.
|
338
|
-
assert_equal(scope, scope.class_scope(base),
|
339
|
-
"class scope was not set correctly")
|
340
|
-
|
341
|
-
# Now try it with a normal string
|
342
|
-
Puppet[:trace] = false
|
343
|
-
assert_raise(Puppet::DevError) do
|
344
|
-
scope.setclass "string"
|
345
|
-
end
|
346
|
-
|
347
|
-
assert(! scope.class_scope("string"), "string incorrectly set")
|
348
|
-
|
349
|
-
# Set "" in the class list, and make sure it doesn't show up in the return
|
350
|
-
top = scope.findclass("")
|
351
|
-
assert(top, "Could not find top class")
|
352
|
-
scope.setclass top
|
353
|
-
|
354
|
-
assert(! scope.classlist.include?(""), "Class list included empty")
|
355
|
-
end
|
356
|
-
|
357
|
-
def test_validtags
|
358
|
-
scope = mkscope()
|
359
|
-
|
360
|
-
["a class", "a.class"].each do |bad|
|
361
|
-
assert_raise(Puppet::ParseError, "Incorrectly allowed %s" % bad.inspect) do
|
362
|
-
scope.tag(bad)
|
363
|
-
end
|
364
|
-
end
|
365
|
-
|
366
|
-
["a-class", "a_class", "Class", "class", "yayNess"].each do |good|
|
367
|
-
assert_nothing_raised("Incorrectly banned %s" % good.inspect) do
|
368
|
-
scope.tag(good)
|
369
|
-
end
|
370
|
-
end
|
371
|
-
|
372
|
-
end
|
373
|
-
|
374
262
|
def test_tagfunction
|
375
|
-
scope = mkscope
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
}
|
380
|
-
|
381
|
-
assert(scope.tags.include?("yayness"), "tag 'yayness' did not get set")
|
382
|
-
assert(scope.tags.include?("booness"), "tag 'booness' did not get set")
|
383
|
-
|
384
|
-
# Now verify that the 'tagged' function works correctly
|
385
|
-
assert(scope.function_tagged("yayness"),
|
386
|
-
"tagged function incorrectly returned false")
|
387
|
-
assert(scope.function_tagged("booness"),
|
388
|
-
"tagged function incorrectly returned false")
|
263
|
+
scope = mkscope
|
264
|
+
resource = mock 'resource'
|
265
|
+
scope.resource = resource
|
266
|
+
resource.expects(:tag).with("yayness", "booness")
|
389
267
|
|
390
|
-
|
391
|
-
"tagged function incorrectly returned true")
|
268
|
+
scope.function_tag(%w{yayness booness})
|
392
269
|
end
|
393
270
|
|
394
271
|
def test_includefunction
|
395
|
-
|
396
|
-
scope = mkscope :
|
272
|
+
parser = mkparser
|
273
|
+
scope = mkscope :parser => parser
|
397
274
|
|
398
|
-
myclass =
|
399
|
-
otherclass =
|
275
|
+
myclass = parser.newclass "myclass"
|
276
|
+
otherclass = parser.newclass "otherclass"
|
400
277
|
|
401
278
|
function = Puppet::Parser::AST::Function.new(
|
402
279
|
:name => "include",
|
@@ -410,19 +287,21 @@ class TestScope < Test::Unit::TestCase
|
|
410
287
|
function.evaluate :scope => scope
|
411
288
|
end
|
412
289
|
|
290
|
+
scope.compile.send(:evaluate_generators)
|
291
|
+
|
413
292
|
[myclass, otherclass].each do |klass|
|
414
|
-
assert(scope.class_scope(klass),
|
293
|
+
assert(scope.compile.class_scope(klass),
|
415
294
|
"%s was not set" % klass.classname)
|
416
295
|
end
|
417
296
|
end
|
418
297
|
|
419
298
|
def test_definedfunction
|
420
|
-
|
299
|
+
parser = mkparser
|
421
300
|
%w{one two}.each do |name|
|
422
|
-
|
301
|
+
parser.newdefine name
|
423
302
|
end
|
424
303
|
|
425
|
-
scope = mkscope :
|
304
|
+
scope = mkscope :parser => parser
|
426
305
|
|
427
306
|
assert_nothing_raised {
|
428
307
|
%w{one two file user}.each do |type|
|
@@ -449,62 +328,19 @@ class TestScope < Test::Unit::TestCase
|
|
449
328
|
"undef considered true")
|
450
329
|
end
|
451
330
|
|
452
|
-
# Verify scope context is handled correctly.
|
453
|
-
def test_scopeinside
|
454
|
-
scope = mkscope()
|
455
|
-
|
456
|
-
one = :one
|
457
|
-
two = :two
|
458
|
-
|
459
|
-
# First just test the basic functionality.
|
460
|
-
assert_nothing_raised {
|
461
|
-
scope.inside :one do
|
462
|
-
assert_equal(:one, scope.inside, "Context did not get set")
|
463
|
-
end
|
464
|
-
assert_nil(scope.inside, "Context did not revert")
|
465
|
-
}
|
466
|
-
|
467
|
-
# Now make sure error settings work.
|
468
|
-
assert_raise(RuntimeError) {
|
469
|
-
scope.inside :one do
|
470
|
-
raise RuntimeError, "This is a failure, yo"
|
471
|
-
end
|
472
|
-
}
|
473
|
-
assert_nil(scope.inside, "Context did not revert")
|
474
|
-
|
475
|
-
# Now test it a bit deeper in.
|
476
|
-
assert_nothing_raised {
|
477
|
-
scope.inside :one do
|
478
|
-
scope.inside :two do
|
479
|
-
assert_equal(:two, scope.inside, "Context did not get set")
|
480
|
-
end
|
481
|
-
assert_equal(:one, scope.inside, "Context did not get set")
|
482
|
-
end
|
483
|
-
assert_nil(scope.inside, "Context did not revert")
|
484
|
-
}
|
485
|
-
|
486
|
-
# And lastly, check errors deeper in
|
487
|
-
assert_nothing_raised {
|
488
|
-
scope.inside :one do
|
489
|
-
begin
|
490
|
-
scope.inside :two do
|
491
|
-
raise "a failure"
|
492
|
-
end
|
493
|
-
rescue
|
494
|
-
end
|
495
|
-
assert_equal(:one, scope.inside, "Context did not get set")
|
496
|
-
end
|
497
|
-
assert_nil(scope.inside, "Context did not revert")
|
498
|
-
}
|
499
|
-
|
500
|
-
end
|
501
|
-
|
502
331
|
if defined? ActiveRecord
|
503
332
|
# Verify that we recursively mark as exported the results of collectable
|
504
333
|
# components.
|
505
334
|
def test_exportedcomponents
|
506
|
-
|
507
|
-
|
335
|
+
config = mkcompile
|
336
|
+
parser = config.parser
|
337
|
+
|
338
|
+
# Create a default source
|
339
|
+
config.topscope.source = parser.newclass "", ""
|
340
|
+
|
341
|
+
# And a scope resource
|
342
|
+
scope_res = stub 'scope_resource', :virtual? => true, :exported? => false, :tags => []
|
343
|
+
config.topscope.resource = scope_res
|
508
344
|
|
509
345
|
args = AST::ASTArray.new(
|
510
346
|
:file => tempfile(),
|
@@ -513,7 +349,7 @@ class TestScope < Test::Unit::TestCase
|
|
513
349
|
)
|
514
350
|
|
515
351
|
# Create a top-level component
|
516
|
-
|
352
|
+
parser.newdefine "one", :arguments => [%w{arg}],
|
517
353
|
:code => AST::ASTArray.new(
|
518
354
|
:children => [
|
519
355
|
resourcedef("file", "/tmp", {"owner" => varref("arg")})
|
@@ -521,7 +357,7 @@ class TestScope < Test::Unit::TestCase
|
|
521
357
|
)
|
522
358
|
|
523
359
|
# And a component that calls it
|
524
|
-
|
360
|
+
parser.newdefine "two", :arguments => [%w{arg}],
|
525
361
|
:code => AST::ASTArray.new(
|
526
362
|
:children => [
|
527
363
|
resourcedef("one", "ptest", {"arg" => varref("arg")})
|
@@ -529,7 +365,7 @@ class TestScope < Test::Unit::TestCase
|
|
529
365
|
)
|
530
366
|
|
531
367
|
# And then a third component that calls the second
|
532
|
-
|
368
|
+
parser.newdefine "three", :arguments => [%w{arg}],
|
533
369
|
:code => AST::ASTArray.new(
|
534
370
|
:children => [
|
535
371
|
resourcedef("two", "yay", {"arg" => varref("arg")})
|
@@ -542,13 +378,14 @@ class TestScope < Test::Unit::TestCase
|
|
542
378
|
# And mark it as exported
|
543
379
|
obj.exported = true
|
544
380
|
|
545
|
-
obj.evaluate :scope => scope
|
546
|
-
|
547
381
|
# And then evaluate it
|
548
|
-
|
382
|
+
obj.evaluate :scope => config.topscope
|
549
383
|
|
550
|
-
|
551
|
-
|
384
|
+
# And run the loop.
|
385
|
+
config.send(:evaluate_generators)
|
386
|
+
|
387
|
+
%w{File}.each do |type|
|
388
|
+
objects = config.resources.find_all { |r| r.type == type and r.exported }
|
552
389
|
|
553
390
|
assert(!objects.empty?, "Did not get an exported %s" % type)
|
554
391
|
end
|
@@ -562,35 +399,30 @@ class TestScope < Test::Unit::TestCase
|
|
562
399
|
Puppet::Rails.init
|
563
400
|
sleep 1
|
564
401
|
children = []
|
565
|
-
|
566
|
-
File.open(file, "w") { |f|
|
567
|
-
f.puts "
|
402
|
+
Puppet[:code] = "
|
568
403
|
class yay {
|
569
404
|
@@host { myhost: ip => \"192.168.0.2\" }
|
570
405
|
}
|
571
406
|
include yay
|
572
407
|
@@host { puppet: ip => \"192.168.0.3\" }
|
573
408
|
Host <<||>>"
|
574
|
-
}
|
575
409
|
|
576
410
|
interp = nil
|
577
411
|
assert_nothing_raised {
|
578
|
-
interp = Puppet::Parser::Interpreter.new
|
579
|
-
:Manifest => file,
|
580
|
-
:UseNodes => false,
|
581
|
-
:ForkSave => false
|
582
|
-
)
|
412
|
+
interp = Puppet::Parser::Interpreter.new
|
583
413
|
}
|
584
414
|
|
585
|
-
|
415
|
+
config = nil
|
586
416
|
# We run it twice because we want to make sure there's no conflict
|
587
417
|
# if we pull it up from the database.
|
418
|
+
node = mknode
|
419
|
+
node.parameters = {"hostname" => node.name}
|
588
420
|
2.times { |i|
|
589
421
|
assert_nothing_raised {
|
590
|
-
|
422
|
+
config = interp.compile(node)
|
591
423
|
}
|
592
424
|
|
593
|
-
flat =
|
425
|
+
flat = config.extract.flatten
|
594
426
|
|
595
427
|
%w{puppet myhost}.each do |name|
|
596
428
|
assert(flat.find{|o| o.name == name }, "Did not find #{name}")
|
@@ -601,94 +433,8 @@ Host <<||>>"
|
|
601
433
|
$stderr.puts "No ActiveRecord -- skipping collection tests"
|
602
434
|
end
|
603
435
|
|
604
|
-
# Make sure tags behave appropriately.
|
605
|
-
def test_tags
|
606
|
-
interp, scope, source = mkclassframing
|
607
|
-
|
608
|
-
# First make sure we can only set legal tags
|
609
|
-
["an invalid tag", "-anotherinvalid", "bad*tag"].each do |tag|
|
610
|
-
assert_raise(Puppet::ParseError, "Tag #{tag} was considered valid") do
|
611
|
-
scope.tag tag
|
612
|
-
end
|
613
|
-
end
|
614
|
-
|
615
|
-
# Now make sure good tags make it through.
|
616
|
-
tags = %w{good-tag yaytag GoodTag another_tag a ab A}
|
617
|
-
tags.each do |tag|
|
618
|
-
assert_nothing_raised("Tag #{tag} was considered invalid") do
|
619
|
-
scope.tag tag
|
620
|
-
end
|
621
|
-
end
|
622
|
-
|
623
|
-
# And make sure we get each of them.
|
624
|
-
ptags = scope.tags
|
625
|
-
tags.each do |tag|
|
626
|
-
assert(ptags.include?(tag), "missing #{tag}")
|
627
|
-
end
|
628
|
-
|
629
|
-
|
630
|
-
# Now create a subscope and set some tags there
|
631
|
-
newscope = scope.newscope(:type => 'subscope')
|
632
|
-
|
633
|
-
# set some tags
|
634
|
-
newscope.tag "onemore", "yaytag"
|
635
|
-
|
636
|
-
# And make sure we get them plus our parent tags
|
637
|
-
assert_equal((ptags + %w{onemore subscope}).sort, newscope.tags.sort)
|
638
|
-
end
|
639
|
-
|
640
|
-
# Make sure we successfully translate objects
|
641
|
-
def test_translate
|
642
|
-
interp, scope, source = mkclassframing
|
643
|
-
|
644
|
-
# Create a define that we'll be using
|
645
|
-
interp.newdefine("wrapper", :code => AST::ASTArray.new(:children => [
|
646
|
-
resourcedef("file", varref("name"), "owner" => "root")
|
647
|
-
]))
|
648
|
-
|
649
|
-
# Now create a resource that uses that define
|
650
|
-
define = mkresource(:type => "wrapper", :title => "/tmp/testing",
|
651
|
-
:scope => scope, :source => source, :params => :none)
|
652
|
-
|
653
|
-
scope.setresource define
|
654
|
-
|
655
|
-
# And a normal resource
|
656
|
-
scope.setresource mkresource(:type => "file", :title => "/tmp/rahness",
|
657
|
-
:scope => scope, :source => source,
|
658
|
-
:params => {:owner => "root"})
|
659
|
-
|
660
|
-
# Evaluate the the define thing.
|
661
|
-
define.evaluate
|
662
|
-
|
663
|
-
# Now the scope should have a resource and a subscope. Translate the
|
664
|
-
# whole thing.
|
665
|
-
ret = nil
|
666
|
-
assert_nothing_raised do
|
667
|
-
ret = scope.translate
|
668
|
-
end
|
669
|
-
|
670
|
-
assert_instance_of(Puppet::TransBucket, ret)
|
671
|
-
|
672
|
-
ret.each do |obj|
|
673
|
-
assert(obj.is_a?(Puppet::TransBucket) || obj.is_a?(Puppet::TransObject),
|
674
|
-
"Got a non-transportable object %s" % obj.class)
|
675
|
-
end
|
676
|
-
|
677
|
-
rahness = ret.find { |c| c.type == "file" and c.name == "/tmp/rahness" }
|
678
|
-
assert(rahness, "Could not find top-level file")
|
679
|
-
assert_equal("root", rahness["owner"])
|
680
|
-
|
681
|
-
bucket = ret.find { |c| c.class == Puppet::TransBucket and c.name == "/tmp/testing" }
|
682
|
-
assert(bucket, "Could not find define bucket")
|
683
|
-
|
684
|
-
testing = bucket.find { |c| c.type == "file" and c.name == "/tmp/testing" }
|
685
|
-
assert(testing, "Could not find define file")
|
686
|
-
assert_equal("root", testing["owner"])
|
687
|
-
|
688
|
-
end
|
689
|
-
|
690
436
|
def test_namespaces
|
691
|
-
|
437
|
+
scope = mkscope
|
692
438
|
|
693
439
|
assert_equal([""], scope.namespaces,
|
694
440
|
"Started out with incorrect namespaces")
|
@@ -701,17 +447,17 @@ Host <<||>>"
|
|
701
447
|
end
|
702
448
|
|
703
449
|
def test_findclass_and_finddefine
|
704
|
-
|
450
|
+
parser = mkparser
|
705
451
|
|
706
|
-
# Make sure our scope calls the
|
452
|
+
# Make sure our scope calls the parser findclass method with
|
707
453
|
# the right namespaces
|
708
|
-
scope = mkscope :
|
454
|
+
scope = mkscope :parser => parser
|
709
455
|
|
710
|
-
|
456
|
+
parser.metaclass.send(:attr_accessor, :last)
|
711
457
|
|
712
458
|
methods = [:findclass, :finddefine]
|
713
459
|
methods.each do |m|
|
714
|
-
|
460
|
+
parser.meta_def(m) do |namespace, name|
|
715
461
|
@checked ||= []
|
716
462
|
@checked << [namespace, name]
|
717
463
|
|
@@ -727,7 +473,7 @@ Host <<||>>"
|
|
727
473
|
end
|
728
474
|
|
729
475
|
test = proc do |should|
|
730
|
-
|
476
|
+
parser.last = scope.namespaces[-1]
|
731
477
|
methods.each do |method|
|
732
478
|
result = scope.send(method, "testing")
|
733
479
|
assert_equal(should, result,
|
@@ -760,26 +506,5 @@ Host <<||>>"
|
|
760
506
|
assert_equal("", scope.lookupvar("testing", true),
|
761
507
|
"undef was not returned as '' when string")
|
762
508
|
end
|
763
|
-
|
764
|
-
# #620 - Nodes and classes should conflict, else classes don't get evaluated
|
765
|
-
def test_nodes_and_classes_name_conflict
|
766
|
-
scope = mkscope
|
767
|
-
|
768
|
-
node = AST::Node.new :classname => "test", :namespace => ""
|
769
|
-
scope.setclass(node)
|
770
|
-
|
771
|
-
assert(scope.nodescope?, "Scope was not marked a node scope when a node was set")
|
772
|
-
|
773
|
-
# Now make a subscope that will be a class scope
|
774
|
-
klass = AST::HostClass.new :classname => "test", :namespace => ""
|
775
|
-
kscope = klass.subscope(scope)
|
776
|
-
|
777
|
-
# Now make sure we throw a failure, because we're trying to do a class and node
|
778
|
-
# with the same name
|
779
|
-
assert_raise(Puppet::ParseError, "Did not fail on class and node with same name") do
|
780
|
-
kscope.class_scope(klass)
|
781
|
-
end
|
782
|
-
end
|
783
509
|
end
|
784
510
|
|
785
|
-
# $Id: scope.rb 2646 2007-07-04 21:06:26Z luke $
|