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
data/bin/puppetdoc
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
#
|
9
9
|
# = Usage
|
10
10
|
#
|
11
|
-
# puppetdoc [-h|--help] [-
|
11
|
+
# puppetdoc [-a|--all] [-h|--help] [-m|--mode <text|pdf|trac> [-s|--section <[type]|configuration|report|function>]
|
12
12
|
#
|
13
13
|
# = Description
|
14
14
|
#
|
@@ -19,18 +19,21 @@
|
|
19
19
|
#
|
20
20
|
# = Options
|
21
21
|
#
|
22
|
-
#
|
23
|
-
#
|
22
|
+
# all::
|
23
|
+
# Output the docs for all of the reference types.
|
24
24
|
#
|
25
25
|
# help::
|
26
26
|
# Print this help message
|
27
27
|
#
|
28
|
-
#
|
29
|
-
#
|
28
|
+
# mode::
|
29
|
+
# Determine the output mode. Valid modes are 'text', 'trac', and 'pdf'. Note that 'trac' mode only works on Reductive Labs servers. The default mode is 'text'.
|
30
|
+
#
|
31
|
+
# section::
|
32
|
+
# Handle a particular section. Available sections are 'type', 'configuration', 'report', and 'function'. The default section is 'type'.
|
30
33
|
#
|
31
34
|
# = Example
|
32
35
|
#
|
33
|
-
# $ puppetdoc > /tmp/
|
36
|
+
# $ puppetdoc > /tmp/type_reference.rst
|
34
37
|
#
|
35
38
|
# = Author
|
36
39
|
#
|
@@ -38,41 +41,197 @@
|
|
38
41
|
#
|
39
42
|
# = Copyright
|
40
43
|
#
|
41
|
-
# Copyright (c) 2005 Reductive Labs, LLC
|
44
|
+
# Copyright (c) 2005-2007 Reductive Labs, LLC
|
42
45
|
# Licensed under the GNU Public License
|
43
46
|
|
44
47
|
require 'puppet'
|
45
|
-
require 'getoptlong'
|
46
48
|
|
47
|
-
|
49
|
+
class PuppetDoc
|
50
|
+
include Puppet::Util::Docs
|
51
|
+
@@sections = {}
|
52
|
+
|
53
|
+
attr_accessor :page, :depth, :header, :title
|
54
|
+
|
55
|
+
def self.[](name)
|
56
|
+
@@sections[name]
|
57
|
+
end
|
58
|
+
|
59
|
+
def self.each
|
60
|
+
@@sections.sort { |a, b| a[0].to_s <=> b[0].to_s }.each { |name, instance| yield instance }
|
61
|
+
end
|
62
|
+
|
63
|
+
def self.footer
|
64
|
+
"\n\n----------------\n\n*This page autogenerated on %s*\n" % Time.now
|
65
|
+
end
|
66
|
+
|
67
|
+
def self.page(*sections)
|
68
|
+
depth = 4
|
69
|
+
# Use the minimum depth
|
70
|
+
sections.each do |name|
|
71
|
+
section = @@sections[name] or raise "Could not find section %s" % name
|
72
|
+
depth = section.depth if section.depth < depth
|
73
|
+
end
|
74
|
+
text = ".. contents:: :depth: 2\n\n"
|
75
|
+
end
|
76
|
+
|
77
|
+
def self.pdf(text)
|
78
|
+
puts "creating pdf"
|
79
|
+
File.open("/tmp/puppetdoc.txt", "w") do |f|
|
80
|
+
f.puts text
|
81
|
+
end
|
82
|
+
rst2latex = %x{which rst2latex}
|
83
|
+
if $? != 0 or rst2latex =~ /no /
|
84
|
+
rst2latex = %x{which rst2latex.py}
|
85
|
+
end
|
86
|
+
if $? != 0 or rst2latex =~ /no /
|
87
|
+
raise "Could not find rst2latex"
|
88
|
+
end
|
89
|
+
rst2latex.chomp!
|
90
|
+
cmd = %{#{rst2latex} /tmp/puppetdoc.txt > /tmp/puppetdoc.tex}
|
91
|
+
output = %x{#{cmd}}
|
92
|
+
unless $? == 0
|
93
|
+
$stderr.puts "rst2latex failed"
|
94
|
+
$stderr.puts output
|
95
|
+
exit(1)
|
96
|
+
end
|
97
|
+
$stderr.puts output
|
98
|
+
|
99
|
+
# Now convert to pdf
|
100
|
+
puts "handling pdf"
|
101
|
+
Dir.chdir("/tmp") do
|
102
|
+
%x{texi2pdf puppetdoc.tex >/dev/null 2>/dev/null}
|
103
|
+
end
|
104
|
+
|
105
|
+
#if FileTest.exists?("/tmp/puppetdoc.pdf")
|
106
|
+
# FileUtils.mv("/tmp/puppetdoc.pdf", "/export/apache/docroots/reductivelabs.com/htdocs/downloads/puppet/reference.pdf")
|
107
|
+
#end
|
108
|
+
end
|
109
|
+
|
110
|
+
def self.sections
|
111
|
+
@@sections.keys.sort { |a,b| a.to_s <=> b.to_s }
|
112
|
+
end
|
113
|
+
|
114
|
+
HEADER_LEVELS = [nil, "=", "-", "+", "'", "~"]
|
115
|
+
|
116
|
+
def h(name, level)
|
117
|
+
return "%s\n%s\n" % [name, HEADER_LEVELS[level] * name.to_s.length]
|
118
|
+
end
|
119
|
+
|
120
|
+
def initialize(name, options = {}, &block)
|
121
|
+
@name = name
|
122
|
+
options.each do |option, value|
|
123
|
+
send(option.to_s + "=", value)
|
124
|
+
end
|
125
|
+
|
126
|
+
meta_def(:generate, &block)
|
127
|
+
|
128
|
+
@@sections[name] = self
|
129
|
+
|
130
|
+
# Now handle the defaults
|
131
|
+
@title ||= "%s Reference" % @name.to_s.capitalize
|
132
|
+
@page ||= @title.gsub(/\s+/, '')
|
133
|
+
@depth ||= 2
|
134
|
+
@header ||= ""
|
135
|
+
end
|
136
|
+
|
137
|
+
# Indent every line in the chunk except those which begin with '..'.
|
138
|
+
def indent(text, tab)
|
139
|
+
return text.gsub(/(^|\A)/, tab).gsub(/^ +\.\./, "..")
|
140
|
+
end
|
141
|
+
|
142
|
+
def paramwrap(name, text, options = {})
|
143
|
+
options[:level] ||= 5
|
144
|
+
#str = "%s : " % name
|
145
|
+
str = h(name, options[:level])
|
146
|
+
if options[:namevar]
|
147
|
+
str += "- **namevar**\n\n"
|
148
|
+
end
|
149
|
+
str += text
|
150
|
+
#str += text.gsub(/\n/, "\n ")
|
151
|
+
|
152
|
+
str += "\n\n"
|
153
|
+
return str
|
154
|
+
end
|
155
|
+
|
156
|
+
def output(withcontents = true)
|
157
|
+
# First the header
|
158
|
+
text = h(@title, 1)
|
159
|
+
text += "\n\n*This page is autogenerated; any changes will get overwritten*\n\n"
|
160
|
+
if withcontents
|
161
|
+
text += ".. contents:: :depth: %s\n\n" % @depth
|
162
|
+
end
|
163
|
+
|
164
|
+
text += @header
|
165
|
+
|
166
|
+
text += generate()
|
167
|
+
|
168
|
+
if withcontents
|
169
|
+
text += self.class.footer
|
170
|
+
end
|
171
|
+
|
172
|
+
return text
|
173
|
+
end
|
174
|
+
|
175
|
+
def text
|
176
|
+
puts output
|
177
|
+
end
|
178
|
+
|
179
|
+
def trac
|
180
|
+
File.open("/tmp/puppetdoc.txt", "w") do |f|
|
181
|
+
|
182
|
+
f.puts "{{{
|
183
|
+
#!rst\n
|
184
|
+
#{self.output}
|
185
|
+
}}}"
|
186
|
+
end
|
187
|
+
|
188
|
+
puts "Writing %s reference to trac as %s" % [@name, @page]
|
189
|
+
cmd = %{sudo trac-admin /export/svn/trac/puppet wiki import %s /tmp/puppetdoc.txt} % self.page
|
190
|
+
output = %x{#{cmd}}
|
191
|
+
unless $? == 0
|
192
|
+
$stderr.puts "trac-admin failed"
|
193
|
+
$stderr.puts output
|
194
|
+
exit(1)
|
195
|
+
end
|
196
|
+
unless output =~ /^\s+/
|
197
|
+
$stderr.puts output
|
198
|
+
end
|
199
|
+
end
|
48
200
|
|
49
|
-
begin
|
50
|
-
require 'rdoc/usage'
|
51
|
-
rescue LoadError
|
52
|
-
$haveusage = false
|
53
201
|
end
|
54
202
|
|
203
|
+
require 'puppet'
|
204
|
+
require 'puppet/network/handler'
|
205
|
+
require 'getoptlong'
|
206
|
+
|
55
207
|
result = GetoptLong.new(
|
56
|
-
[ "--
|
57
|
-
[ "--
|
208
|
+
[ "--all", "-a", GetoptLong::NO_ARGUMENT ],
|
209
|
+
[ "--mode", "-m", GetoptLong::REQUIRED_ARGUMENT ],
|
210
|
+
[ "--section", "-s", GetoptLong::REQUIRED_ARGUMENT ],
|
58
211
|
[ "--help", "-h", GetoptLong::NO_ARGUMENT ]
|
59
212
|
)
|
60
213
|
|
61
214
|
debug = false
|
62
215
|
|
63
216
|
$tab = " "
|
64
|
-
|
65
|
-
mode = :types
|
217
|
+
options = {:sections => [], :mode => :text}
|
66
218
|
|
67
219
|
begin
|
68
220
|
result.each { |opt,arg|
|
69
221
|
case opt
|
70
|
-
when "--
|
71
|
-
|
72
|
-
when "--
|
73
|
-
|
222
|
+
when "--all"
|
223
|
+
options[:all] = true
|
224
|
+
when "--mode"
|
225
|
+
case arg
|
226
|
+
when "text", "pdf", "trac":
|
227
|
+
options[:mode] = arg.intern
|
228
|
+
else
|
229
|
+
raise "Invalid output mode %s" % arg
|
230
|
+
end
|
231
|
+
when "--section"
|
232
|
+
options[:sections] << arg.intern
|
74
233
|
when "--help"
|
75
|
-
if
|
234
|
+
if Puppet.features.usage?
|
76
235
|
RDoc::usage && exit
|
77
236
|
else
|
78
237
|
puts "No help available unless you have RDoc::usage installed"
|
@@ -82,61 +241,60 @@ begin
|
|
82
241
|
}
|
83
242
|
rescue GetoptLong::InvalidOption => detail
|
84
243
|
$stderr.puts "Try '#{$0} --help'"
|
85
|
-
#if $haveusage
|
86
|
-
# RDoc::usage_no_exit('usage')
|
87
|
-
#end
|
88
244
|
exit(1)
|
89
245
|
end
|
90
246
|
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
247
|
+
if options[:sections].empty?
|
248
|
+
options[:sections] << :type
|
249
|
+
end
|
250
|
+
|
251
|
+
config = PuppetDoc.new :configuration, :depth => 1 do
|
252
|
+
docs = {}
|
253
|
+
Puppet.config.each do |name, object|
|
254
|
+
docs[name] = object
|
95
255
|
end
|
96
|
-
indent = nil
|
97
256
|
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
257
|
+
str = ""
|
258
|
+
docs.sort { |a, b|
|
259
|
+
a[0].to_s <=> b[0].to_s
|
260
|
+
}.each do |name, object|
|
261
|
+
# Make each name an anchor
|
262
|
+
header = name.to_s
|
263
|
+
str += h(header, 3)
|
264
|
+
|
265
|
+
# Print the doc string itself
|
102
266
|
begin
|
103
|
-
|
267
|
+
str += object.desc.gsub(/\n/, " ")
|
104
268
|
rescue => detail
|
105
269
|
puts detail.backtrace
|
106
270
|
puts detail
|
107
271
|
end
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
end
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
272
|
+
str += "\n\n"
|
273
|
+
|
274
|
+
# Now print the data about the item.
|
275
|
+
str += ""
|
276
|
+
val = object.default
|
277
|
+
if name.to_s == "vardir"
|
278
|
+
val = "/var/puppet"
|
279
|
+
elsif name.to_s == "confdir"
|
280
|
+
val = "/etc/puppet"
|
281
|
+
end
|
282
|
+
str += "- **Section**: %s\n" % object.section
|
283
|
+
unless val == ""
|
284
|
+
str += "- **Default**: %s\n" % val
|
285
|
+
end
|
286
|
+
str += "\n"
|
122
287
|
end
|
123
288
|
|
124
|
-
|
125
|
-
puts text
|
126
|
-
|
127
|
-
puts ""
|
289
|
+
return str
|
128
290
|
end
|
129
291
|
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
inMenu: true
|
134
|
-
title: Configuration Reference
|
135
|
-
---
|
136
|
-
# Puppet Configuration Reference
|
292
|
+
config.header = "
|
293
|
+
Specifying Configuration Parameters
|
294
|
+
-----------------------------------
|
137
295
|
|
138
296
|
Every Puppet executable (with the exception of ``puppetdoc``) accepts all of
|
139
|
-
|
297
|
+
the arguments below, but not all of the arguments make sense for every executable.
|
140
298
|
Each argument has a section listed with it in parentheses; often, that section
|
141
299
|
will map to an executable (e.g., ``puppetd``), in which case it probably only
|
142
300
|
makes sense for that one executable. If ``puppet`` is listed as the section,
|
@@ -144,73 +302,138 @@ it is most likely an option that is valid for everyone.
|
|
144
302
|
|
145
303
|
This will not always be the case. I have tried to be as thorough as possible
|
146
304
|
in the descriptions of the arguments, so it should be obvious whether an
|
147
|
-
argument is
|
305
|
+
argument is appropriate or not.
|
148
306
|
|
149
|
-
|
307
|
+
These arguments can be supplied to the executables either as command-line
|
308
|
+
arugments or in the configuration file for the appropriate executable. For
|
309
|
+
instance, the command-line invocation below would set the configuration directory
|
310
|
+
to ``/private/puppet``::
|
311
|
+
|
312
|
+
$ puppetd --confdir=/private/puppet
|
313
|
+
|
314
|
+
Note that boolean options are turned on and off with a slightly different syntax
|
315
|
+
on the command line::
|
316
|
+
|
317
|
+
$ puppetd --storeconfigs
|
318
|
+
|
319
|
+
$ puppetd --no-storeconfigs
|
320
|
+
|
321
|
+
The invocations above will enable and disable, respectively, the storage of
|
322
|
+
the client configuration.
|
323
|
+
|
324
|
+
As mentioned above, the configuration parameters can also be stored in a
|
325
|
+
configuration file located in the configuration directory (`/etc/puppet`
|
326
|
+
by default). The file is named for the executable it is intended for, for
|
327
|
+
example `/etc/puppetd.conf` is the configuration file for `puppetd`.
|
328
|
+
|
329
|
+
The file, which follows INI-style formatting, should contain a bracketed
|
330
|
+
heading named for the executable, followed by pairs of parameters with their
|
331
|
+
values. Here is an example of a very simple ``puppetd.conf`` file::
|
332
|
+
|
333
|
+
[puppetd]
|
334
|
+
confdir = /private/puppet
|
335
|
+
storeconfigs = true
|
336
|
+
|
337
|
+
Note that boolean parameters must be explicitly specified as `true` or
|
338
|
+
`false` as seen above.
|
339
|
+
|
340
|
+
If you're starting out with a fresh configuration, you may wish to let
|
341
|
+
the executable generate a template configuration file for you by invoking
|
342
|
+
the executable in question with the `--genconfig` command. The executable
|
343
|
+
will print a template configuration to standard output, which can be
|
344
|
+
redirected to a file like so::
|
345
|
+
|
346
|
+
$ puppetd --genconfig > /etc/puppet/puppetd.conf
|
347
|
+
|
348
|
+
Note that this invocation will \"clobber\" (throw away) the contents of any
|
349
|
+
pre-existing `puppetd.conf` file, so make a backup of your present config
|
350
|
+
if it contains valuable information.
|
351
|
+
|
352
|
+
Like the `--genconfig` argument, the executables also accept a `--genmanifest`
|
353
|
+
argument, which will generate a manifest that can be used to manage all of
|
354
|
+
Puppet's directories and files and prints it to standard output. This can
|
355
|
+
likewise be redirected to a file::
|
150
356
|
|
151
|
-
|
357
|
+
$ puppetd --genmanifest > /etc/puppet/manifests/site.pp
|
152
358
|
|
153
|
-
|
154
|
-
|
155
|
-
docs[name] = object
|
156
|
-
end
|
359
|
+
Puppet can also create user and group accounts for itself (one `puppet` group
|
360
|
+
and one `puppet` user) if it is invoked as `root` with the `--mkusers` argument::
|
157
361
|
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
362
|
+
$ puppetd --mkusers
|
363
|
+
|
364
|
+
Signals
|
365
|
+
-------
|
366
|
+
The ``puppetd`` and ``puppetmasterd`` executables catch some signals for special
|
367
|
+
handling. Both daemons catch (``SIGHUP``), which forces the server to restart
|
368
|
+
tself. Predictably, interrupt and terminate (``SIGINT`` and ``SIGHUP``) will shut
|
369
|
+
down the server, whether it be an instance of ``puppetd`` or ``puppetmasterd``.
|
370
|
+
|
371
|
+
Sending the ``SIGUSR1`` signal to an instance of ``puppetd`` will cause it to
|
372
|
+
immediately begin a new configuration transaction with the server. This
|
373
|
+
signal has no effect on ``puppetmasterd``.
|
374
|
+
|
375
|
+
Configuration Parameter Reference
|
376
|
+
---------------------------------
|
377
|
+
Below is a list of all documented parameters. Not all of them are valid with all
|
378
|
+
Puppet executables, but the executables will ignore any inappropriate values.
|
163
379
|
|
164
|
-
|
165
|
-
default = ""
|
166
|
-
if val = object.value and val != ""
|
167
|
-
default = " ``%s``" % val
|
168
|
-
end
|
169
|
-
begin
|
170
|
-
puts object.desc.gsub(/\n/, " ") + default
|
171
|
-
rescue => detail
|
172
|
-
puts detail.backtrace
|
173
|
-
puts detail
|
174
|
-
end
|
175
|
-
puts ""
|
176
|
-
end
|
380
|
+
"
|
177
381
|
|
382
|
+
report = PuppetDoc.new :report do
|
383
|
+
Puppet::Network::Handler.report.reportdocs
|
178
384
|
end
|
385
|
+
report.header = "
|
386
|
+
Puppet clients can report back to the server after each transaction. This
|
387
|
+
transaction report is sent as a YAML dump of the
|
388
|
+
``Puppet::Transaction::Report`` class and includes every log message that was
|
389
|
+
generated during the transaction along with as many metrics as Puppet knows how
|
390
|
+
to collect. See `ReportsAndReporting Reports and Reporting`:trac:
|
391
|
+
for more information on how to use reports.
|
392
|
+
|
393
|
+
Currently, clients default to not sending in reports; you can enable reporting
|
394
|
+
by setting the ``report`` parameter to true.
|
395
|
+
|
396
|
+
To use a report, set the ``reports`` parameter on the server; multiple
|
397
|
+
reports must be comma-separated. You can also specify ``none`` to disable
|
398
|
+
reports entirely.
|
399
|
+
|
400
|
+
Puppet provides multiple report handlers that will process client reports:
|
401
|
+
"
|
179
402
|
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
403
|
+
function = PuppetDoc.new :function do
|
404
|
+
Puppet::Parser::Functions.functiondocs
|
405
|
+
end
|
406
|
+
function.header = "
|
407
|
+
There are two types of functions in Puppet: Statements and rvalues.
|
408
|
+
Statements stand on their own and do not return arguments; they are used for
|
409
|
+
performing stand-alone work like importing. Rvalues return values and can
|
410
|
+
only be used in a statement requiring a value, such as an assignment or a case
|
411
|
+
statement.
|
412
|
+
|
413
|
+
Here are the functions available in Puppet:
|
414
|
+
"
|
190
415
|
|
416
|
+
type = PuppetDoc.new :type do
|
191
417
|
types = {}
|
418
|
+
Puppet::Type.loadall
|
419
|
+
|
192
420
|
Puppet::Type.eachtype { |type|
|
193
421
|
next if type.name == :puppet
|
194
422
|
next if type.name == :component
|
195
423
|
types[type.name] = type
|
196
424
|
}
|
197
425
|
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
types.sort { |a, b| a[0].to_s <=> b[0].to_s }.each do |name, type|
|
202
|
-
puts "1. <a href='#%s'>%s</a>" % [type.name, type.name.to_s.capitalize]
|
203
|
-
end
|
204
|
-
|
205
|
-
puts %{
|
206
|
-
<h2><a name="meta-parameters">Meta-Parameters</a></h2>
|
207
|
-
|
426
|
+
str = %{
|
427
|
+
Metaparameters
|
428
|
+
--------------
|
208
429
|
Metaparameters are parameters that work with any element; they are part of the
|
209
430
|
Puppet framework itself rather than being part of the implementation of any
|
210
431
|
given instance. Thus, any defined metaparameter can be used with any instance
|
211
432
|
in your manifest, including defined components.
|
212
433
|
|
213
|
-
|
434
|
+
Available Metaparameters
|
435
|
+
++++++++++++++++++++++++
|
436
|
+
}
|
214
437
|
begin
|
215
438
|
params = []
|
216
439
|
Puppet::Type.eachmetaparam { |param|
|
@@ -220,7 +443,7 @@ in your manifest, including defined components.
|
|
220
443
|
params.sort { |a,b|
|
221
444
|
a.to_s <=> b.to_s
|
222
445
|
}.each { |param|
|
223
|
-
paramwrap(param.to_s, scrub(Puppet::Type.metaparamdoc(param)))
|
446
|
+
str += paramwrap(param.to_s, scrub(Puppet::Type.metaparamdoc(param)), :level => 4)
|
224
447
|
#puts "<dt>" + param.to_s + "</dt>"
|
225
448
|
#puts tab(1) + Puppet::Type.metaparamdoc(param).scrub.indent($tab)gsub(/\n\s*/,' ')
|
226
449
|
#puts "<dd>"
|
@@ -236,15 +459,17 @@ in your manifest, including defined components.
|
|
236
459
|
exit(1)
|
237
460
|
end
|
238
461
|
|
239
|
-
|
240
|
-
|
462
|
+
str += %{
|
463
|
+
|
464
|
+
Resource Types
|
465
|
+
--------------
|
241
466
|
|
242
|
-
- *namevar* is the parameter used to uniquely identify a type instance.
|
467
|
+
- The *namevar* is the parameter used to uniquely identify a type instance.
|
243
468
|
This is the parameter that gets assigned when a string is provided before
|
244
469
|
the colon in a type declaration. In general, only developers will need to
|
245
470
|
worry about which parameter is the ``namevar``.
|
246
471
|
|
247
|
-
In the following code
|
472
|
+
In the following code::
|
248
473
|
|
249
474
|
file { "/etc/passwd":
|
250
475
|
owner => root,
|
@@ -252,59 +477,76 @@ in your manifest, including defined components.
|
|
252
477
|
mode => 644
|
253
478
|
}
|
254
479
|
|
255
|
-
|
480
|
+
``/etc/passwd`` is considered the title of the file object (used for things like
|
256
481
|
dependency handling), and because ``path`` is the namevar for ``file``, that
|
257
482
|
string is assigned to the ``path`` parameter.
|
258
483
|
|
259
|
-
- *
|
260
|
-
|
484
|
+
- *Features* are abilities that some providers might not support. You can use the list
|
485
|
+
of supported features to determine how a given provider can be used.
|
486
|
+
|
487
|
+
- *Parameters* determine the specific configuration of the instance. They either
|
488
|
+
directly modify the system (internally, these are called properties) or they affect
|
261
489
|
how the instance behaves (e.g., adding a search path for ``exec`` instances
|
262
490
|
or determining recursion on ``file`` instances).
|
263
491
|
|
492
|
+
- *Providers* provide low-level functionality for a given resource type. This is
|
493
|
+
usually in the form of calling out to external commands.
|
494
|
+
|
495
|
+
When required binaries are specified for providers, fully qualifed paths
|
496
|
+
indicate that the binary must exist at that specific path and unqualified
|
497
|
+
binaries indicate that Puppet will search for the binary using the shell
|
498
|
+
path.
|
499
|
+
|
500
|
+
Resource types define features they can use, and providers can be tested to see
|
501
|
+
which features they provide.
|
502
|
+
|
264
503
|
}
|
265
504
|
|
266
505
|
types.sort { |a,b|
|
267
506
|
a.to_s <=> b.to_s
|
268
507
|
}.each { |name,type|
|
269
508
|
|
270
|
-
|
509
|
+
str += "
|
271
510
|
|
272
511
|
----------------
|
273
512
|
|
274
513
|
"
|
275
514
|
|
276
|
-
|
277
|
-
|
278
|
-
|
515
|
+
str += h(name, 3)
|
516
|
+
str += scrub(type.doc) + "\n\n"
|
517
|
+
|
518
|
+
# Handle the feature docs.
|
519
|
+
if featuredocs = type.featuredocs
|
520
|
+
str += h("Features", 4)
|
521
|
+
str += featuredocs
|
522
|
+
end
|
279
523
|
|
280
524
|
docs = {}
|
281
|
-
type.
|
525
|
+
type.validproperties.sort { |a,b|
|
282
526
|
a.to_s <=> b.to_s
|
283
527
|
}.reject { |sname|
|
284
|
-
|
285
|
-
|
528
|
+
property = type.propertybyname(sname)
|
529
|
+
property.nodoc
|
286
530
|
}.each { |sname|
|
287
|
-
|
531
|
+
property = type.propertybyname(sname)
|
288
532
|
|
289
|
-
unless
|
290
|
-
raise "Could not retrieve
|
533
|
+
unless property
|
534
|
+
raise "Could not retrieve property %s on type %s" % [sname, type.name]
|
291
535
|
end
|
292
536
|
|
293
537
|
doc = nil
|
294
|
-
|
295
|
-
unless doc = state.doc
|
538
|
+
unless doc = property.doc
|
296
539
|
$stderr.puts "No docs for %s[%s]" % [type, sname]
|
297
540
|
next
|
298
541
|
end
|
299
542
|
doc = doc.dup
|
300
|
-
|
301
|
-
|
543
|
+
tmp = doc
|
544
|
+
tmp = scrub(tmp)
|
302
545
|
|
303
|
-
|
304
|
-
docs[sname] = str
|
546
|
+
docs[sname] = tmp
|
305
547
|
}
|
306
548
|
|
307
|
-
|
549
|
+
str += h("Parameters", 4) + "\n"
|
308
550
|
type.parameters.sort { |a,b|
|
309
551
|
a.to_s <=> b.to_s
|
310
552
|
}.each { |name,param|
|
@@ -316,19 +558,46 @@ in your manifest, including defined components.
|
|
316
558
|
a[0].to_s <=> b[0].to_s
|
317
559
|
}.each { |name, doc|
|
318
560
|
namevar = type.namevar == name and name != :name
|
319
|
-
paramwrap(name, doc, namevar)
|
561
|
+
str += paramwrap(name, doc, :namevar => namevar)
|
320
562
|
}
|
321
|
-
|
563
|
+
str += "\n"
|
322
564
|
}
|
565
|
+
|
566
|
+
str
|
323
567
|
end
|
324
568
|
|
325
|
-
|
569
|
+
if options[:all]
|
570
|
+
options[:sections] = PuppetDoc.sections
|
571
|
+
end
|
326
572
|
|
327
|
-
|
573
|
+
case options[:mode]
|
574
|
+
when :trac
|
575
|
+
options[:sections].each do |name|
|
576
|
+
section = PuppetDoc[name] or raise "Could not find section %s" % name
|
577
|
+
unless options[:mode] == :pdf
|
578
|
+
section.trac
|
579
|
+
end
|
580
|
+
end
|
581
|
+
else
|
582
|
+
text = ".. contents:: :depth: 1\n\n"
|
583
|
+
options[:sections].sort { |a,b| a.to_s <=> b.to_s }.each do |name|
|
584
|
+
section = PuppetDoc[name]
|
328
585
|
|
329
|
-
|
586
|
+
# Add the per-section text, but with no ToC
|
587
|
+
text += section.output(false)
|
588
|
+
end
|
589
|
+
|
590
|
+
text += PuppetDoc.footer
|
591
|
+
|
592
|
+
# Replace the trac links, since they're invalid everywhere else
|
593
|
+
text.gsub!(/`\w+\s+([^`]+)`:trac:/) { |m| $1 }
|
594
|
+
|
595
|
+
if options[:mode] == :pdf
|
596
|
+
PuppetDoc.pdf(text)
|
597
|
+
else
|
598
|
+
puts text
|
599
|
+
end
|
600
|
+
end
|
330
601
|
|
331
|
-
"
|
332
|
-
puts "\n*This page autogenerated on %s*" % Time.now
|
333
602
|
|
334
|
-
# $Id: puppetdoc
|
603
|
+
# $Id: puppetdoc 2412 2007-04-24 20:47:08Z luke $
|