puppet 0.18.4 → 0.22.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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,331 @@
|
|
|
1
|
+
# The majority of the system configuration parameters are set in this file.
|
|
2
|
+
module Puppet
|
|
3
|
+
# If we're running the standalone puppet process as a non-root user,
|
|
4
|
+
# use basedirs that are in the user's home directory.
|
|
5
|
+
conf = nil
|
|
6
|
+
var = nil
|
|
7
|
+
name = $0.gsub(/.+#{File::SEPARATOR}/,'').sub(/\.rb$/, '')
|
|
8
|
+
if name != "puppetmasterd" and Puppet::Util::SUIDManager.uid != 0
|
|
9
|
+
conf = File.expand_path("~/.puppet")
|
|
10
|
+
var = File.expand_path("~/.puppet/var")
|
|
11
|
+
else
|
|
12
|
+
# Else, use system-wide directories.
|
|
13
|
+
conf = "/etc/puppet"
|
|
14
|
+
var = "/var/puppet"
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
self.setdefaults(:puppet,
|
|
18
|
+
:confdir => [conf, "The main Puppet configuration directory. The default for this parameter is calculated based on the user. If the process
|
|
19
|
+
is runnig as root or the user that ``puppetmasterd`` is supposed to run as, it defaults to a system directory, but if it's running as any other user,
|
|
20
|
+
it defaults to being in ``~``."],
|
|
21
|
+
:vardir => [var, "Where Puppet stores dynamic and growing data. The default for this parameter is calculated specially, like `confdir`_."],
|
|
22
|
+
:name => [name, "The name of the service, if we are running as one. The
|
|
23
|
+
default is essentially $0 without the path or ``.rb``."]
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
if name == "puppetmasterd"
|
|
27
|
+
logopts = {:default => "$vardir/log",
|
|
28
|
+
:mode => 0750,
|
|
29
|
+
:owner => "$user",
|
|
30
|
+
:group => "$group",
|
|
31
|
+
:desc => "The Puppet log directory."
|
|
32
|
+
}
|
|
33
|
+
else
|
|
34
|
+
logopts = ["$vardir/log", "The Puppet log directory."]
|
|
35
|
+
end
|
|
36
|
+
setdefaults(:puppet, :logdir => logopts)
|
|
37
|
+
|
|
38
|
+
# This name hackery is necessary so that the rundir is set reasonably during
|
|
39
|
+
# unit tests.
|
|
40
|
+
if Process.uid == 0 and %w{puppetd puppetmasterd}.include?(self.name)
|
|
41
|
+
rundir = "/var/run/puppet"
|
|
42
|
+
else
|
|
43
|
+
rundir = "$vardir/run"
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
self.setdefaults(:puppet,
|
|
47
|
+
:trace => [false, "Whether to print stack traces on some errors"],
|
|
48
|
+
:autoflush => [false, "Whether log files should always flush to disk."],
|
|
49
|
+
:syslogfacility => ["daemon", "What syslog facility to use when logging to
|
|
50
|
+
syslog. Syslog has a fixed list of valid facilities, and you must
|
|
51
|
+
choose one of those; you cannot just make one up."],
|
|
52
|
+
:statedir => { :default => "$vardir/state",
|
|
53
|
+
:mode => 01777,
|
|
54
|
+
:desc => "The directory where Puppet state is stored. Generally,
|
|
55
|
+
this directory can be removed without causing harm (although it
|
|
56
|
+
might result in spurious service restarts)."
|
|
57
|
+
},
|
|
58
|
+
:statefile => { :default => "$statedir/state.yaml",
|
|
59
|
+
:mode => 0660,
|
|
60
|
+
:desc => "Where puppetd and puppetmasterd store state associated
|
|
61
|
+
with the running configuration. In the case of puppetmasterd,
|
|
62
|
+
this file reflects the state discovered through interacting
|
|
63
|
+
with clients."
|
|
64
|
+
},
|
|
65
|
+
:ssldir => {
|
|
66
|
+
:default => "$confdir/ssl",
|
|
67
|
+
:mode => 0771,
|
|
68
|
+
:owner => "root",
|
|
69
|
+
:desc => "Where SSL certificates are kept."
|
|
70
|
+
},
|
|
71
|
+
:rundir => { :default => rundir,
|
|
72
|
+
:mode => 01777,
|
|
73
|
+
:desc => "Where Puppet PID files are kept."
|
|
74
|
+
},
|
|
75
|
+
:genconfig => [false,
|
|
76
|
+
"Whether to just print a configuration to stdout and exit. Only makes
|
|
77
|
+
sense when used interactively. Takes into account arguments specified
|
|
78
|
+
on the CLI."],
|
|
79
|
+
:genmanifest => [false,
|
|
80
|
+
"Whether to just print a manifest to stdout and exit. Only makes
|
|
81
|
+
sense when used interactively. Takes into account arguments specified
|
|
82
|
+
on the CLI."],
|
|
83
|
+
:configprint => ["",
|
|
84
|
+
"Print the value of a specific configuration parameter. If a
|
|
85
|
+
parameter is provided for this, then the value is printed and puppet
|
|
86
|
+
exits. Comma-separate multiple values. For a list of all values,
|
|
87
|
+
specify 'all'. This feature is only available in Puppet versions
|
|
88
|
+
higher than 0.18.4."],
|
|
89
|
+
:color => ["ansi", "Whether to use colors when logging to the console.
|
|
90
|
+
Valid values are ``ansi`` (equivalent to ``true``), ``html`` (mostly
|
|
91
|
+
used during testing with TextMate), and ``false``, which produces
|
|
92
|
+
no color."],
|
|
93
|
+
:mkusers => [false,
|
|
94
|
+
"Whether to create the necessary user and group that puppetd will
|
|
95
|
+
run as."],
|
|
96
|
+
:path => {:default => "none",
|
|
97
|
+
:desc => "The shell search path. Defaults to whatever is inherited
|
|
98
|
+
from the parent process.",
|
|
99
|
+
:hook => proc do |value|
|
|
100
|
+
ENV["PATH"] = value unless value == "none"
|
|
101
|
+
end
|
|
102
|
+
},
|
|
103
|
+
:libdir => {:default => "$vardir/lib",
|
|
104
|
+
:desc => "An extra search path for Puppet. This is only useful
|
|
105
|
+
for those files that Puppet will load on demand, and is only
|
|
106
|
+
guaranteed to work for those cases. In fact, the autoload
|
|
107
|
+
mechanism is responsible for making sure this directory
|
|
108
|
+
is in Ruby's search path",
|
|
109
|
+
:hook => proc do |value|
|
|
110
|
+
if defined? @oldlibdir and $:.include?(@oldlibdir)
|
|
111
|
+
$:.delete(@oldlibdir)
|
|
112
|
+
end
|
|
113
|
+
@oldlibdir = value
|
|
114
|
+
$: << value
|
|
115
|
+
end
|
|
116
|
+
},
|
|
117
|
+
:ignoreimport => [false, "A parameter that can be used in commit
|
|
118
|
+
hooks, since it enables you to parse-check a single file rather
|
|
119
|
+
than requiring that all files exist."],
|
|
120
|
+
:authconfig => [ "$confdir/namespaceauth.conf",
|
|
121
|
+
"The configuration file that defines the rights to the different
|
|
122
|
+
namespaces and methods. This can be used as a coarse-grained
|
|
123
|
+
authorization system for both ``puppetd`` and ``puppetmasterd``."
|
|
124
|
+
]
|
|
125
|
+
)
|
|
126
|
+
|
|
127
|
+
# Define the config default.
|
|
128
|
+
self.setdefaults(self.name,
|
|
129
|
+
:config => ["$confdir/#{Puppet[:name]}.conf",
|
|
130
|
+
"The configuration file for #{Puppet[:name]}."],
|
|
131
|
+
:pidfile => ["", "The pid file"],
|
|
132
|
+
:bindaddress => ["", "The address to bind to. Mongrel servers
|
|
133
|
+
default to 127.0.0.1 and WEBrick defaults to 0.0.0.0."],
|
|
134
|
+
:servertype => ["webrick", "The type of server to use. Currently supported
|
|
135
|
+
options are webrick and mongrel. If you use mongrel, you will need
|
|
136
|
+
a proxy in front of the process or processes, since Mongrel cannot
|
|
137
|
+
speak SSL."]
|
|
138
|
+
)
|
|
139
|
+
|
|
140
|
+
self.setdefaults("puppetmasterd",
|
|
141
|
+
:user => ["puppet", "The user puppetmasterd should run as."],
|
|
142
|
+
:group => ["puppet", "The group puppetmasterd should run as."],
|
|
143
|
+
:manifestdir => ["$confdir/manifests",
|
|
144
|
+
"Where puppetmasterd looks for its manifests."],
|
|
145
|
+
:manifest => ["$manifestdir/site.pp",
|
|
146
|
+
"The entry-point manifest for puppetmasterd."],
|
|
147
|
+
:masterlog => { :default => "$logdir/puppetmaster.log",
|
|
148
|
+
:owner => "$user",
|
|
149
|
+
:group => "$group",
|
|
150
|
+
:mode => 0660,
|
|
151
|
+
:desc => "Where puppetmasterd logs. This is generally not used,
|
|
152
|
+
since syslog is the default log destination."
|
|
153
|
+
},
|
|
154
|
+
:masterhttplog => { :default => "$logdir/masterhttp.log",
|
|
155
|
+
:owner => "$user",
|
|
156
|
+
:group => "$group",
|
|
157
|
+
:mode => 0660,
|
|
158
|
+
:create => true,
|
|
159
|
+
:desc => "Where the puppetmasterd web server logs."
|
|
160
|
+
},
|
|
161
|
+
:masterport => [8140, "Which port puppetmasterd listens on."],
|
|
162
|
+
:parseonly => [false, "Just check the syntax of the manifests."],
|
|
163
|
+
:node_name => ["cert", "How the puppetmaster determines the client's identity
|
|
164
|
+
and sets the 'hostname' fact for use in the manifest, in particular
|
|
165
|
+
for determining which 'node' statement applies to the client.
|
|
166
|
+
Possible values are 'cert' (use the subject's CN in the client's
|
|
167
|
+
certificate) and 'facter' (use the hostname that the client
|
|
168
|
+
reported in its facts)"],
|
|
169
|
+
:bucketdir => {
|
|
170
|
+
:default => "$vardir/bucket",
|
|
171
|
+
:mode => 0750,
|
|
172
|
+
:owner => "$user",
|
|
173
|
+
:group => "$group",
|
|
174
|
+
:desc => "Where FileBucket files are stored."
|
|
175
|
+
},
|
|
176
|
+
:ca => [true, "Wether the master should function as a certificate authority."],
|
|
177
|
+
:modulepath => [ "$confdir/modules:/usr/share/puppet/modules",
|
|
178
|
+
"The search path for modules as a colon-separated list of
|
|
179
|
+
directories." ]
|
|
180
|
+
)
|
|
181
|
+
|
|
182
|
+
self.setdefaults("puppetd",
|
|
183
|
+
:localconfig => { :default => "$statedir/localconfig",
|
|
184
|
+
:owner => "root",
|
|
185
|
+
:mode => 0660,
|
|
186
|
+
:desc => "Where puppetd caches the local configuration. An
|
|
187
|
+
extension indicating the cache format is added automatically."},
|
|
188
|
+
:classfile => { :default => "$confdir/classes.txt",
|
|
189
|
+
:owner => "root",
|
|
190
|
+
:mode => 0644,
|
|
191
|
+
:desc => "The file in which puppetd stores a list of the classes
|
|
192
|
+
associated with the retrieved configuratiion. Can be loaded in
|
|
193
|
+
the separate ``puppet`` executable using the ``--loadclasses``
|
|
194
|
+
option."},
|
|
195
|
+
:puppetdlog => { :default => "$logdir/puppetd.log",
|
|
196
|
+
:owner => "root",
|
|
197
|
+
:mode => 0640,
|
|
198
|
+
:desc => "The log file for puppetd. This is generally not used."
|
|
199
|
+
},
|
|
200
|
+
:httplog => { :default => "$logdir/http.log",
|
|
201
|
+
:owner => "root",
|
|
202
|
+
:mode => 0640,
|
|
203
|
+
:desc => "Where the puppetd web server logs."
|
|
204
|
+
},
|
|
205
|
+
:server => ["puppet",
|
|
206
|
+
"The server to which server puppetd should connect"],
|
|
207
|
+
:ignoreschedules => [false,
|
|
208
|
+
"Boolean; whether puppetd should ignore schedules. This is useful
|
|
209
|
+
for initial puppetd runs."],
|
|
210
|
+
:puppetport => [8139, "Which port puppetd listens on."],
|
|
211
|
+
:noop => [false, "Whether puppetd should be run in noop mode."],
|
|
212
|
+
:runinterval => [1800, # 30 minutes
|
|
213
|
+
"How often puppetd applies the client configuration; in seconds."],
|
|
214
|
+
:listen => [false, "Whether puppetd should listen for
|
|
215
|
+
connections. If this is true, then by default only the
|
|
216
|
+
``runner`` server is started, which allows remote authorized
|
|
217
|
+
and authenticated nodes to connect and trigger ``puppetd``
|
|
218
|
+
runs."],
|
|
219
|
+
:ca_server => ["$server", "The server to use for certificate
|
|
220
|
+
authority requests. It's a separate server because it cannot
|
|
221
|
+
and does not need to horizontally scale."],
|
|
222
|
+
:ca_port => ["$masterport", "The port to use for the certificate authority."]
|
|
223
|
+
)
|
|
224
|
+
|
|
225
|
+
self.setdefaults("filebucket",
|
|
226
|
+
:clientbucketdir => {
|
|
227
|
+
:default => "$vardir/clientbucket",
|
|
228
|
+
:mode => 0750,
|
|
229
|
+
:desc => "Where FileBucket files are stored locally."
|
|
230
|
+
}
|
|
231
|
+
)
|
|
232
|
+
self.setdefaults("fileserver",
|
|
233
|
+
:fileserverconfig => ["$confdir/fileserver.conf",
|
|
234
|
+
"Where the fileserver configuration is stored."]
|
|
235
|
+
)
|
|
236
|
+
self.setdefaults(:reporting,
|
|
237
|
+
:reports => ["store",
|
|
238
|
+
"The list of reports to generate. All reports are looked for
|
|
239
|
+
in puppet/reports/<name>.rb, and multiple report names should be
|
|
240
|
+
comma-separated (whitespace is okay)."
|
|
241
|
+
],
|
|
242
|
+
:reportdir => {:default => "$vardir/reports",
|
|
243
|
+
:mode => 0750,
|
|
244
|
+
:owner => "$user",
|
|
245
|
+
:group => "$group",
|
|
246
|
+
:desc => "The directory in which to store reports
|
|
247
|
+
received from the client. Each client gets a separate
|
|
248
|
+
subdirectory."}
|
|
249
|
+
)
|
|
250
|
+
self.setdefaults("puppetd",
|
|
251
|
+
:puppetdlockfile => [ "$statedir/puppetdlock",
|
|
252
|
+
"A lock file to temporarily stop puppetd from doing anything."],
|
|
253
|
+
:usecacheonfailure => [true,
|
|
254
|
+
"Whether to use the cached configuration when the remote
|
|
255
|
+
configuration will not compile. This option is useful for testing
|
|
256
|
+
new configurations, where you want to fix the broken configuration
|
|
257
|
+
rather than reverting to a known-good one."
|
|
258
|
+
],
|
|
259
|
+
:ignorecache => [false,
|
|
260
|
+
"Ignore cache and always recompile the configuration. This is
|
|
261
|
+
useful for testing new configurations, where the local cache may in
|
|
262
|
+
fact be stale even if the timestamps are up to date - if the facts
|
|
263
|
+
change or if the server changes."
|
|
264
|
+
],
|
|
265
|
+
:downcasefacts => [false,
|
|
266
|
+
"Whether facts should be made all lowercase when sent to the server."]
|
|
267
|
+
)
|
|
268
|
+
|
|
269
|
+
self.setdefaults(:puppetd,
|
|
270
|
+
:configtimeout => [120,
|
|
271
|
+
"How long the client should wait for the configuration to be retrieved
|
|
272
|
+
before considering it a failure. This can help reduce flapping if too
|
|
273
|
+
many clients contact the server at one time."
|
|
274
|
+
],
|
|
275
|
+
:reportserver => ["$server",
|
|
276
|
+
"The server to which to send transaction reports."
|
|
277
|
+
],
|
|
278
|
+
:report => [false,
|
|
279
|
+
"Whether to send reports after every transaction."
|
|
280
|
+
]
|
|
281
|
+
)
|
|
282
|
+
|
|
283
|
+
# Plugin information.
|
|
284
|
+
self.setdefaults("puppet",
|
|
285
|
+
:pluginpath => ["$vardir/plugins",
|
|
286
|
+
"Where Puppet should look for plugins. Multiple directories should
|
|
287
|
+
be colon-separated, like normal PATH variables."],
|
|
288
|
+
:plugindest => ["$vardir/plugins",
|
|
289
|
+
"Where Puppet should store plugins that it pulls down from the central
|
|
290
|
+
server."],
|
|
291
|
+
:pluginsource => ["puppet://$server/plugins",
|
|
292
|
+
"From where to retrieve plugins. The standard Puppet ``file`` type
|
|
293
|
+
is used for retrieval, so anything that is a valid file source can
|
|
294
|
+
be used here."],
|
|
295
|
+
:pluginsync => [false,
|
|
296
|
+
"Whether plugins should be synced with the central server."],
|
|
297
|
+
:pluginsignore => [".svn CVS",
|
|
298
|
+
"What files to ignore when pulling down plugins."]
|
|
299
|
+
)
|
|
300
|
+
|
|
301
|
+
# Central fact information.
|
|
302
|
+
self.setdefaults("puppet",
|
|
303
|
+
:factpath => ["$vardir/facts",
|
|
304
|
+
"Where Puppet should look for facts. Multiple directories should
|
|
305
|
+
be colon-separated, like normal PATH variables."],
|
|
306
|
+
:factdest => ["$vardir/facts",
|
|
307
|
+
"Where Puppet should store facts that it pulls down from the central
|
|
308
|
+
server."],
|
|
309
|
+
:factsource => ["puppet://$server/facts",
|
|
310
|
+
"From where to retrieve facts. The standard Puppet ``file`` type
|
|
311
|
+
is used for retrieval, so anything that is a valid file source can
|
|
312
|
+
be used here."],
|
|
313
|
+
:factsync => [false,
|
|
314
|
+
"Whether facts should be synced with the central server."],
|
|
315
|
+
:factsignore => [".svn CVS",
|
|
316
|
+
"What files to ignore when pulling down facts."]
|
|
317
|
+
)
|
|
318
|
+
|
|
319
|
+
self.setdefaults(:reporting,
|
|
320
|
+
:tagmap => ["$confdir/tagmail.conf",
|
|
321
|
+
"The mapping between reporting tags and email addresses."],
|
|
322
|
+
:sendmail => [%x{which sendmail 2>/dev/null}.chomp,
|
|
323
|
+
"Where to find the sendmail binary with which to send email."],
|
|
324
|
+
:reportfrom => ["report@" + [Facter["hostname"].value, Facter["domain"].value].join("."),
|
|
325
|
+
"The 'from' email address for the reports."],
|
|
326
|
+
:smtpserver => ["none",
|
|
327
|
+
"The server through which to send email reports."]
|
|
328
|
+
)
|
|
329
|
+
end
|
|
330
|
+
|
|
331
|
+
# $Id: configuration.rb 2411 2007-04-24 18:59:20Z luke $
|
data/lib/puppet/daemon.rb
CHANGED
|
@@ -1,267 +1,84 @@
|
|
|
1
|
-
# helper functions for daemons
|
|
2
|
-
|
|
3
1
|
require 'puppet'
|
|
2
|
+
require 'puppet/util/pidlock'
|
|
4
3
|
|
|
5
|
-
module
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
include Puppet::Util
|
|
10
|
-
|
|
11
|
-
Puppet.config.setdefaults(:puppet, :setpidfile => [true,
|
|
12
|
-
"Whether to store a PID file for the daemon."])
|
|
13
|
-
def daemonname
|
|
14
|
-
#$0.sub(/.+#{File::SEPARATOR}/,'')
|
|
15
|
-
Puppet.name
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
# The path to the pid file for this server
|
|
19
|
-
def pidfile
|
|
20
|
-
File.join(Puppet[:rundir], daemonname() + ".pid")
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
# Put the daemon into the background.
|
|
24
|
-
def daemonize
|
|
25
|
-
if pid = fork()
|
|
26
|
-
Process.detach(pid)
|
|
27
|
-
exit(0)
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
# Get rid of console logging
|
|
31
|
-
Puppet::Log.close(:console)
|
|
32
|
-
|
|
33
|
-
Process.setsid
|
|
34
|
-
Dir.chdir("/")
|
|
35
|
-
begin
|
|
36
|
-
$stdin.reopen "/dev/null"
|
|
37
|
-
$stdout.reopen "/dev/null", "a"
|
|
38
|
-
$stderr.reopen $stdout
|
|
39
|
-
Puppet::Log.reopen
|
|
40
|
-
rescue => detail
|
|
41
|
-
File.open("/tmp/daemonout", "w") { |f|
|
|
42
|
-
f.puts "Could not start %s: %s" % [Puppet.name, detail]
|
|
43
|
-
}
|
|
44
|
-
Puppet.err "Could not start %s: %s" % [Puppet.name, detail]
|
|
45
|
-
exit(12)
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
def fqdn
|
|
50
|
-
unless defined? @fqdn and @fqdn
|
|
51
|
-
hostname = Facter["hostname"].value
|
|
52
|
-
domain = Facter["domain"].value
|
|
53
|
-
@fqdn = [hostname, domain].join(".")
|
|
54
|
-
end
|
|
55
|
-
return @fqdn
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def httplog
|
|
59
|
-
args = []
|
|
60
|
-
|
|
61
|
-
# yuck; separate http logs
|
|
62
|
-
file = nil
|
|
63
|
-
Puppet.config.use(:puppet, :certificates, Puppet.name)
|
|
64
|
-
if Puppet.name == "puppetmasterd"
|
|
65
|
-
file = Puppet[:masterhttplog]
|
|
66
|
-
else
|
|
67
|
-
file = Puppet[:httplog]
|
|
68
|
-
end
|
|
69
|
-
#
|
|
70
|
-
# unless FileTest.exists?(File.dirname(file))
|
|
71
|
-
# Puppet.recmkdir(File.dirname(file))
|
|
72
|
-
# end
|
|
73
|
-
|
|
74
|
-
args << file
|
|
75
|
-
if Puppet[:debug]
|
|
76
|
-
args << WEBrick::Log::DEBUG
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
log = WEBrick::Log.new(*args)
|
|
4
|
+
# A module that handles operations common to all daemons. This is included
|
|
5
|
+
# into the Server and Client base classes.
|
|
6
|
+
module Puppet::Daemon
|
|
7
|
+
include Puppet::Util
|
|
80
8
|
|
|
9
|
+
def daemonname
|
|
10
|
+
Puppet[:name]
|
|
11
|
+
end
|
|
81
12
|
|
|
82
|
-
|
|
13
|
+
# Put the daemon into the background.
|
|
14
|
+
def daemonize
|
|
15
|
+
if pid = fork()
|
|
16
|
+
Process.detach(pid)
|
|
17
|
+
exit(0)
|
|
83
18
|
end
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
@keyfile = File.join(Puppet[:privatekeydir], [@fqdn, "pem"].join("."))
|
|
104
|
-
@publickeyfile = File.join(Puppet[:publickeydir], [@fqdn, "pem"].join("."))
|
|
105
|
-
|
|
106
|
-
if File.exists?(@keyfile)
|
|
107
|
-
# load the key
|
|
108
|
-
@key = OpenSSL::PKey::RSA.new(File.read(@keyfile))
|
|
109
|
-
else
|
|
110
|
-
return false
|
|
111
|
-
end
|
|
112
|
-
|
|
113
|
-
if File.exists?(@certfile)
|
|
114
|
-
if File.exists?(@cacertfile)
|
|
115
|
-
@cacert = OpenSSL::X509::Certificate.new(File.read(@cacertfile))
|
|
116
|
-
else
|
|
117
|
-
raise Puppet::Error, "Found cert file with no ca cert file"
|
|
118
|
-
end
|
|
119
|
-
@cert = OpenSSL::X509::Certificate.new(File.read(@certfile))
|
|
120
|
-
else
|
|
121
|
-
return false
|
|
122
|
-
end
|
|
123
|
-
return true
|
|
19
|
+
|
|
20
|
+
setpidfile()
|
|
21
|
+
|
|
22
|
+
# Get rid of console logging
|
|
23
|
+
Puppet::Util::Log.close(:console)
|
|
24
|
+
|
|
25
|
+
Process.setsid
|
|
26
|
+
Dir.chdir("/")
|
|
27
|
+
begin
|
|
28
|
+
$stdin.reopen "/dev/null"
|
|
29
|
+
$stdout.reopen "/dev/null", "a"
|
|
30
|
+
$stderr.reopen $stdout
|
|
31
|
+
Puppet::Util::Log.reopen
|
|
32
|
+
rescue => detail
|
|
33
|
+
File.open("/tmp/daemonout", "w") { |f|
|
|
34
|
+
f.puts "Could not start %s: %s" % [Puppet[:name], detail]
|
|
35
|
+
}
|
|
36
|
+
Puppet.err "Could not start %s: %s" % [Puppet[:name], detail]
|
|
37
|
+
exit(12)
|
|
124
38
|
end
|
|
39
|
+
end
|
|
125
40
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
"Tried to request cert without initialized security"
|
|
133
|
-
end
|
|
134
|
-
retrieved = false
|
|
135
|
-
Puppet.config.use(:puppet, :certificates)
|
|
136
|
-
# create the directories involved
|
|
137
|
-
# FIXME it's a stupid hack that i have to do this
|
|
138
|
-
# [Puppet[:certdir], Puppet[:privatekeydir], Puppet[:csrdir],
|
|
139
|
-
# Puppet[:publickeydir]].each { |dir|
|
|
140
|
-
# unless FileTest.exists?(dir)
|
|
141
|
-
# Puppet.recmkdir(dir, 0770)
|
|
142
|
-
# end
|
|
143
|
-
# }
|
|
144
|
-
|
|
145
|
-
if self.readcert
|
|
146
|
-
Puppet.info "Certificate already exists; not requesting"
|
|
147
|
-
return true
|
|
148
|
-
end
|
|
149
|
-
|
|
150
|
-
unless defined? @key and @key
|
|
151
|
-
# create a new one and store it
|
|
152
|
-
Puppet.info "Creating a new SSL key at %s" % @keyfile
|
|
153
|
-
@key = OpenSSL::PKey::RSA.new(Puppet[:keylength])
|
|
154
|
-
File.open(@keyfile, "w", 0660) { |f| f.print @key.to_pem }
|
|
155
|
-
File.open(@publickeyfile, "w", 0660) { |f|
|
|
156
|
-
f.print @key.public_key.to_pem
|
|
157
|
-
}
|
|
158
|
-
end
|
|
159
|
-
|
|
160
|
-
unless defined? @driver
|
|
161
|
-
Puppet.err "Cannot request a certificate without a defined target"
|
|
162
|
-
return false
|
|
163
|
-
end
|
|
164
|
-
|
|
165
|
-
Puppet.info "Creating a new certificate request for %s" % @fqdn
|
|
166
|
-
name = OpenSSL::X509::Name.new([["CN", @fqdn]])
|
|
167
|
-
|
|
168
|
-
@csr = OpenSSL::X509::Request.new
|
|
169
|
-
@csr.version = 0
|
|
170
|
-
@csr.subject = name
|
|
171
|
-
@csr.public_key = @key.public_key
|
|
172
|
-
@csr.sign(@key, OpenSSL::Digest::MD5.new)
|
|
173
|
-
|
|
174
|
-
Puppet.info "Requesting certificate"
|
|
175
|
-
|
|
176
|
-
begin
|
|
177
|
-
cert, cacert = @driver.getcert(@csr.to_pem)
|
|
178
|
-
rescue => detail
|
|
179
|
-
if Puppet[:debug]
|
|
180
|
-
puts detail.backtrace
|
|
181
|
-
end
|
|
182
|
-
raise Puppet::Error.new("Certificate retrieval failed: %s" %
|
|
183
|
-
detail)
|
|
184
|
-
end
|
|
185
|
-
|
|
186
|
-
if cert.nil? or cert == ""
|
|
187
|
-
return nil
|
|
188
|
-
end
|
|
189
|
-
File.open(@certfile, "w", 0660) { |f| f.print cert }
|
|
190
|
-
File.open(@cacertfile, "w", 0660) { |f| f.print cacert }
|
|
191
|
-
begin
|
|
192
|
-
@cert = OpenSSL::X509::Certificate.new(cert)
|
|
193
|
-
@cacert = OpenSSL::X509::Certificate.new(cacert)
|
|
194
|
-
retrieved = true
|
|
195
|
-
rescue => detail
|
|
196
|
-
raise Puppet::Error.new(
|
|
197
|
-
"Invalid certificate: %s" % detail
|
|
198
|
-
)
|
|
199
|
-
end
|
|
200
|
-
|
|
201
|
-
unless @cert.check_private_key(@key)
|
|
202
|
-
raise Puppet::DevError, "Received invalid certificate"
|
|
203
|
-
end
|
|
204
|
-
return retrieved
|
|
41
|
+
# The path to the pid file for this server
|
|
42
|
+
def pidfile
|
|
43
|
+
if Puppet[:pidfile] != ""
|
|
44
|
+
Puppet[:pidfile]
|
|
45
|
+
else
|
|
46
|
+
File.join(Puppet[:rundir], daemonname() + ".pid")
|
|
205
47
|
end
|
|
48
|
+
end
|
|
206
49
|
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
rescue => detail
|
|
214
|
-
Puppet.err "Could not remove PID file %s: %s" %
|
|
215
|
-
[@pidfile, detail]
|
|
216
|
-
end
|
|
217
|
-
end
|
|
50
|
+
# Remove the pid file
|
|
51
|
+
def rmpidfile
|
|
52
|
+
threadlock(:pidfile) do
|
|
53
|
+
locker = Puppet::Util::Pidlock.new(pidfile)
|
|
54
|
+
if locker.locked?
|
|
55
|
+
locker.unlock or Puppet.err "Could not remove PID file %s" % [pidfile]
|
|
218
56
|
end
|
|
219
57
|
end
|
|
58
|
+
end
|
|
220
59
|
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
Puppet.
|
|
226
|
-
|
|
227
|
-
if FileTest.exists?(@pidfile)
|
|
228
|
-
if defined? $setpidfile
|
|
229
|
-
return
|
|
230
|
-
else
|
|
231
|
-
raise Puppet::Error, "A PID file already exists for #{Puppet.name}
|
|
232
|
-
at #{@pidfile}. Not starting."
|
|
233
|
-
end
|
|
234
|
-
end
|
|
235
|
-
|
|
236
|
-
Puppet.info "Creating PID file to %s" % @pidfile
|
|
237
|
-
begin
|
|
238
|
-
File.open(@pidfile, "w") { |f| f.puts $$ }
|
|
239
|
-
rescue => detail
|
|
240
|
-
Puppet.err "Could not create PID file: %s" % detail
|
|
241
|
-
exit(74)
|
|
242
|
-
end
|
|
243
|
-
$setpidfile = true
|
|
60
|
+
# Create the pid file.
|
|
61
|
+
def setpidfile
|
|
62
|
+
threadlock(:pidfile) do
|
|
63
|
+
unless Puppet::Util::Pidlock.new(pidfile).lock
|
|
64
|
+
Puppet.err("Could not create PID file: %s" % [pidfile])
|
|
65
|
+
exit(74)
|
|
244
66
|
end
|
|
245
67
|
end
|
|
68
|
+
end
|
|
246
69
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
# And close all logs except the console.
|
|
253
|
-
Puppet::Log.destinations.reject { |d| d == :console }.each do |dest|
|
|
254
|
-
Puppet::Log.close(dest)
|
|
255
|
-
end
|
|
70
|
+
# Shut down our server
|
|
71
|
+
def shutdown
|
|
72
|
+
# Remove our pid file
|
|
73
|
+
rmpidfile()
|
|
256
74
|
|
|
257
|
-
|
|
75
|
+
# And close all logs except the console.
|
|
76
|
+
Puppet::Util::Log.destinations.reject { |d| d == :console }.each do |dest|
|
|
77
|
+
Puppet::Util::Log.close(dest)
|
|
258
78
|
end
|
|
259
79
|
|
|
260
|
-
|
|
261
|
-
setpidfile()
|
|
262
|
-
super
|
|
263
|
-
end
|
|
80
|
+
super
|
|
264
81
|
end
|
|
265
82
|
end
|
|
266
83
|
|
|
267
|
-
# $Id: daemon.rb
|
|
84
|
+
# $Id: daemon.rb 2259 2007-03-06 19:03:05Z luke $
|