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/functions.rb
CHANGED
@@ -1,9 +1,8 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
|
3
|
+
require File.dirname(__FILE__) + '/../lib/puppettest'
|
4
4
|
|
5
5
|
require 'puppet'
|
6
|
-
require 'puppet/parser/interpreter'
|
7
6
|
require 'puppet/parser/parser'
|
8
7
|
require 'puppet/network/client'
|
9
8
|
require 'puppettest'
|
@@ -50,10 +49,9 @@ class TestLangFunctions < Test::Unit::TestCase
|
|
50
49
|
|
51
50
|
def test_taggedfunction
|
52
51
|
scope = mkscope
|
52
|
+
scope.resource.tag("yayness")
|
53
53
|
|
54
|
-
|
55
|
-
scope.tag(tag)
|
56
|
-
|
54
|
+
# Make sure the ast stuff does what it's supposed to
|
57
55
|
{"yayness" => true, "booness" => false}.each do |tag, retval|
|
58
56
|
func = taggedobj(tag, :rvalue)
|
59
57
|
|
@@ -64,6 +62,12 @@ class TestLangFunctions < Test::Unit::TestCase
|
|
64
62
|
|
65
63
|
assert_equal(retval, val, "'tagged' returned %s for %s" % [val, tag])
|
66
64
|
end
|
65
|
+
|
66
|
+
# Now make sure we correctly get tags.
|
67
|
+
scope.resource.tag("resourcetag")
|
68
|
+
assert(scope.function_tagged("resourcetag"), "tagged function did not catch resource tags")
|
69
|
+
scope.compile.catalog.tag("configtag")
|
70
|
+
assert(scope.function_tagged("configtag"), "tagged function did not catch catalog tags")
|
67
71
|
end
|
68
72
|
|
69
73
|
def test_failfunction
|
@@ -198,30 +202,30 @@ class TestLangFunctions < Test::Unit::TestCase
|
|
198
202
|
f.puts "original text"
|
199
203
|
end
|
200
204
|
|
201
|
-
manifest = tempfile()
|
202
205
|
file = tempfile()
|
203
|
-
File.open(manifest, "w") do |f|
|
204
|
-
f.puts %{file { "#{file}": content => template("#{template}") }}
|
205
|
-
end
|
206
206
|
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
207
|
+
Puppet[:code] = %{file { "#{file}": content => template("#{template}") }}
|
208
|
+
Puppet[:environments] = "yay"
|
209
|
+
interp = Puppet::Parser::Interpreter.new
|
210
|
+
node = mknode
|
211
|
+
node.stubs(:environment).returns("yay")
|
211
212
|
|
212
|
-
|
213
|
+
Puppet[:environment] = "yay"
|
213
214
|
|
214
|
-
|
215
|
+
catalog = nil
|
215
216
|
assert_nothing_raised {
|
216
|
-
|
217
|
+
catalog = interp.compile(node)
|
217
218
|
}
|
218
219
|
|
219
|
-
|
220
|
+
version = catalog.version
|
221
|
+
|
222
|
+
fileobj = catalog.vertices.find { |r| r.title == file }
|
223
|
+
assert(fileobj, "File was not in catalog")
|
220
224
|
|
221
225
|
assert_equal("original text\n", fileobj["content"],
|
222
226
|
"Template did not work")
|
223
227
|
|
224
|
-
Puppet[:filetimeout] =
|
228
|
+
Puppet[:filetimeout] = -5
|
225
229
|
# Have to sleep because one second is the fs's time granularity.
|
226
230
|
sleep(1)
|
227
231
|
|
@@ -230,12 +234,9 @@ class TestLangFunctions < Test::Unit::TestCase
|
|
230
234
|
f.puts "new text"
|
231
235
|
end
|
232
236
|
|
233
|
-
|
234
|
-
objects = interpreter.run("myhost", {})
|
235
|
-
}
|
236
|
-
newdate = interpreter.parsedate()
|
237
|
+
newversion = interp.compile(node).version
|
237
238
|
|
238
|
-
assert(
|
239
|
+
assert(version != newversion, "Parse date did not change")
|
239
240
|
end
|
240
241
|
|
241
242
|
def test_template_defined_vars
|
@@ -306,35 +307,36 @@ class TestLangFunctions < Test::Unit::TestCase
|
|
306
307
|
end
|
307
308
|
|
308
309
|
def test_realize
|
309
|
-
|
310
|
+
scope = mkscope
|
311
|
+
parser = scope.compile.parser
|
310
312
|
|
311
313
|
# Make a definition
|
312
|
-
|
314
|
+
parser.newdefine("mytype")
|
313
315
|
|
314
316
|
[%w{file /tmp/virtual}, %w{mytype yay}].each do |type, title|
|
315
317
|
# Make a virtual resource
|
316
318
|
virtual = mkresource(:type => type, :title => title,
|
317
|
-
:virtual => true, :params => {})
|
319
|
+
:virtual => true, :params => {}, :scope => scope)
|
318
320
|
|
319
|
-
|
321
|
+
scope.compile.store_resource(scope, virtual)
|
320
322
|
|
321
323
|
ref = Puppet::Parser::Resource::Reference.new(
|
322
324
|
:type => type, :title => title,
|
323
|
-
:scope =>
|
325
|
+
:scope => scope
|
324
326
|
)
|
325
327
|
# Now call the realize function
|
326
328
|
assert_nothing_raised do
|
327
|
-
|
329
|
+
scope.function_realize(ref)
|
328
330
|
end
|
329
331
|
|
330
332
|
# Make sure it created a collection
|
331
|
-
assert_equal(1,
|
333
|
+
assert_equal(1, scope.compile.collections.length,
|
332
334
|
"Did not set collection")
|
333
335
|
|
334
336
|
assert_nothing_raised do
|
335
|
-
|
337
|
+
scope.compile.collections.each do |coll| coll.evaluate end
|
336
338
|
end
|
337
|
-
|
339
|
+
scope.compile.collections.clear
|
338
340
|
|
339
341
|
# Now make sure the virtual resource is no longer virtual
|
340
342
|
assert(! virtual.virtual?, "Did not make virtual resource real")
|
@@ -343,29 +345,29 @@ class TestLangFunctions < Test::Unit::TestCase
|
|
343
345
|
# Make sure we puke on any resource that doesn't exist
|
344
346
|
none = Puppet::Parser::Resource::Reference.new(
|
345
347
|
:type => "file", :title => "/tmp/nosuchfile",
|
346
|
-
:scope =>
|
348
|
+
:scope => scope
|
347
349
|
)
|
348
350
|
|
349
351
|
# The function works
|
350
352
|
assert_nothing_raised do
|
351
|
-
|
353
|
+
scope.function_realize(none.to_s)
|
352
354
|
end
|
353
355
|
|
354
356
|
# Make sure it created a collection
|
355
|
-
assert_equal(1,
|
357
|
+
assert_equal(1, scope.compile.collections.length,
|
356
358
|
"Did not set collection")
|
357
359
|
|
358
360
|
# And the collection has our resource in it
|
359
|
-
assert_equal([none.to_s],
|
361
|
+
assert_equal([none.to_s], scope.compile.collections[0].resources,
|
360
362
|
"Did not set resources in collection")
|
361
363
|
end
|
362
364
|
|
363
365
|
def test_defined
|
364
|
-
|
365
|
-
|
366
|
+
scope = mkscope
|
367
|
+
parser = scope.compile.parser
|
366
368
|
|
367
|
-
|
368
|
-
|
369
|
+
parser.newclass("yayness")
|
370
|
+
parser.newdefine("rahness")
|
369
371
|
|
370
372
|
assert_nothing_raised do
|
371
373
|
assert(scope.function_defined("yayness"), "yayness class was not considered defined")
|
@@ -383,9 +385,9 @@ class TestLangFunctions < Test::Unit::TestCase
|
|
383
385
|
"Multiple falses were somehow true")
|
384
386
|
|
385
387
|
# Now make sure we can test resources
|
386
|
-
scope.
|
388
|
+
scope.compile.store_resource(scope, mkresource(:type => "file", :title => "/tmp/rahness",
|
387
389
|
:scope => scope, :source => scope.source,
|
388
|
-
:params => {:owner => "root"})
|
390
|
+
:params => {:owner => "root"}))
|
389
391
|
|
390
392
|
yep = Puppet::Parser::Resource::Reference.new(:type => "file", :title => "/tmp/rahness")
|
391
393
|
nope = Puppet::Parser::Resource::Reference.new(:type => "file", :title => "/tmp/fooness")
|
@@ -395,11 +397,11 @@ class TestLangFunctions < Test::Unit::TestCase
|
|
395
397
|
end
|
396
398
|
|
397
399
|
def test_search
|
398
|
-
|
399
|
-
scope = mkscope(:
|
400
|
+
parser = mkparser
|
401
|
+
scope = mkscope(:parser => parser)
|
400
402
|
|
401
|
-
fun =
|
402
|
-
foo =
|
403
|
+
fun = parser.newdefine("yay::ness")
|
404
|
+
foo = parser.newdefine("foo::bar")
|
403
405
|
|
404
406
|
search = Puppet::Parser::Functions.function(:search)
|
405
407
|
assert_nothing_raised do
|
@@ -417,45 +419,25 @@ class TestLangFunctions < Test::Unit::TestCase
|
|
417
419
|
end
|
418
420
|
|
419
421
|
def test_include
|
420
|
-
|
421
|
-
|
422
|
+
scope = mkscope
|
423
|
+
parser = scope.compile.parser
|
422
424
|
|
423
425
|
assert_raise(Puppet::ParseError, "did not throw error on missing class") do
|
424
426
|
scope.function_include("nosuchclass")
|
425
427
|
end
|
426
428
|
|
427
|
-
|
429
|
+
parser.newclass("myclass")
|
428
430
|
|
429
|
-
|
430
|
-
scope.function_include "myclass"
|
431
|
-
end
|
432
|
-
|
433
|
-
assert(scope.classlist.include?("myclass"),
|
434
|
-
"class was not evaluated")
|
435
|
-
|
436
|
-
# Now try multiple classes at once
|
437
|
-
classes = %w{one two three}.each { |c| interp.newclass(c) }
|
431
|
+
scope.compile.expects(:evaluate_classes).with(%w{myclass otherclass}, scope, false).returns(%w{myclass otherclass})
|
438
432
|
|
439
433
|
assert_nothing_raised do
|
440
|
-
scope.function_include
|
441
|
-
end
|
442
|
-
|
443
|
-
classes.each do |c|
|
444
|
-
assert(scope.classlist.include?(c),
|
445
|
-
"class %s was not evaluated" % c)
|
446
|
-
end
|
447
|
-
|
448
|
-
# Now try a scoped class
|
449
|
-
interp.newclass("os::redhat")
|
450
|
-
|
451
|
-
assert_nothing_raised("Could not include qualified class name") do
|
452
|
-
scope.function_include("os::redhat")
|
434
|
+
scope.function_include(["myclass", "otherclass"])
|
453
435
|
end
|
454
436
|
end
|
455
437
|
|
456
438
|
def test_file
|
457
|
-
|
458
|
-
scope = mkscope(:
|
439
|
+
parser = mkparser
|
440
|
+
scope = mkscope(:parser => parser)
|
459
441
|
|
460
442
|
file1 = tempfile
|
461
443
|
file2 = tempfile
|
@@ -497,8 +479,8 @@ class TestLangFunctions < Test::Unit::TestCase
|
|
497
479
|
assert_equal("yay\n", %x{#{command}}, "command did not work")
|
498
480
|
assert_equal("yay-foo\n", %x{#{command} foo}, "command did not work")
|
499
481
|
|
500
|
-
|
501
|
-
|
482
|
+
scope = mkscope
|
483
|
+
parser = scope.compile.parser
|
502
484
|
|
503
485
|
val = nil
|
504
486
|
assert_nothing_raised("Could not call generator with no args") do
|
@@ -529,4 +511,3 @@ class TestLangFunctions < Test::Unit::TestCase
|
|
529
511
|
end
|
530
512
|
end
|
531
513
|
|
532
|
-
# $Id: functions.rb 2714 2007-07-19 18:12:20Z luke $
|
data/test/language/lexer.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 'puppet'
|
6
6
|
require 'puppet/parser/lexer'
|
@@ -111,7 +111,7 @@ class TestLexer < Test::Unit::TestCase
|
|
111
111
|
types.each { |t|
|
112
112
|
@lexer.string = t
|
113
113
|
assert_equal(
|
114
|
-
[[:
|
114
|
+
[[:CLASSREF,t],[false,false]],
|
115
115
|
@lexer.fullscan
|
116
116
|
)
|
117
117
|
}
|
@@ -254,6 +254,23 @@ class TestLexer < Test::Unit::TestCase
|
|
254
254
|
@lexer.scan {}
|
255
255
|
assert_equal("]", @lexer.expected, "expected value is wrong after pop")
|
256
256
|
end
|
257
|
+
|
258
|
+
# #774
|
259
|
+
def test_classref_token
|
260
|
+
string = ["Foo", "::Foo","Foo::Bar","::Foo::Bar"]
|
261
|
+
|
262
|
+
string.each do |foo|
|
263
|
+
assert_nothing_raised {
|
264
|
+
@lexer.string = foo
|
265
|
+
}
|
266
|
+
|
267
|
+
ret = nil
|
268
|
+
assert_nothing_raised {
|
269
|
+
ret = @lexer.fullscan
|
270
|
+
}
|
271
|
+
|
272
|
+
assert_equal([:CLASSREF, foo],ret[0], "Did not correctly tokenize '%s'" % foo)
|
273
|
+
end
|
274
|
+
end
|
257
275
|
end
|
258
276
|
|
259
|
-
# $Id: lexer.rb 2531 2007-05-25 00:31:28Z luke $
|
data/test/language/parser.rb
CHANGED
@@ -1,14 +1,17 @@
|
|
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 'puppet'
|
7
7
|
require 'puppet/parser/parser'
|
8
8
|
require 'puppettest'
|
9
|
+
require 'puppettest/support/utils'
|
9
10
|
|
10
11
|
class TestParser < Test::Unit::TestCase
|
12
|
+
include PuppetTest
|
11
13
|
include PuppetTest::ParserTesting
|
14
|
+
include PuppetTest::Support::Utils
|
12
15
|
def setup
|
13
16
|
super
|
14
17
|
Puppet[:parseonly] = true
|
@@ -38,13 +41,13 @@ class TestParser < Test::Unit::TestCase
|
|
38
41
|
def test_failers
|
39
42
|
failers { |file|
|
40
43
|
parser = mkparser
|
41
|
-
interp = mkinterp
|
42
44
|
Puppet.debug("parsing failer %s" % file) if __FILE__ == $0
|
43
|
-
assert_raise(Puppet::ParseError) {
|
45
|
+
assert_raise(Puppet::ParseError, "Did not fail while parsing %s" % file) {
|
44
46
|
parser.file = file
|
45
47
|
ast = parser.parse
|
46
|
-
|
47
|
-
|
48
|
+
config = mkcompile(parser)
|
49
|
+
config.compile
|
50
|
+
#ast.classes[""].evaluate :scope => config.topscope
|
48
51
|
}
|
49
52
|
Puppet::Type.allclear
|
50
53
|
}
|
@@ -371,7 +374,7 @@ file { "/tmp/yayness":
|
|
371
374
|
ret = parser.parse(str1).classes[""].code[0]
|
372
375
|
}
|
373
376
|
assert_instance_of(Puppet::Parser::AST::IfStatement, ret)
|
374
|
-
parser
|
377
|
+
parser = mkparser
|
375
378
|
str2 = %{if true { #{exec.call("true")} } else { #{exec.call("false")} }}
|
376
379
|
assert_nothing_raised {
|
377
380
|
ret = parser.parse(str2).classes[""].code[0]
|
@@ -475,7 +478,7 @@ file { "/tmp/yayness":
|
|
475
478
|
|
476
479
|
assert_instance_of(AST::ASTArray, ret.classes[""].code)
|
477
480
|
resdef = ret.classes[""].code[0]
|
478
|
-
assert_instance_of(AST::
|
481
|
+
assert_instance_of(AST::Resource, resdef)
|
479
482
|
assert_equal("/tmp/testing", resdef.title.value)
|
480
483
|
# We always get an astarray back, so...
|
481
484
|
check.call(resdef, "simple resource")
|
@@ -486,26 +489,9 @@ file { "/tmp/yayness":
|
|
486
489
|
end
|
487
490
|
|
488
491
|
ret.classes[""].each do |res|
|
489
|
-
assert_instance_of(AST::
|
492
|
+
assert_instance_of(AST::Resource, res)
|
490
493
|
check.call(res, "multiresource")
|
491
494
|
end
|
492
|
-
|
493
|
-
# Now evaluate these
|
494
|
-
scope = mkscope
|
495
|
-
|
496
|
-
klass = parser.newclass ""
|
497
|
-
scope.source = klass
|
498
|
-
|
499
|
-
assert_nothing_raised do
|
500
|
-
ret.classes[""].evaluate :scope => scope
|
501
|
-
end
|
502
|
-
|
503
|
-
# Make sure we can find both of them
|
504
|
-
%w{/tmp/1 /tmp/2}.each do |title|
|
505
|
-
res = scope.findresource("File[#{title}]")
|
506
|
-
assert(res, "Could not find %s" % title)
|
507
|
-
check.call(res, "found multiresource")
|
508
|
-
end
|
509
495
|
end
|
510
496
|
end
|
511
497
|
|
@@ -618,11 +604,12 @@ file { "/tmp/yayness":
|
|
618
604
|
f.puts "file { '#{file}': ensure => present }"
|
619
605
|
end
|
620
606
|
|
621
|
-
|
607
|
+
Puppet[:manifest] = top
|
608
|
+
interp = Puppet::Parser::Interpreter.new
|
622
609
|
|
623
610
|
code = nil
|
624
611
|
assert_nothing_raised do
|
625
|
-
code = interp.
|
612
|
+
code = interp.compile(mknode).extract.flatten
|
626
613
|
end
|
627
614
|
assert(code.length == 1, "Did not get the file")
|
628
615
|
assert_instance_of(Puppet::TransObject, code[0])
|
@@ -653,6 +640,14 @@ file { "/tmp/yayness":
|
|
653
640
|
}
|
654
641
|
end
|
655
642
|
|
643
|
+
# #774
|
644
|
+
def test_fully_qualified_collection_statement
|
645
|
+
parser = mkparser
|
646
|
+
assert_nothing_raised("Could not parse fully qualified collection statement") {
|
647
|
+
parser.parse %{Foo::Bar <||>}
|
648
|
+
}
|
649
|
+
end
|
650
|
+
|
656
651
|
def test_module_import
|
657
652
|
basedir = File.join(tmpdir(), "module-import")
|
658
653
|
@@tmpfiles << basedir
|
@@ -672,7 +667,7 @@ file { "/tmp/yayness":
|
|
672
667
|
targets << target
|
673
668
|
txt = %[ file { '#{target}': content => "#{fname}" } ]
|
674
669
|
if fname == "init.pp"
|
675
|
-
txt = %[import 'mani1' \nimport '#{modname}/mani2'\nimport '#{modname}/sub/*.pp' ] + txt
|
670
|
+
txt = %[import 'mani1' \nimport '#{modname}/mani2'\nimport '#{modname}/sub/*.pp'\n ] + txt
|
676
671
|
end
|
677
672
|
File::open(File::join(manipath, fname), "w") do |f|
|
678
673
|
f.puts txt
|
@@ -685,6 +680,7 @@ file { "/tmp/yayness":
|
|
685
680
|
|
686
681
|
manifest = File.join(modpath, "manifest.pp")
|
687
682
|
manifest_texts.each do |txt|
|
683
|
+
Puppet::Type.allclear
|
688
684
|
File.open(manifest, "w") { |f| f.puts txt }
|
689
685
|
|
690
686
|
assert_nothing_raised {
|
@@ -785,7 +781,7 @@ file { "/tmp/yayness":
|
|
785
781
|
|
786
782
|
assert_instance_of(AST::HostClass, result.classes["yay"], "Did not create 'yay' class")
|
787
783
|
assert_instance_of(AST::HostClass, result.classes[""], "Did not create main class")
|
788
|
-
assert_instance_of(AST::
|
784
|
+
assert_instance_of(AST::Definition, result.definitions["bar"], "Did not create 'bar' definition")
|
789
785
|
assert_instance_of(AST::Node, result.nodes["foo"], "Did not create 'foo' node")
|
790
786
|
end
|
791
787
|
|
@@ -871,7 +867,8 @@ file { "/tmp/yayness":
|
|
871
867
|
end
|
872
868
|
|
873
869
|
def test_newclass
|
874
|
-
|
870
|
+
scope = mkscope
|
871
|
+
parser = scope.compile.parser
|
875
872
|
|
876
873
|
mkcode = proc do |ary|
|
877
874
|
classes = ary.collect do |string|
|
@@ -880,7 +877,6 @@ file { "/tmp/yayness":
|
|
880
877
|
AST::ASTArray.new(:children => classes)
|
881
878
|
end
|
882
879
|
|
883
|
-
scope = Puppet::Parser::Scope.new(:interp => mkinterp)
|
884
880
|
|
885
881
|
# First make sure that code is being appended
|
886
882
|
code = mkcode.call(%w{original code})
|
@@ -1118,7 +1114,7 @@ file { "/tmp/yayness":
|
|
1118
1114
|
mk_module(name, :define => true, :init => [name])
|
1119
1115
|
|
1120
1116
|
klass = parser.finddefine("", name)
|
1121
|
-
assert_instance_of(AST::
|
1117
|
+
assert_instance_of(AST::Definition, klass, "Did not autoload class from module init file")
|
1122
1118
|
assert_equal(name, klass.classname, "Incorrect class was returned")
|
1123
1119
|
|
1124
1120
|
# Now try it with namespace classes where both classes are in the init file
|
@@ -1175,6 +1171,22 @@ file { "/tmp/yayness":
|
|
1175
1171
|
assert_instance_of(AST::HostClass, klass, "Did not autoload sub class from alone file with no namespace")
|
1176
1172
|
assert_equal("alone::sub", klass.classname, "Incorrect class was returned")
|
1177
1173
|
end
|
1174
|
+
|
1175
|
+
# Make sure class, node, and define methods are case-insensitive
|
1176
|
+
def test_structure_case_insensitivity
|
1177
|
+
parser = mkparser
|
1178
|
+
|
1179
|
+
result = nil
|
1180
|
+
assert_nothing_raised do
|
1181
|
+
result = parser.newclass "Yayness"
|
1182
|
+
end
|
1183
|
+
assert_equal(result, parser.findclass("", "yayNess"))
|
1184
|
+
|
1185
|
+
assert_nothing_raised do
|
1186
|
+
result = parser.newdefine "FunTest"
|
1187
|
+
end
|
1188
|
+
assert_equal(result, parser.finddefine("", "fUntEst"),
|
1189
|
+
"%s was not matched" % "fUntEst")
|
1190
|
+
end
|
1178
1191
|
end
|
1179
1192
|
|
1180
|
-
# $Id: parser.rb 2742 2007-08-03 23:49:53Z luke $
|