puppet 0.18.4 → 0.22.4
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 +288 -0
- data/README +2 -2
- data/Rakefile +78 -5
- data/bin/puppet +28 -36
- data/bin/puppetca +81 -38
- data/bin/puppetd +65 -62
- data/bin/puppetdoc +409 -140
- data/bin/puppetmasterd +59 -47
- data/bin/puppetrun +38 -23
- data/conf/freebsd/puppetd +26 -0
- data/conf/freebsd/puppetmasterd +26 -0
- data/conf/gentoo/conf.d/puppet +5 -0
- data/conf/gentoo/conf.d/puppetmaster +12 -0
- data/conf/gentoo/init.d/puppet +38 -0
- data/conf/gentoo/init.d/puppetmaster +50 -0
- data/conf/gentoo/puppet/fileserver.conf +12 -0
- data/conf/gentoo/puppet/puppetca.conf +29 -0
- data/conf/gentoo/puppet/puppetd.conf +29 -0
- data/conf/gentoo/puppet/puppetmasterd.conf +29 -0
- data/conf/redhat/client.init +10 -5
- data/conf/redhat/client.sysconfig +1 -1
- data/conf/redhat/fileserver.conf +2 -2
- data/conf/redhat/logrotate +1 -1
- data/conf/redhat/no-lockdir.patch +13 -0
- data/conf/redhat/puppet.spec +65 -8
- data/conf/redhat/puppetd.conf +0 -4
- data/conf/redhat/server.init +3 -6
- data/conf/solaris/pkginfo +1 -1
- data/conf/solaris/smf/svc-puppetd +2 -2
- data/conf/suse/client.init +142 -0
- data/conf/suse/puppet.spec +221 -0
- data/conf/suse/server.init +162 -0
- data/examples/code/mac_automount.pp +16 -0
- data/examples/root/bin/sleeper +3 -5
- data/examples/root/etc/init.d/sleeper +8 -2
- data/examples/root/etc/puppet/fileserver.conf +12 -2
- data/examples/root/etc/puppet/namespaceauth.conf +20 -0
- data/examples/root/etc/puppet/puppetd.conf +4 -0
- data/examples/root/etc/puppet/puppetmasterd.conf +6 -9
- data/examples/root/etc/puppet/tagmail.conf +1 -0
- data/ext/emacs/puppet-mode.el +46 -1
- data/ext/logcheck/puppet +15 -0
- data/ext/module_puppet +15 -23
- data/ext/vim/puppet.vim +4 -2
- data/install.rb +2 -1
- data/lib/puppet.rb +76 -207
- data/lib/puppet/configuration.rb +331 -0
- data/lib/puppet/daemon.rb +63 -246
- data/lib/puppet/dsl.rb +371 -0
- data/lib/puppet/element.rb +8 -26
- data/lib/puppet/error.rb +54 -0
- data/lib/puppet/event.rb +8 -243
- data/lib/puppet/{base64.rb → external/base64.rb} +0 -0
- data/lib/puppet/external/event-loop.rb +1 -0
- data/lib/puppet/{event-loop → external/event-loop}/better-definers.rb +0 -0
- data/lib/puppet/{event-loop → external/event-loop}/event-loop.rb +2 -2
- data/lib/puppet/{event-loop → external/event-loop}/signal-system.rb +1 -1
- data/lib/puppet/external/gratr.rb +33 -0
- data/lib/puppet/external/gratr/adjacency_graph.rb +257 -0
- data/lib/puppet/external/gratr/base.rb +34 -0
- data/lib/puppet/external/gratr/biconnected.rb +116 -0
- data/lib/puppet/external/gratr/chinese_postman.rb +123 -0
- data/lib/puppet/external/gratr/common.rb +73 -0
- data/lib/puppet/external/gratr/comparability.rb +92 -0
- data/lib/puppet/external/gratr/digraph.rb +116 -0
- data/lib/puppet/external/gratr/digraph_distance.rb +185 -0
- data/lib/puppet/external/gratr/dot.rb +90 -0
- data/lib/puppet/external/gratr/edge.rb +145 -0
- data/lib/puppet/external/gratr/graph.rb +303 -0
- data/lib/puppet/external/gratr/graph_api.rb +83 -0
- data/lib/puppet/external/gratr/import.rb +44 -0
- data/lib/puppet/external/gratr/labels.rb +90 -0
- data/lib/puppet/external/gratr/maximum_flow.rb +64 -0
- data/lib/puppet/external/gratr/rdot.rb +327 -0
- data/lib/puppet/external/gratr/search.rb +409 -0
- data/lib/puppet/external/gratr/strong_components.rb +127 -0
- data/lib/puppet/external/gratr/undirected_graph.rb +153 -0
- data/lib/puppet/{lock.rb → external/lock.rb} +1 -1
- data/lib/puppet/feature/base.rb +20 -0
- data/lib/puppet/feature/rails.rb +52 -0
- data/lib/puppet/metatype/attributes.rb +719 -0
- data/lib/puppet/metatype/closure.rb +111 -0
- data/lib/puppet/metatype/container.rb +94 -0
- data/lib/puppet/metatype/evaluation.rb +118 -0
- data/lib/puppet/metatype/instances.rb +261 -0
- data/lib/puppet/metatype/manager.rb +169 -0
- data/lib/puppet/metatype/metaparams.rb +409 -0
- data/lib/puppet/metatype/providers.rb +260 -0
- data/lib/puppet/metatype/relationships.rb +116 -0
- data/lib/puppet/metatype/schedules.rb +39 -0
- data/lib/puppet/metatype/tags.rb +39 -0
- data/lib/puppet/modules.rb +113 -0
- data/lib/puppet/network/authconfig.rb +168 -0
- data/lib/puppet/network/authorization.rb +84 -0
- data/lib/puppet/network/authstore.rb +293 -0
- data/lib/puppet/network/client.rb +187 -0
- data/lib/puppet/network/client/ca.rb +56 -0
- data/lib/puppet/network/client/dipper.rb +81 -0
- data/lib/puppet/network/client/file.rb +7 -0
- data/lib/puppet/network/client/logger.rb +6 -0
- data/lib/puppet/network/client/master.rb +644 -0
- data/lib/puppet/{client → network/client}/proxy.rb +3 -3
- data/lib/puppet/{client/reporter.rb → network/client/report.rb} +4 -7
- data/lib/puppet/{client/pelement.rb → network/client/resource.rb} +6 -19
- data/lib/puppet/network/client/runner.rb +13 -0
- data/lib/puppet/network/client/status.rb +5 -0
- data/lib/puppet/network/client_request.rb +32 -0
- data/lib/puppet/network/handler.rb +33 -0
- data/lib/puppet/{server → network/handler}/ca.rb +5 -6
- data/lib/puppet/network/handler/filebucket.rb +180 -0
- data/lib/puppet/{server → network/handler}/fileserver.rb +277 -219
- data/lib/puppet/{server → network/handler}/logger.rb +3 -5
- data/lib/puppet/{server → network/handler}/master.rb +42 -8
- data/lib/puppet/network/handler/report.rb +158 -0
- data/lib/puppet/network/handler/resource.rb +190 -0
- data/lib/puppet/{server → network/handler}/runner.rb +17 -18
- data/lib/puppet/network/handler/status.rb +13 -0
- data/lib/puppet/network/rights.rb +74 -0
- data/lib/puppet/network/server.rb +5 -0
- data/lib/puppet/network/server/mongrel.rb +138 -0
- data/lib/puppet/network/server/webrick.rb +153 -0
- data/lib/puppet/network/xmlrpc/client.rb +129 -0
- data/lib/puppet/network/xmlrpc/processor.rb +91 -0
- data/lib/puppet/network/xmlrpc/server.rb +20 -0
- data/lib/puppet/network/xmlrpc/webrick_servlet.rb +121 -0
- data/lib/puppet/parameter.rb +390 -346
- data/lib/puppet/parser/ast.rb +116 -147
- data/lib/puppet/parser/ast/astarray.rb +17 -33
- data/lib/puppet/parser/ast/branch.rb +2 -0
- data/lib/puppet/parser/ast/caseopt.rb +7 -12
- data/lib/puppet/parser/ast/casestatement.rb +23 -32
- data/lib/puppet/parser/ast/collection.rb +19 -80
- data/lib/puppet/parser/ast/collexpr.rb +81 -0
- data/lib/puppet/parser/ast/component.rb +160 -89
- data/lib/puppet/parser/ast/else.rb +30 -0
- data/lib/puppet/parser/ast/function.rb +9 -2
- data/lib/puppet/parser/ast/hostclass.rb +47 -131
- data/lib/puppet/parser/ast/ifstatement.rb +43 -0
- data/lib/puppet/parser/ast/leaf.rb +10 -21
- data/lib/puppet/parser/ast/node.rb +32 -79
- data/lib/puppet/parser/ast/resourcedef.rb +222 -0
- data/lib/puppet/parser/ast/{typedefaults.rb → resourcedefaults.rb} +10 -16
- data/lib/puppet/parser/ast/resourceoverride.rb +62 -0
- data/lib/puppet/parser/ast/{objectparam.rb → resourceparam.rb} +12 -6
- data/lib/puppet/parser/ast/resourceref.rb +44 -0
- data/lib/puppet/parser/ast/selector.rb +16 -8
- data/lib/puppet/parser/ast/tag.rb +3 -1
- data/lib/puppet/parser/ast/vardef.rb +8 -12
- data/lib/puppet/parser/collector.rb +181 -0
- data/lib/puppet/parser/functions.rb +191 -36
- data/lib/puppet/parser/interpreter.rb +802 -380
- data/lib/puppet/parser/lexer.rb +86 -19
- data/lib/puppet/parser/parser.rb +1123 -960
- data/lib/puppet/parser/resource.rb +353 -0
- data/lib/puppet/parser/resource/param.rb +57 -0
- data/lib/puppet/parser/resource/reference.rb +71 -0
- data/lib/puppet/parser/scope.rb +573 -1000
- data/lib/puppet/parser/templatewrapper.rb +54 -0
- data/lib/puppet/pgraph.rb +208 -0
- data/lib/puppet/propertychange.rb +143 -0
- data/lib/puppet/provider.rb +302 -0
- data/lib/puppet/provider/cron/crontab.rb +187 -0
- data/lib/puppet/provider/group/groupadd.rb +29 -0
- data/lib/puppet/provider/group/netinfo.rb +12 -0
- data/lib/puppet/provider/group/pw.rb +31 -0
- data/lib/puppet/provider/host/netinfo.rb +18 -0
- data/lib/puppet/provider/host/parsed.rb +73 -0
- data/lib/puppet/provider/mount.rb +57 -0
- data/lib/puppet/provider/mount/netinfo.rb +38 -0
- data/lib/puppet/provider/mount/parsed.rb +37 -0
- data/lib/puppet/provider/nameservice.rb +344 -0
- data/lib/puppet/provider/nameservice/netinfo.rb +210 -0
- data/lib/puppet/provider/nameservice/objectadd.rb +45 -0
- data/lib/puppet/provider/nameservice/pw.rb +22 -0
- data/lib/puppet/provider/package/apple.rb +53 -0
- data/lib/puppet/provider/package/apt.rb +119 -0
- data/lib/puppet/provider/package/aptitude.rb +30 -0
- data/lib/puppet/provider/package/aptrpm.rb +79 -0
- data/lib/puppet/provider/package/blastwave.rb +114 -0
- data/lib/puppet/provider/package/darwinport.rb +88 -0
- data/lib/puppet/provider/package/dpkg.rb +109 -0
- data/lib/puppet/provider/package/freebsd.rb +43 -0
- data/lib/puppet/provider/package/gem.rb +104 -0
- data/lib/puppet/provider/package/openbsd.rb +93 -0
- data/lib/puppet/provider/package/pkgdmg.rb +119 -0
- data/lib/puppet/provider/package/portage.rb +112 -0
- data/lib/puppet/provider/package/ports.rb +94 -0
- data/lib/puppet/provider/package/rpm.rb +125 -0
- data/lib/puppet/provider/package/rug.rb +53 -0
- data/lib/puppet/provider/package/sun.rb +168 -0
- data/lib/puppet/provider/package/sunfreeware.rb +9 -0
- data/lib/puppet/provider/package/up2date.rb +45 -0
- data/lib/puppet/provider/package/yum.rb +54 -0
- data/lib/puppet/provider/parsedfile.rb +342 -0
- data/lib/puppet/provider/port/parsed.rb +174 -0
- data/lib/puppet/provider/service/base.rb +136 -0
- data/lib/puppet/provider/service/debian.rb +32 -0
- data/lib/puppet/provider/service/gentoo.rb +49 -0
- data/lib/puppet/{type → provider}/service/init.rb +42 -40
- data/lib/puppet/provider/service/redhat.rb +59 -0
- data/lib/puppet/{type → provider}/service/smf.rb +24 -13
- data/lib/puppet/provider/sshkey/parsed.rb +36 -0
- data/lib/puppet/provider/user/netinfo.rb +106 -0
- data/lib/puppet/provider/user/pw.rb +41 -0
- data/lib/puppet/provider/user/useradd.rb +67 -0
- data/lib/puppet/provider/zone/solaris.rb +208 -0
- data/lib/puppet/rails.rb +102 -66
- data/lib/puppet/rails/database/001_add_indexes.rb +38 -0
- data/lib/puppet/rails/database/schema.rb +89 -0
- data/lib/puppet/rails/external/tagging/acts_as_taggable.rb +62 -0
- data/lib/puppet/rails/external/tagging/init.rb +5 -0
- data/lib/puppet/rails/external/tagging/tag.rb +50 -0
- data/lib/puppet/rails/external/tagging/tagging.rb +12 -0
- data/lib/puppet/rails/fact_name.rb +7 -0
- data/lib/puppet/rails/fact_value.rb +5 -0
- data/lib/puppet/rails/host.rb +95 -46
- data/lib/puppet/rails/param_name.rb +28 -0
- data/lib/puppet/rails/param_value.rb +5 -0
- data/lib/puppet/rails/puppet_class.rb +9 -0
- data/lib/puppet/rails/resource.rb +95 -0
- data/lib/puppet/rails/source_file.rb +5 -0
- data/lib/puppet/relationship.rb +63 -0
- data/lib/puppet/reports/log.rb +14 -0
- data/lib/puppet/reports/rrdgraph.rb +114 -10
- data/lib/puppet/reports/store.rb +64 -0
- data/lib/puppet/reports/tagmail.rb +144 -71
- data/lib/puppet/sslcertificates.rb +38 -5
- data/lib/puppet/sslcertificates/ca.rb +142 -37
- data/lib/puppet/sslcertificates/certificate.rb +3 -3
- data/lib/puppet/sslcertificates/inventory.rb +53 -0
- data/lib/puppet/sslcertificates/support.rb +128 -0
- data/lib/puppet/transaction.rb +568 -189
- data/lib/puppet/transaction/report.rb +14 -3
- data/lib/puppet/transportable.rb +18 -10
- data/lib/puppet/type.rb +279 -2299
- data/lib/puppet/type/component.rb +63 -63
- data/lib/puppet/type/cron.rb +294 -710
- data/lib/puppet/type/exec.rb +185 -129
- data/lib/puppet/type/group.rb +38 -89
- data/lib/puppet/type/host.rb +110 -0
- data/lib/puppet/type/mount.rb +189 -0
- data/lib/puppet/type/notify.rb +47 -0
- data/lib/puppet/type/package.rb +129 -257
- data/lib/puppet/type/parsedtype.rb +172 -297
- data/lib/puppet/type/pfile.rb +540 -319
- data/lib/puppet/type/pfile/checksum.rb +103 -76
- data/lib/puppet/type/pfile/content.rb +16 -10
- data/lib/puppet/type/pfile/ensure.rb +52 -34
- data/lib/puppet/type/pfile/group.rb +25 -18
- data/lib/puppet/type/pfile/mode.rb +7 -4
- data/lib/puppet/type/pfile/{uid.rb → owner.rb} +21 -17
- data/lib/puppet/type/pfile/source.rb +119 -124
- data/lib/puppet/type/pfile/target.rb +29 -45
- data/lib/puppet/type/pfile/type.rb +2 -2
- data/lib/puppet/type/pfilebucket.rb +18 -14
- data/lib/puppet/type/port.rb +121 -0
- data/lib/puppet/type/property.rb +530 -0
- data/lib/puppet/type/resources.rb +150 -0
- data/lib/puppet/type/schedule.rb +38 -22
- data/lib/puppet/type/service.rb +70 -326
- data/lib/puppet/type/sshkey.rb +76 -0
- data/lib/puppet/type/tidy.rb +197 -97
- data/lib/puppet/type/user.rb +107 -183
- data/lib/puppet/type/yumrepo.rb +53 -34
- data/lib/puppet/type/zone.rb +55 -208
- data/lib/puppet/util.rb +239 -201
- data/lib/puppet/util/autoload.rb +107 -0
- data/lib/puppet/util/classgen.rb +208 -0
- data/lib/puppet/{config.rb → util/config.rb} +102 -54
- data/lib/puppet/util/docs.rb +104 -0
- data/lib/puppet/util/errors.rb +55 -0
- data/lib/puppet/util/execution.rb +22 -0
- data/lib/puppet/util/feature.rb +76 -0
- data/lib/puppet/util/fileparsing.rb +380 -0
- data/lib/puppet/util/filetype.rb +300 -0
- data/lib/puppet/util/graph.rb +39 -0
- data/lib/puppet/util/inifile.rb +209 -0
- data/lib/puppet/util/loadedfile.rb +71 -0
- data/lib/puppet/util/log.rb +549 -0
- data/lib/puppet/util/logging.rb +20 -0
- data/lib/puppet/util/metaid.rb +22 -0
- data/lib/puppet/util/methodhelper.rb +37 -0
- data/lib/puppet/util/metric.rb +160 -0
- data/lib/puppet/util/package.rb +31 -0
- data/lib/puppet/util/pidlock.rb +68 -0
- data/lib/puppet/util/plist.rb +24 -0
- data/lib/puppet/util/plist/generator.rb +226 -0
- data/lib/puppet/util/plist/parser.rb +227 -0
- data/lib/puppet/util/posix.rb +87 -0
- data/lib/puppet/util/provider_features.rb +170 -0
- data/lib/puppet/util/rails/collection_merger.rb +42 -0
- data/lib/puppet/util/storage.rb +103 -0
- data/lib/puppet/util/subclass_loader.rb +83 -0
- data/lib/puppet/util/suidmanager.rb +86 -0
- data/lib/puppet/util/variables.rb +39 -0
- data/lib/puppet/util/warnings.rb +15 -0
- data/test/Rakefile +97 -0
- data/test/certmgr/ca.rb +81 -0
- data/test/certmgr/certmgr.rb +77 -50
- data/test/certmgr/inventory.rb +79 -0
- data/test/certmgr/support.rb +81 -0
- data/test/executables/filebucket.rb +49 -0
- data/test/executables/puppetbin.rb +28 -12
- data/test/executables/puppetca.rb +75 -54
- data/test/executables/puppetd.rb +10 -13
- data/test/executables/puppetmasterd.rb +12 -17
- data/test/executables/puppetmodule.rb +18 -17
- data/test/language/ast.rb +242 -798
- data/test/language/ast/casestatement.rb +104 -0
- data/test/language/ast/component.rb +133 -0
- data/test/language/ast/hostclass.rb +162 -0
- data/test/language/ast/selector.rb +62 -0
- data/test/language/ast/variable.rb +31 -0
- data/test/language/collector.rb +369 -0
- data/test/language/functions.rb +305 -18
- data/test/language/interpreter.rb +894 -125
- data/test/language/lexer.rb +98 -12
- data/test/language/node.rb +37 -53
- data/test/language/parser.rb +455 -148
- data/test/language/resource.rb +535 -0
- data/test/language/scope.rb +451 -561
- data/test/language/snippets.rb +101 -111
- data/test/language/transportable.rb +6 -8
- data/test/lib/mocha.rb +19 -0
- data/test/lib/mocha/any_instance_method.rb +35 -0
- data/test/lib/mocha/auto_verify.rb +113 -0
- data/test/lib/mocha/central.rb +35 -0
- data/test/lib/mocha/class_method.rb +62 -0
- data/test/lib/mocha/expectation.rb +295 -0
- data/test/lib/mocha/expectation_error.rb +6 -0
- data/test/lib/mocha/infinite_range.rb +27 -0
- data/test/lib/mocha/inspect.rb +37 -0
- data/test/lib/mocha/instance_method.rb +8 -0
- data/test/lib/mocha/metaclass.rb +7 -0
- data/test/lib/mocha/mock.rb +20 -0
- data/test/lib/mocha/mock_methods.rb +122 -0
- data/test/lib/mocha/object.rb +100 -0
- data/test/lib/mocha/pretty_parameters.rb +28 -0
- data/test/lib/mocha/setup_and_teardown.rb +23 -0
- data/test/lib/mocha/standalone.rb +30 -0
- data/test/lib/mocha/test_case_adapter.rb +49 -0
- data/test/lib/mocha_standalone.rb +2 -0
- data/test/lib/puppettest.rb +294 -0
- data/test/lib/puppettest/certificates.rb +61 -0
- data/test/lib/puppettest/exetest.rb +123 -0
- data/test/lib/puppettest/fakes.rb +194 -0
- data/test/lib/puppettest/fileparsing.rb +33 -0
- data/test/lib/puppettest/filetesting.rb +231 -0
- data/test/lib/puppettest/graph.rb +41 -0
- data/test/lib/puppettest/parsertesting.rb +392 -0
- data/test/lib/puppettest/railstesting.rb +56 -0
- data/test/lib/puppettest/reporttesting.rb +19 -0
- data/test/lib/puppettest/resourcetesting.rb +73 -0
- data/test/lib/puppettest/servertest.rb +72 -0
- data/test/lib/puppettest/support.rb +8 -0
- data/test/lib/puppettest/support/assertions.rb +101 -0
- data/test/lib/puppettest/support/helpers.rb +23 -0
- data/test/lib/puppettest/support/resources.rb +37 -0
- data/test/lib/puppettest/support/utils.rb +160 -0
- data/test/lib/puppettest/testcase.rb +48 -0
- data/test/lib/rake/puppet_test_loader.rb +17 -0
- data/test/lib/rake/puppet_testtask.rb +17 -0
- data/test/lib/spec.rb +8 -0
- data/test/lib/spec/callback.rb +11 -0
- data/test/lib/spec/callback/callback_container.rb +60 -0
- data/test/lib/spec/callback/extensions/module.rb +24 -0
- data/test/lib/spec/callback/extensions/object.rb +37 -0
- data/test/lib/spec/deprecated.rb +3 -0
- data/test/lib/spec/expectations.rb +59 -0
- data/test/lib/spec/expectations/differs/default.rb +62 -0
- data/test/lib/spec/expectations/errors.rb +6 -0
- data/test/lib/spec/expectations/extensions.rb +3 -0
- data/test/lib/spec/expectations/extensions/object.rb +109 -0
- data/test/lib/spec/expectations/extensions/proc.rb +57 -0
- data/test/lib/spec/expectations/extensions/string_and_symbol.rb +17 -0
- data/test/lib/spec/expectations/handler.rb +47 -0
- data/test/lib/spec/expectations/should.rb +5 -0
- data/test/lib/spec/expectations/should/base.rb +64 -0
- data/test/lib/spec/expectations/should/change.rb +69 -0
- data/test/lib/spec/expectations/should/have.rb +128 -0
- data/test/lib/spec/expectations/should/not.rb +74 -0
- data/test/lib/spec/expectations/should/should.rb +81 -0
- data/test/lib/spec/expectations/sugar.rb +47 -0
- data/test/lib/spec/matchers.rb +160 -0
- data/test/lib/spec/matchers/be.rb +161 -0
- data/test/lib/spec/matchers/be_close.rb +37 -0
- data/test/lib/spec/matchers/change.rb +120 -0
- data/test/lib/spec/matchers/eql.rb +43 -0
- data/test/lib/spec/matchers/equal.rb +43 -0
- data/test/lib/spec/matchers/has.rb +44 -0
- data/test/lib/spec/matchers/have.rb +140 -0
- data/test/lib/spec/matchers/include.rb +50 -0
- data/test/lib/spec/matchers/match.rb +41 -0
- data/test/lib/spec/matchers/raise_error.rb +100 -0
- data/test/lib/spec/matchers/respond_to.rb +35 -0
- data/test/lib/spec/matchers/satisfy.rb +47 -0
- data/test/lib/spec/matchers/throw_symbol.rb +75 -0
- data/test/lib/spec/mocks.rb +232 -0
- data/test/lib/spec/mocks/argument_expectation.rb +132 -0
- data/test/lib/spec/mocks/error_generator.rb +85 -0
- data/test/lib/spec/mocks/errors.rb +10 -0
- data/test/lib/spec/mocks/extensions/object.rb +3 -0
- data/test/lib/spec/mocks/message_expectation.rb +231 -0
- data/test/lib/spec/mocks/methods.rb +40 -0
- data/test/lib/spec/mocks/mock.rb +26 -0
- data/test/lib/spec/mocks/mock_handler.rb +166 -0
- data/test/lib/spec/mocks/order_group.rb +29 -0
- data/test/lib/spec/rake/spectask.rb +173 -0
- data/test/lib/spec/rake/verify_rcov.rb +47 -0
- data/test/lib/spec/runner.rb +132 -0
- data/test/lib/spec/runner/backtrace_tweaker.rb +55 -0
- data/test/lib/spec/runner/command_line.rb +34 -0
- data/test/lib/spec/runner/context.rb +154 -0
- data/test/lib/spec/runner/context_eval.rb +142 -0
- data/test/lib/spec/runner/context_runner.rb +55 -0
- data/test/lib/spec/runner/drb_command_line.rb +21 -0
- data/test/lib/spec/runner/execution_context.rb +17 -0
- data/test/lib/spec/runner/extensions/kernel.rb +17 -0
- data/test/lib/spec/runner/extensions/object.rb +32 -0
- data/test/lib/spec/runner/formatter.rb +5 -0
- data/test/lib/spec/runner/formatter/base_text_formatter.rb +118 -0
- data/test/lib/spec/runner/formatter/html_formatter.rb +219 -0
- data/test/lib/spec/runner/formatter/progress_bar_formatter.rb +27 -0
- data/test/lib/spec/runner/formatter/rdoc_formatter.rb +22 -0
- data/test/lib/spec/runner/formatter/specdoc_formatter.rb +23 -0
- data/test/lib/spec/runner/heckle_runner.rb +71 -0
- data/test/lib/spec/runner/heckle_runner_win.rb +10 -0
- data/test/lib/spec/runner/option_parser.rb +224 -0
- data/test/lib/spec/runner/reporter.rb +105 -0
- data/test/lib/spec/runner/spec_matcher.rb +25 -0
- data/test/lib/spec/runner/spec_parser.rb +41 -0
- data/test/lib/spec/runner/spec_should_raise_handler.rb +74 -0
- data/test/lib/spec/runner/specification.rb +114 -0
- data/test/lib/spec/translator.rb +87 -0
- data/test/lib/spec/version.rb +30 -0
- data/test/lib/stubba.rb +2 -0
- data/test/network/authconfig.rb +72 -0
- data/test/network/authorization.rb +138 -0
- data/test/network/authstore.rb +450 -0
- data/test/network/client/ca.rb +38 -0
- data/test/{client → network/client}/client.rb +107 -24
- data/test/network/client/dipper.rb +35 -0
- data/test/network/client/master.rb +627 -0
- data/test/{client/pelement.rb → network/client/resource.rb} +13 -29
- data/test/network/client_request.rb +39 -0
- data/test/network/daemon.rb +71 -0
- data/test/{server → network/handler}/bucket.rb +103 -27
- data/test/{server → network/handler}/ca.rb +14 -19
- data/test/{server → network/handler}/fileserver.rb +443 -68
- data/test/network/handler/handler.rb +64 -0
- data/test/{server → network/handler}/logger.rb +26 -26
- data/test/network/handler/master.rb +352 -0
- data/test/network/handler/report.rb +185 -0
- data/test/{server/pelement.rb → network/handler/resource.rb} +25 -38
- data/test/{server → network/handler}/runner.rb +17 -16
- data/test/network/rights.rb +38 -0
- data/test/network/server/webrick.rb +140 -0
- data/test/network/xmlrpc/client.rb +68 -0
- data/test/network/xmlrpc/processor.rb +80 -0
- data/test/network/xmlrpc/server.rb +28 -0
- data/test/network/xmlrpc/webrick_servlet.rb +26 -0
- data/test/other/dsl.rb +218 -0
- data/test/other/events.rb +22 -15
- data/test/other/overrides.rb +9 -14
- data/test/other/pgraph.rb +289 -0
- data/test/other/propertychange.rb +142 -0
- data/test/other/provider.rb +162 -0
- data/test/other/puppet.rb +63 -10
- data/test/other/relationship.rb +74 -0
- data/test/other/relationships.rb +199 -123
- data/test/other/report.rb +152 -23
- data/test/other/transactions.rb +824 -78
- data/test/puppet/conffiles.rb +16 -11
- data/test/puppet/defaults.rb +7 -10
- data/test/puppet/{error.rb → errortest.rb} +5 -8
- data/test/puppet/modules.rb +58 -0
- data/test/puppet/tc_suidmanager.rb +107 -0
- data/test/rails/host.rb +177 -0
- data/test/rails/rails.rb +27 -0
- data/test/rails/railsparameter.rb +62 -0
- data/test/rails/railsresource.rb +100 -0
- data/test/ral/manager/attributes.rb +296 -0
- data/test/ral/manager/manager.rb +55 -0
- data/test/ral/manager/provider.rb +54 -0
- data/test/ral/manager/type.rb +837 -0
- data/test/ral/providers/cron/crontab.rb +346 -0
- data/test/ral/providers/group.rb +252 -0
- data/test/ral/providers/host/netinfo.rb +58 -0
- data/test/ral/providers/host/parsed.rb +226 -0
- data/test/ral/providers/mount/netinfo.rb +80 -0
- data/test/ral/providers/mount/parsed.rb +223 -0
- data/test/ral/providers/nameservice.rb +33 -0
- data/test/ral/providers/package.rb +253 -0
- data/test/ral/providers/package/apt.rb +89 -0
- data/test/ral/providers/package/aptitude.rb +69 -0
- data/test/ral/providers/package/aptrpm.rb +89 -0
- data/test/ral/providers/package/dpkg.rb +64 -0
- data/test/ral/providers/parsedfile.rb +668 -0
- data/test/ral/providers/parsedport.rb +233 -0
- data/test/ral/providers/provider.rb +423 -0
- data/test/{types → ral/providers}/service.rb +20 -121
- data/test/ral/providers/service/base.rb +75 -0
- data/test/ral/providers/sshkey/parsed.rb +111 -0
- data/test/ral/providers/user.rb +567 -0
- data/test/ral/providers/user/useradd.rb +250 -0
- data/test/ral/types/basic.rb +90 -0
- data/test/ral/types/component.rb +113 -0
- data/test/ral/types/cron.rb +480 -0
- data/test/{types → ral/types}/exec.rb +278 -82
- data/test/ral/types/file.rb +1799 -0
- data/test/ral/types/file/target.rb +363 -0
- data/test/{types → ral/types}/filebucket.rb +15 -17
- data/test/{types → ral/types}/fileignoresource.rb +9 -15
- data/test/ral/types/filesources.rb +1046 -0
- data/test/ral/types/group.rb +169 -0
- data/test/ral/types/host.rb +155 -0
- data/test/ral/types/mount.rb +312 -0
- data/test/ral/types/package.rb +85 -0
- data/test/ral/types/parameter.rb +172 -0
- data/test/ral/types/port.rb +148 -0
- data/test/ral/types/property.rb +343 -0
- data/test/ral/types/resources.rb +221 -0
- data/test/{types → ral/types}/schedule.rb +34 -12
- data/test/ral/types/service.rb +37 -0
- data/test/{types → ral/types}/sshkey.rb +75 -65
- data/test/ral/types/tidy.rb +240 -0
- data/test/ral/types/user.rb +493 -0
- data/test/{types → ral/types}/yumrepo.rb +7 -11
- data/test/{types → ral/types}/zone.rb +45 -45
- data/test/tagging/tagging.rb +17 -26
- data/test/util/autoload.rb +130 -0
- data/test/util/classgen.rb +227 -0
- data/test/{other → util}/config.rb +373 -113
- data/test/util/execution.rb +34 -0
- data/test/util/features.rb +94 -0
- data/test/util/fileparsing.rb +677 -0
- data/test/{other → util}/filetype.rb +9 -12
- data/test/util/graph.rb +108 -0
- data/test/{other → util}/inifile.rb +24 -11
- data/test/util/loadedfile.rb +106 -0
- data/test/{other → util}/log.rb +96 -50
- data/test/{other → util}/metrics.rb +7 -17
- data/test/util/package.rb +27 -0
- data/test/util/pidlock.rb +126 -0
- data/test/util/posixtest.rb +173 -0
- data/test/util/storage.rb +123 -0
- data/test/util/subclass_loader.rb +100 -0
- data/test/util/utiltest.rb +368 -0
- metadata +449 -169
- data/examples/code/classing +0 -35
- data/examples/code/failers/badclassnoparam +0 -10
- data/examples/code/failers/badclassparam +0 -10
- data/examples/code/failers/badcompnoparam +0 -9
- data/examples/code/failers/badcompparam +0 -9
- data/examples/code/failers/badtypeparam +0 -3
- data/examples/code/failers/noobjectrvalue +0 -1
- data/examples/code/snippets/aliastest.pp +0 -16
- data/examples/code/snippets/argumentdefaults +0 -14
- data/examples/code/snippets/casestatement.pp +0 -58
- data/examples/code/snippets/classheirarchy.pp +0 -15
- data/examples/code/snippets/classincludes.pp +0 -17
- data/examples/code/snippets/classpathtest +0 -11
- data/examples/code/snippets/componentmetaparams.pp +0 -11
- data/examples/code/snippets/deepclassheirarchy.pp +0 -23
- data/examples/code/snippets/defineoverrides.pp +0 -17
- data/examples/code/snippets/dirchmod +0 -19
- data/examples/code/snippets/emptyclass.pp +0 -9
- data/examples/code/snippets/emptyexec.pp +0 -3
- data/examples/code/snippets/failmissingexecpath.pp +0 -13
- data/examples/code/snippets/falsevalues.pp +0 -3
- data/examples/code/snippets/filecreate +0 -11
- data/examples/code/snippets/implicititeration +0 -15
- data/examples/code/snippets/multipleinstances +0 -7
- data/examples/code/snippets/namevartest +0 -9
- data/examples/code/snippets/scopetest +0 -13
- data/examples/code/snippets/selectorvalues.pp +0 -42
- data/examples/code/snippets/simpledefaults +0 -5
- data/examples/code/snippets/simpleselector +0 -38
- data/examples/code/snippets/singleary.pp +0 -19
- data/examples/code/snippets/singlequote.pp +0 -11
- data/examples/code/snippets/singleselector.pp +0 -22
- data/examples/code/snippets/tag.pp +0 -9
- data/examples/code/snippets/tagged.pp +0 -35
- data/lib/puppet/client.rb +0 -177
- data/lib/puppet/client/ca.rb +0 -21
- data/lib/puppet/client/dipper.rb +0 -76
- data/lib/puppet/client/file.rb +0 -20
- data/lib/puppet/client/log.rb +0 -17
- data/lib/puppet/client/master.rb +0 -531
- data/lib/puppet/client/runner.rb +0 -17
- data/lib/puppet/client/status.rb +0 -7
- data/lib/puppet/event-loop.rb +0 -1
- data/lib/puppet/filetype.rb +0 -308
- data/lib/puppet/inifile.rb +0 -201
- data/lib/puppet/log.rb +0 -524
- data/lib/puppet/metric.rb +0 -132
- data/lib/puppet/networkclient.rb +0 -175
- data/lib/puppet/parsedfile.rb +0 -58
- data/lib/puppet/parser/ast/classdef.rb +0 -79
- data/lib/puppet/parser/ast/compdef.rb +0 -75
- data/lib/puppet/parser/ast/nodedef.rb +0 -73
- data/lib/puppet/parser/ast/objectdef.rb +0 -284
- data/lib/puppet/parser/ast/objectref.rb +0 -77
- data/lib/puppet/rails/database.rb +0 -40
- data/lib/puppet/rails/rails_object.rb +0 -42
- data/lib/puppet/rails/rails_parameter.rb +0 -5
- data/lib/puppet/server.rb +0 -196
- data/lib/puppet/server/authconfig.rb +0 -177
- data/lib/puppet/server/authstore.rb +0 -226
- data/lib/puppet/server/filebucket.rb +0 -155
- data/lib/puppet/server/pelement.rb +0 -188
- data/lib/puppet/server/report.rb +0 -184
- data/lib/puppet/server/rights.rb +0 -78
- data/lib/puppet/server/servlet.rb +0 -274
- data/lib/puppet/statechange.rb +0 -129
- data/lib/puppet/storage.rb +0 -98
- data/lib/puppet/type/nameservice.rb +0 -264
- data/lib/puppet/type/nameservice/netinfo.rb +0 -232
- data/lib/puppet/type/nameservice/objectadd.rb +0 -146
- data/lib/puppet/type/nameservice/posix.rb +0 -12
- data/lib/puppet/type/nameservice/pw.rb +0 -107
- data/lib/puppet/type/package/apple.rb +0 -41
- data/lib/puppet/type/package/apt.rb +0 -107
- data/lib/puppet/type/package/blastwave.rb +0 -136
- data/lib/puppet/type/package/darwinport.rb +0 -97
- data/lib/puppet/type/package/dpkg.rb +0 -113
- data/lib/puppet/type/package/freebsd.rb +0 -19
- data/lib/puppet/type/package/gem.rb +0 -119
- data/lib/puppet/type/package/openbsd.rb +0 -112
- data/lib/puppet/type/package/ports.rb +0 -103
- data/lib/puppet/type/package/rpm.rb +0 -121
- data/lib/puppet/type/package/sun.rb +0 -174
- data/lib/puppet/type/package/sunfreeware.rb +0 -7
- data/lib/puppet/type/package/yum.rb +0 -52
- data/lib/puppet/type/parsedtype/host.rb +0 -144
- data/lib/puppet/type/parsedtype/mount.rb +0 -271
- data/lib/puppet/type/parsedtype/port.rb +0 -261
- data/lib/puppet/type/parsedtype/sshkey.rb +0 -123
- data/lib/puppet/type/service/base.rb +0 -12
- data/lib/puppet/type/service/debian.rb +0 -46
- data/lib/puppet/type/service/redhat.rb +0 -38
- data/lib/puppet/type/state.rb +0 -393
- data/lib/puppet/type/symlink.rb +0 -186
- data/test/client/master.rb +0 -207
- data/test/language/rails.rb +0 -105
- data/test/other/parsedfile.rb +0 -58
- data/test/other/storage.rb +0 -100
- data/test/puppet/utiltest.rb +0 -299
- data/test/puppettest.rb +0 -1170
- data/test/server/authconfig.rb +0 -56
- data/test/server/authstore.rb +0 -218
- data/test/server/master.rb +0 -201
- data/test/server/report.rb +0 -93
- data/test/server/rights.rb +0 -41
- data/test/server/server.rb +0 -152
- data/test/test +0 -61
- data/test/types/basic.rb +0 -117
- data/test/types/component.rb +0 -298
- data/test/types/cron.rb +0 -718
- data/test/types/file.rb +0 -1314
- data/test/types/filesources.rb +0 -590
- data/test/types/group.rb +0 -323
- data/test/types/host.rb +0 -186
- data/test/types/mount.rb +0 -294
- data/test/types/package.rb +0 -538
- data/test/types/parameter.rb +0 -107
- data/test/types/port.rb +0 -201
- data/test/types/query.rb +0 -101
- data/test/types/state.rb +0 -92
- data/test/types/symlink.rb +0 -120
- data/test/types/tidy.rb +0 -102
- data/test/types/type.rb +0 -469
- data/test/types/user.rb +0 -563
@@ -0,0 +1,31 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# Created by Luke A. Kanies on 2007-0419.
|
4
|
+
# Copyright (c) 2006. All rights reserved.
|
5
|
+
|
6
|
+
$:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/
|
7
|
+
|
8
|
+
require 'puppettest'
|
9
|
+
require 'puppettest/parsertesting'
|
10
|
+
|
11
|
+
class TestVariable < Test::Unit::TestCase
|
12
|
+
include PuppetTest
|
13
|
+
include PuppetTest::ParserTesting
|
14
|
+
AST = Puppet::Parser::AST
|
15
|
+
|
16
|
+
def setup
|
17
|
+
super
|
18
|
+
@interp = mkinterp
|
19
|
+
@scope = mkscope :interp => @interp
|
20
|
+
@name = "myvar"
|
21
|
+
@var = AST::Variable.new(:value => @name)
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_evaluate
|
25
|
+
assert_equal("", @var.evaluate(:scope => @scope), "did not return empty string on unset var")
|
26
|
+
@scope.setvar(@name, "something")
|
27
|
+
assert_equal("something", @var.evaluate(:scope => @scope), "incorrect variable value")
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
# $Id: variable.rb 2393 2007-04-19 18:34:03Z luke $
|
@@ -0,0 +1,369 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
$:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/
|
4
|
+
|
5
|
+
require 'puppet/rails'
|
6
|
+
require 'puppettest'
|
7
|
+
require 'puppettest/parsertesting'
|
8
|
+
require 'puppettest/resourcetesting'
|
9
|
+
require 'puppettest/railstesting'
|
10
|
+
|
11
|
+
class TestCollector < Test::Unit::TestCase
|
12
|
+
include PuppetTest
|
13
|
+
include PuppetTest::ParserTesting
|
14
|
+
include PuppetTest::ResourceTesting
|
15
|
+
include PuppetTest::RailsTesting
|
16
|
+
Parser = Puppet::Parser
|
17
|
+
AST = Parser::AST
|
18
|
+
|
19
|
+
def setup
|
20
|
+
super
|
21
|
+
Puppet[:trace] = false
|
22
|
+
@interp, @scope, @source = mkclassframing
|
23
|
+
end
|
24
|
+
|
25
|
+
# Test just collecting a specific resource. This is used by the 'realize'
|
26
|
+
# function, and it's much faster than iterating over all of the resources.
|
27
|
+
def test_collect_resource
|
28
|
+
# Make a collector
|
29
|
+
coll = nil
|
30
|
+
assert_nothing_raised do
|
31
|
+
coll = Puppet::Parser::Collector.new(@scope, "file", nil, nil, :virtual)
|
32
|
+
end
|
33
|
+
|
34
|
+
# Now set the resource in the collector
|
35
|
+
assert_nothing_raised do
|
36
|
+
coll.resources = ["File[/tmp/virtual1]", "File[/tmp/virtual3]"]
|
37
|
+
end
|
38
|
+
@scope.newcollection(coll)
|
39
|
+
|
40
|
+
# Evaluate the collector and make sure it doesn't fail with no resources
|
41
|
+
# found yet
|
42
|
+
assert_nothing_raised("Resource collection with no results failed") do
|
43
|
+
assert_equal(false, coll.evaluate)
|
44
|
+
end
|
45
|
+
|
46
|
+
# Make a couple of virtual resources
|
47
|
+
one = mkresource(:type => "file", :title => "/tmp/virtual1",
|
48
|
+
:virtual => true, :params => {:owner => "root"})
|
49
|
+
two = mkresource(:type => "file", :title => "/tmp/virtual2",
|
50
|
+
:virtual => true, :params => {:owner => "root"})
|
51
|
+
@scope.setresource one
|
52
|
+
@scope.setresource two
|
53
|
+
|
54
|
+
# Now run the collector again and make sure it finds our resource
|
55
|
+
assert_nothing_raised do
|
56
|
+
assert_equal([one], coll.evaluate, "did not find resource")
|
57
|
+
end
|
58
|
+
|
59
|
+
# And make sure the resource is no longer virtual
|
60
|
+
assert(! one.virtual?,
|
61
|
+
"Resource is still virtual")
|
62
|
+
|
63
|
+
# But the other still is
|
64
|
+
assert(two.virtual?,
|
65
|
+
"Resource got realized")
|
66
|
+
|
67
|
+
# Make sure that the collection is still there
|
68
|
+
assert(@scope.collections.include?(coll), "collection was deleted too soon")
|
69
|
+
|
70
|
+
# Now add our third resource
|
71
|
+
three = mkresource(:type => "file", :title => "/tmp/virtual3",
|
72
|
+
:virtual => true, :params => {:owner => "root"})
|
73
|
+
@scope.setresource three
|
74
|
+
|
75
|
+
# Run the collection
|
76
|
+
assert_nothing_raised do
|
77
|
+
assert_equal([three], coll.evaluate, "did not find resource")
|
78
|
+
end
|
79
|
+
assert(! three.virtual?, "three is still virtual")
|
80
|
+
|
81
|
+
# And make sure that the collection got deleted from the scope's list
|
82
|
+
assert(@scope.collections.empty?, "collection was not deleted")
|
83
|
+
end
|
84
|
+
|
85
|
+
def test_virtual
|
86
|
+
# Make a virtual resource
|
87
|
+
virtual = mkresource(:type => "file", :title => "/tmp/virtual",
|
88
|
+
:virtual => true, :params => {:owner => "root"})
|
89
|
+
@scope.setresource virtual
|
90
|
+
|
91
|
+
# And a non-virtual
|
92
|
+
real = mkresource(:type => "file", :title => "/tmp/real",
|
93
|
+
:params => {:owner => "root"})
|
94
|
+
@scope.setresource real
|
95
|
+
|
96
|
+
# Now make a collector
|
97
|
+
coll = nil
|
98
|
+
|
99
|
+
# Make a fake query
|
100
|
+
code = proc do |res|
|
101
|
+
true
|
102
|
+
end
|
103
|
+
assert_nothing_raised do
|
104
|
+
coll = Puppet::Parser::Collector.new(@scope, "file", nil, code, :virtual)
|
105
|
+
end
|
106
|
+
|
107
|
+
# Set it in our scope
|
108
|
+
@scope.newcollection(coll)
|
109
|
+
|
110
|
+
# Make sure it's in the collections
|
111
|
+
assert(@scope.collections.include?(coll), "collection was not added")
|
112
|
+
|
113
|
+
# And try to collect the virtual resources.
|
114
|
+
ret = nil
|
115
|
+
assert_nothing_raised do
|
116
|
+
ret = coll.collect_virtual
|
117
|
+
end
|
118
|
+
|
119
|
+
assert_equal([virtual], ret)
|
120
|
+
|
121
|
+
# Now make sure evaluate does the right thing.
|
122
|
+
assert_nothing_raised do
|
123
|
+
ret = coll.evaluate
|
124
|
+
end
|
125
|
+
|
126
|
+
# And make sure our virtual object is no longer virtual
|
127
|
+
assert(! virtual.virtual?, "Virtual object did not get realized")
|
128
|
+
|
129
|
+
# Now make a new collector of a different type and make sure it
|
130
|
+
# finds nothing.
|
131
|
+
assert_nothing_raised do
|
132
|
+
coll = Puppet::Parser::Collector.new(@scope, "exec", nil, nil, :virtual)
|
133
|
+
end
|
134
|
+
|
135
|
+
# Remark this as virtual
|
136
|
+
virtual.virtual = true
|
137
|
+
|
138
|
+
assert_nothing_raised do
|
139
|
+
ret = coll.evaluate
|
140
|
+
end
|
141
|
+
|
142
|
+
assert_equal(false, ret)
|
143
|
+
end
|
144
|
+
|
145
|
+
if Puppet.features.rails?
|
146
|
+
def test_collect_exported
|
147
|
+
railsinit
|
148
|
+
|
149
|
+
# Set a hostname
|
150
|
+
@scope.host = Facter.value(:hostname)
|
151
|
+
|
152
|
+
# make an exported resource
|
153
|
+
exported = mkresource(:type => "file", :title => "/tmp/exported",
|
154
|
+
:exported => true, :params => {:owner => "root"})
|
155
|
+
@scope.setresource exported
|
156
|
+
|
157
|
+
assert(exported.exported?, "Object was not marked exported")
|
158
|
+
assert(exported.virtual?, "Object was not marked virtual")
|
159
|
+
|
160
|
+
# And a non-exported
|
161
|
+
real = mkresource(:type => "file", :title => "/tmp/real",
|
162
|
+
:params => {:owner => "root"})
|
163
|
+
@scope.setresource real
|
164
|
+
|
165
|
+
# Now make a collector
|
166
|
+
coll = nil
|
167
|
+
assert_nothing_raised do
|
168
|
+
coll = Puppet::Parser::Collector.new(@scope, "file", nil, nil, :exported)
|
169
|
+
end
|
170
|
+
|
171
|
+
# Set it in our scope
|
172
|
+
@scope.newcollection(coll)
|
173
|
+
|
174
|
+
# Make sure it's in the collections
|
175
|
+
assert_equal([coll], @scope.collections)
|
176
|
+
|
177
|
+
# And try to collect the virtual resources.
|
178
|
+
ret = nil
|
179
|
+
assert_nothing_raised do
|
180
|
+
ret = coll.collect_exported
|
181
|
+
end
|
182
|
+
|
183
|
+
assert_equal([exported], ret)
|
184
|
+
|
185
|
+
# Now make sure evaluate does the right thing.
|
186
|
+
assert_nothing_raised do
|
187
|
+
ret = coll.evaluate
|
188
|
+
end
|
189
|
+
|
190
|
+
# Make sure that the collection does not find the resource on the
|
191
|
+
# next run.
|
192
|
+
ret = nil
|
193
|
+
assert_nothing_raised do
|
194
|
+
ret = coll.collect_exported
|
195
|
+
end
|
196
|
+
|
197
|
+
assert(ret.empty?, "Exported resource was collected on the second run")
|
198
|
+
|
199
|
+
|
200
|
+
# And make sure our exported object is no longer exported
|
201
|
+
assert(! exported.virtual?, "Virtual object did not get realized")
|
202
|
+
|
203
|
+
# But it should still be marked exported.
|
204
|
+
assert(exported.exported?, "Resource got un-exported")
|
205
|
+
|
206
|
+
# Now make a new collector of a different type and make sure it
|
207
|
+
# finds nothing.
|
208
|
+
assert_nothing_raised do
|
209
|
+
coll = Puppet::Parser::Collector.new(@scope, "exec", nil, nil, :exported)
|
210
|
+
end
|
211
|
+
|
212
|
+
# Remark this as virtual
|
213
|
+
exported.virtual = true
|
214
|
+
|
215
|
+
assert_nothing_raised do
|
216
|
+
ret = coll.evaluate
|
217
|
+
end
|
218
|
+
|
219
|
+
assert(! ret, "got resources back")
|
220
|
+
|
221
|
+
# Now create a whole new scope and make sure we can actually retrieve
|
222
|
+
# the resource from the database, not just from the scope.
|
223
|
+
# First create a host object and store our resource in it.
|
224
|
+
|
225
|
+
# Now collect our facts
|
226
|
+
facts = {}
|
227
|
+
Facter.each do |fact, value| facts[fact] = value end
|
228
|
+
|
229
|
+
# Now try storing our crap
|
230
|
+
# Remark this as exported
|
231
|
+
exported.exported = true
|
232
|
+
host = Puppet::Rails::Host.store(
|
233
|
+
:resources => [exported],
|
234
|
+
:facts => facts,
|
235
|
+
:name => facts["hostname"]
|
236
|
+
)
|
237
|
+
assert(host, "did not get rails host")
|
238
|
+
host.save
|
239
|
+
|
240
|
+
# And make sure it's in there
|
241
|
+
newres = host.resources.find_by_restype_and_title_and_exported("file", "/tmp/exported", true)
|
242
|
+
assert(newres, "Did not find resource in db")
|
243
|
+
interp, scope, source = mkclassframing
|
244
|
+
scope.host = "two"
|
245
|
+
|
246
|
+
# Now make a collector
|
247
|
+
coll = nil
|
248
|
+
assert_nothing_raised do
|
249
|
+
coll = Puppet::Parser::Collector.new(scope, "file", nil, nil, :exported)
|
250
|
+
end
|
251
|
+
|
252
|
+
# Set it in our scope
|
253
|
+
scope.newcollection(coll)
|
254
|
+
|
255
|
+
# Make sure it's in the collections
|
256
|
+
assert_equal([coll], scope.collections)
|
257
|
+
|
258
|
+
# And try to collect the virtual resources.
|
259
|
+
ret = nil
|
260
|
+
assert_nothing_raised do
|
261
|
+
ret = coll.collect_exported
|
262
|
+
end
|
263
|
+
|
264
|
+
assert_equal(["/tmp/exported"], ret.collect { |f| f.title })
|
265
|
+
|
266
|
+
# Make sure we can evaluate the same collection multiple times and
|
267
|
+
# that later collections do nothing
|
268
|
+
assert_nothing_raised("Collection found same resource twice") do
|
269
|
+
ret = coll.evaluate
|
270
|
+
end
|
271
|
+
end
|
272
|
+
|
273
|
+
def test_collection_conflicts
|
274
|
+
railsinit
|
275
|
+
|
276
|
+
# First make a railshost we can conflict with
|
277
|
+
host = Puppet::Rails::Host.new(:name => "myhost")
|
278
|
+
|
279
|
+
host.resources.build(:title => "/tmp/conflicttest", :restype => "file",
|
280
|
+
:exported => true)
|
281
|
+
|
282
|
+
host.save
|
283
|
+
|
284
|
+
# Now make a normal resource
|
285
|
+
normal = mkresource(:type => "file", :title => "/tmp/conflicttest",
|
286
|
+
:params => {:owner => "root"})
|
287
|
+
@scope.setresource normal
|
288
|
+
@scope.host = "otherhost"
|
289
|
+
|
290
|
+
# Now make a collector
|
291
|
+
coll = nil
|
292
|
+
assert_nothing_raised do
|
293
|
+
coll = Puppet::Parser::Collector.new(@scope, "file", nil, nil, :exported)
|
294
|
+
end
|
295
|
+
|
296
|
+
# And try to collect the virtual resources.
|
297
|
+
assert_raise(Puppet::ParseError) do
|
298
|
+
ret = coll.collect_exported
|
299
|
+
end
|
300
|
+
end
|
301
|
+
|
302
|
+
# Make sure we do not collect resources from the host we're on
|
303
|
+
def test_no_resources_from_me
|
304
|
+
railsinit
|
305
|
+
|
306
|
+
# Make our configuration
|
307
|
+
host = Puppet::Rails::Host.new(:name => "myhost")
|
308
|
+
|
309
|
+
host.resources.build(:title => "/tmp/hosttest", :type => "file",
|
310
|
+
:exported => true)
|
311
|
+
|
312
|
+
host.save
|
313
|
+
|
314
|
+
@scope.host = "myhost"
|
315
|
+
|
316
|
+
# Now make a collector
|
317
|
+
coll = nil
|
318
|
+
assert_nothing_raised do
|
319
|
+
coll = Puppet::Parser::Collector.new(@scope, "file", nil, nil, :exported)
|
320
|
+
end
|
321
|
+
|
322
|
+
# And make sure we get nada back
|
323
|
+
ret = nil
|
324
|
+
assert_nothing_raised do
|
325
|
+
ret = coll.collect_exported
|
326
|
+
end
|
327
|
+
|
328
|
+
assert(ret.empty?, "Found exports from our own host")
|
329
|
+
end
|
330
|
+
end
|
331
|
+
|
332
|
+
# Collections that specify resources should be deleted when they succeed,
|
333
|
+
# but others should remain until the very end.
|
334
|
+
def test_normal_collections_remain
|
335
|
+
# Make a collector
|
336
|
+
coll = nil
|
337
|
+
assert_nothing_raised do
|
338
|
+
coll = Puppet::Parser::Collector.new(@scope, "file", nil, nil, :virtual)
|
339
|
+
end
|
340
|
+
|
341
|
+
@scope.newcollection(coll)
|
342
|
+
|
343
|
+
# run the collection and make sure it doesn't get deleted, since it
|
344
|
+
# didn't return anything
|
345
|
+
assert_nothing_raised do
|
346
|
+
assert_equal(false, coll.evaluate,
|
347
|
+
"Evaluate returned incorrect value")
|
348
|
+
end
|
349
|
+
|
350
|
+
assert_equal([coll], @scope.collections, "Collection was deleted")
|
351
|
+
|
352
|
+
# Make a resource
|
353
|
+
one = mkresource(:type => "file", :title => "/tmp/virtual1",
|
354
|
+
:virtual => true, :params => {:owner => "root"})
|
355
|
+
@scope.setresource one
|
356
|
+
|
357
|
+
# Now perform the collection again, and it should still be there
|
358
|
+
assert_nothing_raised do
|
359
|
+
assert_equal([one], coll.evaluate,
|
360
|
+
"Evaluate returned incorrect value")
|
361
|
+
end
|
362
|
+
|
363
|
+
assert_equal([coll], @scope.collections, "Collection was deleted")
|
364
|
+
|
365
|
+
assert_equal(false, one.virtual?, "One was not realized")
|
366
|
+
end
|
367
|
+
end
|
368
|
+
|
369
|
+
# $Id: collector.rb 2213 2007-02-18 05:58:27Z luke $
|
data/test/language/functions.rb
CHANGED
@@ -1,20 +1,17 @@
|
|
1
|
-
#!/usr/bin/ruby
|
1
|
+
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
if __FILE__
|
4
|
-
$:.unshift '../../lib'
|
5
|
-
$:.unshift '..'
|
6
|
-
$puppetbase = "../.."
|
7
|
-
end
|
3
|
+
$:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/
|
8
4
|
|
9
5
|
require 'puppet'
|
10
6
|
require 'puppet/parser/interpreter'
|
11
7
|
require 'puppet/parser/parser'
|
12
|
-
require 'puppet/client'
|
13
|
-
require 'test/unit'
|
8
|
+
require 'puppet/network/client'
|
14
9
|
require 'puppettest'
|
10
|
+
require 'puppettest/resourcetesting'
|
15
11
|
|
16
12
|
class TestLangFunctions < Test::Unit::TestCase
|
17
|
-
|
13
|
+
include PuppetTest::ParserTesting
|
14
|
+
include PuppetTest::ResourceTesting
|
18
15
|
def test_functions
|
19
16
|
assert_raise(Puppet::ParseError) do
|
20
17
|
Puppet::Parser::AST::Function.new(
|
@@ -26,7 +23,7 @@ class TestLangFunctions < Test::Unit::TestCase
|
|
26
23
|
end
|
27
24
|
|
28
25
|
assert_nothing_raised do
|
29
|
-
Puppet::Parser::Functions.newfunction(:fakefunction, :rvalue) do |input|
|
26
|
+
Puppet::Parser::Functions.newfunction(:fakefunction, :type => :rvalue) do |input|
|
30
27
|
return "output %s" % input[0]
|
31
28
|
end
|
32
29
|
end
|
@@ -42,7 +39,7 @@ class TestLangFunctions < Test::Unit::TestCase
|
|
42
39
|
)
|
43
40
|
end
|
44
41
|
|
45
|
-
scope =
|
42
|
+
scope = mkscope
|
46
43
|
val = nil
|
47
44
|
assert_nothing_raised do
|
48
45
|
val = func.evaluate(:scope => scope)
|
@@ -52,10 +49,10 @@ class TestLangFunctions < Test::Unit::TestCase
|
|
52
49
|
end
|
53
50
|
|
54
51
|
def test_taggedfunction
|
55
|
-
scope =
|
52
|
+
scope = mkscope
|
56
53
|
|
57
54
|
tag = "yayness"
|
58
|
-
scope.
|
55
|
+
scope.tag(tag)
|
59
56
|
|
60
57
|
{"yayness" => true, "booness" => false}.each do |tag, retval|
|
61
58
|
func = taggedobj(tag, :rvalue)
|
@@ -82,7 +79,7 @@ class TestLangFunctions < Test::Unit::TestCase
|
|
82
79
|
)
|
83
80
|
end
|
84
81
|
|
85
|
-
scope =
|
82
|
+
scope = mkscope
|
86
83
|
val = nil
|
87
84
|
assert_raise(Puppet::ParseError) do
|
88
85
|
val = func.evaluate(:scope => scope)
|
@@ -114,7 +111,7 @@ class TestLangFunctions < Test::Unit::TestCase
|
|
114
111
|
end
|
115
112
|
ast = varobj("output", func)
|
116
113
|
|
117
|
-
scope =
|
114
|
+
scope = mkscope
|
118
115
|
assert_raise(Puppet::ParseError) do
|
119
116
|
ast.evaluate(:scope => scope)
|
120
117
|
end
|
@@ -152,7 +149,7 @@ class TestLangFunctions < Test::Unit::TestCase
|
|
152
149
|
end
|
153
150
|
ast = varobj("output", func)
|
154
151
|
|
155
|
-
scope =
|
152
|
+
scope = mkscope
|
156
153
|
assert_raise(Puppet::ParseError) do
|
157
154
|
ast.evaluate(:scope => scope)
|
158
155
|
end
|
@@ -187,7 +184,7 @@ class TestLangFunctions < Test::Unit::TestCase
|
|
187
184
|
end
|
188
185
|
ast = varobj("output", func)
|
189
186
|
|
190
|
-
scope =
|
187
|
+
scope = mkscope
|
191
188
|
scope.setvar("myvar", "this is yayness")
|
192
189
|
assert_raise(Puppet::ParseError) do
|
193
190
|
ast.evaluate(:scope => scope)
|
@@ -240,6 +237,296 @@ class TestLangFunctions < Test::Unit::TestCase
|
|
240
237
|
|
241
238
|
assert(parsedate != newdate, "Parse date did not change")
|
242
239
|
end
|
240
|
+
|
241
|
+
def test_template_defined_vars
|
242
|
+
template = tempfile()
|
243
|
+
|
244
|
+
File.open(template, "w") do |f|
|
245
|
+
f.puts "template <%= yayness %>"
|
246
|
+
end
|
247
|
+
|
248
|
+
func = nil
|
249
|
+
assert_nothing_raised do
|
250
|
+
func = Puppet::Parser::AST::Function.new(
|
251
|
+
:name => "template",
|
252
|
+
:ftype => :rvalue,
|
253
|
+
:arguments => AST::ASTArray.new(
|
254
|
+
:children => [stringobj(template)]
|
255
|
+
)
|
256
|
+
)
|
257
|
+
end
|
258
|
+
ast = varobj("output", func)
|
259
|
+
|
260
|
+
{
|
261
|
+
"" => "",
|
262
|
+
false => "false",
|
263
|
+
}.each do |string, value|
|
264
|
+
scope = mkscope
|
265
|
+
assert_raise(Puppet::ParseError) do
|
266
|
+
ast.evaluate(:scope => scope)
|
267
|
+
end
|
268
|
+
|
269
|
+
scope.setvar("yayness", string)
|
270
|
+
assert_equal(string, scope.lookupvar("yayness", false))
|
271
|
+
|
272
|
+
assert_nothing_raised("An empty string was not a valid variable value") do
|
273
|
+
ast.evaluate(:scope => scope)
|
274
|
+
end
|
275
|
+
|
276
|
+
assert_equal("template #{value}\n", scope.lookupvar("output"),
|
277
|
+
"%s did not get evaluated correctly" % string.inspect)
|
278
|
+
end
|
279
|
+
end
|
280
|
+
|
281
|
+
def test_autoloading_functions
|
282
|
+
assert_equal(false, Puppet::Parser::Functions.function(:autofunc),
|
283
|
+
"Got told autofunc already exists")
|
284
|
+
|
285
|
+
dir = tempfile()
|
286
|
+
$: << dir
|
287
|
+
newpath = File.join(dir, "puppet", "parser", "functions")
|
288
|
+
FileUtils.mkdir_p(newpath)
|
289
|
+
|
290
|
+
File.open(File.join(newpath, "autofunc.rb"), "w") { |f|
|
291
|
+
f.puts %{
|
292
|
+
Puppet::Parser::Functions.newfunction(:autofunc, :type => :rvalue) do |vals|
|
293
|
+
Puppet.wanring vals.inspect
|
294
|
+
end
|
295
|
+
}
|
296
|
+
}
|
297
|
+
|
298
|
+
obj = nil
|
299
|
+
assert_nothing_raised {
|
300
|
+
obj = Puppet::Parser::Functions.function(:autofunc)
|
301
|
+
}
|
302
|
+
|
303
|
+
assert(obj, "Did not autoload function")
|
304
|
+
assert(Puppet::Parser::Scope.method_defined?(:function_autofunc),
|
305
|
+
"Did not set function correctly")
|
306
|
+
end
|
307
|
+
|
308
|
+
def test_realize
|
309
|
+
@interp, @scope, @source = mkclassframing
|
310
|
+
|
311
|
+
# Make a definition
|
312
|
+
@interp.newdefine("mytype")
|
313
|
+
|
314
|
+
[%w{file /tmp/virtual}, %w{mytype yay}].each do |type, title|
|
315
|
+
# Make a virtual resource
|
316
|
+
virtual = mkresource(:type => type, :title => title,
|
317
|
+
:virtual => true, :params => {})
|
318
|
+
|
319
|
+
@scope.setresource virtual
|
320
|
+
|
321
|
+
ref = Puppet::Parser::Resource::Reference.new(
|
322
|
+
:type => type, :title => title,
|
323
|
+
:scope => @scope
|
324
|
+
)
|
325
|
+
# Now call the realize function
|
326
|
+
assert_nothing_raised do
|
327
|
+
@scope.function_realize(ref)
|
328
|
+
end
|
329
|
+
|
330
|
+
# Make sure it created a collection
|
331
|
+
assert_equal(1, @scope.collections.length,
|
332
|
+
"Did not set collection")
|
333
|
+
|
334
|
+
assert_nothing_raised do
|
335
|
+
@scope.collections.each do |coll| coll.evaluate end
|
336
|
+
end
|
337
|
+
@scope.collections.clear
|
338
|
+
|
339
|
+
# Now make sure the virtual resource is no longer virtual
|
340
|
+
assert(! virtual.virtual?, "Did not make virtual resource real")
|
341
|
+
end
|
342
|
+
|
343
|
+
# Make sure we puke on any resource that doesn't exist
|
344
|
+
none = Puppet::Parser::Resource::Reference.new(
|
345
|
+
:type => "file", :title => "/tmp/nosuchfile",
|
346
|
+
:scope => @scope
|
347
|
+
)
|
348
|
+
|
349
|
+
# The function works
|
350
|
+
assert_nothing_raised do
|
351
|
+
@scope.function_realize(none.to_s)
|
352
|
+
end
|
353
|
+
|
354
|
+
# Make sure it created a collection
|
355
|
+
assert_equal(1, @scope.collections.length,
|
356
|
+
"Did not set collection")
|
357
|
+
|
358
|
+
# And the collection has our resource in it
|
359
|
+
assert_equal([none.to_s], @scope.collections[0].resources,
|
360
|
+
"Did not set resources in collection")
|
361
|
+
end
|
362
|
+
|
363
|
+
def test_defined
|
364
|
+
interp = mkinterp
|
365
|
+
scope = mkscope(:interp => interp)
|
366
|
+
|
367
|
+
interp.newclass("yayness")
|
368
|
+
interp.newdefine("rahness")
|
369
|
+
|
370
|
+
assert_nothing_raised do
|
371
|
+
assert(scope.function_defined("yayness"), "yayness class was not considered defined")
|
372
|
+
assert(scope.function_defined("rahness"), "rahness definition was not considered defined")
|
373
|
+
assert(scope.function_defined("service"), "service type was not considered defined")
|
374
|
+
assert(! scope.function_defined("fakness"), "fakeness was considered defined")
|
375
|
+
end
|
376
|
+
|
377
|
+
# Now make sure any match in a list will work
|
378
|
+
assert(scope.function_defined(["booness", "yayness", "fakeness"]),
|
379
|
+
"A single answer was not sufficient to return true")
|
380
|
+
|
381
|
+
# and make sure multiple falses are still false
|
382
|
+
assert(! scope.function_defined(%w{no otherno stillno}),
|
383
|
+
"Multiple falses were somehow true")
|
384
|
+
|
385
|
+
# Now make sure we can test resources
|
386
|
+
scope.setresource mkresource(:type => "file", :title => "/tmp/rahness",
|
387
|
+
:scope => scope, :source => scope.source,
|
388
|
+
:params => {:owner => "root"})
|
389
|
+
|
390
|
+
yep = Puppet::Parser::Resource::Reference.new(:type => "file", :title => "/tmp/rahness")
|
391
|
+
nope = Puppet::Parser::Resource::Reference.new(:type => "file", :title => "/tmp/fooness")
|
392
|
+
|
393
|
+
assert(scope.function_defined([yep]), "valid resource was not considered defined")
|
394
|
+
assert(! scope.function_defined([nope]), "invalid resource was considered defined")
|
395
|
+
end
|
396
|
+
|
397
|
+
def test_search
|
398
|
+
interp = mkinterp
|
399
|
+
scope = mkscope(:interp => interp)
|
400
|
+
|
401
|
+
fun = interp.newdefine("fun::test")
|
402
|
+
foo = interp.newdefine("foo::bar")
|
403
|
+
|
404
|
+
search = Puppet::Parser::Functions.function(:search)
|
405
|
+
assert_nothing_raised do
|
406
|
+
scope.function_search(["foo", "fun"])
|
407
|
+
end
|
408
|
+
|
409
|
+
ffun = ffoo = nil
|
410
|
+
assert_nothing_raised do
|
411
|
+
ffun = scope.finddefine("test")
|
412
|
+
ffoo = scope.finddefine('bar')
|
413
|
+
end
|
414
|
+
|
415
|
+
assert(ffun, "Could not find definition in 'fun' namespace")
|
416
|
+
assert(ffoo, "Could not find definition in 'foo' namespace")
|
417
|
+
end
|
418
|
+
|
419
|
+
def test_include
|
420
|
+
interp = mkinterp
|
421
|
+
scope = mkscope(:interp => interp)
|
422
|
+
|
423
|
+
assert_raise(Puppet::ParseError, "did not throw error on missing class") do
|
424
|
+
scope.function_include("nosuchclass")
|
425
|
+
end
|
426
|
+
|
427
|
+
interp.newclass("myclass")
|
428
|
+
|
429
|
+
assert_nothing_raised do
|
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) }
|
438
|
+
|
439
|
+
assert_nothing_raised do
|
440
|
+
scope.function_include classes
|
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")
|
453
|
+
end
|
454
|
+
end
|
455
|
+
|
456
|
+
def test_file
|
457
|
+
interp = mkinterp
|
458
|
+
scope = mkscope(:interp => interp)
|
459
|
+
|
460
|
+
file1 = tempfile
|
461
|
+
file2 = tempfile
|
462
|
+
file3 = tempfile
|
463
|
+
|
464
|
+
File.open(file2, "w") { |f| f.puts "yaytest" }
|
465
|
+
|
466
|
+
val = nil
|
467
|
+
assert_nothing_raised("Failed to call file with one arg") do
|
468
|
+
val = scope.function_file([file2])
|
469
|
+
end
|
470
|
+
|
471
|
+
assert_equal("yaytest\n", val, "file() failed")
|
472
|
+
|
473
|
+
assert_nothing_raised("Failed to call file with two args") do
|
474
|
+
val = scope.function_file([file1, file2])
|
475
|
+
end
|
476
|
+
|
477
|
+
assert_equal("yaytest\n", val, "file() failed")
|
478
|
+
|
479
|
+
assert_raise(Puppet::ParseError, "did not fail when files are missing") do
|
480
|
+
val = scope.function_file([file1, file3])
|
481
|
+
end
|
482
|
+
end
|
483
|
+
|
484
|
+
def test_generate
|
485
|
+
command = tempfile
|
486
|
+
sh = %x{which sh}
|
487
|
+
File.open(command, "w") do |f|
|
488
|
+
f.puts %{#!#{sh}
|
489
|
+
if [ -n "$1" ]; then
|
490
|
+
echo "yay-$1"
|
491
|
+
else
|
492
|
+
echo yay
|
493
|
+
fi
|
494
|
+
}
|
495
|
+
end
|
496
|
+
File.chmod(0755, command)
|
497
|
+
assert_equal("yay\n", %x{#{command}}, "command did not work")
|
498
|
+
assert_equal("yay-foo\n", %x{#{command} foo}, "command did not work")
|
499
|
+
|
500
|
+
interp = mkinterp
|
501
|
+
scope = mkscope(:interp => interp)
|
502
|
+
|
503
|
+
val = nil
|
504
|
+
assert_nothing_raised("Could not call generator with no args") do
|
505
|
+
val = scope.function_generate([command])
|
506
|
+
end
|
507
|
+
assert_equal("yay\n", val, "generator returned wrong results")
|
508
|
+
|
509
|
+
assert_nothing_raised("Could not call generator with args") do
|
510
|
+
val = scope.function_generate([command, "foo"])
|
511
|
+
end
|
512
|
+
assert_equal("yay-foo\n", val, "generator returned wrong results")
|
513
|
+
|
514
|
+
assert_raise(Puppet::ParseError, "Did not fail with an unqualified path") do
|
515
|
+
val = scope.function_generate([File.basename(command), "foo"])
|
516
|
+
end
|
517
|
+
|
518
|
+
assert_raise(Puppet::ParseError, "Did not fail when command failed") do
|
519
|
+
val = scope.function_generate([%x{which touch}.chomp, "/this/dir/does/not/exist"])
|
520
|
+
end
|
521
|
+
|
522
|
+
fake = File.join(File.dirname(command), "..")
|
523
|
+
dir = File.dirname(command)
|
524
|
+
dirname = File.basename(dir)
|
525
|
+
bad = File.join(dir, "..", dirname, File.basename(command))
|
526
|
+
assert_raise(Puppet::ParseError, "Did not fail when command failed") do
|
527
|
+
val = scope.function_generate([bad])
|
528
|
+
end
|
529
|
+
end
|
243
530
|
end
|
244
531
|
|
245
|
-
# $Id: functions.rb
|
532
|
+
# $Id: functions.rb 2401 2007-04-20 15:59:09Z luke $
|