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,47 @@
|
|
1
|
+
#
|
2
|
+
# Simple module for logging messages on the client-side
|
3
|
+
#
|
4
|
+
|
5
|
+
module Puppet
|
6
|
+
newtype(:notify) do
|
7
|
+
@doc = "Sends an arbitrary message to the puppetd run-time log."
|
8
|
+
|
9
|
+
newproperty(:message) do
|
10
|
+
desc "The message to be sent to the log."
|
11
|
+
def sync
|
12
|
+
case @parent["withpath"]
|
13
|
+
when :true:
|
14
|
+
log(self.should)
|
15
|
+
else
|
16
|
+
Puppet.send(@parent[:loglevel], self.should)
|
17
|
+
end
|
18
|
+
return
|
19
|
+
end
|
20
|
+
|
21
|
+
def retrieve
|
22
|
+
return
|
23
|
+
end
|
24
|
+
|
25
|
+
def insync?
|
26
|
+
false
|
27
|
+
end
|
28
|
+
|
29
|
+
defaultto { @parent[:name] }
|
30
|
+
end
|
31
|
+
|
32
|
+
newparam(:withpath) do
|
33
|
+
desc "Whether to not to show the full object path. Sends the
|
34
|
+
message at the current loglevel."
|
35
|
+
defaultto :false
|
36
|
+
|
37
|
+
newvalues(:true, :false)
|
38
|
+
end
|
39
|
+
|
40
|
+
newparam(:name) do
|
41
|
+
desc "An arbitrary tag for your own reference; the name of the message."
|
42
|
+
isnamevar
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
# $Id: notify.rb 2317 2007-03-19 17:42:17Z luke $
|
data/lib/puppet/type/package.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
# This allows packages to exist on the same machine using different packaging
|
4
4
|
# systems.
|
5
5
|
|
6
|
-
require 'puppet/type/
|
6
|
+
require 'puppet/type/property'
|
7
7
|
|
8
8
|
module Puppet
|
9
9
|
class PackageError < Puppet::Error; end
|
@@ -17,124 +17,62 @@ module Puppet
|
|
17
17
|
|
18
18
|
Puppet will automatically guess the packaging format that you are
|
19
19
|
using based on the platform you are on, but you can override it
|
20
|
-
using the ``
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
raise Puppet::DevError,
|
38
|
-
"No parent type %s for package type %s" %
|
39
|
-
[parent, name]
|
40
|
-
end
|
41
|
-
mod.send(:include, parenttype)
|
42
|
-
end
|
43
|
-
|
44
|
-
# And now define the support methods
|
45
|
-
code = %{
|
46
|
-
def self.name
|
47
|
-
"#{name}"
|
48
|
-
end
|
49
|
-
|
50
|
-
def self.to_s
|
51
|
-
"PkgType(#{name})"
|
52
|
-
end
|
53
|
-
|
54
|
-
def pkgtype
|
55
|
-
"#{name}"
|
56
|
-
end
|
57
|
-
}
|
58
|
-
|
59
|
-
mod.module_eval(code)
|
60
|
-
|
61
|
-
mod.module_eval(&block)
|
62
|
-
|
63
|
-
class << mod
|
64
|
-
include Puppet::Util
|
65
|
-
end
|
66
|
-
|
67
|
-
# It's at least conceivable that a module would not define this method
|
68
|
-
# "module_function" makes the :list method private, so if the parent
|
69
|
-
# method also called module_function, then it's already private
|
70
|
-
if mod.public_method_defined? :list or mod.private_method_defined? :list
|
71
|
-
mod.send(:module_function, :list)
|
72
|
-
end
|
73
|
-
|
74
|
-
# Add it to our list
|
75
|
-
@pkgtypes[name] = mod
|
76
|
-
|
77
|
-
# And mark it as a valid type
|
78
|
-
unless defined? @typeparam
|
79
|
-
@typeparam = @parameters.find { |p| p.name == :type }
|
80
|
-
|
81
|
-
unless @typeparam
|
82
|
-
Puppet.warning @parameters.inspect
|
83
|
-
raise Puppet::DevError, "Could not package type parameter"
|
84
|
-
end
|
85
|
-
end
|
86
|
-
@typeparam.newvalues(name)
|
87
|
-
end
|
88
|
-
|
89
|
-
# Autoload the package types, if they're not already defined.
|
90
|
-
def self.pkgtype(name)
|
91
|
-
#name = name[0] if name.is_a? Array
|
92
|
-
name = name.intern if name.is_a? String
|
93
|
-
@pkgtypes ||= {}
|
94
|
-
unless @pkgtypes.include? name
|
95
|
-
begin
|
96
|
-
require "puppet/type/package/#{name}"
|
97
|
-
|
98
|
-
unless @pkgtypes.include? name
|
99
|
-
Puppet.warning @pkgtypes.keys
|
100
|
-
raise Puppet::DevError,
|
101
|
-
"Loaded %s but pkgtype was not created" % name.inspect
|
102
|
-
end
|
103
|
-
rescue LoadError
|
104
|
-
raise Puppet::Error, "Could not load package type %s" % name
|
105
|
-
end
|
106
|
-
end
|
107
|
-
@pkgtypes[name]
|
108
|
-
end
|
109
|
-
|
110
|
-
def self.pkgtypes
|
111
|
-
@pkgtypes.keys
|
112
|
-
end
|
20
|
+
using the ``provider`` parameter; each provider defines what it
|
21
|
+
requires in order to function, and you must meet those requirements
|
22
|
+
to use a given provider."
|
23
|
+
|
24
|
+
feature :installable, "The provider can install packages.",
|
25
|
+
:methods => [:install]
|
26
|
+
feature :uninstallable, "The provider can uninstall packages.",
|
27
|
+
:methods => [:uninstall]
|
28
|
+
feature :upgradeable, "The provider can upgrade to the latest version of a
|
29
|
+
package. This feature is used by specifying ``latest`` as the
|
30
|
+
desired value for the package.",
|
31
|
+
:methods => [:update, :latest]
|
32
|
+
feature :purgeable, "The provider can purge packages. This generally means
|
33
|
+
that all traces of the package are removed, including
|
34
|
+
existing configuration files. This feature is thus destructive
|
35
|
+
and should be used with the utmost care.",
|
36
|
+
:methods => [:purge]
|
113
37
|
|
114
38
|
ensurable do
|
115
39
|
desc "What state the package should be in.
|
116
40
|
*latest* only makes sense for those packaging formats that can
|
117
41
|
retrieve new packages on their own and will throw an error on
|
118
|
-
those that cannot.
|
42
|
+
those that cannot. For those packaging systems that allow you
|
43
|
+
to specify package versions, specify them here. Similarly,
|
44
|
+
*purged* is only useful for packaging systems that support
|
45
|
+
the notion of managing configuration files separately from
|
46
|
+
'normal' system files."
|
119
47
|
|
120
48
|
attr_accessor :latest
|
121
49
|
|
122
|
-
newvalue(:present) do
|
123
|
-
|
50
|
+
newvalue(:present, :event => :package_installed) do
|
51
|
+
provider.install
|
124
52
|
end
|
125
53
|
|
126
|
-
newvalue(:absent) do
|
127
|
-
|
54
|
+
newvalue(:absent, :event => :package_removed) do
|
55
|
+
provider.uninstall
|
56
|
+
end
|
57
|
+
|
58
|
+
newvalue(:purged, :event => :package_purged) do
|
59
|
+
unless provider.purgeable?
|
60
|
+
self.fail(
|
61
|
+
"Package provider %s does not purging" %
|
62
|
+
@parent[:provider]
|
63
|
+
)
|
64
|
+
end
|
65
|
+
provider.purge
|
128
66
|
end
|
129
67
|
|
130
68
|
# Alias the 'present' value.
|
131
69
|
aliasvalue(:installed, :present)
|
132
70
|
|
133
71
|
newvalue(:latest) do
|
134
|
-
unless
|
72
|
+
unless provider.upgradeable?
|
135
73
|
self.fail(
|
136
|
-
"Package
|
137
|
-
@parent[:
|
74
|
+
"Package provider %s does not support specifying 'latest'" %
|
75
|
+
@parent[:provider]
|
138
76
|
)
|
139
77
|
end
|
140
78
|
|
@@ -143,18 +81,39 @@ module Puppet
|
|
143
81
|
# to compare against later.
|
144
82
|
current = self.is
|
145
83
|
begin
|
146
|
-
|
84
|
+
provider.update
|
147
85
|
rescue => detail
|
148
86
|
self.fail "Could not update: %s" % detail
|
149
87
|
end
|
150
88
|
|
151
89
|
if current == :absent
|
152
|
-
|
90
|
+
:package_installed
|
153
91
|
else
|
154
|
-
|
92
|
+
:package_changed
|
155
93
|
end
|
156
94
|
end
|
157
95
|
|
96
|
+
newvalue(/./) do
|
97
|
+
unless provider.versionable?
|
98
|
+
self.fail(
|
99
|
+
"Package provider %s does not support specifying versions" %
|
100
|
+
@parent[:provider]
|
101
|
+
)
|
102
|
+
end
|
103
|
+
begin
|
104
|
+
provider.install
|
105
|
+
rescue => detail
|
106
|
+
self.fail "Could not update: %s" % detail
|
107
|
+
end
|
108
|
+
|
109
|
+
if self.is == :absent
|
110
|
+
:package_installed
|
111
|
+
else
|
112
|
+
:package_changed
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
|
158
117
|
defaultto :installed
|
159
118
|
|
160
119
|
# Override the parent method, because we've got all kinds of
|
@@ -178,10 +137,10 @@ module Puppet
|
|
178
137
|
return false
|
179
138
|
end
|
180
139
|
|
181
|
-
unless
|
140
|
+
unless provider.respond_to?(:latest)
|
182
141
|
self.fail(
|
183
142
|
"Package type %s does not support specifying 'latest'" %
|
184
|
-
@parent[:
|
143
|
+
@parent[:provider]
|
185
144
|
)
|
186
145
|
end
|
187
146
|
|
@@ -190,25 +149,23 @@ module Puppet
|
|
190
149
|
#self.debug "Skipping latest check"
|
191
150
|
else
|
192
151
|
begin
|
193
|
-
@latest =
|
152
|
+
@latest = provider.latest
|
194
153
|
@lateststamp = Time.now.to_i
|
195
154
|
rescue => detail
|
196
155
|
self.fail "Could not get latest version: %s" % detail
|
197
156
|
end
|
198
157
|
end
|
158
|
+
|
199
159
|
case @is
|
200
160
|
when @latest:
|
201
161
|
return true
|
202
162
|
when :present:
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
self.debug "our version is %s and latest is %s" %
|
207
|
-
[@parent[:version], @latest]
|
208
|
-
end
|
163
|
+
# This will only happen on retarded packaging systems
|
164
|
+
# that can't query versions.
|
165
|
+
return true
|
209
166
|
else
|
210
167
|
self.debug "@is is %s, latest %s is %s" %
|
211
|
-
[@is, @parent.name, @latest]
|
168
|
+
[@is.inspect, @parent.name, @latest.inspect]
|
212
169
|
end
|
213
170
|
when :absent
|
214
171
|
if @is == :absent
|
@@ -222,37 +179,27 @@ module Puppet
|
|
222
179
|
return false
|
223
180
|
end
|
224
181
|
|
225
|
-
# This retrieves the current state
|
182
|
+
# This retrieves the current state. LAK: I think this method is unused.
|
226
183
|
def retrieve
|
227
|
-
@parent.retrieve
|
184
|
+
@is = @parent.retrieve
|
228
185
|
end
|
229
186
|
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
end
|
235
|
-
# If we're a normal value, then just pass to the parent method
|
236
|
-
if self.class.values.include?(value)
|
237
|
-
#self.info "setting %s" % value
|
238
|
-
super
|
187
|
+
# Provide a bit more information when logging upgrades.
|
188
|
+
def should_to_s
|
189
|
+
if @latest
|
190
|
+
@latest.to_s
|
239
191
|
else
|
240
|
-
|
241
|
-
@parent.update
|
192
|
+
super
|
242
193
|
end
|
243
194
|
end
|
244
195
|
end
|
245
196
|
|
246
|
-
# Packages are complicated because each package format has completely
|
247
|
-
# different commands.
|
248
|
-
attr_reader :pkgtype
|
249
|
-
|
250
197
|
newparam(:name) do
|
251
198
|
desc "The package name. This is the name that the packaging
|
252
199
|
system uses internally, which is sometimes (especially on Solaris)
|
253
200
|
a name that is basically useless to humans. If you want to
|
254
201
|
abstract package installation, then you can use aliases to provide
|
255
|
-
a common name to packages
|
202
|
+
a common name to packages::
|
256
203
|
|
257
204
|
# In the 'openssl' class
|
258
205
|
$ssl = $operationgsystem ? {
|
@@ -286,34 +233,10 @@ module Puppet
|
|
286
233
|
isnamevar
|
287
234
|
end
|
288
235
|
|
289
|
-
newparam(:type) do
|
290
|
-
desc "The package format. You will seldom need to specify this --
|
291
|
-
Puppet will discover the appropriate format for your platform."
|
292
|
-
|
293
|
-
defaultto { @parent.class.default }
|
294
|
-
|
295
|
-
|
296
|
-
validate do |value|
|
297
|
-
value = value[0] if value.is_a? Array
|
298
|
-
unless @parent.class.pkgtype(value)
|
299
|
-
raise ArgumentError, "Invalid package type '%s'" % value
|
300
|
-
end
|
301
|
-
end
|
302
|
-
|
303
|
-
|
304
|
-
munge do |type|
|
305
|
-
type = type[0] if type.is_a? Array
|
306
|
-
if type.is_a? String
|
307
|
-
type = type.intern
|
308
|
-
end
|
309
|
-
@parent.type2module(type)
|
310
|
-
type
|
311
|
-
end
|
312
|
-
|
313
|
-
end
|
314
|
-
|
315
236
|
newparam(:source) do
|
316
|
-
desc "
|
237
|
+
desc "Where to find the actual package. This must be a local file
|
238
|
+
(or on a network file system) or a URL that your specific
|
239
|
+
packaging type understands; Puppet will not retrieve files for you."
|
317
240
|
|
318
241
|
validate do |value|
|
319
242
|
unless value =~ /^#{File::SEPARATOR}/ or value =~ /\w+:\/\//
|
@@ -330,6 +253,17 @@ module Puppet
|
|
330
253
|
desc "A read-only parameter set by the package."
|
331
254
|
end
|
332
255
|
|
256
|
+
newparam(:type) do
|
257
|
+
desc "Deprecated form of ``provider``."
|
258
|
+
|
259
|
+
munge do |value|
|
260
|
+
warning "'type' is deprecated; use 'provider' instead"
|
261
|
+
@parent[:provider] = value
|
262
|
+
|
263
|
+
@parent[:provider]
|
264
|
+
end
|
265
|
+
end
|
266
|
+
|
333
267
|
newparam(:adminfile) do
|
334
268
|
desc "A file containing package defaults for installing packages.
|
335
269
|
This is currently only used on Solaris. The value will be
|
@@ -345,24 +279,15 @@ module Puppet
|
|
345
279
|
generally be a fully qualified path."
|
346
280
|
end
|
347
281
|
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
the package of that version to be installed. It just depends
|
356
|
-
on the features of the packaging system."
|
357
|
-
|
358
|
-
# validate do |value|
|
359
|
-
# unless @parent.respond_to?(:versionable?) and @parent.versionable?
|
360
|
-
# raise Puppet::Error,
|
361
|
-
# "Package type %s does not support specifying versions." %
|
362
|
-
# @parent.pkgtype
|
363
|
-
# end
|
364
|
-
# end
|
282
|
+
newparam(:configfiles) do
|
283
|
+
desc "Whether configfiles should be kept or replaced. Most packages
|
284
|
+
types do not support this parameter."
|
285
|
+
|
286
|
+
defaultto :keep
|
287
|
+
|
288
|
+
newvalues(:keep, :replace)
|
365
289
|
end
|
290
|
+
|
366
291
|
newparam(:category) do
|
367
292
|
desc "A read-only parameter set by the package."
|
368
293
|
end
|
@@ -406,9 +331,6 @@ module Puppet
|
|
406
331
|
|
407
332
|
@allowedmethods = [:types]
|
408
333
|
|
409
|
-
@default = nil
|
410
|
-
@platform = nil
|
411
|
-
|
412
334
|
class << self
|
413
335
|
attr_reader :listed
|
414
336
|
end
|
@@ -418,53 +340,10 @@ module Puppet
|
|
418
340
|
super
|
419
341
|
end
|
420
342
|
|
421
|
-
# Cache and return the default package type for our current
|
422
|
-
# platform.
|
423
|
-
def self.default
|
424
|
-
if @default.nil?
|
425
|
-
self.init
|
426
|
-
end
|
427
|
-
|
428
|
-
return @default
|
429
|
-
end
|
430
|
-
|
431
|
-
# Figure out what the default package type is for the platform
|
432
|
-
# on which we're running.
|
433
|
-
def self.init
|
434
|
-
unless @platform = Facter["operatingsystem"].value.downcase
|
435
|
-
raise Puppet::DevError.new(
|
436
|
-
"Must know platform for package management"
|
437
|
-
)
|
438
|
-
end
|
439
|
-
case @platform
|
440
|
-
when "solaris": @default = :sun
|
441
|
-
when "gentoo":
|
442
|
-
Puppet.notice "No support for gentoo yet"
|
443
|
-
@default = nil
|
444
|
-
when "debian": @default = :apt
|
445
|
-
when "centos": @default = :rpm
|
446
|
-
when "fedora": @default = :yum
|
447
|
-
when "redhat": @default = :rpm
|
448
|
-
when "freebsd": @default = :ports
|
449
|
-
when "openbsd": @default = :openbsd
|
450
|
-
when "darwin": @default = :apple
|
451
|
-
else
|
452
|
-
if Facter["kernel"] == "Linux"
|
453
|
-
Puppet.warning "Defaulting to RPM for %s" %
|
454
|
-
Facter["operatingsystem"].value
|
455
|
-
@default = :rpm
|
456
|
-
else
|
457
|
-
Puppet.warning "No default package system for %s" %
|
458
|
-
Facter["operatingsystem"].value
|
459
|
-
@default = nil
|
460
|
-
end
|
461
|
-
end
|
462
|
-
end
|
463
|
-
|
464
343
|
# Create a new package object from listed information
|
465
344
|
def self.installedpkg(hash)
|
466
|
-
unless hash.include? :
|
467
|
-
raise Puppet::DevError, "Got installed package with no
|
345
|
+
unless hash.include? :provider
|
346
|
+
raise Puppet::DevError, "Got installed package with no provider"
|
468
347
|
end
|
469
348
|
# this is from code, so we don't have to do as much checking
|
470
349
|
name = hash[:name]
|
@@ -478,7 +357,15 @@ module Puppet
|
|
478
357
|
|
479
358
|
# List all package instances
|
480
359
|
def self.list
|
481
|
-
|
360
|
+
# XXX For now, just list the default provider, but we should list
|
361
|
+
# all suitables or something, but we need to not list a parent
|
362
|
+
# type if a child type gets listed.
|
363
|
+
#suitableprovider.each do |provider|
|
364
|
+
# p provider.name
|
365
|
+
# provider.list
|
366
|
+
#end
|
367
|
+
|
368
|
+
defaultprovider.list
|
482
369
|
|
483
370
|
self.collect do |pkg|
|
484
371
|
pkg
|
@@ -490,7 +377,7 @@ module Puppet
|
|
490
377
|
def self.markabsent(pkgtype, packages)
|
491
378
|
# Mark any packages we didn't find as absent
|
492
379
|
self.each do |pkg|
|
493
|
-
next unless packages[:
|
380
|
+
next unless packages[:provider] == pkgtype
|
494
381
|
unless packages.include? pkg
|
495
382
|
pkg.is = [:ensure, :absent]
|
496
383
|
end
|
@@ -499,13 +386,15 @@ module Puppet
|
|
499
386
|
|
500
387
|
# This only exists for testing.
|
501
388
|
def clear
|
502
|
-
@
|
389
|
+
if obj = @parameters[:ensure]
|
390
|
+
obj.latest = nil
|
391
|
+
end
|
503
392
|
end
|
504
393
|
|
505
394
|
# The 'query' method returns a hash of info if the package
|
506
395
|
# exists and returns nil if it does not.
|
507
396
|
def exists?
|
508
|
-
|
397
|
+
@provider.query
|
509
398
|
end
|
510
399
|
|
511
400
|
# okay, there are two ways that a package could be created...
|
@@ -515,35 +404,29 @@ module Puppet
|
|
515
404
|
def initialize(hash)
|
516
405
|
self.initvars
|
517
406
|
type = nil
|
518
|
-
[:
|
407
|
+
[:provider, "use"].each { |label|
|
519
408
|
if hash.include?(label)
|
520
409
|
type = hash[label]
|
521
410
|
hash.delete(label)
|
522
411
|
end
|
523
412
|
}
|
524
413
|
if type
|
525
|
-
self[:
|
414
|
+
self[:provider] = type
|
526
415
|
else
|
527
|
-
self.setdefaults(:
|
416
|
+
self.setdefaults(:provider)
|
528
417
|
end
|
529
418
|
|
530
419
|
super
|
531
420
|
|
532
|
-
|
533
|
-
|
534
|
-
# self[:ensure] = true
|
535
|
-
#end
|
536
|
-
|
537
|
-
unless @parameters.include?(:type)
|
538
|
-
self[:type] = self.class.default
|
421
|
+
unless @parameters.include?(:provider)
|
422
|
+
raise Puppet::DevError, "No package type set"
|
539
423
|
end
|
540
424
|
end
|
541
425
|
|
542
426
|
def retrieve
|
543
427
|
# If the package is installed, then retrieve all of the information
|
544
428
|
# about it and set it appropriately.
|
545
|
-
|
546
|
-
if hash = self.query
|
429
|
+
if hash = @provider.query
|
547
430
|
if hash == :listed # Mmmm, hackalicious
|
548
431
|
return
|
549
432
|
end
|
@@ -555,37 +438,26 @@ module Puppet
|
|
555
438
|
|
556
439
|
setparams(hash)
|
557
440
|
else
|
558
|
-
# Else just mark all of the
|
559
|
-
self.class.
|
441
|
+
# Else just mark all of the properties absent.
|
442
|
+
self.class.validproperties.each { |name|
|
560
443
|
self.is = [name, :absent]
|
561
444
|
}
|
562
445
|
end
|
563
446
|
end
|
564
447
|
|
565
448
|
# Set all of the params' "is" value. Most are parameters, but some
|
566
|
-
# are
|
449
|
+
# are properties.
|
567
450
|
def setparams(hash)
|
568
451
|
# Everything on packages is a parameter except :ensure
|
569
452
|
hash.each { |param, value|
|
570
|
-
if self.class.attrtype(param) == :
|
453
|
+
if self.class.attrtype(param) == :property
|
571
454
|
self.is = [param, value]
|
572
455
|
else
|
573
456
|
self[param] = value
|
574
457
|
end
|
575
458
|
}
|
576
459
|
end
|
577
|
-
|
578
|
-
# Extend the package with the appropriate package type.
|
579
|
-
def type2module(typename)
|
580
|
-
if type = self.class.pkgtype(typename)
|
581
|
-
self.extend(type)
|
582
|
-
|
583
|
-
return type
|
584
|
-
else
|
585
|
-
self.fail "Invalid package type %s" % typename
|
586
|
-
end
|
587
|
-
end
|
588
460
|
end # Puppet.type(:package)
|
589
461
|
end
|
590
462
|
|
591
|
-
# $Id: package.rb
|
463
|
+
# $Id: package.rb 2430 2007-04-30 15:19:23Z luke $
|