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
@@ -1,144 +0,0 @@
|
|
1
|
-
require 'etc'
|
2
|
-
require 'facter'
|
3
|
-
require 'puppet/type/parsedtype'
|
4
|
-
require 'puppet/type/state'
|
5
|
-
|
6
|
-
module Puppet
|
7
|
-
newtype(:host, Puppet::Type::ParsedType) do
|
8
|
-
|
9
|
-
newstate(:ip) do
|
10
|
-
desc "The host's IP address."
|
11
|
-
end
|
12
|
-
|
13
|
-
newstate(:alias) do
|
14
|
-
desc "Any alias the host might have. Multiple values must be
|
15
|
-
specified as an array. Note that this state has the same name
|
16
|
-
as one of the metaparams; using this state to set aliases will
|
17
|
-
make those aliases available in your Puppet scripts and also on
|
18
|
-
disk."
|
19
|
-
|
20
|
-
# We have to override the feeding mechanism; it might be nil or
|
21
|
-
# white-space separated
|
22
|
-
def is=(value)
|
23
|
-
# If it's just whitespace, ignore it
|
24
|
-
case value
|
25
|
-
when /^\s+$/
|
26
|
-
@is = nil
|
27
|
-
when String
|
28
|
-
@is = value.split(/\s+/)
|
29
|
-
else
|
30
|
-
@is = value
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
# We actually want to return the whole array here, not just the first
|
35
|
-
# value.
|
36
|
-
def should
|
37
|
-
if defined? @should
|
38
|
-
if @should == [:absent]
|
39
|
-
return :absent
|
40
|
-
else
|
41
|
-
return @should
|
42
|
-
end
|
43
|
-
else
|
44
|
-
return []
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
def should_to_s
|
49
|
-
@should.join(" ")
|
50
|
-
end
|
51
|
-
|
52
|
-
validate do |value|
|
53
|
-
if value =~ /\s/
|
54
|
-
raise Puppet::Error, "Aliases cannot include whitespace"
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
munge do |value|
|
59
|
-
if value == :absent or value == "absent"
|
60
|
-
:absent
|
61
|
-
else
|
62
|
-
# Add the :alias metaparam in addition to the state
|
63
|
-
@parent.newmetaparam(@parent.class.metaparamclass(:alias), value)
|
64
|
-
value
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
newparam(:name) do
|
70
|
-
desc "The host name."
|
71
|
-
|
72
|
-
isnamevar
|
73
|
-
end
|
74
|
-
|
75
|
-
@doc = "Installs and manages host entries. For most systems, these
|
76
|
-
entries will just be in /etc/hosts, but some systems (notably OS X)
|
77
|
-
will have different solutions."
|
78
|
-
|
79
|
-
@instances = []
|
80
|
-
|
81
|
-
@path = "/etc/hosts"
|
82
|
-
@fields = [:ip, :name, :alias]
|
83
|
-
|
84
|
-
@filetype = Puppet::FileType.filetype(:flat)
|
85
|
-
|
86
|
-
# Parse a host file
|
87
|
-
#
|
88
|
-
# This method also stores existing comments, and it stores all host
|
89
|
-
# jobs in order, mostly so that comments are retained in the order
|
90
|
-
# they were written and in proximity to the same jobs.
|
91
|
-
def self.parse(text)
|
92
|
-
count = 0
|
93
|
-
hash = {}
|
94
|
-
text.chomp.split("\n").each { |line|
|
95
|
-
case line
|
96
|
-
when /^#/, /^\s*$/:
|
97
|
-
# add comments and blank lines to the list as they are
|
98
|
-
@instances << line
|
99
|
-
else
|
100
|
-
if line.sub!(/^(\S+)\s+(\S+)\s*/, '')
|
101
|
-
hash[:ip] = $1
|
102
|
-
hash[:name] = $2
|
103
|
-
|
104
|
-
unless line == ""
|
105
|
-
line.sub!(/\s*/, '')
|
106
|
-
line.sub!(/^([^#]+)\s*/) do |value|
|
107
|
-
aliases = $1
|
108
|
-
unless aliases =~ /^\s*$/
|
109
|
-
hash[:alias] = aliases
|
110
|
-
end
|
111
|
-
|
112
|
-
""
|
113
|
-
end
|
114
|
-
end
|
115
|
-
else
|
116
|
-
raise Puppet::Error, "Could not match '%s'" % line
|
117
|
-
end
|
118
|
-
|
119
|
-
if hash[:alias] == ""
|
120
|
-
hash.delete(:alias)
|
121
|
-
end
|
122
|
-
|
123
|
-
hash2obj(hash)
|
124
|
-
|
125
|
-
hash.clear
|
126
|
-
count += 1
|
127
|
-
end
|
128
|
-
}
|
129
|
-
end
|
130
|
-
|
131
|
-
# Convert the current object into a host-style string.
|
132
|
-
def to_record
|
133
|
-
str = "%s\t%s" % [self.state(:ip).value, self[:name]]
|
134
|
-
|
135
|
-
if value = self.value(:alias)
|
136
|
-
str += "\t%s" % value.join("\t")
|
137
|
-
end
|
138
|
-
|
139
|
-
str
|
140
|
-
end
|
141
|
-
end
|
142
|
-
end
|
143
|
-
|
144
|
-
# $Id: host.rb 1124 2006-04-20 07:00:10Z luke $
|
@@ -1,271 +0,0 @@
|
|
1
|
-
require 'etc'
|
2
|
-
require 'facter'
|
3
|
-
require 'puppet/type/parsedtype'
|
4
|
-
require 'puppet/type/state'
|
5
|
-
|
6
|
-
module Puppet
|
7
|
-
newtype(:mount, Puppet::Type::ParsedType) do
|
8
|
-
ensurable do
|
9
|
-
desc "Control what to do with this mount. If the value is
|
10
|
-
``present``, the mount is entered into the mount table,
|
11
|
-
but not mounted, if it is ``absent``, the entry is removed
|
12
|
-
from the mount table and the filesystem is unmounted if
|
13
|
-
currently mounted, if it is ``mounted``, the filesystem
|
14
|
-
is entered into the mount table and mounted."
|
15
|
-
|
16
|
-
newvalue(:present) do
|
17
|
-
@parent.create()
|
18
|
-
end
|
19
|
-
|
20
|
-
newvalue(:absent) do
|
21
|
-
@parent.destroy()
|
22
|
-
|
23
|
-
if @parent.mounted?
|
24
|
-
@parent.unmount
|
25
|
-
end
|
26
|
-
|
27
|
-
:mount_removed
|
28
|
-
end
|
29
|
-
|
30
|
-
newvalue(:mounted) do
|
31
|
-
if @is == :absent
|
32
|
-
set_present
|
33
|
-
end
|
34
|
-
|
35
|
-
@parent.mount
|
36
|
-
|
37
|
-
:mount_mounted
|
38
|
-
end
|
39
|
-
|
40
|
-
def retrieve
|
41
|
-
if @parent.mounted?
|
42
|
-
@is = :mounted
|
43
|
-
else
|
44
|
-
val = super()
|
45
|
-
@is = val
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
newstate(:device) do
|
51
|
-
desc "The device providing the mount. This can be whatever
|
52
|
-
device is supporting by the mount, including network
|
53
|
-
devices or devices specified by UUID rather than device
|
54
|
-
path, depending on the operating system."
|
55
|
-
end
|
56
|
-
|
57
|
-
# Solaris specifies two devices, not just one.
|
58
|
-
newstate(:blockdevice) do
|
59
|
-
desc "The the device to fsck. This is state is only valid
|
60
|
-
on Solaris, and in most cases will default to the correct
|
61
|
-
value."
|
62
|
-
|
63
|
-
# Default to the device but with "dsk" replaced with "rdsk".
|
64
|
-
defaultto do
|
65
|
-
if Facter["operatingsystem"].value == "Solaris"
|
66
|
-
device = @parent.value(:device)
|
67
|
-
if device =~ %r{/dsk/}
|
68
|
-
device.sub(%r{/dsk/}, "/rdsk/")
|
69
|
-
else
|
70
|
-
nil
|
71
|
-
end
|
72
|
-
else
|
73
|
-
nil
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
newstate(:fstype) do
|
79
|
-
desc "The mount type. Valid values depend on the
|
80
|
-
operating system."
|
81
|
-
end
|
82
|
-
|
83
|
-
newstate(:options) do
|
84
|
-
desc "Mount options for the mounts, as they would
|
85
|
-
appear in the fstab."
|
86
|
-
end
|
87
|
-
|
88
|
-
newstate(:pass) do
|
89
|
-
desc "The pass in which the mount is checked."
|
90
|
-
end
|
91
|
-
|
92
|
-
newstate(:atboot) do
|
93
|
-
desc "Whether to mount the mount at boot. Not all platforms
|
94
|
-
support this."
|
95
|
-
end
|
96
|
-
|
97
|
-
newstate(:dump) do
|
98
|
-
desc "Whether to dump the mount. Not all platforms
|
99
|
-
support this."
|
100
|
-
end
|
101
|
-
|
102
|
-
newparam(:path) do
|
103
|
-
desc "The mount path for the mount."
|
104
|
-
|
105
|
-
isnamevar
|
106
|
-
end
|
107
|
-
|
108
|
-
@doc = "Manages mounted mounts, including putting mount
|
109
|
-
information into the mount table. The actual behavior depends
|
110
|
-
on the value of the 'ensure' parameter."
|
111
|
-
|
112
|
-
def self.init
|
113
|
-
@platform = Facter["operatingsystem"].value
|
114
|
-
case @platform
|
115
|
-
when "Solaris":
|
116
|
-
@path = "/etc/vfstab"
|
117
|
-
@fields = [:device, :blockdevice, :path, :fstype, :pass, :atboot,
|
118
|
-
:options]
|
119
|
-
@defaults = [ nil ] * @fields.size
|
120
|
-
when "Darwin":
|
121
|
-
@filetype = Puppet::FileType.filetype(:netinfo)
|
122
|
-
@filetype.format = "fstab"
|
123
|
-
@path = "mounts"
|
124
|
-
@fields = [:device, :path, :fstype, :options, :dump, :pass]
|
125
|
-
@defaults = [ nil ] * @fields.size
|
126
|
-
|
127
|
-
# How to map the dumped table to what we want
|
128
|
-
@fieldnames = {
|
129
|
-
"name" => :device,
|
130
|
-
"dir" => :path,
|
131
|
-
"dump_freq" => :dump,
|
132
|
-
"passno" => :pass,
|
133
|
-
"vfstype" => :fstype,
|
134
|
-
"opts" => :options
|
135
|
-
}
|
136
|
-
else
|
137
|
-
@path = "/etc/fstab"
|
138
|
-
@fields = [:device, :path, :fstype, :options, :dump, :pass]
|
139
|
-
@defaults = [ nil ] * 4 + [ "0", "2" ]
|
140
|
-
end
|
141
|
-
|
142
|
-
# Allow Darwin to override the default filetype
|
143
|
-
unless defined? @filetype
|
144
|
-
@filetype = Puppet::FileType.filetype(:flat)
|
145
|
-
end
|
146
|
-
end
|
147
|
-
|
148
|
-
init
|
149
|
-
|
150
|
-
def self.clear
|
151
|
-
init
|
152
|
-
super
|
153
|
-
end
|
154
|
-
|
155
|
-
# Parse a mount tab.
|
156
|
-
#
|
157
|
-
# This method also stores existing comments, and it stores all
|
158
|
-
# mounts in order, mostly so that comments are retained in the
|
159
|
-
# order they were written and in proximity to the same fses.
|
160
|
-
def self.parse(text)
|
161
|
-
# provide a single exception for darwin & netinfo
|
162
|
-
if @filetype == Puppet::FileType.filetype(:netinfo)
|
163
|
-
parseninfo(text)
|
164
|
-
return
|
165
|
-
end
|
166
|
-
count = 0
|
167
|
-
hash = {}
|
168
|
-
text.chomp.split("\n").each { |line|
|
169
|
-
case line
|
170
|
-
when /^#/, /^\s*$/:
|
171
|
-
# add comments and blank lines to the list as they are
|
172
|
-
comment(line)
|
173
|
-
else
|
174
|
-
values = line.split(/\s+/)
|
175
|
-
if @fields.length < values.length
|
176
|
-
raise Puppet::Error, "Could not parse line %s" % line
|
177
|
-
end
|
178
|
-
|
179
|
-
values = @defaults.zip(values).collect { |d, v| v || d }
|
180
|
-
unless @fields.length == values.length
|
181
|
-
raise Puppet::Error, "Could not parse line %s" % line
|
182
|
-
end
|
183
|
-
|
184
|
-
@fields.zip(values).each do |field, value|
|
185
|
-
hash[field] = value
|
186
|
-
end
|
187
|
-
|
188
|
-
hash2obj(hash)
|
189
|
-
|
190
|
-
hash.clear
|
191
|
-
count += 1
|
192
|
-
end
|
193
|
-
}
|
194
|
-
end
|
195
|
-
|
196
|
-
# Parse a netinfo table.
|
197
|
-
def self.parseninfo(text)
|
198
|
-
array = @fileobj.to_array(text)
|
199
|
-
|
200
|
-
hash = {}
|
201
|
-
array.each do |record|
|
202
|
-
@fieldnames.each do |name, field|
|
203
|
-
if value = record[name]
|
204
|
-
if field == :options
|
205
|
-
hash[field] = value.join(",")
|
206
|
-
else
|
207
|
-
hash[field] = value[0]
|
208
|
-
end
|
209
|
-
else
|
210
|
-
raise ArgumentError, "Field %s was not provided" % [name]
|
211
|
-
end
|
212
|
-
end
|
213
|
-
|
214
|
-
|
215
|
-
hash2obj(hash)
|
216
|
-
hash.clear
|
217
|
-
end
|
218
|
-
end
|
219
|
-
|
220
|
-
# This only works when the mount point is synced to the fstab.
|
221
|
-
def mount
|
222
|
-
output = %x{mount #{self[:path]} 2>&1}
|
223
|
-
|
224
|
-
unless $? == 0
|
225
|
-
raise Puppet::Error, "Could not mount %s: %s" % [self[:path], output]
|
226
|
-
end
|
227
|
-
end
|
228
|
-
|
229
|
-
# This only works when the mount point is synced to the fstab.
|
230
|
-
def unmount
|
231
|
-
output = %x{umount #{self[:path]}}
|
232
|
-
|
233
|
-
unless $? == 0
|
234
|
-
raise Puppet::Error, "Could not mount %s" % self[:path]
|
235
|
-
end
|
236
|
-
end
|
237
|
-
|
238
|
-
# Is the mount currently mounted?
|
239
|
-
def mounted?
|
240
|
-
platform = Facter["operatingsystem"].value
|
241
|
-
df = "df"
|
242
|
-
case Facter["operatingsystem"].value
|
243
|
-
# Solaris's df prints in a very weird format
|
244
|
-
when "Solaris": df = "df -k"
|
245
|
-
end
|
246
|
-
%x{#{df}}.split("\n").find do |line|
|
247
|
-
fs = line.split(/\s+/)[-1]
|
248
|
-
if platform == "Darwin"
|
249
|
-
fs == "/private/var/automount" + self[:path] or
|
250
|
-
fs == self[:path]
|
251
|
-
else
|
252
|
-
fs == self[:path]
|
253
|
-
end
|
254
|
-
end
|
255
|
-
end
|
256
|
-
|
257
|
-
# Convert the current object into an fstab-style string.
|
258
|
-
def to_record
|
259
|
-
self.class.fields.collect do |field|
|
260
|
-
if value = self.value(field)
|
261
|
-
value
|
262
|
-
else
|
263
|
-
raise Puppet::Error,
|
264
|
-
"Could not retrieve value for %s" % field
|
265
|
-
end
|
266
|
-
end.join("\t")
|
267
|
-
end
|
268
|
-
end
|
269
|
-
end
|
270
|
-
|
271
|
-
# $Id: mount.rb 1380 2006-07-10 23:13:06Z lutter $
|
@@ -1,261 +0,0 @@
|
|
1
|
-
require 'etc'
|
2
|
-
require 'facter'
|
3
|
-
require 'puppet/type/parsedtype'
|
4
|
-
require 'puppet/type/state'
|
5
|
-
|
6
|
-
module Puppet
|
7
|
-
newtype(:port, Puppet::Type::ParsedType) do
|
8
|
-
newstate(:protocols) do
|
9
|
-
desc "The protocols the port uses. Valid values are *udp* and *tcp*.
|
10
|
-
Most services have both protocols, but not all. If you want
|
11
|
-
both protocols, you must specify that; Puppet replaces the
|
12
|
-
current values, it does not merge with them. If you specify
|
13
|
-
multiple protocols they must be as an array."
|
14
|
-
|
15
|
-
def is=(value)
|
16
|
-
case value
|
17
|
-
when String
|
18
|
-
@is = value.split(/\s+/)
|
19
|
-
else
|
20
|
-
@is = value
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def is
|
25
|
-
@is
|
26
|
-
end
|
27
|
-
|
28
|
-
# We actually want to return the whole array here, not just the first
|
29
|
-
# value.
|
30
|
-
def should
|
31
|
-
if defined? @should
|
32
|
-
if @should[0] == :absent
|
33
|
-
return :absent
|
34
|
-
else
|
35
|
-
return @should
|
36
|
-
end
|
37
|
-
else
|
38
|
-
return nil
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
validate do |value|
|
43
|
-
valids = ["udp", "tcp", "ddp", :absent]
|
44
|
-
unless valids.include? value
|
45
|
-
raise Puppet::Error,
|
46
|
-
"Protocols can be either 'udp' or 'tcp', not %s" % value
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
newstate(:number) do
|
52
|
-
desc "The port number."
|
53
|
-
end
|
54
|
-
|
55
|
-
newstate(:description) do
|
56
|
-
desc "The port description."
|
57
|
-
isoptional
|
58
|
-
end
|
59
|
-
|
60
|
-
newstate(:alias) do
|
61
|
-
desc "Any aliases the port might have. Multiple values must be
|
62
|
-
specified as an array. Note that this state has the same name as
|
63
|
-
one of the metaparams; using this state to set aliases will make
|
64
|
-
those aliases available in your Puppet scripts and also on disk."
|
65
|
-
|
66
|
-
isoptional
|
67
|
-
|
68
|
-
# We have to override the feeding mechanism; it might be nil or
|
69
|
-
# white-space separated
|
70
|
-
def is=(value)
|
71
|
-
# If it's just whitespace, ignore it
|
72
|
-
case value
|
73
|
-
when /^\s+$/
|
74
|
-
@is = nil
|
75
|
-
when String
|
76
|
-
@is = value.split(/\s+/)
|
77
|
-
when Symbol
|
78
|
-
@is = value
|
79
|
-
else
|
80
|
-
raise Puppet::DevError, "Invalid value %s" % value.inspect
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
# We actually want to return the whole array here, not just the first
|
85
|
-
# value.
|
86
|
-
def should
|
87
|
-
if defined? @should
|
88
|
-
if @should[0] == :absent
|
89
|
-
return :absent
|
90
|
-
else
|
91
|
-
return @should
|
92
|
-
end
|
93
|
-
else
|
94
|
-
return nil
|
95
|
-
end
|
96
|
-
end
|
97
|
-
|
98
|
-
validate do |value|
|
99
|
-
if value.is_a? String and value =~ /\s/
|
100
|
-
raise Puppet::Error,
|
101
|
-
"Aliases cannot have whitespace in them: %s" %
|
102
|
-
value.inspect
|
103
|
-
end
|
104
|
-
end
|
105
|
-
|
106
|
-
munge do |value|
|
107
|
-
unless value == "absent" or value == :absent
|
108
|
-
# Add the :alias metaparam in addition to the state
|
109
|
-
@parent.newmetaparam(
|
110
|
-
@parent.class.metaparamclass(:alias), value
|
111
|
-
)
|
112
|
-
end
|
113
|
-
value
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
newparam(:name) do
|
118
|
-
desc "The port name."
|
119
|
-
|
120
|
-
isnamevar
|
121
|
-
end
|
122
|
-
|
123
|
-
@doc = "Installs and manages port entries. For most systems, these
|
124
|
-
entries will just be in /etc/services, but some systems (notably OS X)
|
125
|
-
will have different solutions."
|
126
|
-
|
127
|
-
@path = "/etc/services"
|
128
|
-
@fields = [:ip, :name, :alias]
|
129
|
-
|
130
|
-
@filetype = Puppet::FileType.filetype(:flat)
|
131
|
-
|
132
|
-
# Parse a services file
|
133
|
-
#
|
134
|
-
# This method also stores existing comments, and it stores all port
|
135
|
-
# info in order, mostly so that comments are retained in the order
|
136
|
-
# they were written and in proximity to the same ports.
|
137
|
-
def self.parse(text)
|
138
|
-
count = 0
|
139
|
-
hash = {}
|
140
|
-
text.chomp.split("\n").each { |line|
|
141
|
-
hash.clear
|
142
|
-
case line
|
143
|
-
when /^#/, /^\s*$/:
|
144
|
-
# add comments and blank lines to the list as they are
|
145
|
-
@instances << line
|
146
|
-
else
|
147
|
-
if line.sub!(/^(\S+)\s+(\d+)\/(\w+)\s*/, '')
|
148
|
-
hash[:name] = $1
|
149
|
-
hash[:number] = $2
|
150
|
-
hash[:protocols] = $3
|
151
|
-
|
152
|
-
unless line == ""
|
153
|
-
line.sub!(/^([^#]+)\s*/) do |value|
|
154
|
-
aliases = $1
|
155
|
-
|
156
|
-
# Remove any trailing whitespace
|
157
|
-
aliases.strip!
|
158
|
-
unless aliases =~ /^\s*$/
|
159
|
-
hash[:alias] = aliases
|
160
|
-
end
|
161
|
-
|
162
|
-
""
|
163
|
-
end
|
164
|
-
|
165
|
-
line.sub!(/^\s*#\s*(.+)$/) do |value|
|
166
|
-
desc = $1
|
167
|
-
unless desc =~ /^\s*$/
|
168
|
-
hash[:description] = desc.sub(/\s*$/, '')
|
169
|
-
end
|
170
|
-
|
171
|
-
""
|
172
|
-
end
|
173
|
-
end
|
174
|
-
else
|
175
|
-
if line =~ /^\s+\d+/ and
|
176
|
-
Facter["operatingsystem"].value == "Darwin"
|
177
|
-
#Puppet.notice "Skipping wonky OS X port entry %s" %
|
178
|
-
# line.inspect
|
179
|
-
next
|
180
|
-
end
|
181
|
-
raise Puppet::Error, "Could not match '%s'" % line
|
182
|
-
end
|
183
|
-
|
184
|
-
# If there's already a service with this name, then check
|
185
|
-
# to see if the only difference is the proto; if so, just
|
186
|
-
# add our proto and walk away
|
187
|
-
if obj = self[hash[:name]]
|
188
|
-
if obj.portmerge(hash)
|
189
|
-
next
|
190
|
-
end
|
191
|
-
end
|
192
|
-
|
193
|
-
hash2obj(hash)
|
194
|
-
|
195
|
-
count += 1
|
196
|
-
end
|
197
|
-
}
|
198
|
-
end
|
199
|
-
|
200
|
-
def portmerge(hash)
|
201
|
-
unless @states.include?(:protocols)
|
202
|
-
return false
|
203
|
-
end
|
204
|
-
|
205
|
-
# This method is only called from parsing, so we only worry
|
206
|
-
# about 'is' values.
|
207
|
-
proto = self.state(:protocols).is
|
208
|
-
|
209
|
-
if proto.nil? or proto == :absent
|
210
|
-
# We are an unitialized object; we've got 'should'
|
211
|
-
# values but no 'is' values
|
212
|
-
return false
|
213
|
-
end
|
214
|
-
|
215
|
-
# If this is happening, our object exists
|
216
|
-
self.is = [:ensure, :present]
|
217
|
-
|
218
|
-
if hash[:protocols]
|
219
|
-
# The protocol can be a symbol, so...
|
220
|
-
if proto.is_a?(Symbol)
|
221
|
-
proto = []
|
222
|
-
end
|
223
|
-
# Check to see if it already includes our proto
|
224
|
-
unless proto.include?(hash[:protocols])
|
225
|
-
# We are missing their proto
|
226
|
-
proto << hash[:protocols]
|
227
|
-
@states[:protocols].is = proto
|
228
|
-
end
|
229
|
-
end
|
230
|
-
|
231
|
-
if hash.include?(:description) and ! @states.include?(:description)
|
232
|
-
self.is = [:description, hash[:description]]
|
233
|
-
end
|
234
|
-
|
235
|
-
return true
|
236
|
-
end
|
237
|
-
|
238
|
-
# Convert the current object into one or more services entry.
|
239
|
-
def to_record
|
240
|
-
self.state(:protocols).value.collect { |proto|
|
241
|
-
str = "%s\t%s/%s" % [self[:name], self.value(:number),
|
242
|
-
proto]
|
243
|
-
|
244
|
-
if value = self.value(:alias) and value != :absent
|
245
|
-
str += "\t%s" % value.join(" ")
|
246
|
-
else
|
247
|
-
str += "\t"
|
248
|
-
end
|
249
|
-
|
250
|
-
if value = self.value(:description) and value != :absent
|
251
|
-
str += "\t# %s" % value
|
252
|
-
else
|
253
|
-
str += "\t"
|
254
|
-
end
|
255
|
-
str
|
256
|
-
}.join("\n")
|
257
|
-
end
|
258
|
-
end
|
259
|
-
end
|
260
|
-
|
261
|
-
# $Id: port.rb 1156 2006-05-01 01:07:47Z luke $
|