puppet 0.18.4 → 0.22.4
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- data/CHANGELOG +288 -0
- data/README +2 -2
- data/Rakefile +78 -5
- data/bin/puppet +28 -36
- data/bin/puppetca +81 -38
- data/bin/puppetd +65 -62
- data/bin/puppetdoc +409 -140
- data/bin/puppetmasterd +59 -47
- data/bin/puppetrun +38 -23
- data/conf/freebsd/puppetd +26 -0
- data/conf/freebsd/puppetmasterd +26 -0
- data/conf/gentoo/conf.d/puppet +5 -0
- data/conf/gentoo/conf.d/puppetmaster +12 -0
- data/conf/gentoo/init.d/puppet +38 -0
- data/conf/gentoo/init.d/puppetmaster +50 -0
- data/conf/gentoo/puppet/fileserver.conf +12 -0
- data/conf/gentoo/puppet/puppetca.conf +29 -0
- data/conf/gentoo/puppet/puppetd.conf +29 -0
- data/conf/gentoo/puppet/puppetmasterd.conf +29 -0
- data/conf/redhat/client.init +10 -5
- data/conf/redhat/client.sysconfig +1 -1
- data/conf/redhat/fileserver.conf +2 -2
- data/conf/redhat/logrotate +1 -1
- data/conf/redhat/no-lockdir.patch +13 -0
- data/conf/redhat/puppet.spec +65 -8
- data/conf/redhat/puppetd.conf +0 -4
- data/conf/redhat/server.init +3 -6
- data/conf/solaris/pkginfo +1 -1
- data/conf/solaris/smf/svc-puppetd +2 -2
- data/conf/suse/client.init +142 -0
- data/conf/suse/puppet.spec +221 -0
- data/conf/suse/server.init +162 -0
- data/examples/code/mac_automount.pp +16 -0
- data/examples/root/bin/sleeper +3 -5
- data/examples/root/etc/init.d/sleeper +8 -2
- data/examples/root/etc/puppet/fileserver.conf +12 -2
- data/examples/root/etc/puppet/namespaceauth.conf +20 -0
- data/examples/root/etc/puppet/puppetd.conf +4 -0
- data/examples/root/etc/puppet/puppetmasterd.conf +6 -9
- data/examples/root/etc/puppet/tagmail.conf +1 -0
- data/ext/emacs/puppet-mode.el +46 -1
- data/ext/logcheck/puppet +15 -0
- data/ext/module_puppet +15 -23
- data/ext/vim/puppet.vim +4 -2
- data/install.rb +2 -1
- data/lib/puppet.rb +76 -207
- data/lib/puppet/configuration.rb +331 -0
- data/lib/puppet/daemon.rb +63 -246
- data/lib/puppet/dsl.rb +371 -0
- data/lib/puppet/element.rb +8 -26
- data/lib/puppet/error.rb +54 -0
- data/lib/puppet/event.rb +8 -243
- data/lib/puppet/{base64.rb → external/base64.rb} +0 -0
- data/lib/puppet/external/event-loop.rb +1 -0
- data/lib/puppet/{event-loop → external/event-loop}/better-definers.rb +0 -0
- data/lib/puppet/{event-loop → external/event-loop}/event-loop.rb +2 -2
- data/lib/puppet/{event-loop → external/event-loop}/signal-system.rb +1 -1
- data/lib/puppet/external/gratr.rb +33 -0
- data/lib/puppet/external/gratr/adjacency_graph.rb +257 -0
- data/lib/puppet/external/gratr/base.rb +34 -0
- data/lib/puppet/external/gratr/biconnected.rb +116 -0
- data/lib/puppet/external/gratr/chinese_postman.rb +123 -0
- data/lib/puppet/external/gratr/common.rb +73 -0
- data/lib/puppet/external/gratr/comparability.rb +92 -0
- data/lib/puppet/external/gratr/digraph.rb +116 -0
- data/lib/puppet/external/gratr/digraph_distance.rb +185 -0
- data/lib/puppet/external/gratr/dot.rb +90 -0
- data/lib/puppet/external/gratr/edge.rb +145 -0
- data/lib/puppet/external/gratr/graph.rb +303 -0
- data/lib/puppet/external/gratr/graph_api.rb +83 -0
- data/lib/puppet/external/gratr/import.rb +44 -0
- data/lib/puppet/external/gratr/labels.rb +90 -0
- data/lib/puppet/external/gratr/maximum_flow.rb +64 -0
- data/lib/puppet/external/gratr/rdot.rb +327 -0
- data/lib/puppet/external/gratr/search.rb +409 -0
- data/lib/puppet/external/gratr/strong_components.rb +127 -0
- data/lib/puppet/external/gratr/undirected_graph.rb +153 -0
- data/lib/puppet/{lock.rb → external/lock.rb} +1 -1
- data/lib/puppet/feature/base.rb +20 -0
- data/lib/puppet/feature/rails.rb +52 -0
- data/lib/puppet/metatype/attributes.rb +719 -0
- data/lib/puppet/metatype/closure.rb +111 -0
- data/lib/puppet/metatype/container.rb +94 -0
- data/lib/puppet/metatype/evaluation.rb +118 -0
- data/lib/puppet/metatype/instances.rb +261 -0
- data/lib/puppet/metatype/manager.rb +169 -0
- data/lib/puppet/metatype/metaparams.rb +409 -0
- data/lib/puppet/metatype/providers.rb +260 -0
- data/lib/puppet/metatype/relationships.rb +116 -0
- data/lib/puppet/metatype/schedules.rb +39 -0
- data/lib/puppet/metatype/tags.rb +39 -0
- data/lib/puppet/modules.rb +113 -0
- data/lib/puppet/network/authconfig.rb +168 -0
- data/lib/puppet/network/authorization.rb +84 -0
- data/lib/puppet/network/authstore.rb +293 -0
- data/lib/puppet/network/client.rb +187 -0
- data/lib/puppet/network/client/ca.rb +56 -0
- data/lib/puppet/network/client/dipper.rb +81 -0
- data/lib/puppet/network/client/file.rb +7 -0
- data/lib/puppet/network/client/logger.rb +6 -0
- data/lib/puppet/network/client/master.rb +644 -0
- data/lib/puppet/{client → network/client}/proxy.rb +3 -3
- data/lib/puppet/{client/reporter.rb → network/client/report.rb} +4 -7
- data/lib/puppet/{client/pelement.rb → network/client/resource.rb} +6 -19
- data/lib/puppet/network/client/runner.rb +13 -0
- data/lib/puppet/network/client/status.rb +5 -0
- data/lib/puppet/network/client_request.rb +32 -0
- data/lib/puppet/network/handler.rb +33 -0
- data/lib/puppet/{server → network/handler}/ca.rb +5 -6
- data/lib/puppet/network/handler/filebucket.rb +180 -0
- data/lib/puppet/{server → network/handler}/fileserver.rb +277 -219
- data/lib/puppet/{server → network/handler}/logger.rb +3 -5
- data/lib/puppet/{server → network/handler}/master.rb +42 -8
- data/lib/puppet/network/handler/report.rb +158 -0
- data/lib/puppet/network/handler/resource.rb +190 -0
- data/lib/puppet/{server → network/handler}/runner.rb +17 -18
- data/lib/puppet/network/handler/status.rb +13 -0
- data/lib/puppet/network/rights.rb +74 -0
- data/lib/puppet/network/server.rb +5 -0
- data/lib/puppet/network/server/mongrel.rb +138 -0
- data/lib/puppet/network/server/webrick.rb +153 -0
- data/lib/puppet/network/xmlrpc/client.rb +129 -0
- data/lib/puppet/network/xmlrpc/processor.rb +91 -0
- data/lib/puppet/network/xmlrpc/server.rb +20 -0
- data/lib/puppet/network/xmlrpc/webrick_servlet.rb +121 -0
- data/lib/puppet/parameter.rb +390 -346
- data/lib/puppet/parser/ast.rb +116 -147
- data/lib/puppet/parser/ast/astarray.rb +17 -33
- data/lib/puppet/parser/ast/branch.rb +2 -0
- data/lib/puppet/parser/ast/caseopt.rb +7 -12
- data/lib/puppet/parser/ast/casestatement.rb +23 -32
- data/lib/puppet/parser/ast/collection.rb +19 -80
- data/lib/puppet/parser/ast/collexpr.rb +81 -0
- data/lib/puppet/parser/ast/component.rb +160 -89
- data/lib/puppet/parser/ast/else.rb +30 -0
- data/lib/puppet/parser/ast/function.rb +9 -2
- data/lib/puppet/parser/ast/hostclass.rb +47 -131
- data/lib/puppet/parser/ast/ifstatement.rb +43 -0
- data/lib/puppet/parser/ast/leaf.rb +10 -21
- data/lib/puppet/parser/ast/node.rb +32 -79
- data/lib/puppet/parser/ast/resourcedef.rb +222 -0
- data/lib/puppet/parser/ast/{typedefaults.rb → resourcedefaults.rb} +10 -16
- data/lib/puppet/parser/ast/resourceoverride.rb +62 -0
- data/lib/puppet/parser/ast/{objectparam.rb → resourceparam.rb} +12 -6
- data/lib/puppet/parser/ast/resourceref.rb +44 -0
- data/lib/puppet/parser/ast/selector.rb +16 -8
- data/lib/puppet/parser/ast/tag.rb +3 -1
- data/lib/puppet/parser/ast/vardef.rb +8 -12
- data/lib/puppet/parser/collector.rb +181 -0
- data/lib/puppet/parser/functions.rb +191 -36
- data/lib/puppet/parser/interpreter.rb +802 -380
- data/lib/puppet/parser/lexer.rb +86 -19
- data/lib/puppet/parser/parser.rb +1123 -960
- data/lib/puppet/parser/resource.rb +353 -0
- data/lib/puppet/parser/resource/param.rb +57 -0
- data/lib/puppet/parser/resource/reference.rb +71 -0
- data/lib/puppet/parser/scope.rb +573 -1000
- data/lib/puppet/parser/templatewrapper.rb +54 -0
- data/lib/puppet/pgraph.rb +208 -0
- data/lib/puppet/propertychange.rb +143 -0
- data/lib/puppet/provider.rb +302 -0
- data/lib/puppet/provider/cron/crontab.rb +187 -0
- data/lib/puppet/provider/group/groupadd.rb +29 -0
- data/lib/puppet/provider/group/netinfo.rb +12 -0
- data/lib/puppet/provider/group/pw.rb +31 -0
- data/lib/puppet/provider/host/netinfo.rb +18 -0
- data/lib/puppet/provider/host/parsed.rb +73 -0
- data/lib/puppet/provider/mount.rb +57 -0
- data/lib/puppet/provider/mount/netinfo.rb +38 -0
- data/lib/puppet/provider/mount/parsed.rb +37 -0
- data/lib/puppet/provider/nameservice.rb +344 -0
- data/lib/puppet/provider/nameservice/netinfo.rb +210 -0
- data/lib/puppet/provider/nameservice/objectadd.rb +45 -0
- data/lib/puppet/provider/nameservice/pw.rb +22 -0
- data/lib/puppet/provider/package/apple.rb +53 -0
- data/lib/puppet/provider/package/apt.rb +119 -0
- data/lib/puppet/provider/package/aptitude.rb +30 -0
- data/lib/puppet/provider/package/aptrpm.rb +79 -0
- data/lib/puppet/provider/package/blastwave.rb +114 -0
- data/lib/puppet/provider/package/darwinport.rb +88 -0
- data/lib/puppet/provider/package/dpkg.rb +109 -0
- data/lib/puppet/provider/package/freebsd.rb +43 -0
- data/lib/puppet/provider/package/gem.rb +104 -0
- data/lib/puppet/provider/package/openbsd.rb +93 -0
- data/lib/puppet/provider/package/pkgdmg.rb +119 -0
- data/lib/puppet/provider/package/portage.rb +112 -0
- data/lib/puppet/provider/package/ports.rb +94 -0
- data/lib/puppet/provider/package/rpm.rb +125 -0
- data/lib/puppet/provider/package/rug.rb +53 -0
- data/lib/puppet/provider/package/sun.rb +168 -0
- data/lib/puppet/provider/package/sunfreeware.rb +9 -0
- data/lib/puppet/provider/package/up2date.rb +45 -0
- data/lib/puppet/provider/package/yum.rb +54 -0
- data/lib/puppet/provider/parsedfile.rb +342 -0
- data/lib/puppet/provider/port/parsed.rb +174 -0
- data/lib/puppet/provider/service/base.rb +136 -0
- data/lib/puppet/provider/service/debian.rb +32 -0
- data/lib/puppet/provider/service/gentoo.rb +49 -0
- data/lib/puppet/{type → provider}/service/init.rb +42 -40
- data/lib/puppet/provider/service/redhat.rb +59 -0
- data/lib/puppet/{type → provider}/service/smf.rb +24 -13
- data/lib/puppet/provider/sshkey/parsed.rb +36 -0
- data/lib/puppet/provider/user/netinfo.rb +106 -0
- data/lib/puppet/provider/user/pw.rb +41 -0
- data/lib/puppet/provider/user/useradd.rb +67 -0
- data/lib/puppet/provider/zone/solaris.rb +208 -0
- data/lib/puppet/rails.rb +102 -66
- data/lib/puppet/rails/database/001_add_indexes.rb +38 -0
- data/lib/puppet/rails/database/schema.rb +89 -0
- data/lib/puppet/rails/external/tagging/acts_as_taggable.rb +62 -0
- data/lib/puppet/rails/external/tagging/init.rb +5 -0
- data/lib/puppet/rails/external/tagging/tag.rb +50 -0
- data/lib/puppet/rails/external/tagging/tagging.rb +12 -0
- data/lib/puppet/rails/fact_name.rb +7 -0
- data/lib/puppet/rails/fact_value.rb +5 -0
- data/lib/puppet/rails/host.rb +95 -46
- data/lib/puppet/rails/param_name.rb +28 -0
- data/lib/puppet/rails/param_value.rb +5 -0
- data/lib/puppet/rails/puppet_class.rb +9 -0
- data/lib/puppet/rails/resource.rb +95 -0
- data/lib/puppet/rails/source_file.rb +5 -0
- data/lib/puppet/relationship.rb +63 -0
- data/lib/puppet/reports/log.rb +14 -0
- data/lib/puppet/reports/rrdgraph.rb +114 -10
- data/lib/puppet/reports/store.rb +64 -0
- data/lib/puppet/reports/tagmail.rb +144 -71
- data/lib/puppet/sslcertificates.rb +38 -5
- data/lib/puppet/sslcertificates/ca.rb +142 -37
- data/lib/puppet/sslcertificates/certificate.rb +3 -3
- data/lib/puppet/sslcertificates/inventory.rb +53 -0
- data/lib/puppet/sslcertificates/support.rb +128 -0
- data/lib/puppet/transaction.rb +568 -189
- data/lib/puppet/transaction/report.rb +14 -3
- data/lib/puppet/transportable.rb +18 -10
- data/lib/puppet/type.rb +279 -2299
- data/lib/puppet/type/component.rb +63 -63
- data/lib/puppet/type/cron.rb +294 -710
- data/lib/puppet/type/exec.rb +185 -129
- data/lib/puppet/type/group.rb +38 -89
- data/lib/puppet/type/host.rb +110 -0
- data/lib/puppet/type/mount.rb +189 -0
- data/lib/puppet/type/notify.rb +47 -0
- data/lib/puppet/type/package.rb +129 -257
- data/lib/puppet/type/parsedtype.rb +172 -297
- data/lib/puppet/type/pfile.rb +540 -319
- data/lib/puppet/type/pfile/checksum.rb +103 -76
- data/lib/puppet/type/pfile/content.rb +16 -10
- data/lib/puppet/type/pfile/ensure.rb +52 -34
- data/lib/puppet/type/pfile/group.rb +25 -18
- data/lib/puppet/type/pfile/mode.rb +7 -4
- data/lib/puppet/type/pfile/{uid.rb → owner.rb} +21 -17
- data/lib/puppet/type/pfile/source.rb +119 -124
- data/lib/puppet/type/pfile/target.rb +29 -45
- data/lib/puppet/type/pfile/type.rb +2 -2
- data/lib/puppet/type/pfilebucket.rb +18 -14
- data/lib/puppet/type/port.rb +121 -0
- data/lib/puppet/type/property.rb +530 -0
- data/lib/puppet/type/resources.rb +150 -0
- data/lib/puppet/type/schedule.rb +38 -22
- data/lib/puppet/type/service.rb +70 -326
- data/lib/puppet/type/sshkey.rb +76 -0
- data/lib/puppet/type/tidy.rb +197 -97
- data/lib/puppet/type/user.rb +107 -183
- data/lib/puppet/type/yumrepo.rb +53 -34
- data/lib/puppet/type/zone.rb +55 -208
- data/lib/puppet/util.rb +239 -201
- data/lib/puppet/util/autoload.rb +107 -0
- data/lib/puppet/util/classgen.rb +208 -0
- data/lib/puppet/{config.rb → util/config.rb} +102 -54
- data/lib/puppet/util/docs.rb +104 -0
- data/lib/puppet/util/errors.rb +55 -0
- data/lib/puppet/util/execution.rb +22 -0
- data/lib/puppet/util/feature.rb +76 -0
- data/lib/puppet/util/fileparsing.rb +380 -0
- data/lib/puppet/util/filetype.rb +300 -0
- data/lib/puppet/util/graph.rb +39 -0
- data/lib/puppet/util/inifile.rb +209 -0
- data/lib/puppet/util/loadedfile.rb +71 -0
- data/lib/puppet/util/log.rb +549 -0
- data/lib/puppet/util/logging.rb +20 -0
- data/lib/puppet/util/metaid.rb +22 -0
- data/lib/puppet/util/methodhelper.rb +37 -0
- data/lib/puppet/util/metric.rb +160 -0
- data/lib/puppet/util/package.rb +31 -0
- data/lib/puppet/util/pidlock.rb +68 -0
- data/lib/puppet/util/plist.rb +24 -0
- data/lib/puppet/util/plist/generator.rb +226 -0
- data/lib/puppet/util/plist/parser.rb +227 -0
- data/lib/puppet/util/posix.rb +87 -0
- data/lib/puppet/util/provider_features.rb +170 -0
- data/lib/puppet/util/rails/collection_merger.rb +42 -0
- data/lib/puppet/util/storage.rb +103 -0
- data/lib/puppet/util/subclass_loader.rb +83 -0
- data/lib/puppet/util/suidmanager.rb +86 -0
- data/lib/puppet/util/variables.rb +39 -0
- data/lib/puppet/util/warnings.rb +15 -0
- data/test/Rakefile +97 -0
- data/test/certmgr/ca.rb +81 -0
- data/test/certmgr/certmgr.rb +77 -50
- data/test/certmgr/inventory.rb +79 -0
- data/test/certmgr/support.rb +81 -0
- data/test/executables/filebucket.rb +49 -0
- data/test/executables/puppetbin.rb +28 -12
- data/test/executables/puppetca.rb +75 -54
- data/test/executables/puppetd.rb +10 -13
- data/test/executables/puppetmasterd.rb +12 -17
- data/test/executables/puppetmodule.rb +18 -17
- data/test/language/ast.rb +242 -798
- data/test/language/ast/casestatement.rb +104 -0
- data/test/language/ast/component.rb +133 -0
- data/test/language/ast/hostclass.rb +162 -0
- data/test/language/ast/selector.rb +62 -0
- data/test/language/ast/variable.rb +31 -0
- data/test/language/collector.rb +369 -0
- data/test/language/functions.rb +305 -18
- data/test/language/interpreter.rb +894 -125
- data/test/language/lexer.rb +98 -12
- data/test/language/node.rb +37 -53
- data/test/language/parser.rb +455 -148
- data/test/language/resource.rb +535 -0
- data/test/language/scope.rb +451 -561
- data/test/language/snippets.rb +101 -111
- data/test/language/transportable.rb +6 -8
- data/test/lib/mocha.rb +19 -0
- data/test/lib/mocha/any_instance_method.rb +35 -0
- data/test/lib/mocha/auto_verify.rb +113 -0
- data/test/lib/mocha/central.rb +35 -0
- data/test/lib/mocha/class_method.rb +62 -0
- data/test/lib/mocha/expectation.rb +295 -0
- data/test/lib/mocha/expectation_error.rb +6 -0
- data/test/lib/mocha/infinite_range.rb +27 -0
- data/test/lib/mocha/inspect.rb +37 -0
- data/test/lib/mocha/instance_method.rb +8 -0
- data/test/lib/mocha/metaclass.rb +7 -0
- data/test/lib/mocha/mock.rb +20 -0
- data/test/lib/mocha/mock_methods.rb +122 -0
- data/test/lib/mocha/object.rb +100 -0
- data/test/lib/mocha/pretty_parameters.rb +28 -0
- data/test/lib/mocha/setup_and_teardown.rb +23 -0
- data/test/lib/mocha/standalone.rb +30 -0
- data/test/lib/mocha/test_case_adapter.rb +49 -0
- data/test/lib/mocha_standalone.rb +2 -0
- data/test/lib/puppettest.rb +294 -0
- data/test/lib/puppettest/certificates.rb +61 -0
- data/test/lib/puppettest/exetest.rb +123 -0
- data/test/lib/puppettest/fakes.rb +194 -0
- data/test/lib/puppettest/fileparsing.rb +33 -0
- data/test/lib/puppettest/filetesting.rb +231 -0
- data/test/lib/puppettest/graph.rb +41 -0
- data/test/lib/puppettest/parsertesting.rb +392 -0
- data/test/lib/puppettest/railstesting.rb +56 -0
- data/test/lib/puppettest/reporttesting.rb +19 -0
- data/test/lib/puppettest/resourcetesting.rb +73 -0
- data/test/lib/puppettest/servertest.rb +72 -0
- data/test/lib/puppettest/support.rb +8 -0
- data/test/lib/puppettest/support/assertions.rb +101 -0
- data/test/lib/puppettest/support/helpers.rb +23 -0
- data/test/lib/puppettest/support/resources.rb +37 -0
- data/test/lib/puppettest/support/utils.rb +160 -0
- data/test/lib/puppettest/testcase.rb +48 -0
- data/test/lib/rake/puppet_test_loader.rb +17 -0
- data/test/lib/rake/puppet_testtask.rb +17 -0
- data/test/lib/spec.rb +8 -0
- data/test/lib/spec/callback.rb +11 -0
- data/test/lib/spec/callback/callback_container.rb +60 -0
- data/test/lib/spec/callback/extensions/module.rb +24 -0
- data/test/lib/spec/callback/extensions/object.rb +37 -0
- data/test/lib/spec/deprecated.rb +3 -0
- data/test/lib/spec/expectations.rb +59 -0
- data/test/lib/spec/expectations/differs/default.rb +62 -0
- data/test/lib/spec/expectations/errors.rb +6 -0
- data/test/lib/spec/expectations/extensions.rb +3 -0
- data/test/lib/spec/expectations/extensions/object.rb +109 -0
- data/test/lib/spec/expectations/extensions/proc.rb +57 -0
- data/test/lib/spec/expectations/extensions/string_and_symbol.rb +17 -0
- data/test/lib/spec/expectations/handler.rb +47 -0
- data/test/lib/spec/expectations/should.rb +5 -0
- data/test/lib/spec/expectations/should/base.rb +64 -0
- data/test/lib/spec/expectations/should/change.rb +69 -0
- data/test/lib/spec/expectations/should/have.rb +128 -0
- data/test/lib/spec/expectations/should/not.rb +74 -0
- data/test/lib/spec/expectations/should/should.rb +81 -0
- data/test/lib/spec/expectations/sugar.rb +47 -0
- data/test/lib/spec/matchers.rb +160 -0
- data/test/lib/spec/matchers/be.rb +161 -0
- data/test/lib/spec/matchers/be_close.rb +37 -0
- data/test/lib/spec/matchers/change.rb +120 -0
- data/test/lib/spec/matchers/eql.rb +43 -0
- data/test/lib/spec/matchers/equal.rb +43 -0
- data/test/lib/spec/matchers/has.rb +44 -0
- data/test/lib/spec/matchers/have.rb +140 -0
- data/test/lib/spec/matchers/include.rb +50 -0
- data/test/lib/spec/matchers/match.rb +41 -0
- data/test/lib/spec/matchers/raise_error.rb +100 -0
- data/test/lib/spec/matchers/respond_to.rb +35 -0
- data/test/lib/spec/matchers/satisfy.rb +47 -0
- data/test/lib/spec/matchers/throw_symbol.rb +75 -0
- data/test/lib/spec/mocks.rb +232 -0
- data/test/lib/spec/mocks/argument_expectation.rb +132 -0
- data/test/lib/spec/mocks/error_generator.rb +85 -0
- data/test/lib/spec/mocks/errors.rb +10 -0
- data/test/lib/spec/mocks/extensions/object.rb +3 -0
- data/test/lib/spec/mocks/message_expectation.rb +231 -0
- data/test/lib/spec/mocks/methods.rb +40 -0
- data/test/lib/spec/mocks/mock.rb +26 -0
- data/test/lib/spec/mocks/mock_handler.rb +166 -0
- data/test/lib/spec/mocks/order_group.rb +29 -0
- data/test/lib/spec/rake/spectask.rb +173 -0
- data/test/lib/spec/rake/verify_rcov.rb +47 -0
- data/test/lib/spec/runner.rb +132 -0
- data/test/lib/spec/runner/backtrace_tweaker.rb +55 -0
- data/test/lib/spec/runner/command_line.rb +34 -0
- data/test/lib/spec/runner/context.rb +154 -0
- data/test/lib/spec/runner/context_eval.rb +142 -0
- data/test/lib/spec/runner/context_runner.rb +55 -0
- data/test/lib/spec/runner/drb_command_line.rb +21 -0
- data/test/lib/spec/runner/execution_context.rb +17 -0
- data/test/lib/spec/runner/extensions/kernel.rb +17 -0
- data/test/lib/spec/runner/extensions/object.rb +32 -0
- data/test/lib/spec/runner/formatter.rb +5 -0
- data/test/lib/spec/runner/formatter/base_text_formatter.rb +118 -0
- data/test/lib/spec/runner/formatter/html_formatter.rb +219 -0
- data/test/lib/spec/runner/formatter/progress_bar_formatter.rb +27 -0
- data/test/lib/spec/runner/formatter/rdoc_formatter.rb +22 -0
- data/test/lib/spec/runner/formatter/specdoc_formatter.rb +23 -0
- data/test/lib/spec/runner/heckle_runner.rb +71 -0
- data/test/lib/spec/runner/heckle_runner_win.rb +10 -0
- data/test/lib/spec/runner/option_parser.rb +224 -0
- data/test/lib/spec/runner/reporter.rb +105 -0
- data/test/lib/spec/runner/spec_matcher.rb +25 -0
- data/test/lib/spec/runner/spec_parser.rb +41 -0
- data/test/lib/spec/runner/spec_should_raise_handler.rb +74 -0
- data/test/lib/spec/runner/specification.rb +114 -0
- data/test/lib/spec/translator.rb +87 -0
- data/test/lib/spec/version.rb +30 -0
- data/test/lib/stubba.rb +2 -0
- data/test/network/authconfig.rb +72 -0
- data/test/network/authorization.rb +138 -0
- data/test/network/authstore.rb +450 -0
- data/test/network/client/ca.rb +38 -0
- data/test/{client → network/client}/client.rb +107 -24
- data/test/network/client/dipper.rb +35 -0
- data/test/network/client/master.rb +627 -0
- data/test/{client/pelement.rb → network/client/resource.rb} +13 -29
- data/test/network/client_request.rb +39 -0
- data/test/network/daemon.rb +71 -0
- data/test/{server → network/handler}/bucket.rb +103 -27
- data/test/{server → network/handler}/ca.rb +14 -19
- data/test/{server → network/handler}/fileserver.rb +443 -68
- data/test/network/handler/handler.rb +64 -0
- data/test/{server → network/handler}/logger.rb +26 -26
- data/test/network/handler/master.rb +352 -0
- data/test/network/handler/report.rb +185 -0
- data/test/{server/pelement.rb → network/handler/resource.rb} +25 -38
- data/test/{server → network/handler}/runner.rb +17 -16
- data/test/network/rights.rb +38 -0
- data/test/network/server/webrick.rb +140 -0
- data/test/network/xmlrpc/client.rb +68 -0
- data/test/network/xmlrpc/processor.rb +80 -0
- data/test/network/xmlrpc/server.rb +28 -0
- data/test/network/xmlrpc/webrick_servlet.rb +26 -0
- data/test/other/dsl.rb +218 -0
- data/test/other/events.rb +22 -15
- data/test/other/overrides.rb +9 -14
- data/test/other/pgraph.rb +289 -0
- data/test/other/propertychange.rb +142 -0
- data/test/other/provider.rb +162 -0
- data/test/other/puppet.rb +63 -10
- data/test/other/relationship.rb +74 -0
- data/test/other/relationships.rb +199 -123
- data/test/other/report.rb +152 -23
- data/test/other/transactions.rb +824 -78
- data/test/puppet/conffiles.rb +16 -11
- data/test/puppet/defaults.rb +7 -10
- data/test/puppet/{error.rb → errortest.rb} +5 -8
- data/test/puppet/modules.rb +58 -0
- data/test/puppet/tc_suidmanager.rb +107 -0
- data/test/rails/host.rb +177 -0
- data/test/rails/rails.rb +27 -0
- data/test/rails/railsparameter.rb +62 -0
- data/test/rails/railsresource.rb +100 -0
- data/test/ral/manager/attributes.rb +296 -0
- data/test/ral/manager/manager.rb +55 -0
- data/test/ral/manager/provider.rb +54 -0
- data/test/ral/manager/type.rb +837 -0
- data/test/ral/providers/cron/crontab.rb +346 -0
- data/test/ral/providers/group.rb +252 -0
- data/test/ral/providers/host/netinfo.rb +58 -0
- data/test/ral/providers/host/parsed.rb +226 -0
- data/test/ral/providers/mount/netinfo.rb +80 -0
- data/test/ral/providers/mount/parsed.rb +223 -0
- data/test/ral/providers/nameservice.rb +33 -0
- data/test/ral/providers/package.rb +253 -0
- data/test/ral/providers/package/apt.rb +89 -0
- data/test/ral/providers/package/aptitude.rb +69 -0
- data/test/ral/providers/package/aptrpm.rb +89 -0
- data/test/ral/providers/package/dpkg.rb +64 -0
- data/test/ral/providers/parsedfile.rb +668 -0
- data/test/ral/providers/parsedport.rb +233 -0
- data/test/ral/providers/provider.rb +423 -0
- data/test/{types → ral/providers}/service.rb +20 -121
- data/test/ral/providers/service/base.rb +75 -0
- data/test/ral/providers/sshkey/parsed.rb +111 -0
- data/test/ral/providers/user.rb +567 -0
- data/test/ral/providers/user/useradd.rb +250 -0
- data/test/ral/types/basic.rb +90 -0
- data/test/ral/types/component.rb +113 -0
- data/test/ral/types/cron.rb +480 -0
- data/test/{types → ral/types}/exec.rb +278 -82
- data/test/ral/types/file.rb +1799 -0
- data/test/ral/types/file/target.rb +363 -0
- data/test/{types → ral/types}/filebucket.rb +15 -17
- data/test/{types → ral/types}/fileignoresource.rb +9 -15
- data/test/ral/types/filesources.rb +1046 -0
- data/test/ral/types/group.rb +169 -0
- data/test/ral/types/host.rb +155 -0
- data/test/ral/types/mount.rb +312 -0
- data/test/ral/types/package.rb +85 -0
- data/test/ral/types/parameter.rb +172 -0
- data/test/ral/types/port.rb +148 -0
- data/test/ral/types/property.rb +343 -0
- data/test/ral/types/resources.rb +221 -0
- data/test/{types → ral/types}/schedule.rb +34 -12
- data/test/ral/types/service.rb +37 -0
- data/test/{types → ral/types}/sshkey.rb +75 -65
- data/test/ral/types/tidy.rb +240 -0
- data/test/ral/types/user.rb +493 -0
- data/test/{types → ral/types}/yumrepo.rb +7 -11
- data/test/{types → ral/types}/zone.rb +45 -45
- data/test/tagging/tagging.rb +17 -26
- data/test/util/autoload.rb +130 -0
- data/test/util/classgen.rb +227 -0
- data/test/{other → util}/config.rb +373 -113
- data/test/util/execution.rb +34 -0
- data/test/util/features.rb +94 -0
- data/test/util/fileparsing.rb +677 -0
- data/test/{other → util}/filetype.rb +9 -12
- data/test/util/graph.rb +108 -0
- data/test/{other → util}/inifile.rb +24 -11
- data/test/util/loadedfile.rb +106 -0
- data/test/{other → util}/log.rb +96 -50
- data/test/{other → util}/metrics.rb +7 -17
- data/test/util/package.rb +27 -0
- data/test/util/pidlock.rb +126 -0
- data/test/util/posixtest.rb +173 -0
- data/test/util/storage.rb +123 -0
- data/test/util/subclass_loader.rb +100 -0
- data/test/util/utiltest.rb +368 -0
- metadata +449 -169
- data/examples/code/classing +0 -35
- data/examples/code/failers/badclassnoparam +0 -10
- data/examples/code/failers/badclassparam +0 -10
- data/examples/code/failers/badcompnoparam +0 -9
- data/examples/code/failers/badcompparam +0 -9
- data/examples/code/failers/badtypeparam +0 -3
- data/examples/code/failers/noobjectrvalue +0 -1
- data/examples/code/snippets/aliastest.pp +0 -16
- data/examples/code/snippets/argumentdefaults +0 -14
- data/examples/code/snippets/casestatement.pp +0 -58
- data/examples/code/snippets/classheirarchy.pp +0 -15
- data/examples/code/snippets/classincludes.pp +0 -17
- data/examples/code/snippets/classpathtest +0 -11
- data/examples/code/snippets/componentmetaparams.pp +0 -11
- data/examples/code/snippets/deepclassheirarchy.pp +0 -23
- data/examples/code/snippets/defineoverrides.pp +0 -17
- data/examples/code/snippets/dirchmod +0 -19
- data/examples/code/snippets/emptyclass.pp +0 -9
- data/examples/code/snippets/emptyexec.pp +0 -3
- data/examples/code/snippets/failmissingexecpath.pp +0 -13
- data/examples/code/snippets/falsevalues.pp +0 -3
- data/examples/code/snippets/filecreate +0 -11
- data/examples/code/snippets/implicititeration +0 -15
- data/examples/code/snippets/multipleinstances +0 -7
- data/examples/code/snippets/namevartest +0 -9
- data/examples/code/snippets/scopetest +0 -13
- data/examples/code/snippets/selectorvalues.pp +0 -42
- data/examples/code/snippets/simpledefaults +0 -5
- data/examples/code/snippets/simpleselector +0 -38
- data/examples/code/snippets/singleary.pp +0 -19
- data/examples/code/snippets/singlequote.pp +0 -11
- data/examples/code/snippets/singleselector.pp +0 -22
- data/examples/code/snippets/tag.pp +0 -9
- data/examples/code/snippets/tagged.pp +0 -35
- data/lib/puppet/client.rb +0 -177
- data/lib/puppet/client/ca.rb +0 -21
- data/lib/puppet/client/dipper.rb +0 -76
- data/lib/puppet/client/file.rb +0 -20
- data/lib/puppet/client/log.rb +0 -17
- data/lib/puppet/client/master.rb +0 -531
- data/lib/puppet/client/runner.rb +0 -17
- data/lib/puppet/client/status.rb +0 -7
- data/lib/puppet/event-loop.rb +0 -1
- data/lib/puppet/filetype.rb +0 -308
- data/lib/puppet/inifile.rb +0 -201
- data/lib/puppet/log.rb +0 -524
- data/lib/puppet/metric.rb +0 -132
- data/lib/puppet/networkclient.rb +0 -175
- data/lib/puppet/parsedfile.rb +0 -58
- data/lib/puppet/parser/ast/classdef.rb +0 -79
- data/lib/puppet/parser/ast/compdef.rb +0 -75
- data/lib/puppet/parser/ast/nodedef.rb +0 -73
- data/lib/puppet/parser/ast/objectdef.rb +0 -284
- data/lib/puppet/parser/ast/objectref.rb +0 -77
- data/lib/puppet/rails/database.rb +0 -40
- data/lib/puppet/rails/rails_object.rb +0 -42
- data/lib/puppet/rails/rails_parameter.rb +0 -5
- data/lib/puppet/server.rb +0 -196
- data/lib/puppet/server/authconfig.rb +0 -177
- data/lib/puppet/server/authstore.rb +0 -226
- data/lib/puppet/server/filebucket.rb +0 -155
- data/lib/puppet/server/pelement.rb +0 -188
- data/lib/puppet/server/report.rb +0 -184
- data/lib/puppet/server/rights.rb +0 -78
- data/lib/puppet/server/servlet.rb +0 -274
- data/lib/puppet/statechange.rb +0 -129
- data/lib/puppet/storage.rb +0 -98
- data/lib/puppet/type/nameservice.rb +0 -264
- data/lib/puppet/type/nameservice/netinfo.rb +0 -232
- data/lib/puppet/type/nameservice/objectadd.rb +0 -146
- data/lib/puppet/type/nameservice/posix.rb +0 -12
- data/lib/puppet/type/nameservice/pw.rb +0 -107
- data/lib/puppet/type/package/apple.rb +0 -41
- data/lib/puppet/type/package/apt.rb +0 -107
- data/lib/puppet/type/package/blastwave.rb +0 -136
- data/lib/puppet/type/package/darwinport.rb +0 -97
- data/lib/puppet/type/package/dpkg.rb +0 -113
- data/lib/puppet/type/package/freebsd.rb +0 -19
- data/lib/puppet/type/package/gem.rb +0 -119
- data/lib/puppet/type/package/openbsd.rb +0 -112
- data/lib/puppet/type/package/ports.rb +0 -103
- data/lib/puppet/type/package/rpm.rb +0 -121
- data/lib/puppet/type/package/sun.rb +0 -174
- data/lib/puppet/type/package/sunfreeware.rb +0 -7
- data/lib/puppet/type/package/yum.rb +0 -52
- data/lib/puppet/type/parsedtype/host.rb +0 -144
- data/lib/puppet/type/parsedtype/mount.rb +0 -271
- data/lib/puppet/type/parsedtype/port.rb +0 -261
- data/lib/puppet/type/parsedtype/sshkey.rb +0 -123
- data/lib/puppet/type/service/base.rb +0 -12
- data/lib/puppet/type/service/debian.rb +0 -46
- data/lib/puppet/type/service/redhat.rb +0 -38
- data/lib/puppet/type/state.rb +0 -393
- data/lib/puppet/type/symlink.rb +0 -186
- data/test/client/master.rb +0 -207
- data/test/language/rails.rb +0 -105
- data/test/other/parsedfile.rb +0 -58
- data/test/other/storage.rb +0 -100
- data/test/puppet/utiltest.rb +0 -299
- data/test/puppettest.rb +0 -1170
- data/test/server/authconfig.rb +0 -56
- data/test/server/authstore.rb +0 -218
- data/test/server/master.rb +0 -201
- data/test/server/report.rb +0 -93
- data/test/server/rights.rb +0 -41
- data/test/server/server.rb +0 -152
- data/test/test +0 -61
- data/test/types/basic.rb +0 -117
- data/test/types/component.rb +0 -298
- data/test/types/cron.rb +0 -718
- data/test/types/file.rb +0 -1314
- data/test/types/filesources.rb +0 -590
- data/test/types/group.rb +0 -323
- data/test/types/host.rb +0 -186
- data/test/types/mount.rb +0 -294
- data/test/types/package.rb +0 -538
- data/test/types/parameter.rb +0 -107
- data/test/types/port.rb +0 -201
- data/test/types/query.rb +0 -101
- data/test/types/state.rb +0 -92
- data/test/types/symlink.rb +0 -120
- data/test/types/tidy.rb +0 -102
- data/test/types/type.rb +0 -469
- data/test/types/user.rb +0 -563
@@ -0,0 +1,174 @@
|
|
1
|
+
require 'puppet/provider/parsedfile'
|
2
|
+
|
3
|
+
#services = nil
|
4
|
+
#case Facter.value(:operatingsystem)
|
5
|
+
#when "Solaris": services = "/etc/inet/services"
|
6
|
+
#else
|
7
|
+
# services = "/etc/services"
|
8
|
+
#end
|
9
|
+
#
|
10
|
+
#Puppet::Type.type(:port).provide(:parsed,
|
11
|
+
# :parent => Puppet::Provider::ParsedFile,
|
12
|
+
# :default_target => services,
|
13
|
+
# :filetype => :flat
|
14
|
+
#) do
|
15
|
+
# text_line :comment, :match => /^\s*#/
|
16
|
+
# text_line :blank, :match => /^\s*$/
|
17
|
+
#
|
18
|
+
# # We're cheating horribly here -- we don't support ddp, because it assigns
|
19
|
+
# # the same number to already-used names, and the same name to different
|
20
|
+
# # numbers.
|
21
|
+
# text_line :ddp, :match => /^\S+\s+\d+\/ddp/
|
22
|
+
#
|
23
|
+
# # Also, just ignore the lines on OS X that don't have service names.
|
24
|
+
# text_line :funky_darwin, :match => /^\s+\d+\//
|
25
|
+
#
|
26
|
+
# # We have to manually parse the line, since it's so darn complicated.
|
27
|
+
# record_line :parsed, :fields => %w{name port protocols alias description},
|
28
|
+
# :optional => %w{alias description} do |line|
|
29
|
+
# if line =~ /\/ddp/
|
30
|
+
# raise "missed ddp in %s" % line
|
31
|
+
# end
|
32
|
+
# # The record might contain multiple port lines separated by \n.
|
33
|
+
# hashes = line.split("\n").collect { |l| parse_port(l) }
|
34
|
+
#
|
35
|
+
# # It's easy if there's just one hash.
|
36
|
+
# if hashes.length == 1
|
37
|
+
# return hashes.shift
|
38
|
+
# end
|
39
|
+
#
|
40
|
+
# # Else, merge the two records into one.
|
41
|
+
# return port_merge(*hashes)
|
42
|
+
# end
|
43
|
+
#
|
44
|
+
# # Override how we split into lines, so that we always treat both protocol
|
45
|
+
# # lines as a single line. This drastically simplifies merging the two lines
|
46
|
+
# # into one record.
|
47
|
+
# def self.lines(text)
|
48
|
+
# names = {}
|
49
|
+
# lines = []
|
50
|
+
#
|
51
|
+
# # We organize by number, because that's apparently how the ports work.
|
52
|
+
# # You'll never be able to use Puppet to manage multiple entries
|
53
|
+
# # with the same name but different numbers, though.
|
54
|
+
# text.split("\n").each do |line|
|
55
|
+
# if line =~ /^([-\w]+)\s+(\d+)\/[^d]/ # We want to skip ddp proto stuff
|
56
|
+
# names[$1] ||= []
|
57
|
+
# names[$1] << line
|
58
|
+
# lines << [:special, $1]
|
59
|
+
# else
|
60
|
+
# lines << line
|
61
|
+
# end
|
62
|
+
# end
|
63
|
+
#
|
64
|
+
# # Now, return each line in order, but join the ones with the same name
|
65
|
+
# lines.collect do |line|
|
66
|
+
# if line.is_a?(Array)
|
67
|
+
# name = line[1]
|
68
|
+
# if names[name]
|
69
|
+
# t = names[name].join("\n")
|
70
|
+
# names.delete(name)
|
71
|
+
# t
|
72
|
+
# end
|
73
|
+
# else
|
74
|
+
# line
|
75
|
+
# end
|
76
|
+
# end.reject { |l| l.nil? }
|
77
|
+
# end
|
78
|
+
#
|
79
|
+
# # Parse a single port line, returning a hash.
|
80
|
+
# def self.parse_port(line)
|
81
|
+
# hash = {}
|
82
|
+
# if line.sub!(/^(\S+)\s+(\d+)\/(\w+)\s*/, '')
|
83
|
+
# hash[:name] = $1
|
84
|
+
# hash[:number] = $2
|
85
|
+
# hash[:protocols] = [$3]
|
86
|
+
#
|
87
|
+
# unless line == ""
|
88
|
+
# line.sub!(/^([^#]+)\s*/) do |value|
|
89
|
+
# aliases = $1
|
90
|
+
#
|
91
|
+
# # Remove any trailing whitespace
|
92
|
+
# aliases.strip!
|
93
|
+
# unless aliases =~ /^\s*$/
|
94
|
+
# hash[:alias] = aliases.split(/\s+/)
|
95
|
+
# end
|
96
|
+
#
|
97
|
+
# ""
|
98
|
+
# end
|
99
|
+
#
|
100
|
+
# line.sub!(/^\s*#\s*(.+)$/) do |value|
|
101
|
+
# desc = $1
|
102
|
+
# unless desc =~ /^\s*$/
|
103
|
+
# hash[:description] = desc.sub(/\s*$/, '')
|
104
|
+
# end
|
105
|
+
#
|
106
|
+
# ""
|
107
|
+
# end
|
108
|
+
# end
|
109
|
+
# else
|
110
|
+
# if line =~ /^\s+\d+/ and
|
111
|
+
# Facter["operatingsystem"].value == "Darwin"
|
112
|
+
# #Puppet.notice "Skipping wonky OS X port entry %s" %
|
113
|
+
# # line.inspect
|
114
|
+
# next
|
115
|
+
# end
|
116
|
+
# Puppet.notice "Ignoring unparseable line '%s' in %s" % [line, self.target]
|
117
|
+
# end
|
118
|
+
#
|
119
|
+
# if hash.empty?
|
120
|
+
# return nil
|
121
|
+
# else
|
122
|
+
# return hash
|
123
|
+
# end
|
124
|
+
# end
|
125
|
+
#
|
126
|
+
# # Merge two records into one.
|
127
|
+
# def self.port_merge(one, two)
|
128
|
+
# keys = [one.keys, two.keys].flatten.uniq
|
129
|
+
#
|
130
|
+
# # We'll be returning the 'one' hash. so make any necessary modifications
|
131
|
+
# # to it.
|
132
|
+
# keys.each do |key|
|
133
|
+
# # The easy case
|
134
|
+
# if one[key] == two[key]
|
135
|
+
# next
|
136
|
+
# elsif one[key] and ! two[key]
|
137
|
+
# next
|
138
|
+
# elsif ! one[key] and two[key]
|
139
|
+
# one[key] = two[key]
|
140
|
+
# elsif one[key].is_a?(Array) and two[key].is_a?(Array)
|
141
|
+
# one[key] = [one[key], two[key]].flatten.uniq
|
142
|
+
# else
|
143
|
+
# # Keep the info from the first hash, so don't do anything
|
144
|
+
# #Puppet.notice "Cannot merge %s in %s with %s" %
|
145
|
+
# # [key, one.inspect, two.inspect]
|
146
|
+
# end
|
147
|
+
# end
|
148
|
+
#
|
149
|
+
# return one
|
150
|
+
# end
|
151
|
+
#
|
152
|
+
# # Convert the current object into one or more services entry.
|
153
|
+
# def self.to_line(hash)
|
154
|
+
# unless hash[:record_type] == :parsed
|
155
|
+
# return super
|
156
|
+
# end
|
157
|
+
#
|
158
|
+
# # Strangely, most sites seem to use tabs as separators.
|
159
|
+
# hash[:protocols].collect { |proto|
|
160
|
+
# str = "%s\t\t%s/%s" % [hash[:name], hash[:number], proto]
|
161
|
+
#
|
162
|
+
# if value = hash[:alias] and value != :absent
|
163
|
+
# str += "\t\t%s" % value.join(" ")
|
164
|
+
# end
|
165
|
+
#
|
166
|
+
# if value = hash[:description] and value != :absent
|
167
|
+
# str += "\t# %s" % value
|
168
|
+
# end
|
169
|
+
# str
|
170
|
+
# }.join("\n")
|
171
|
+
# end
|
172
|
+
#end
|
173
|
+
|
174
|
+
# $Id: parsed.rb 1875 2006-11-13 08:40:35Z luke $
|
@@ -0,0 +1,136 @@
|
|
1
|
+
Puppet::Type.type(:service).provide :base do
|
2
|
+
desc "The simplest form of service support. You have to specify
|
3
|
+
enough about your service for this to work; the minimum you can specify
|
4
|
+
is a binary for starting the process, and this same binary will be searched
|
5
|
+
for in the process table to stop the service. It is preferable to
|
6
|
+
specify start, stop, and status commands, akin to how you would do
|
7
|
+
so using ``init``."
|
8
|
+
|
9
|
+
commands :kill => "kill"
|
10
|
+
|
11
|
+
# Get the process ID for a running process. Requires the 'pattern'
|
12
|
+
# parameter.
|
13
|
+
def getpid
|
14
|
+
unless @model[:pattern]
|
15
|
+
@model.fail "Either a stop command or a pattern must be specified"
|
16
|
+
end
|
17
|
+
ps = Facter["ps"].value
|
18
|
+
unless ps and ps != ""
|
19
|
+
@model.fail(
|
20
|
+
"You must upgrade Facter to a version that includes 'ps'"
|
21
|
+
)
|
22
|
+
end
|
23
|
+
regex = Regexp.new(@model[:pattern])
|
24
|
+
self.debug "Executing '#{ps}'"
|
25
|
+
IO.popen(ps) { |table|
|
26
|
+
table.each { |line|
|
27
|
+
if regex.match(line)
|
28
|
+
ary = line.sub(/^\s+/, '').split(/\s+/)
|
29
|
+
return ary[1]
|
30
|
+
end
|
31
|
+
}
|
32
|
+
}
|
33
|
+
|
34
|
+
return nil
|
35
|
+
end
|
36
|
+
|
37
|
+
# How to restart the process.
|
38
|
+
def restart
|
39
|
+
if @model[:restart] or self.respond_to?(:restartcmd)
|
40
|
+
ucommand(:restart)
|
41
|
+
else
|
42
|
+
self.stop
|
43
|
+
self.start
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
# Check if the process is running. Prefer the 'status' parameter,
|
48
|
+
# then 'statuscmd' method, then look in the process table. We give
|
49
|
+
# the object the option to not return a status command, which might
|
50
|
+
# happen if, for instance, it has an init script (and thus responds to
|
51
|
+
# 'statuscmd') but does not have 'hasstatus' enabled.
|
52
|
+
def status
|
53
|
+
if @model[:status] or (
|
54
|
+
self.respond_to?(:statuscmd) and self.statuscmd
|
55
|
+
)
|
56
|
+
# Don't fail when the exit status is not 0.
|
57
|
+
output = ucommand(:status, false)
|
58
|
+
|
59
|
+
self.debug "%s status returned %s" %
|
60
|
+
[self.name, output.inspect]
|
61
|
+
if $? == 0
|
62
|
+
return :running
|
63
|
+
else
|
64
|
+
return :stopped
|
65
|
+
end
|
66
|
+
elsif pid = self.getpid
|
67
|
+
self.debug "PID is %s" % pid
|
68
|
+
return :running
|
69
|
+
else
|
70
|
+
return :stopped
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
# Run the 'start' parameter command, or the specified 'startcmd'.
|
75
|
+
def start
|
76
|
+
ucommand(:start)
|
77
|
+
end
|
78
|
+
|
79
|
+
# The command used to start. Generated if the 'binary' argument
|
80
|
+
# is passed.
|
81
|
+
def startcmd
|
82
|
+
if @model[:binary]
|
83
|
+
return @model[:binary]
|
84
|
+
else
|
85
|
+
raise Puppet::Error,
|
86
|
+
"Services must specify a start command or a binary"
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
# Stop the service. If a 'stop' parameter is specified, it
|
91
|
+
# takes precedence; otherwise checks if the object responds to
|
92
|
+
# a 'stopcmd' method, and if so runs that; otherwise, looks
|
93
|
+
# for the process in the process table.
|
94
|
+
# This method will generally not be overridden by submodules.
|
95
|
+
def stop
|
96
|
+
if @model[:stop] or self.respond_to?(:stopcmd)
|
97
|
+
ucommand(:stop)
|
98
|
+
else
|
99
|
+
pid = getpid
|
100
|
+
unless pid
|
101
|
+
self.info "%s is not running" % self.name
|
102
|
+
return false
|
103
|
+
end
|
104
|
+
begin
|
105
|
+
output = kill pid
|
106
|
+
rescue Puppet::ExecutionFailure => detail
|
107
|
+
@model.fail "Could not kill %s, PID %s: %s" %
|
108
|
+
[self.name, pid, output]
|
109
|
+
end
|
110
|
+
return true
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
# A simple wrapper so execution failures are a bit more informative.
|
115
|
+
def texecute(type, command, fof = true)
|
116
|
+
begin
|
117
|
+
# #565: Services generally produce no output, so squelch them.
|
118
|
+
execute(command, :failonfail => fof, :squelch => true)
|
119
|
+
rescue Puppet::ExecutionFailure => detail
|
120
|
+
@model.fail "Could not %s %s: %s" % [type, @model.ref, detail]
|
121
|
+
end
|
122
|
+
return nil
|
123
|
+
end
|
124
|
+
|
125
|
+
# Use either a specified command or the default for our provider.
|
126
|
+
def ucommand(type, fof = true)
|
127
|
+
if c = @model[type]
|
128
|
+
cmd = [c]
|
129
|
+
else
|
130
|
+
cmd = self.send("%scmd" % type)
|
131
|
+
end
|
132
|
+
return texecute(type, cmd, fof)
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
# $Id: base.rb 2385 2007-04-03 15:51:18Z mccune $
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# Manage debian services. Start/stop is the same as InitSvc, but enable/disable
|
2
|
+
# is special.
|
3
|
+
Puppet::Type.type(:service).provide :debian, :parent => :init do
|
4
|
+
desc "Debian's form of ``init``-style management. The only difference
|
5
|
+
is that this supports service enabling and disabling via ``update-rc.d``."
|
6
|
+
|
7
|
+
commands :update => "/usr/sbin/update-rc.d"
|
8
|
+
defaultfor :operatingsystem => :debian
|
9
|
+
|
10
|
+
# Remove the symlinks
|
11
|
+
def disable
|
12
|
+
update "-f", @model[:name], "remove"
|
13
|
+
end
|
14
|
+
|
15
|
+
def enabled?
|
16
|
+
output = update "-n", "-f", @model[:name], "remove"
|
17
|
+
|
18
|
+
# If it's enabled, then it will print output showing removal of
|
19
|
+
# links.
|
20
|
+
if output =~ /etc\/rc[\dS].d|Nothing to do\./
|
21
|
+
return :true
|
22
|
+
else
|
23
|
+
return :false
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def enable
|
28
|
+
update @model[:name], "defaults"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
# $Id: debian.rb 1979 2006-12-28 08:06:46Z luke $
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# Manage gentoo services. Start/stop is the same as InitSvc, but enable/disable
|
2
|
+
# is special.
|
3
|
+
Puppet::Type.type(:service).provide :gentoo, :parent => :init do
|
4
|
+
desc "Gentoo's form of ``init``-style service
|
5
|
+
management; uses ``rc-update`` for service enabling and disabling."
|
6
|
+
|
7
|
+
commands :update => "/sbin/rc-update"
|
8
|
+
|
9
|
+
defaultfor :operatingsystem => :gentoo
|
10
|
+
|
11
|
+
def disable
|
12
|
+
begin
|
13
|
+
output = update :del, @model[:name], :default
|
14
|
+
rescue Puppet::ExecutionFailure
|
15
|
+
raise Puppet::Error, "Could not disable %s: %s" %
|
16
|
+
[self.name, output]
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def enabled?
|
21
|
+
begin
|
22
|
+
output = update :show
|
23
|
+
rescue Puppet::ExecutionFailure
|
24
|
+
return :false
|
25
|
+
end
|
26
|
+
|
27
|
+
line = output.split(/\n/).find { |l| l.include?(@model[:name]) }
|
28
|
+
|
29
|
+
return :false unless line
|
30
|
+
|
31
|
+
# If it's enabled then it will print output showing service | runlevel
|
32
|
+
if output =~ /#{@model[:name]}\s*|\s*default/
|
33
|
+
return :true
|
34
|
+
else
|
35
|
+
return :false
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def enable
|
40
|
+
begin
|
41
|
+
output = update :add, @model[:name], :default
|
42
|
+
rescue Puppet::ExecutionFailure
|
43
|
+
raise Puppet::Error, "Could not enable %s: %s" %
|
44
|
+
[self.name, output]
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
# $Id $
|
@@ -1,23 +1,35 @@
|
|
1
1
|
# The standard init-based service type. Many other service types are
|
2
2
|
# customizations of this module.
|
3
|
-
Puppet.type(:service).
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
3
|
+
Puppet::Type.type(:service).provide :init, :parent => :base do
|
4
|
+
desc "Standard init service management. This provider assumes that the
|
5
|
+
init script has not ``status`` command, because so few scripts do,
|
6
|
+
so you need to either provide a status command or specify via ``hasstatus``
|
7
|
+
that one already exists in the init script."
|
8
|
+
|
9
|
+
class << self
|
10
|
+
attr_accessor :defpath
|
11
11
|
end
|
12
12
|
|
13
|
-
|
13
|
+
case Facter["operatingsystem"].value
|
14
|
+
when "FreeBSD":
|
15
|
+
@defpath = "/etc/rc.d"
|
16
|
+
else
|
17
|
+
@defpath = "/etc/init.d"
|
18
|
+
end
|
14
19
|
|
15
|
-
#
|
16
|
-
|
20
|
+
# We can't confine this here, because the init path can be overridden.
|
21
|
+
#confine :exists => @defpath
|
17
22
|
|
18
|
-
|
19
|
-
|
20
|
-
|
23
|
+
if self.suitable?
|
24
|
+
# Add it to the search paths
|
25
|
+
Puppet.type(:service).newpath(:init, defpath())
|
26
|
+
|
27
|
+
# Set the default init directory.
|
28
|
+
Puppet.type(:service).attrclass(:path).defaultto defpath()
|
29
|
+
end
|
30
|
+
|
31
|
+
# List all services of this type.
|
32
|
+
def self.list(name)
|
21
33
|
# We need to find all paths specified for our type or any parent types
|
22
34
|
paths = Puppet.type(:service).paths(name)
|
23
35
|
|
@@ -70,36 +82,26 @@ Puppet.type(:service).newsvctype(:init) do
|
|
70
82
|
end
|
71
83
|
end
|
72
84
|
|
73
|
-
# it'd be nice if i didn't throw the output away...
|
74
|
-
# this command returns true if the exit code is 0, and returns
|
75
|
-
# false otherwise
|
76
|
-
def initcmd(cmd)
|
77
|
-
script = self.initscript
|
78
|
-
|
79
|
-
self.debug "Executing '%s %s' as initcmd for '%s'" %
|
80
|
-
[script,cmd,self]
|
81
|
-
|
82
|
-
rvalue = Kernel.system("%s %s" %
|
83
|
-
[script,cmd])
|
84
|
-
|
85
|
-
self.debug "'%s' ran with exit status '%s'" %
|
86
|
-
[cmd,rvalue]
|
87
|
-
|
88
|
-
|
89
|
-
rvalue
|
90
|
-
end
|
91
|
-
|
92
85
|
# Where is our init script?
|
93
86
|
def initscript
|
94
87
|
if defined? @initscript
|
95
88
|
return @initscript
|
96
89
|
else
|
97
|
-
@initscript = self.search(
|
90
|
+
@initscript = self.search(@model[:name])
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
def restart
|
95
|
+
if @model[:hasrestart] == :true
|
96
|
+
command = [self.initscript, :restart]
|
97
|
+
texecute("restart", command)
|
98
|
+
else
|
99
|
+
super
|
98
100
|
end
|
99
101
|
end
|
100
102
|
|
101
103
|
def search(name)
|
102
|
-
|
104
|
+
@model[:path].each { |path|
|
103
105
|
fqname = File.join(path,name)
|
104
106
|
begin
|
105
107
|
stat = File.stat(fqname)
|
@@ -117,15 +119,15 @@ Puppet.type(:service).newsvctype(:init) do
|
|
117
119
|
|
118
120
|
# The start command is just the init scriptwith 'start'.
|
119
121
|
def startcmd
|
120
|
-
self.initscript
|
122
|
+
[self.initscript, :start]
|
121
123
|
end
|
122
124
|
|
123
125
|
# If it was specified that the init script has a 'status' command, then
|
124
126
|
# we just return that; otherwise, we return false, which causes it to
|
125
127
|
# fallback to other mechanisms.
|
126
128
|
def statuscmd
|
127
|
-
if
|
128
|
-
return self.initscript
|
129
|
+
if @model[:hasstatus]
|
130
|
+
return [self.initscript, :status]
|
129
131
|
else
|
130
132
|
return false
|
131
133
|
end
|
@@ -133,8 +135,8 @@ Puppet.type(:service).newsvctype(:init) do
|
|
133
135
|
|
134
136
|
# The stop command is just the init script with 'stop'.
|
135
137
|
def stopcmd
|
136
|
-
self.initscript
|
138
|
+
[self.initscript, :stop]
|
137
139
|
end
|
138
140
|
end
|
139
141
|
|
140
|
-
# $Id: init.rb
|
142
|
+
# $Id: init.rb 1979 2006-12-28 08:06:46Z luke $
|