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,227 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
$:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/
|
4
|
+
|
5
|
+
require 'puppet'
|
6
|
+
require 'puppettest'
|
7
|
+
|
8
|
+
class TestPuppetUtilClassGen < Test::Unit::TestCase
|
9
|
+
include PuppetTest
|
10
|
+
|
11
|
+
class FakeBase
|
12
|
+
class << self
|
13
|
+
attr_accessor :name
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
class GenTest
|
18
|
+
class << self
|
19
|
+
include Puppet::Util::ClassGen
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def testclasses(name)
|
24
|
+
sub = Class.new(GenTest) do @name = "base#{name.to_s}" end
|
25
|
+
self.class.const_set("Base#{name.to_s}", sub)
|
26
|
+
|
27
|
+
klass = Class.new(FakeBase) do @name = "gen#{name.to_s}"end
|
28
|
+
|
29
|
+
return sub, klass
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_handleclassconst
|
33
|
+
sub, klass = testclasses("const")
|
34
|
+
const = nil
|
35
|
+
assert_nothing_raised do
|
36
|
+
const = sub.send(:handleclassconst, klass, klass.name, {})
|
37
|
+
end
|
38
|
+
|
39
|
+
# make sure the constant is set
|
40
|
+
assert(defined?(Baseconst::Genconst), "const was not defined")
|
41
|
+
assert_equal(Baseconst::Genconst.object_id, klass.object_id)
|
42
|
+
|
43
|
+
# Now make sure don't replace by default
|
44
|
+
newklass = Class.new(FakeBase) do @name = klass.name end
|
45
|
+
assert_raise(Puppet::ConstantAlreadyDefined) do
|
46
|
+
const = sub.send(:handleclassconst, newklass, klass.name, {})
|
47
|
+
end
|
48
|
+
assert_equal(Baseconst::Genconst.object_id, klass.object_id)
|
49
|
+
|
50
|
+
# Now make sure we can replace it
|
51
|
+
assert_nothing_raised do
|
52
|
+
const = sub.send(:handleclassconst, newklass, klass.name, :overwrite => true)
|
53
|
+
end
|
54
|
+
assert_equal(Baseconst::Genconst.object_id, newklass.object_id)
|
55
|
+
|
56
|
+
# Now make sure we can choose our own constant
|
57
|
+
assert_nothing_raised do
|
58
|
+
const = sub.send(:handleclassconst, newklass, klass.name,
|
59
|
+
:constant => "Fooness")
|
60
|
+
end
|
61
|
+
assert(defined?(Baseconst::Fooness), "Specified constant was not defined")
|
62
|
+
|
63
|
+
# And make sure prefixes work
|
64
|
+
assert_nothing_raised do
|
65
|
+
const = sub.send(:handleclassconst, newklass, klass.name,
|
66
|
+
:prefix => "Test")
|
67
|
+
end
|
68
|
+
assert(defined?(Baseconst::TestGenconst), "prefix was not used")
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_initclass_preinit
|
72
|
+
sub, klass = testclasses("preinit")
|
73
|
+
|
74
|
+
class << klass
|
75
|
+
attr_accessor :set
|
76
|
+
def preinit
|
77
|
+
@set = true
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
assert(!klass.set, "Class was already initialized")
|
82
|
+
|
83
|
+
assert_nothing_raised do sub.send(:initclass, klass, {}) end
|
84
|
+
|
85
|
+
assert(klass.set, "Class was not initialized")
|
86
|
+
end
|
87
|
+
|
88
|
+
def test_initclass_initvars
|
89
|
+
sub, klass = testclasses("initvars")
|
90
|
+
|
91
|
+
class << klass
|
92
|
+
attr_accessor :set
|
93
|
+
def initvars
|
94
|
+
@set = true
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
assert(!klass.set, "Class was already initialized")
|
99
|
+
|
100
|
+
assert_nothing_raised do sub.send(:initclass, klass, {}) end
|
101
|
+
|
102
|
+
assert(klass.set, "Class was not initialized")
|
103
|
+
end
|
104
|
+
|
105
|
+
def test_initclass_attributes
|
106
|
+
sub, klass = testclasses("attributes")
|
107
|
+
|
108
|
+
class << klass
|
109
|
+
attr_accessor :one, :two, :three
|
110
|
+
end
|
111
|
+
|
112
|
+
assert(!klass.one, "'one' was already set")
|
113
|
+
|
114
|
+
assert_nothing_raised do sub.send(:initclass, klass,
|
115
|
+
:attributes => {:one => :a, :two => :b}) end
|
116
|
+
|
117
|
+
assert_equal(:a, klass.one, "Class was initialized incorrectly")
|
118
|
+
assert_equal(:b, klass.two, "Class was initialized incorrectly")
|
119
|
+
assert_nil(klass.three, "Class was initialized incorrectly")
|
120
|
+
end
|
121
|
+
|
122
|
+
def test_initclass_include_and_extend
|
123
|
+
sub, klass = testclasses("include_and_extend")
|
124
|
+
|
125
|
+
incl = Module.new do
|
126
|
+
attr_accessor :included
|
127
|
+
end
|
128
|
+
self.class.const_set("Incl", incl)
|
129
|
+
|
130
|
+
ext = Module.new do
|
131
|
+
attr_accessor :extended
|
132
|
+
end
|
133
|
+
self.class.const_set("Ext", ext)
|
134
|
+
|
135
|
+
assert(! klass.respond_to?(:extended), "Class already responds to extended")
|
136
|
+
assert(! klass.new.respond_to?(:included), "Class already responds to included")
|
137
|
+
|
138
|
+
assert_nothing_raised do sub.send(:initclass, klass,
|
139
|
+
:include => incl, :extend => ext)
|
140
|
+
end
|
141
|
+
|
142
|
+
assert(klass.respond_to?(:extended), "Class did not get extended")
|
143
|
+
assert(klass.new.respond_to?(:included), "Class did not include")
|
144
|
+
end
|
145
|
+
|
146
|
+
def test_genclass
|
147
|
+
hash = {}
|
148
|
+
array = []
|
149
|
+
|
150
|
+
name = "yayness"
|
151
|
+
klass = nil
|
152
|
+
assert_nothing_raised {
|
153
|
+
klass = GenTest.genclass(name, :array => array,
|
154
|
+
:hash => hash, :parent => FakeBase) do
|
155
|
+
class << self
|
156
|
+
attr_accessor :name
|
157
|
+
end
|
158
|
+
end
|
159
|
+
}
|
160
|
+
|
161
|
+
assert(klass.respond_to?(:name=), "Class did not execute block")
|
162
|
+
|
163
|
+
assert(hash.include?(klass.name),
|
164
|
+
"Class did not get added to hash")
|
165
|
+
assert(array.include?(klass),
|
166
|
+
"Class did not get added to array")
|
167
|
+
assert_equal(klass.superclass, FakeBase, "Parent class was wrong")
|
168
|
+
end
|
169
|
+
|
170
|
+
# Make sure we call a preinithook, if there is one.
|
171
|
+
def test_inithooks
|
172
|
+
newclass = Class.new(FakeBase) do
|
173
|
+
class << self
|
174
|
+
attr_accessor :preinited, :postinited
|
175
|
+
end
|
176
|
+
def self.preinit
|
177
|
+
self.preinited = true
|
178
|
+
end
|
179
|
+
def self.postinit
|
180
|
+
self.postinited = true
|
181
|
+
end
|
182
|
+
end
|
183
|
+
|
184
|
+
klass = nil
|
185
|
+
assert_nothing_raised {
|
186
|
+
klass = GenTest.genclass(:funtest, :parent => newclass)
|
187
|
+
}
|
188
|
+
|
189
|
+
assert(klass.preinited, "prehook did not get called")
|
190
|
+
assert(klass.postinited, "posthook did not get called")
|
191
|
+
end
|
192
|
+
|
193
|
+
def test_modulegen
|
194
|
+
hash = {}
|
195
|
+
array = []
|
196
|
+
|
197
|
+
name = "modness"
|
198
|
+
mod = nil
|
199
|
+
assert_nothing_raised {
|
200
|
+
mod = GenTest.genmodule(name, :array => array, :hash => hash) do
|
201
|
+
class << self
|
202
|
+
attr_accessor :yaytest
|
203
|
+
end
|
204
|
+
|
205
|
+
@yaytest = true
|
206
|
+
end
|
207
|
+
}
|
208
|
+
|
209
|
+
assert(mod.respond_to?(:yaytest), "Class did not execute block")
|
210
|
+
|
211
|
+
assert_instance_of(Module, mod)
|
212
|
+
assert(hash.include?(mod.name),
|
213
|
+
"Class did not get added to hash")
|
214
|
+
assert(array.include?(mod),
|
215
|
+
"Class did not get added to array")
|
216
|
+
end
|
217
|
+
|
218
|
+
def test_genconst_string
|
219
|
+
const = nil
|
220
|
+
assert_nothing_raised do
|
221
|
+
const = GenTest.send(:genconst_string, :testing, :prefix => "Yayness")
|
222
|
+
end
|
223
|
+
assert_equal("YaynessTesting", const)
|
224
|
+
end
|
225
|
+
end
|
226
|
+
|
227
|
+
# $Id: classgen.rb 1856 2006-11-11 07:40:16Z luke $
|
@@ -1,18 +1,21 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
if __FILE__
|
4
|
-
$:.unshift '..'
|
5
|
-
$:.unshift '../../lib'
|
6
|
-
$puppetbase = "../.."
|
7
|
-
end
|
3
|
+
$:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/
|
8
4
|
|
9
5
|
require 'puppet'
|
10
|
-
require 'puppet/config'
|
6
|
+
require 'puppet/util/config'
|
11
7
|
require 'puppettest'
|
12
|
-
require '
|
8
|
+
require 'puppettest/parsertesting'
|
13
9
|
|
14
10
|
class TestConfig < Test::Unit::TestCase
|
15
|
-
include
|
11
|
+
include PuppetTest
|
12
|
+
include PuppetTest::ParserTesting
|
13
|
+
|
14
|
+
def setup
|
15
|
+
super
|
16
|
+
@config = mkconfig
|
17
|
+
end
|
18
|
+
|
16
19
|
|
17
20
|
def check_for_users
|
18
21
|
count = Puppet::Type.type(:user).inject(0) { |c,o|
|
@@ -46,21 +49,16 @@ class TestConfig < Test::Unit::TestCase
|
|
46
49
|
}
|
47
50
|
|
48
51
|
Puppet[:parseonly] = true
|
49
|
-
parser = Puppet::Parser::Parser.new()
|
50
52
|
|
51
|
-
|
52
|
-
assert_nothing_raised
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
scope = Puppet::Parser::Scope.new
|
57
|
-
assert_nothing_raised("Could not compile objects") {
|
58
|
-
scope.evaluate(:ast => objects)
|
59
|
-
}
|
53
|
+
interp = nil
|
54
|
+
assert_nothing_raised do
|
55
|
+
interp = mkinterp :Code => manifest, :UseNodes => false
|
56
|
+
end
|
57
|
+
|
60
58
|
trans = nil
|
61
|
-
assert_nothing_raised
|
62
|
-
trans =
|
63
|
-
|
59
|
+
assert_nothing_raised do
|
60
|
+
trans = interp.evaluate(nil, {})
|
61
|
+
end
|
64
62
|
assert_nothing_raised("Could not instantiate objects") {
|
65
63
|
trans.to_type
|
66
64
|
}
|
@@ -95,63 +93,60 @@ class TestConfig < Test::Unit::TestCase
|
|
95
93
|
def mkconfig
|
96
94
|
c = nil
|
97
95
|
assert_nothing_raised {
|
98
|
-
c = Puppet::Config.new
|
96
|
+
c = Puppet::Util::Config.new
|
99
97
|
}
|
100
98
|
return c
|
101
99
|
end
|
102
100
|
|
103
101
|
def test_addbools
|
104
|
-
c = mkconfig
|
105
|
-
|
106
102
|
assert_nothing_raised {
|
107
|
-
|
103
|
+
@config.setdefaults(:testing, :booltest => [true, "testing"])
|
108
104
|
}
|
109
105
|
|
110
|
-
assert(
|
111
|
-
|
106
|
+
assert(@config[:booltest])
|
107
|
+
@config = mkconfig
|
112
108
|
|
113
109
|
assert_nothing_raised {
|
114
|
-
|
110
|
+
@config.setdefaults(:testing, :booltest => ["true", "testing"])
|
115
111
|
}
|
116
112
|
|
117
|
-
assert(
|
113
|
+
assert(@config[:booltest])
|
118
114
|
|
119
115
|
assert_nothing_raised {
|
120
|
-
|
116
|
+
@config[:booltest] = false
|
121
117
|
}
|
122
118
|
|
123
|
-
assert(!
|
119
|
+
assert(! @config[:booltest], "Booltest is not false")
|
124
120
|
|
125
121
|
assert_nothing_raised {
|
126
|
-
|
122
|
+
@config[:booltest] = "false"
|
127
123
|
}
|
128
124
|
|
129
|
-
assert(!
|
125
|
+
assert(! @config[:booltest], "Booltest is not false")
|
130
126
|
|
131
127
|
assert_raise(Puppet::Error) {
|
132
|
-
|
128
|
+
@config[:booltest] = "yayness"
|
133
129
|
}
|
134
130
|
|
135
131
|
assert_raise(Puppet::Error) {
|
136
|
-
|
132
|
+
@config[:booltest] = "/some/file"
|
137
133
|
}
|
138
134
|
end
|
139
135
|
|
140
136
|
def test_strings
|
141
|
-
c = mkconfig
|
142
137
|
val = "this is a string"
|
143
138
|
assert_nothing_raised {
|
144
|
-
|
139
|
+
@config.setdefaults(:testing, :strtest => [val, "testing"])
|
145
140
|
}
|
146
141
|
|
147
|
-
assert_equal(val,
|
142
|
+
assert_equal(val, @config[:strtest])
|
148
143
|
|
149
144
|
# Verify that variables are interpolated
|
150
145
|
assert_nothing_raised {
|
151
|
-
|
146
|
+
@config.setdefaults(:testing, :another => ["another $strtest", "testing"])
|
152
147
|
}
|
153
148
|
|
154
|
-
assert_equal("another #{val}",
|
149
|
+
assert_equal("another #{val}", @config[:another])
|
155
150
|
end
|
156
151
|
|
157
152
|
def test_files
|
@@ -159,47 +154,46 @@ class TestConfig < Test::Unit::TestCase
|
|
159
154
|
|
160
155
|
parent = "/puppet"
|
161
156
|
assert_nothing_raised {
|
162
|
-
|
157
|
+
@config.setdefaults(:testing, :parentdir => [parent, "booh"])
|
163
158
|
}
|
164
159
|
|
165
160
|
assert_nothing_raised {
|
166
|
-
|
161
|
+
@config.setdefaults(:testing, :child => ["$parent/child", "rah"])
|
167
162
|
}
|
168
163
|
|
169
|
-
assert_equal(parent,
|
170
|
-
assert_equal("/puppet/child", File.join(
|
164
|
+
assert_equal(parent, @config[:parentdir])
|
165
|
+
assert_equal("/puppet/child", File.join(@config[:parentdir], "child"))
|
171
166
|
end
|
172
167
|
|
173
168
|
def test_getset
|
174
|
-
c = mkconfig
|
175
169
|
initial = "an initial value"
|
176
170
|
assert_raise(Puppet::Error) {
|
177
|
-
|
171
|
+
@config[:yayness] = initial
|
178
172
|
}
|
179
173
|
|
180
174
|
default = "this is a default"
|
181
175
|
assert_nothing_raised {
|
182
|
-
|
176
|
+
@config.setdefaults(:testing, :yayness => [default, "rah"])
|
183
177
|
}
|
184
178
|
|
185
|
-
assert_equal(default,
|
179
|
+
assert_equal(default, @config[:yayness])
|
186
180
|
|
187
181
|
assert_nothing_raised {
|
188
|
-
|
182
|
+
@config[:yayness] = initial
|
189
183
|
}
|
190
184
|
|
191
|
-
assert_equal(initial,
|
185
|
+
assert_equal(initial, @config[:yayness])
|
192
186
|
|
193
187
|
assert_nothing_raised {
|
194
|
-
|
188
|
+
@config.clear
|
195
189
|
}
|
196
190
|
|
197
|
-
assert_equal(default,
|
191
|
+
assert_equal(default, @config[:yayness])
|
198
192
|
|
199
193
|
assert_nothing_raised {
|
200
|
-
|
194
|
+
@config[:yayness] = "not default"
|
201
195
|
}
|
202
|
-
assert_equal("not default",
|
196
|
+
assert_equal("not default", @config[:yayness])
|
203
197
|
end
|
204
198
|
|
205
199
|
def test_parse
|
@@ -221,9 +215,8 @@ yay = /a/path
|
|
221
215
|
file = tempfile()
|
222
216
|
File.open(file, "w") { |f| f.puts text }
|
223
217
|
|
224
|
-
c = mkconfig
|
225
218
|
assert_nothing_raised {
|
226
|
-
|
219
|
+
@config.setdefaults("puppet",
|
227
220
|
:one => ["a", "one"],
|
228
221
|
:two => ["a", "two"],
|
229
222
|
:yay => ["/default/path", "boo"],
|
@@ -232,7 +225,7 @@ yay = /a/path
|
|
232
225
|
}
|
233
226
|
|
234
227
|
assert_nothing_raised {
|
235
|
-
|
228
|
+
@config.setdefaults("section1",
|
236
229
|
:attr => ["a", "one"],
|
237
230
|
:attrdir => ["/another/dir", "two"],
|
238
231
|
:attr3 => ["$attrdir/maybe", "boo"]
|
@@ -240,17 +233,17 @@ yay = /a/path
|
|
240
233
|
}
|
241
234
|
|
242
235
|
assert_nothing_raised {
|
243
|
-
|
236
|
+
@config.parse(file)
|
244
237
|
}
|
245
238
|
|
246
|
-
assert_equal("value",
|
247
|
-
assert_equal("/some/dir",
|
248
|
-
assert_equal(:directory,
|
249
|
-
assert_equal("/some/dir/other",
|
239
|
+
assert_equal("value", @config[:attr])
|
240
|
+
assert_equal("/some/dir", @config[:attrdir])
|
241
|
+
assert_equal(:directory, @config.element(:attrdir).type)
|
242
|
+
assert_equal("/some/dir/other", @config[:attr3])
|
250
243
|
|
251
244
|
elem = nil
|
252
245
|
assert_nothing_raised {
|
253
|
-
elem =
|
246
|
+
elem = @config.element(:attr3)
|
254
247
|
}
|
255
248
|
|
256
249
|
assert(elem)
|
@@ -258,27 +251,27 @@ yay = /a/path
|
|
258
251
|
|
259
252
|
config = nil
|
260
253
|
assert_nothing_raised {
|
261
|
-
config =
|
254
|
+
config = @config.to_config
|
262
255
|
}
|
263
256
|
|
264
257
|
assert_nothing_raised("Could not create transportable config") {
|
265
|
-
|
258
|
+
@config.to_transportable
|
266
259
|
}
|
267
260
|
|
268
|
-
check_to_comp(
|
261
|
+
check_to_comp(@config)
|
269
262
|
Puppet::Type.allclear
|
270
|
-
check_to_manifest(
|
263
|
+
check_to_manifest(@config)
|
271
264
|
Puppet::Type.allclear
|
272
|
-
check_to_config(
|
265
|
+
check_to_config(@config)
|
273
266
|
Puppet::Type.allclear
|
274
|
-
check_to_transportable(
|
267
|
+
check_to_transportable(@config)
|
275
268
|
end
|
276
269
|
|
277
270
|
def test_arghandling
|
278
271
|
c = mkconfig
|
279
272
|
|
280
273
|
assert_nothing_raised {
|
281
|
-
|
274
|
+
@config.setdefaults("testing",
|
282
275
|
:onboolean => [true, "An on bool"],
|
283
276
|
:offboolean => [false, "An off bool"],
|
284
277
|
:string => ["a string", "A string arg"],
|
@@ -296,7 +289,7 @@ yay = /a/path
|
|
296
289
|
values.each { |val|
|
297
290
|
opt = nil
|
298
291
|
arg = nil
|
299
|
-
if
|
292
|
+
if @config.boolean?(param)
|
300
293
|
if val
|
301
294
|
opt = "--%s" % param
|
302
295
|
else
|
@@ -310,7 +303,7 @@ yay = /a/path
|
|
310
303
|
assert_nothing_raised("Could not handle arg %s with value %s" %
|
311
304
|
[opt, val]) {
|
312
305
|
|
313
|
-
|
306
|
+
@config.handlearg(opt, arg)
|
314
307
|
}
|
315
308
|
}
|
316
309
|
}
|
@@ -320,7 +313,7 @@ yay = /a/path
|
|
320
313
|
c = mkconfig
|
321
314
|
|
322
315
|
assert_nothing_raised {
|
323
|
-
|
316
|
+
@config.setdefaults("testing",
|
324
317
|
:onboolean => [true, "An on bool"],
|
325
318
|
:offboolean => [false, "An off bool"],
|
326
319
|
:string => ["a string", "A string arg"],
|
@@ -329,15 +322,15 @@ yay = /a/path
|
|
329
322
|
}
|
330
323
|
options = []
|
331
324
|
|
332
|
-
|
325
|
+
@config.addargs(options)
|
333
326
|
|
334
|
-
|
327
|
+
@config.each { |param, obj|
|
335
328
|
opt = "--%s" % param
|
336
329
|
assert(options.find { |ary|
|
337
330
|
ary[0] == opt
|
338
331
|
}, "Argument %s was not added" % opt)
|
339
332
|
|
340
|
-
if
|
333
|
+
if @config.boolean?(param)
|
341
334
|
o = "--no-%s" % param
|
342
335
|
assert(options.find { |ary|
|
343
336
|
ary[0] == o
|
@@ -347,6 +340,10 @@ yay = /a/path
|
|
347
340
|
end
|
348
341
|
|
349
342
|
def test_usesection
|
343
|
+
# We want to make sure that config processes do not result in graphing.
|
344
|
+
Puppet[:graphdir] = tempfile()
|
345
|
+
Puppet[:graph] = true
|
346
|
+
Dir.mkdir(Puppet[:graphdir])
|
350
347
|
c = mkconfig
|
351
348
|
|
352
349
|
dir = tempfile()
|
@@ -355,7 +352,7 @@ yay = /a/path
|
|
355
352
|
otherfile = File.join(dir, "otherfile")
|
356
353
|
section = "testing"
|
357
354
|
assert_nothing_raised {
|
358
|
-
|
355
|
+
@config.setdefaults(section,
|
359
356
|
:mydir => [dir, "A dir arg"],
|
360
357
|
:otherfile => {
|
361
358
|
:default => "$mydir/otherfile",
|
@@ -367,12 +364,16 @@ yay = /a/path
|
|
367
364
|
}
|
368
365
|
|
369
366
|
assert_nothing_raised("Could not use a section") {
|
370
|
-
|
367
|
+
@config.use(section)
|
371
368
|
}
|
372
369
|
|
373
370
|
assert_nothing_raised("Could not reuse a section") {
|
374
|
-
|
371
|
+
@config.use(section)
|
375
372
|
}
|
373
|
+
|
374
|
+
# Make sure it didn't graph anything, which is the only real way
|
375
|
+
# to test that the transaction was marked as a configurator.
|
376
|
+
assert(Dir.entries(Puppet[:graphdir]).reject { |f| f =~ /^\.\.?$/ }.empty?, "Graphed config process")
|
376
377
|
|
377
378
|
assert(FileTest.directory?(dir), "Did not create directory")
|
378
379
|
assert(FileTest.exists?(otherfile), "Did not create file")
|
@@ -383,28 +384,28 @@ yay = /a/path
|
|
383
384
|
c = mkconfig
|
384
385
|
|
385
386
|
assert_nothing_raised {
|
386
|
-
|
387
|
+
@config.setdefaults("yay",
|
387
388
|
:a => [false, "some value"],
|
388
389
|
:b => ["/my/file", "a file"]
|
389
390
|
)
|
390
391
|
}
|
391
392
|
|
392
|
-
assert_equal(false,
|
393
|
-
assert_equal("/my/file",
|
393
|
+
assert_equal(false, @config[:a], "Values are not equal")
|
394
|
+
assert_equal("/my/file", @config[:b], "Values are not equal")
|
394
395
|
end
|
395
396
|
|
396
397
|
def test_setdefaultshash
|
397
398
|
c = mkconfig
|
398
399
|
|
399
400
|
assert_nothing_raised {
|
400
|
-
|
401
|
+
@config.setdefaults("yay",
|
401
402
|
:a => {:default => false, :desc => "some value"},
|
402
403
|
:b => {:default => "/my/file", :desc => "a file"}
|
403
404
|
)
|
404
405
|
}
|
405
406
|
|
406
|
-
assert_equal(false,
|
407
|
-
assert_equal("/my/file",
|
407
|
+
assert_equal(false, @config[:a], "Values are not equal")
|
408
|
+
assert_equal("/my/file", @config[:b], "Values are not equal")
|
408
409
|
end
|
409
410
|
|
410
411
|
def test_reuse
|
@@ -413,13 +414,13 @@ yay = /a/path
|
|
413
414
|
file = tempfile()
|
414
415
|
section = "testing"
|
415
416
|
assert_nothing_raised {
|
416
|
-
|
417
|
-
:myfile => {:default => file, :create => true}
|
417
|
+
@config.setdefaults(section,
|
418
|
+
:myfile => {:default => file, :create => true, :desc => "yay"}
|
418
419
|
)
|
419
420
|
}
|
420
421
|
|
421
422
|
assert_nothing_raised("Could not use a section") {
|
422
|
-
|
423
|
+
@config.use(section)
|
423
424
|
}
|
424
425
|
|
425
426
|
assert(FileTest.exists?(file), "Did not create file")
|
@@ -428,7 +429,7 @@ yay = /a/path
|
|
428
429
|
|
429
430
|
File.unlink(file)
|
430
431
|
|
431
|
-
|
432
|
+
@config.reuse
|
432
433
|
assert(FileTest.exists?(file), "Did not create file")
|
433
434
|
end
|
434
435
|
|
@@ -438,12 +439,13 @@ yay = /a/path
|
|
438
439
|
file = tempfile()
|
439
440
|
section = "testing"
|
440
441
|
assert_nothing_raised {
|
441
|
-
|
442
|
+
@config.setdefaults(section,
|
442
443
|
:mkusers => [false, "yay"],
|
443
444
|
:myfile => {
|
444
445
|
:default => file,
|
445
446
|
:owner => "pptest",
|
446
447
|
:group => "pptest",
|
448
|
+
:desc => "yay",
|
447
449
|
:create => true
|
448
450
|
}
|
449
451
|
)
|
@@ -451,7 +453,7 @@ yay = /a/path
|
|
451
453
|
|
452
454
|
comp = nil
|
453
455
|
assert_nothing_raised {
|
454
|
-
comp =
|
456
|
+
comp = @config.to_component
|
455
457
|
}
|
456
458
|
|
457
459
|
[:user, :group].each do |type|
|
@@ -463,26 +465,38 @@ yay = /a/path
|
|
463
465
|
end
|
464
466
|
comp.each { |o| o.remove }
|
465
467
|
|
466
|
-
|
468
|
+
@config[:mkusers] = true
|
467
469
|
|
468
470
|
assert_nothing_raised {
|
469
|
-
|
471
|
+
@config.to_component
|
470
472
|
}
|
471
473
|
|
472
|
-
|
473
|
-
assert(
|
474
|
-
|
475
|
-
)
|
476
|
-
|
477
|
-
|
474
|
+
user = Puppet.type(:user)["pptest"]
|
475
|
+
assert(user, "User object did not get created")
|
476
|
+
assert(user.managed?, "User object is not managed.")
|
477
|
+
assert(user.should(:comment), "user does not have a comment set")
|
478
|
+
|
479
|
+
group = Puppet.type(:group)["pptest"]
|
480
|
+
assert(group, "Group object did not get created")
|
481
|
+
assert(group.managed?,
|
478
482
|
"Group object is not managed."
|
479
483
|
)
|
484
|
+
|
485
|
+
if Process.uid == 0
|
486
|
+
cleanup do
|
487
|
+
user[:ensure] = :absent
|
488
|
+
group[:ensure] = :absent
|
489
|
+
assert_apply(user, group)
|
490
|
+
end
|
491
|
+
|
492
|
+
assert_apply(user, group)
|
493
|
+
end
|
480
494
|
end
|
481
495
|
|
482
496
|
def test_notmanagingdev
|
483
497
|
c = mkconfig
|
484
498
|
path = "/dev/testing"
|
485
|
-
|
499
|
+
@config.setdefaults(:test,
|
486
500
|
:file => {
|
487
501
|
:default => path,
|
488
502
|
:mode => 0640,
|
@@ -491,7 +505,7 @@ yay = /a/path
|
|
491
505
|
)
|
492
506
|
|
493
507
|
assert_nothing_raised {
|
494
|
-
|
508
|
+
@config.to_component
|
495
509
|
}
|
496
510
|
|
497
511
|
assert(! Puppet.type(:file)["/dev/testing"], "Created dev file")
|
@@ -503,13 +517,13 @@ yay = /a/path
|
|
503
517
|
group = "yayness"
|
504
518
|
|
505
519
|
File.open(cfile, "w") do |f|
|
506
|
-
f.puts "[#{Puppet
|
520
|
+
f.puts "[#{Puppet[:name]}]
|
507
521
|
group = #{group}
|
508
522
|
"
|
509
523
|
end
|
510
524
|
|
511
525
|
config = mkconfig
|
512
|
-
config.setdefaults(Puppet
|
526
|
+
config.setdefaults(Puppet[:name], :group => ["puppet", "a group"])
|
513
527
|
|
514
528
|
assert_nothing_raised {
|
515
529
|
config.parse(cfile)
|
@@ -521,17 +535,19 @@ yay = /a/path
|
|
521
535
|
# provide a method to modify and create files w/out specifying the info
|
522
536
|
# already stored in a config
|
523
537
|
def test_writingfiles
|
538
|
+
File.umask(0022)
|
539
|
+
|
524
540
|
path = tempfile()
|
525
541
|
mode = 0644
|
526
542
|
|
527
543
|
config = mkconfig
|
528
544
|
|
529
|
-
args = { :default => path, :mode => mode }
|
545
|
+
args = { :default => path, :mode => mode, :desc => "yay" }
|
530
546
|
|
531
547
|
user = nonrootuser()
|
532
548
|
group = nonrootgroup()
|
533
549
|
|
534
|
-
if
|
550
|
+
if Puppet::Util::SUIDManager.uid == 0
|
535
551
|
args[:owner] = user.name
|
536
552
|
args[:group] = group.name
|
537
553
|
end
|
@@ -547,7 +563,7 @@ yay = /a/path
|
|
547
563
|
assert_equal(mode, filemode(path), "Modes are not equal")
|
548
564
|
|
549
565
|
# OS X is broken in how it chgrps files
|
550
|
-
if
|
566
|
+
if Puppet::Util::SUIDManager.uid == 0
|
551
567
|
assert_equal(user.uid, File.stat(path).uid, "UIDS are not equal")
|
552
568
|
|
553
569
|
case Facter["operatingsystem"].value
|
@@ -559,17 +575,19 @@ yay = /a/path
|
|
559
575
|
end
|
560
576
|
|
561
577
|
def test_mkdir
|
578
|
+
File.umask(0022)
|
579
|
+
|
562
580
|
path = tempfile()
|
563
581
|
mode = 0755
|
564
582
|
|
565
583
|
config = mkconfig
|
566
584
|
|
567
|
-
args = { :default => path, :mode => mode }
|
585
|
+
args = { :default => path, :mode => mode, :desc => "a file" }
|
568
586
|
|
569
587
|
user = nonrootuser()
|
570
588
|
group = nonrootgroup()
|
571
589
|
|
572
|
-
if
|
590
|
+
if Puppet::Util::SUIDManager.uid == 0
|
573
591
|
args[:owner] = user.name
|
574
592
|
args[:group] = group.name
|
575
593
|
end
|
@@ -584,7 +602,7 @@ yay = /a/path
|
|
584
602
|
|
585
603
|
|
586
604
|
# OS X and *BSD is broken in how it chgrps files
|
587
|
-
if
|
605
|
+
if Puppet::Util::SUIDManager.uid == 0
|
588
606
|
assert_equal(user.uid, File.stat(path).uid, "UIDS are not equal")
|
589
607
|
|
590
608
|
case Facter["operatingsystem"].value
|
@@ -665,9 +683,9 @@ inttest = 27
|
|
665
683
|
def test_correct_type_assumptions
|
666
684
|
config = mkconfig
|
667
685
|
|
668
|
-
file = Puppet::Config::CFile
|
669
|
-
element = Puppet::Config::CElement
|
670
|
-
bool = Puppet::Config::CBoolean
|
686
|
+
file = Puppet::Util::Config::CFile
|
687
|
+
element = Puppet::Util::Config::CElement
|
688
|
+
bool = Puppet::Util::Config::CBoolean
|
671
689
|
|
672
690
|
# We have to keep these ordered, unfortunately.
|
673
691
|
[
|
@@ -686,6 +704,7 @@ inttest = 27
|
|
686
704
|
elem = config.newelement(
|
687
705
|
:name => value,
|
688
706
|
:default => value,
|
707
|
+
:desc => name.to_s,
|
689
708
|
:section => :yayness
|
690
709
|
)
|
691
710
|
}
|
@@ -807,6 +826,247 @@ inttest = 27
|
|
807
826
|
|
808
827
|
|
809
828
|
end
|
829
|
+
|
830
|
+
# Test that config parameters correctly call passed-in blocks when the value
|
831
|
+
# is set.
|
832
|
+
def test_paramblocks
|
833
|
+
config = mkconfig()
|
834
|
+
|
835
|
+
testing = nil
|
836
|
+
elem = nil
|
837
|
+
assert_nothing_raised do
|
838
|
+
elem = config.newelement :default => "yay",
|
839
|
+
:name => :blocktest,
|
840
|
+
:desc => "boo",
|
841
|
+
:section => :test,
|
842
|
+
:hook => proc { |value| testing = value }
|
843
|
+
end
|
844
|
+
|
845
|
+
assert_nothing_raised do
|
846
|
+
assert_equal("yay", elem.value)
|
847
|
+
end
|
848
|
+
|
849
|
+
assert_nothing_raised do
|
850
|
+
elem.value = "yaytest"
|
851
|
+
end
|
852
|
+
|
853
|
+
assert_nothing_raised do
|
854
|
+
assert_equal("yaytest", elem.value)
|
855
|
+
end
|
856
|
+
assert_equal("yaytest", testing)
|
857
|
+
|
858
|
+
assert_nothing_raised do
|
859
|
+
elem.value = "another"
|
860
|
+
end
|
861
|
+
|
862
|
+
assert_nothing_raised do
|
863
|
+
assert_equal("another", elem.value)
|
864
|
+
end
|
865
|
+
assert_equal("another", testing)
|
866
|
+
|
867
|
+
# Now verify it works from setdefault
|
868
|
+
assert_nothing_raised do
|
869
|
+
config.setdefaults :test,
|
870
|
+
:blocktest2 => {
|
871
|
+
:default => "yay",
|
872
|
+
:desc => "yay",
|
873
|
+
:hook => proc { |v| testing = v }
|
874
|
+
}
|
875
|
+
end
|
876
|
+
|
877
|
+
assert_equal("yay", config[:blocktest2])
|
878
|
+
|
879
|
+
assert_nothing_raised do
|
880
|
+
config[:blocktest2] = "footest"
|
881
|
+
end
|
882
|
+
assert_equal("footest", config[:blocktest2])
|
883
|
+
assert_equal("footest", testing)
|
884
|
+
end
|
885
|
+
|
886
|
+
def test_no_modify_root
|
887
|
+
config = mkconfig
|
888
|
+
config.setdefaults(:yay,
|
889
|
+
:mydir => {:default => tempfile(),
|
890
|
+
:mode => 0644,
|
891
|
+
:owner => "root",
|
892
|
+
:group => "root",
|
893
|
+
:desc => "yay"
|
894
|
+
},
|
895
|
+
:mkusers => [false, "yay"]
|
896
|
+
)
|
897
|
+
|
898
|
+
assert_nothing_raised do
|
899
|
+
config.use(:yay)
|
900
|
+
end
|
901
|
+
|
902
|
+
# Now enable it so they'll be added
|
903
|
+
config[:mkusers] = true
|
904
|
+
|
905
|
+
comp = config.to_component
|
906
|
+
|
907
|
+
Puppet::Type.type(:user).each do |u|
|
908
|
+
assert(u.name != "root", "Tried to manage root user")
|
909
|
+
end
|
910
|
+
Puppet::Type.type(:group).each do |u|
|
911
|
+
assert(u.name != "root", "Tried to manage root group")
|
912
|
+
assert(u.name != "wheel", "Tried to manage wheel group")
|
913
|
+
end
|
914
|
+
|
915
|
+
# assert(yay, "Did not find yay component")
|
916
|
+
# yay.each do |c|
|
917
|
+
# puts @config.ref
|
918
|
+
# end
|
919
|
+
# assert(! yay.find { |o| o.class.name == :user and o.name == "root" },
|
920
|
+
# "Found root user")
|
921
|
+
# assert(! yay.find { |o| o.class.name == :group and o.name == "root" },
|
922
|
+
# "Found root group")
|
923
|
+
end
|
924
|
+
|
925
|
+
# #415
|
926
|
+
def test_remove_trailing_spaces
|
927
|
+
config = mkconfig()
|
928
|
+
config.setdefaults(:yay, :rah => ["testing", "a desc"])
|
929
|
+
|
930
|
+
file = tempfile()
|
931
|
+
File.open(file, "w") { |f| f.puts "rah = something " }
|
932
|
+
|
933
|
+
assert_nothing_raised { config.parse(file) }
|
934
|
+
assert_equal("something", config[:rah], "did not remove trailing whitespace in parsing")
|
935
|
+
end
|
936
|
+
|
937
|
+
# #484
|
938
|
+
def test_parsing_unknown_variables
|
939
|
+
logstore()
|
940
|
+
config = mkconfig()
|
941
|
+
config.setdefaults(:mysection, :one => ["yay", "yay"])
|
942
|
+
file = tempfile()
|
943
|
+
File.open(file, "w") { |f|
|
944
|
+
f.puts %{[mysection]\n
|
945
|
+
one = one
|
946
|
+
two = yay
|
947
|
+
}
|
948
|
+
}
|
949
|
+
|
950
|
+
assert_nothing_raised("Unknown parameter threw an exception") do
|
951
|
+
config.parse(file)
|
952
|
+
end
|
953
|
+
|
954
|
+
assert(@logs.detect { |l| l.message =~ /unknown configuration/ and l.level == :warning },
|
955
|
+
"Did not generate warning message")
|
956
|
+
end
|
957
|
+
|
958
|
+
def test_multiple_interpolations
|
959
|
+
@config.setdefaults(:section,
|
960
|
+
:one => ["oneval", "yay"],
|
961
|
+
:two => ["twoval", "yay"],
|
962
|
+
:three => ["$one/$two", "yay"]
|
963
|
+
)
|
964
|
+
|
965
|
+
assert_equal("oneval/twoval", @config[:three],
|
966
|
+
"Did not interpolate multiple variables")
|
967
|
+
end
|
968
|
+
|
969
|
+
# Make sure we can replace ${style} var names
|
970
|
+
def test_curly_replacements
|
971
|
+
@config.setdefaults(:section,
|
972
|
+
:one => ["oneval", "yay"],
|
973
|
+
:two => ["twoval", "yay"],
|
974
|
+
:three => ["$one/${two}/${one}/$two", "yay"]
|
975
|
+
)
|
976
|
+
|
977
|
+
assert_equal("oneval/twoval/oneval/twoval", @config[:three],
|
978
|
+
"Did not interpolate curlied variables")
|
979
|
+
end
|
980
|
+
|
981
|
+
# #489
|
982
|
+
def test_modes
|
983
|
+
Puppet[:name] = "puppet"
|
984
|
+
config = tempfile()
|
985
|
+
|
986
|
+
check = Proc.new do |string, int|
|
987
|
+
trans = @config.section_to_transportable(:puppet)
|
988
|
+
ssldir = trans.find { |o| o.type == "file" }
|
989
|
+
assert(ssldir, "could not find trans object")
|
990
|
+
|
991
|
+
if ssldir[:mode].is_a?(Fixnum)
|
992
|
+
assert_equal(int, ssldir[:mode], "mode not set correctly")
|
993
|
+
else
|
994
|
+
assert_equal(string, ssldir[:mode], "mode not set correctly")
|
995
|
+
end
|
996
|
+
|
997
|
+
obj = nil
|
998
|
+
assert_nothing_raised { obj = ssldir.to_type }
|
999
|
+
|
1000
|
+
assert(obj, "did not create object")
|
1001
|
+
assert_equal(int, obj.should(:mode),
|
1002
|
+
"did not pass mode correctly to file")
|
1003
|
+
|
1004
|
+
obj.class.clear
|
1005
|
+
end
|
1006
|
+
|
1007
|
+
file = tempfile
|
1008
|
+
@config.setdefaults(:puppet, :mode => ["644", "yay"])
|
1009
|
+
@config.setdefaults(:puppet, :ssldir => {
|
1010
|
+
:mode => 0644,
|
1011
|
+
:desc => "yay",
|
1012
|
+
:default => "/some/file"})
|
1013
|
+
|
1014
|
+
# Convert it first using the number
|
1015
|
+
check.call("644", 0644)
|
1016
|
+
|
1017
|
+
File.open(config, "w") { |f| f.puts "[puppet]
|
1018
|
+
mode = 750
|
1019
|
+
ssldir = #{file}
|
1020
|
+
"}
|
1021
|
+
|
1022
|
+
@config.parse(config)
|
1023
|
+
|
1024
|
+
assert_equal("750", @config[:mode],
|
1025
|
+
"Did not parse mode correctly")
|
1026
|
+
|
1027
|
+
check.call("750", 0750)
|
1028
|
+
end
|
1029
|
+
|
1030
|
+
def test_only_set_metas_when_valid
|
1031
|
+
file = tempfile
|
1032
|
+
config = tempfile
|
1033
|
+
@config.setdefaults(Puppet[:name], :ssldir => {
|
1034
|
+
:mode => 0644,
|
1035
|
+
:group => "yayness",
|
1036
|
+
:desc => "yay",
|
1037
|
+
:default => "/some/file"})
|
1038
|
+
|
1039
|
+
File.open(config, "w") { |f| f.puts "[#{Puppet[:name]}]
|
1040
|
+
mode = 755
|
1041
|
+
group = foo
|
1042
|
+
ssldir = #{file}
|
1043
|
+
"}
|
1044
|
+
|
1045
|
+
assert_nothing_raised do
|
1046
|
+
@config.parse(config)
|
1047
|
+
end
|
1048
|
+
|
1049
|
+
assert_raise(ArgumentError) do
|
1050
|
+
@config[:mode]
|
1051
|
+
end
|
1052
|
+
assert_raise(ArgumentError) do
|
1053
|
+
@config[:group]
|
1054
|
+
end
|
1055
|
+
|
1056
|
+
# Now make them valid params
|
1057
|
+
@config.setdefaults(Puppet[:name], :group => ["blah", "yay"])
|
1058
|
+
@config.setdefaults(Puppet[:name], :mode => ["750", "yay"])
|
1059
|
+
|
1060
|
+
assert_nothing_raised do
|
1061
|
+
@config.parse(config)
|
1062
|
+
end
|
1063
|
+
|
1064
|
+
assert_equal("foo", @config[:group],
|
1065
|
+
"Did not store group when it is a valid config")
|
1066
|
+
assert_equal("755", @config[:mode],
|
1067
|
+
"Did not store mode when it is a valid config")
|
1068
|
+
|
1069
|
+
end
|
810
1070
|
end
|
811
1071
|
|
812
|
-
# $Id: config.rb
|
1072
|
+
# $Id: config.rb 2273 2007-03-08 17:35:18Z luke $
|