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
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
require 'etc'
|
|
2
|
-
require 'facter'
|
|
3
|
-
require 'puppet/type/parsedtype'
|
|
4
|
-
require 'puppet/type/state'
|
|
5
|
-
|
|
6
|
-
module Puppet
|
|
7
|
-
newtype(:sshkey, Puppet::Type::ParsedType) do
|
|
8
|
-
newstate(:type) do
|
|
9
|
-
desc "The encryption type used. Probably ssh-dss or ssh-rsa."
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
newstate(:key) do
|
|
13
|
-
desc "The key itself; generally a long string of hex digits."
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
# FIXME This should automagically check for aliases to the hosts, just
|
|
17
|
-
# to see if we can automatically glean any aliases.
|
|
18
|
-
newstate(:alias) do
|
|
19
|
-
desc "Any alias the host might have. Multiple values must be
|
|
20
|
-
specified as an array. Note that this state has the same name
|
|
21
|
-
as one of the metaparams; using this state to set aliases will
|
|
22
|
-
make those aliases available in your Puppet scripts."
|
|
23
|
-
|
|
24
|
-
# We actually want to return the whole array here, not just the first
|
|
25
|
-
# value.
|
|
26
|
-
def should
|
|
27
|
-
if defined? @should
|
|
28
|
-
return @should
|
|
29
|
-
else
|
|
30
|
-
return nil
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
validate do |value|
|
|
35
|
-
if value =~ /\s/
|
|
36
|
-
raise Puppet::Error, "Aliases cannot include whitespace"
|
|
37
|
-
end
|
|
38
|
-
if value =~ /,/
|
|
39
|
-
raise Puppet::Error, "Aliases cannot include whitespace"
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
# Make a puppet alias in addition.
|
|
44
|
-
munge do |value|
|
|
45
|
-
# Add the :alias metaparam in addition to the state
|
|
46
|
-
@parent.newmetaparam(@parent.class.metaparamclass(:alias), value)
|
|
47
|
-
value
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
newparam(:name) do
|
|
52
|
-
desc "The host name."
|
|
53
|
-
|
|
54
|
-
isnamevar
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
@doc = "Installs and manages ssh host keys. At this point, this type
|
|
58
|
-
only knows how to install keys into /etc/ssh/ssh_known_hosts, and
|
|
59
|
-
it cannot manage user authorized keys yet."
|
|
60
|
-
|
|
61
|
-
@instances = []
|
|
62
|
-
|
|
63
|
-
# FIXME This should be configurable.
|
|
64
|
-
@path = "/etc/ssh/ssh_known_hosts"
|
|
65
|
-
@fields = [:name, :type, :key]
|
|
66
|
-
|
|
67
|
-
@filetype = Puppet::FileType.filetype(:flat)
|
|
68
|
-
# case Facter["operatingsystem"].value
|
|
69
|
-
# when "Solaris":
|
|
70
|
-
# @filetype = Puppet::FileType::SunOS
|
|
71
|
-
# else
|
|
72
|
-
# @filetype = Puppet::CronType::Default
|
|
73
|
-
# end
|
|
74
|
-
|
|
75
|
-
# Parse a host file
|
|
76
|
-
#
|
|
77
|
-
# This method also stores existing comments, and it stores all host
|
|
78
|
-
# jobs in order, mostly so that comments are retained in the order
|
|
79
|
-
# they were written and in proximity to the same jobs.
|
|
80
|
-
def self.parse(text)
|
|
81
|
-
count = 0
|
|
82
|
-
hash = {}
|
|
83
|
-
text.chomp.split("\n").each { |line|
|
|
84
|
-
case line
|
|
85
|
-
when /^#/, /^\s*$/:
|
|
86
|
-
# add comments and blank lines to the list as they are
|
|
87
|
-
@instances << line
|
|
88
|
-
else
|
|
89
|
-
hash = {}
|
|
90
|
-
fields().zip(line.split(" ")).each { |param, value|
|
|
91
|
-
hash[param] = value
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
if hash[:name] =~ /,/
|
|
95
|
-
names = hash[:name].split(",")
|
|
96
|
-
hash[:name] = names.shift
|
|
97
|
-
hash[:alias] = names
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
if hash[:alias] == ""
|
|
101
|
-
hash.delete(:alias)
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
hash2obj(hash)
|
|
105
|
-
|
|
106
|
-
hash.clear
|
|
107
|
-
count += 1
|
|
108
|
-
end
|
|
109
|
-
}
|
|
110
|
-
end
|
|
111
|
-
|
|
112
|
-
# Convert the current object into a host-style string.
|
|
113
|
-
def to_record
|
|
114
|
-
name = self[:name]
|
|
115
|
-
if @states.include?(:alias)
|
|
116
|
-
name += "," + @states[:alias].value.join(",")
|
|
117
|
-
end
|
|
118
|
-
[name, @states[:type].value, @states[:key].value].join(" ")
|
|
119
|
-
end
|
|
120
|
-
end
|
|
121
|
-
end
|
|
122
|
-
|
|
123
|
-
# $Id: sshkey.rb 1279 2006-06-14 15:30:25Z luke $
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
Puppet.type(:service).newsvctype(:base) do
|
|
2
|
-
# The command used to start. Generated if the 'binary' argument
|
|
3
|
-
# is passed.
|
|
4
|
-
def startcmd
|
|
5
|
-
if self[:binary]
|
|
6
|
-
return self[:binary]
|
|
7
|
-
else
|
|
8
|
-
raise Puppet::Error,
|
|
9
|
-
"Services must specify a start command or a binary"
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
end
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
require 'puppet/type/service/init'
|
|
2
|
-
|
|
3
|
-
# Manage debian services. Start/stop is the same as InitSvc, but enable/disable
|
|
4
|
-
# is special.
|
|
5
|
-
Puppet.type(:service).newsvctype(:debian, :init) do
|
|
6
|
-
# Remove the symlinks
|
|
7
|
-
def disable
|
|
8
|
-
cmd = %{update-rc.d -f #{self[:name]} remove 2>&1}
|
|
9
|
-
self.debug "Executing '%s'" % cmd
|
|
10
|
-
output = %x{#{cmd}}
|
|
11
|
-
|
|
12
|
-
unless $? == 0
|
|
13
|
-
raise Puppet::Error, "Could not disable %s: %s" %
|
|
14
|
-
[self.name, output]
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def enabled?
|
|
19
|
-
cmd = %{update-rc.d -n -f #{self[:name]} remove 2>&1}
|
|
20
|
-
self.debug "Executing 'enabled' test: '%s'" % cmd
|
|
21
|
-
output = %x{#{cmd}}
|
|
22
|
-
unless $? == 0
|
|
23
|
-
raise Puppet::Error, "Could not check %s: %s" %
|
|
24
|
-
[self.name, output]
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
# If it's enabled, then it will print output showing removal of
|
|
28
|
-
# links.
|
|
29
|
-
if output =~ /etc\/rc[\dS].d|Nothing to do\./
|
|
30
|
-
return :true
|
|
31
|
-
else
|
|
32
|
-
return :false
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
def enable
|
|
37
|
-
cmd = %{update-rc.d #{self[:name]} defaults 2>&1}
|
|
38
|
-
self.debug "Executing '%s'" % cmd
|
|
39
|
-
output = %x{#{cmd}}
|
|
40
|
-
|
|
41
|
-
unless $? == 0
|
|
42
|
-
raise Puppet::Error, "Could not enable %s: %s" %
|
|
43
|
-
[self.name, output]
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
end
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
require 'puppet/type/service/init'
|
|
2
|
-
|
|
3
|
-
# Manage debian services. Start/stop is the same as InitSvc, but enable/disable
|
|
4
|
-
# is special.
|
|
5
|
-
Puppet.type(:service).newsvctype(:redhat, :init) do
|
|
6
|
-
# Remove the symlinks
|
|
7
|
-
def disable
|
|
8
|
-
begin
|
|
9
|
-
output = util_execute("/sbin/chkconfig #{self[:name]} off 2>&1")
|
|
10
|
-
output += util_execute("/sbin/chkconfig --del #{self[:name]} 2>&1")
|
|
11
|
-
rescue Puppet::ExecutionFailure
|
|
12
|
-
raise Puppet::Error, "Could not disable %s: %s" %
|
|
13
|
-
[self.name, output]
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def enabled?
|
|
18
|
-
begin
|
|
19
|
-
output = util_execute("/sbin/chkconfig #{self[:name]} 2>&1").chomp
|
|
20
|
-
rescue Puppet::ExecutionFailure
|
|
21
|
-
return :false
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
return :true
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
# Don't support them specifying runlevels; always use the runlevels
|
|
28
|
-
# in the init scripts.
|
|
29
|
-
def enable
|
|
30
|
-
begin
|
|
31
|
-
output = util_execute("/sbin/chkconfig --add #{self[:name]} 2>&1")
|
|
32
|
-
output += util_execute("/sbin/chkconfig #{self[:name]} on 2>&1")
|
|
33
|
-
rescue Puppet::ExecutionFailure
|
|
34
|
-
raise Puppet::Error, "Could not enable %s: %s" %
|
|
35
|
-
[self.name, output]
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
end
|
data/lib/puppet/type/state.rb
DELETED
|
@@ -1,393 +0,0 @@
|
|
|
1
|
-
# The virtual base class for states, which are the self-contained building
|
|
2
|
-
# blocks for actually doing work on the system.
|
|
3
|
-
|
|
4
|
-
require 'puppet'
|
|
5
|
-
require 'puppet/element'
|
|
6
|
-
require 'puppet/statechange'
|
|
7
|
-
require 'puppet/parameter'
|
|
8
|
-
|
|
9
|
-
module Puppet
|
|
10
|
-
class State < Puppet::Parameter
|
|
11
|
-
attr_accessor :is
|
|
12
|
-
|
|
13
|
-
# Because 'should' uses an array, we have a special method for handling
|
|
14
|
-
# it. We also want to keep copies of the original values, so that
|
|
15
|
-
# they can be retrieved and compared later when merging.
|
|
16
|
-
attr_reader :shouldorig
|
|
17
|
-
|
|
18
|
-
class << self
|
|
19
|
-
attr_accessor :unmanaged
|
|
20
|
-
attr_reader :name
|
|
21
|
-
|
|
22
|
-
def checkable
|
|
23
|
-
@checkable = true
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def uncheckable
|
|
27
|
-
@checkable = false
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def checkable?
|
|
31
|
-
if defined? @checkable
|
|
32
|
-
return @checkable
|
|
33
|
-
else
|
|
34
|
-
return true
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
# Create the value management variables.
|
|
40
|
-
def self.initvars
|
|
41
|
-
@parametervalues = {}
|
|
42
|
-
@aliasvalues = {}
|
|
43
|
-
@parameterregexes = {}
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
# Parameters just use 'newvalues', since there's no work associated with them,
|
|
47
|
-
# but states have blocks associated with their allowed values.
|
|
48
|
-
def self.newvalue(name, &block)
|
|
49
|
-
name = name.intern if name.is_a? String
|
|
50
|
-
|
|
51
|
-
case name
|
|
52
|
-
when Symbol
|
|
53
|
-
if @parametervalues.include?(name)
|
|
54
|
-
Puppet.warning "%s reassigning value %s" % [self.name, name]
|
|
55
|
-
end
|
|
56
|
-
@parametervalues[name] = block
|
|
57
|
-
|
|
58
|
-
define_method("set_" + name.to_s, &block)
|
|
59
|
-
when Regexp
|
|
60
|
-
@parameterregexes[name] = block
|
|
61
|
-
else
|
|
62
|
-
raise ArgumentError, "Invalid value %s of type %s" %
|
|
63
|
-
[name, name.class]
|
|
64
|
-
end
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
# Call the method associated with a given value.
|
|
68
|
-
def set
|
|
69
|
-
if self.insync?
|
|
70
|
-
self.log "already in sync"
|
|
71
|
-
return nil
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
value = self.should
|
|
75
|
-
method = "set_" + value.to_s
|
|
76
|
-
event = nil
|
|
77
|
-
if self.respond_to?(method)
|
|
78
|
-
self.debug "setting %s (currently %s)" % [value, self.is]
|
|
79
|
-
|
|
80
|
-
begin
|
|
81
|
-
event = self.send(method)
|
|
82
|
-
rescue Puppet::Error
|
|
83
|
-
raise
|
|
84
|
-
rescue => detail
|
|
85
|
-
if Puppet[:debug]
|
|
86
|
-
puts detail.backtrace
|
|
87
|
-
end
|
|
88
|
-
self.fail "Could not set %s on %s: %s" %
|
|
89
|
-
[value, self.class.name, detail]
|
|
90
|
-
end
|
|
91
|
-
elsif ary = self.class.match?(value)
|
|
92
|
-
# FIXME It'd be better here to define a method, so that
|
|
93
|
-
# the blocks could return values.
|
|
94
|
-
event = self.instance_eval(&ary[1])
|
|
95
|
-
else
|
|
96
|
-
self.fail "%s is not a valid value for %s" %
|
|
97
|
-
[value, self.class.name]
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
if event and event.is_a?(Symbol)
|
|
101
|
-
if event == :nochange
|
|
102
|
-
return nil
|
|
103
|
-
else
|
|
104
|
-
return event
|
|
105
|
-
end
|
|
106
|
-
else
|
|
107
|
-
# Return the appropriate event.
|
|
108
|
-
event = case self.should
|
|
109
|
-
when :present: (@parent.class.name.to_s + "_created").intern
|
|
110
|
-
when :absent: (@parent.class.name.to_s + "_removed").intern
|
|
111
|
-
else
|
|
112
|
-
(@parent.class.name.to_s + "_changed").intern
|
|
113
|
-
end
|
|
114
|
-
|
|
115
|
-
#self.log "made event %s because 'should' is %s, 'is' is %s" %
|
|
116
|
-
# [event, self.should.inspect, self.is.inspect]
|
|
117
|
-
|
|
118
|
-
return event
|
|
119
|
-
end
|
|
120
|
-
end
|
|
121
|
-
|
|
122
|
-
# initialize our state
|
|
123
|
-
def initialize(hash)
|
|
124
|
-
super()
|
|
125
|
-
@is = nil
|
|
126
|
-
|
|
127
|
-
unless hash.include?(:parent)
|
|
128
|
-
self.devfail "State %s was not passed a parent" % self
|
|
129
|
-
end
|
|
130
|
-
@parent = hash[:parent]
|
|
131
|
-
|
|
132
|
-
if hash.include?(:should)
|
|
133
|
-
self.should = hash[:should]
|
|
134
|
-
end
|
|
135
|
-
|
|
136
|
-
if hash.include?(:is)
|
|
137
|
-
self.is = hash[:is]
|
|
138
|
-
end
|
|
139
|
-
end
|
|
140
|
-
|
|
141
|
-
def inspect
|
|
142
|
-
str = "State('%s', " % self.name
|
|
143
|
-
if self.is
|
|
144
|
-
str += "@is = '%s', " % [self.is]
|
|
145
|
-
else
|
|
146
|
-
str += "@is = nil, "
|
|
147
|
-
end
|
|
148
|
-
|
|
149
|
-
if defined? @should and @should
|
|
150
|
-
str += "@should = '%s')" % @should.join(", ")
|
|
151
|
-
else
|
|
152
|
-
str += "@should = nil)"
|
|
153
|
-
end
|
|
154
|
-
end
|
|
155
|
-
|
|
156
|
-
# Determine whether the state is in-sync or not. If @should is
|
|
157
|
-
# not defined or is set to a non-true value, then we do not have
|
|
158
|
-
# a valid value for it and thus consider the state to be in-sync
|
|
159
|
-
# since we cannot fix it. Otherwise, we expect our should value
|
|
160
|
-
# to be an array, and if @is matches any of those values, then
|
|
161
|
-
# we consider it to be in-sync.
|
|
162
|
-
def insync?
|
|
163
|
-
#debug "%s value is '%s', should be '%s'" %
|
|
164
|
-
# [self,self.is.inspect,self.should.inspect]
|
|
165
|
-
unless defined? @should and @should
|
|
166
|
-
return true
|
|
167
|
-
end
|
|
168
|
-
|
|
169
|
-
unless @should.is_a?(Array)
|
|
170
|
-
self.devfail "%s's should is not array" % self.class.name
|
|
171
|
-
end
|
|
172
|
-
|
|
173
|
-
# an empty array is analogous to no should values
|
|
174
|
-
if @should.empty?
|
|
175
|
-
return true
|
|
176
|
-
end
|
|
177
|
-
|
|
178
|
-
# Look for a matching value
|
|
179
|
-
@should.each { |val|
|
|
180
|
-
if @is == val
|
|
181
|
-
return true
|
|
182
|
-
end
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
# otherwise, return false
|
|
186
|
-
return false
|
|
187
|
-
end
|
|
188
|
-
|
|
189
|
-
def log(msg)
|
|
190
|
-
unless @parent[:loglevel]
|
|
191
|
-
p @parent
|
|
192
|
-
self.devfail "Parent %s has no loglevel" %
|
|
193
|
-
@parent.name
|
|
194
|
-
end
|
|
195
|
-
Puppet::Log.create(
|
|
196
|
-
:level => @parent[:loglevel],
|
|
197
|
-
:message => msg,
|
|
198
|
-
:source => self
|
|
199
|
-
)
|
|
200
|
-
end
|
|
201
|
-
|
|
202
|
-
# each state class must define the name() method, and state instances
|
|
203
|
-
# do not change that name
|
|
204
|
-
# this implicitly means that a given object can only have one state
|
|
205
|
-
# instance of a given state class
|
|
206
|
-
def name
|
|
207
|
-
return self.class.name
|
|
208
|
-
end
|
|
209
|
-
|
|
210
|
-
# for testing whether we should actually do anything
|
|
211
|
-
def noop
|
|
212
|
-
unless defined? @noop
|
|
213
|
-
@noop = false
|
|
214
|
-
end
|
|
215
|
-
tmp = @noop || self.parent.noop || Puppet[:noop] || false
|
|
216
|
-
#debug "noop is %s" % tmp
|
|
217
|
-
return tmp
|
|
218
|
-
end
|
|
219
|
-
|
|
220
|
-
# return the full path to us, for logging and rollback; not currently
|
|
221
|
-
# used
|
|
222
|
-
def path
|
|
223
|
-
if defined? @parent and @parent
|
|
224
|
-
return [@parent.path, self.name].join("/")
|
|
225
|
-
else
|
|
226
|
-
return self.name
|
|
227
|
-
end
|
|
228
|
-
end
|
|
229
|
-
|
|
230
|
-
# Only return the first value
|
|
231
|
-
def should
|
|
232
|
-
if defined? @should
|
|
233
|
-
unless @should.is_a?(Array)
|
|
234
|
-
self.devfail "should for %s on %s is not an array" %
|
|
235
|
-
[self.class.name, @parent.name]
|
|
236
|
-
end
|
|
237
|
-
return @should[0]
|
|
238
|
-
else
|
|
239
|
-
return nil
|
|
240
|
-
end
|
|
241
|
-
end
|
|
242
|
-
|
|
243
|
-
# Set the should value.
|
|
244
|
-
def should=(values)
|
|
245
|
-
unless values.is_a?(Array)
|
|
246
|
-
values = [values]
|
|
247
|
-
end
|
|
248
|
-
|
|
249
|
-
@shouldorig = values
|
|
250
|
-
|
|
251
|
-
if self.respond_to?(:validate)
|
|
252
|
-
values.each { |val|
|
|
253
|
-
validate(val)
|
|
254
|
-
}
|
|
255
|
-
end
|
|
256
|
-
if self.respond_to?(:munge)
|
|
257
|
-
@should = values.collect { |val|
|
|
258
|
-
self.munge(val)
|
|
259
|
-
}
|
|
260
|
-
else
|
|
261
|
-
@should = values
|
|
262
|
-
end
|
|
263
|
-
end
|
|
264
|
-
|
|
265
|
-
# The default 'sync' method only selects among a list of registered
|
|
266
|
-
# values.
|
|
267
|
-
def sync
|
|
268
|
-
if self.insync?
|
|
269
|
-
self.info "already in sync"
|
|
270
|
-
return nil
|
|
271
|
-
#else
|
|
272
|
-
#self.info "%s vs %s" % [self.is.inspect, self.should.inspect]
|
|
273
|
-
end
|
|
274
|
-
unless self.class.values
|
|
275
|
-
self.devfail "No values defined for %s" %
|
|
276
|
-
self.class.name
|
|
277
|
-
end
|
|
278
|
-
|
|
279
|
-
# Set ourselves to whatever our should value is.
|
|
280
|
-
self.set
|
|
281
|
-
end
|
|
282
|
-
|
|
283
|
-
# How should a state change be printed as a string?
|
|
284
|
-
def change_to_s
|
|
285
|
-
begin
|
|
286
|
-
if @is == :absent
|
|
287
|
-
return "defined '%s' as '%s'" %
|
|
288
|
-
[self.name, self.should_to_s]
|
|
289
|
-
elsif self.should == :absent or self.should == [:absent]
|
|
290
|
-
return "undefined %s from '%s'" %
|
|
291
|
-
[self.name, self.is_to_s]
|
|
292
|
-
else
|
|
293
|
-
return "%s changed '%s' to '%s'" %
|
|
294
|
-
[self.name, self.is_to_s, self.should_to_s]
|
|
295
|
-
end
|
|
296
|
-
rescue Puppet::Error, Puppet::DevError
|
|
297
|
-
raise
|
|
298
|
-
rescue => detail
|
|
299
|
-
raise Puppet::DevError, "Could not convert change %s to string: %s" %
|
|
300
|
-
[self.name, detail]
|
|
301
|
-
end
|
|
302
|
-
end
|
|
303
|
-
|
|
304
|
-
# because the @should and @is vars might be in weird formats,
|
|
305
|
-
# we need to set up a mechanism for pretty printing of the values
|
|
306
|
-
# default to just the values, but this way individual states can
|
|
307
|
-
# override these methods
|
|
308
|
-
def is_to_s
|
|
309
|
-
@is
|
|
310
|
-
end
|
|
311
|
-
|
|
312
|
-
def should_to_s
|
|
313
|
-
if defined? @should
|
|
314
|
-
@should.join(" ")
|
|
315
|
-
else
|
|
316
|
-
return nil
|
|
317
|
-
end
|
|
318
|
-
end
|
|
319
|
-
|
|
320
|
-
def to_s
|
|
321
|
-
return "%s(%s)" % [@parent.name,self.name]
|
|
322
|
-
end
|
|
323
|
-
|
|
324
|
-
# This state will get automatically added to any type that responds
|
|
325
|
-
# to the methods 'exists?', 'create', and 'destroy'.
|
|
326
|
-
class Ensure < Puppet::State
|
|
327
|
-
@name = :ensure
|
|
328
|
-
|
|
329
|
-
def self.defaultvalues
|
|
330
|
-
newvalue(:present) do
|
|
331
|
-
@parent.create
|
|
332
|
-
end
|
|
333
|
-
|
|
334
|
-
newvalue(:absent) do
|
|
335
|
-
@parent.destroy
|
|
336
|
-
end
|
|
337
|
-
|
|
338
|
-
# This doc will probably get overridden
|
|
339
|
-
@doc ||= "The basic state that the object should be in."
|
|
340
|
-
end
|
|
341
|
-
|
|
342
|
-
def self.inherited(sub)
|
|
343
|
-
# Add in the two states that everyone will have.
|
|
344
|
-
sub.class_eval do
|
|
345
|
-
end
|
|
346
|
-
end
|
|
347
|
-
|
|
348
|
-
def change_to_s
|
|
349
|
-
begin
|
|
350
|
-
if @is == :absent
|
|
351
|
-
return "created"
|
|
352
|
-
elsif self.should == :absent
|
|
353
|
-
return "removed"
|
|
354
|
-
else
|
|
355
|
-
return "%s changed '%s' to '%s'" %
|
|
356
|
-
[self.name, self.is_to_s, self.should_to_s]
|
|
357
|
-
end
|
|
358
|
-
rescue Puppet::Error, Puppet::DevError
|
|
359
|
-
raise
|
|
360
|
-
rescue => detail
|
|
361
|
-
raise Puppet::DevError, "Could not convert change %s to string: %s" %
|
|
362
|
-
[self.name, detail]
|
|
363
|
-
end
|
|
364
|
-
end
|
|
365
|
-
|
|
366
|
-
def retrieve
|
|
367
|
-
# XXX This is a problem -- whether the object exists or not often
|
|
368
|
-
# depends on the results of other states, yet we're the first state
|
|
369
|
-
# to get checked, which means that those other states do not have
|
|
370
|
-
# @is values set. This seems to be the source of quite a few bugs,
|
|
371
|
-
# although they're mostly logging bugs, not functional ones.
|
|
372
|
-
if @parent.exists?
|
|
373
|
-
@is = :present
|
|
374
|
-
else
|
|
375
|
-
@is = :absent
|
|
376
|
-
end
|
|
377
|
-
end
|
|
378
|
-
|
|
379
|
-
# If they're talking about the thing at all, they generally want to
|
|
380
|
-
# say it should exist.
|
|
381
|
-
#defaultto :present
|
|
382
|
-
defaultto do
|
|
383
|
-
if @parent.managed?
|
|
384
|
-
:present
|
|
385
|
-
else
|
|
386
|
-
nil
|
|
387
|
-
end
|
|
388
|
-
end
|
|
389
|
-
end
|
|
390
|
-
end
|
|
391
|
-
end
|
|
392
|
-
|
|
393
|
-
# $Id: state.rb 1136 2006-04-26 16:14:47Z luke $
|