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
@@ -3,9 +3,14 @@
|
|
3
3
|
# This state never actually modifies the system, it only notices when the system
|
4
4
|
# changes on its own.
|
5
5
|
module Puppet
|
6
|
-
Puppet.type(:file).
|
7
|
-
desc "How to check whether a file has changed.
|
8
|
-
|
6
|
+
Puppet.type(:file).newproperty(:checksum) do
|
7
|
+
desc "How to check whether a file has changed. This state is used internally
|
8
|
+
for file copying, but it can also be used to monitor files somewhat
|
9
|
+
like Tripwire without managing the file contents in any way. You can
|
10
|
+
specify that a file's checksum should be monitored and then subscribe to
|
11
|
+
the file from another object and receive events to signify
|
12
|
+
checksum changes, for instance."
|
13
|
+
|
9
14
|
@event = :file_changed
|
10
15
|
|
11
16
|
@unmanaged = true
|
@@ -24,6 +29,8 @@ module Puppet
|
|
24
29
|
|
25
30
|
str = @validtypes.join("|")
|
26
31
|
|
32
|
+
# This is here because Puppet sets this internally, using
|
33
|
+
# {md5}......
|
27
34
|
newvalue(/^\{#{str}\}/) do
|
28
35
|
handlesum()
|
29
36
|
end
|
@@ -33,50 +40,75 @@ module Puppet
|
|
33
40
|
:nochange
|
34
41
|
end
|
35
42
|
|
36
|
-
#
|
43
|
+
# If they pass us a sum type, behave normally, but if they pass
|
44
|
+
# us a sum type + sum, stick the sum in the cache.
|
37
45
|
munge do |value|
|
38
|
-
unless defined? @checktypes
|
39
|
-
@checktypes = []
|
40
|
-
end
|
41
|
-
|
42
46
|
if value =~ /^\{(\w+)\}(.+)$/
|
43
|
-
|
44
|
-
|
45
|
-
|
47
|
+
type = symbolize($1)
|
48
|
+
sum = $2
|
49
|
+
cache(type, sum)
|
50
|
+
return type
|
46
51
|
else
|
47
52
|
if FileTest.directory?(@parent[:path])
|
48
|
-
|
53
|
+
return :time
|
54
|
+
else
|
55
|
+
return symbolize(value)
|
49
56
|
end
|
50
|
-
value = super(value)
|
51
|
-
@checktypes << value
|
52
|
-
return getcachedsum()
|
53
57
|
end
|
54
58
|
end
|
55
59
|
|
56
|
-
|
57
|
-
|
60
|
+
# Store the checksum in the data cache, or retrieve it if only the
|
61
|
+
# sum type is provided.
|
62
|
+
def cache(type, sum = nil)
|
63
|
+
unless type
|
64
|
+
raise ArgumentError, "A type must be specified to cache a checksum"
|
65
|
+
end
|
66
|
+
type = symbolize(type)
|
67
|
+
unless state = @parent.cached(:checksums)
|
68
|
+
self.debug "Initializing checksum hash"
|
69
|
+
state = {}
|
70
|
+
@parent.cache(:checksums, state)
|
71
|
+
end
|
72
|
+
|
73
|
+
if sum
|
74
|
+
unless sum =~ /\{\w+\}/
|
75
|
+
sum = "{%s}%s" % [type, sum]
|
76
|
+
end
|
77
|
+
state[type] = sum
|
78
|
+
else
|
79
|
+
return state[type]
|
80
|
+
end
|
58
81
|
end
|
59
82
|
|
60
83
|
# Because source and content and whomever else need to set the checksum
|
61
84
|
# and do the updating, we provide a simple mechanism for doing so.
|
62
85
|
def checksum=(value)
|
63
86
|
@is = value
|
64
|
-
@should
|
87
|
+
munge(@should)
|
65
88
|
self.updatesum
|
66
89
|
end
|
67
90
|
|
91
|
+
def checktype
|
92
|
+
self.should || :md5
|
93
|
+
end
|
94
|
+
|
68
95
|
# Checksums need to invert how changes are printed.
|
69
96
|
def change_to_s
|
70
97
|
begin
|
71
98
|
if @is == :absent
|
72
99
|
return "defined '%s' as '%s'" %
|
73
|
-
[self.name, self.
|
100
|
+
[self.name, self.currentsum]
|
74
101
|
elsif self.should == :absent
|
75
102
|
return "undefined %s from '%s'" %
|
76
103
|
[self.name, self.is_to_s]
|
77
104
|
else
|
78
|
-
|
79
|
-
|
105
|
+
if defined? @cached and @cached
|
106
|
+
return "%s changed '%s' to '%s'" %
|
107
|
+
[self.name, @cached, self.is_to_s]
|
108
|
+
else
|
109
|
+
return "%s changed '%s' to '%s'" %
|
110
|
+
[self.name, self.currentsum, self.is_to_s]
|
111
|
+
end
|
80
112
|
end
|
81
113
|
rescue Puppet::Error, Puppet::DevError
|
82
114
|
raise
|
@@ -86,6 +118,11 @@ module Puppet
|
|
86
118
|
end
|
87
119
|
end
|
88
120
|
|
121
|
+
def currentsum
|
122
|
+
#"{%s}%s" % [self.should, cache(self.should)]
|
123
|
+
cache(checktype())
|
124
|
+
end
|
125
|
+
|
89
126
|
# Retrieve the cached sum
|
90
127
|
def getcachedsum
|
91
128
|
hash = nil
|
@@ -94,11 +131,7 @@ module Puppet
|
|
94
131
|
@parent.cache(:checksums, hash)
|
95
132
|
end
|
96
133
|
|
97
|
-
sumtype =
|
98
|
-
|
99
|
-
#unless state
|
100
|
-
# self.devfail "Did not get state back from Storage"
|
101
|
-
#end
|
134
|
+
sumtype = self.should
|
102
135
|
|
103
136
|
if hash.include?(sumtype)
|
104
137
|
#self.notice "Found checksum %s for %s" %
|
@@ -126,14 +159,10 @@ module Puppet
|
|
126
159
|
checktype = checktype.intern if checktype.is_a? String
|
127
160
|
case checktype
|
128
161
|
when :md5, :md5lite:
|
129
|
-
|
130
|
-
@parent.
|
131
|
-
@parent
|
132
|
-
|
133
|
-
@should = [nil]
|
134
|
-
@is = nil
|
135
|
-
#@parent.delete(self[:path])
|
136
|
-
return
|
162
|
+
if ! FileTest.file?(@parent[:path])
|
163
|
+
@parent.debug "Cannot MD5 sum %s; using mtime" %
|
164
|
+
[@parent.stat.ftype]
|
165
|
+
sum = @parent.stat.mtime.to_s
|
137
166
|
else
|
138
167
|
begin
|
139
168
|
File.open(@parent[:path]) { |file|
|
@@ -158,7 +187,7 @@ module Puppet
|
|
158
187
|
@parent[:path]
|
159
188
|
@parent.delete(self.class.name)
|
160
189
|
rescue => detail
|
161
|
-
self.notice "Cannot checksum
|
190
|
+
self.notice "Cannot checksum: %s" %
|
162
191
|
detail
|
163
192
|
@parent.delete(self.class.name)
|
164
193
|
end
|
@@ -174,7 +203,6 @@ module Puppet
|
|
174
203
|
end
|
175
204
|
|
176
205
|
return "{#{checktype}}" + sum.to_s
|
177
|
-
#return sum.to_s
|
178
206
|
end
|
179
207
|
|
180
208
|
# At this point, we don't actually modify the system, we modify
|
@@ -183,7 +211,7 @@ module Puppet
|
|
183
211
|
def handlesum
|
184
212
|
if @is.nil?
|
185
213
|
raise Puppet::Error, "Checksum state for %s is somehow nil" %
|
186
|
-
@parent.
|
214
|
+
@parent.title
|
187
215
|
end
|
188
216
|
|
189
217
|
if @is == :absent
|
@@ -201,7 +229,7 @@ module Puppet
|
|
201
229
|
if @is == :absent
|
202
230
|
# if they're copying, then we won't worry about the file
|
203
231
|
# not existing yet
|
204
|
-
unless @parent.
|
232
|
+
unless @parent.property(:source)
|
205
233
|
self.warning(
|
206
234
|
"File %s does not exist -- cannot checksum" %
|
207
235
|
@parent[:path]
|
@@ -219,6 +247,17 @@ module Puppet
|
|
219
247
|
end
|
220
248
|
end
|
221
249
|
|
250
|
+
def insync?
|
251
|
+
@should = [checktype]
|
252
|
+
if cache(checktype())
|
253
|
+
return @is == currentsum()
|
254
|
+
else
|
255
|
+
# If there's no cached sum, then we don't want to generate
|
256
|
+
# an event.
|
257
|
+
return true
|
258
|
+
end
|
259
|
+
end
|
260
|
+
|
222
261
|
# Even though they can specify multiple checksums, the insync?
|
223
262
|
# mechanism can really only test against one, so we'll just retrieve
|
224
263
|
# the first specified sum type.
|
@@ -229,10 +268,6 @@ module Puppet
|
|
229
268
|
return @is
|
230
269
|
end
|
231
270
|
|
232
|
-
unless defined? @checktypes
|
233
|
-
@checktypes = ["md5"]
|
234
|
-
end
|
235
|
-
|
236
271
|
stat = nil
|
237
272
|
unless stat = @parent.stat
|
238
273
|
self.is = :absent
|
@@ -242,29 +277,18 @@ module Puppet
|
|
242
277
|
if stat.ftype == "link" and @parent[:links] != :follow
|
243
278
|
self.debug "Not checksumming symlink"
|
244
279
|
#@parent.delete(:checksum)
|
245
|
-
self.is = self.
|
280
|
+
self.is = self.currentsum
|
246
281
|
return
|
247
282
|
end
|
248
283
|
|
249
|
-
if stat.ftype == "directory" and @checktypes[0] =~ /md5/
|
250
|
-
@checktypes = ["time"]
|
251
|
-
end
|
252
|
-
|
253
284
|
# Just use the first allowed check type
|
254
|
-
@is = getsum(
|
255
|
-
|
256
|
-
# @should should always be set, so if it's not set at all, we
|
257
|
-
# know we haven't looked in the cache yet.
|
258
|
-
unless defined? @should and ! @should.nil?
|
259
|
-
@should = [getcachedsum()]
|
260
|
-
end
|
285
|
+
@is = getsum(checktype())
|
261
286
|
|
262
|
-
# If there is no
|
263
|
-
# into the
|
287
|
+
# If there is no sum defined, then store the current value
|
288
|
+
# into the cache, so that we're not marked as being
|
264
289
|
# out of sync. We don't want to generate an event the first
|
265
290
|
# time we get a sum.
|
266
|
-
|
267
|
-
@should = [@is]
|
291
|
+
unless cache(checktype())
|
268
292
|
# FIXME we should support an updatechecksums-like mechanism
|
269
293
|
self.updatesum
|
270
294
|
end
|
@@ -275,39 +299,42 @@ module Puppet
|
|
275
299
|
# Store the new sum to the state db.
|
276
300
|
def updatesum
|
277
301
|
result = false
|
278
|
-
state = nil
|
279
|
-
unless state = @parent.cached(:checksums)
|
280
|
-
self.debug "Initializing checksum hash for %s" % @parent.name
|
281
|
-
state = {}
|
282
|
-
@parent.cache(:checksums, state)
|
283
|
-
end
|
284
302
|
|
285
303
|
if @is.is_a?(Symbol)
|
286
|
-
|
287
|
-
@parent.name)
|
288
|
-
raise error
|
304
|
+
raise Puppet::Error, "%s has invalid checksum" % @parent.title
|
289
305
|
end
|
290
306
|
|
291
307
|
# if we're replacing, vs. updating
|
292
|
-
if
|
293
|
-
unless defined? @should
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
308
|
+
if sum = cache(checktype())
|
309
|
+
# unless defined? @should
|
310
|
+
# raise Puppet::Error.new(
|
311
|
+
# ("@should is not initialized for %s, even though we " +
|
312
|
+
# "found a checksum") % @parent[:path]
|
313
|
+
# )
|
314
|
+
# end
|
315
|
+
|
316
|
+
if @is == sum
|
317
|
+
return false
|
298
318
|
end
|
319
|
+
|
320
|
+
#if cache(self.should) == @is
|
321
|
+
# raise Puppet::Error, "Got told to update same sum twice"
|
322
|
+
#end
|
299
323
|
self.debug "Replacing %s checksum %s with %s" %
|
300
|
-
[@parent.
|
324
|
+
[@parent.title, sum, @is]
|
301
325
|
#@parent.debug "@is: %s; @should: %s" % [@is,@should]
|
302
326
|
result = true
|
303
327
|
else
|
304
328
|
@parent.debug "Creating checksum %s" % @is
|
305
329
|
result = false
|
306
330
|
end
|
307
|
-
|
331
|
+
|
332
|
+
# Cache the sum so the log message can be right if possible.
|
333
|
+
@cached = sum
|
334
|
+
cache(checktype(), @is)
|
308
335
|
return result
|
309
336
|
end
|
310
337
|
end
|
311
338
|
end
|
312
339
|
|
313
|
-
# $Id: checksum.rb
|
340
|
+
# $Id: checksum.rb 2169 2007-02-07 06:47:10Z luke $
|
@@ -1,9 +1,9 @@
|
|
1
1
|
module Puppet
|
2
|
-
Puppet.type(:file).
|
3
|
-
desc "Specify the contents of a file as a string. Newlines, tabs, and
|
4
|
-
can be specified using the escaped syntax (e.g., \\n for a
|
5
|
-
primary purpose of this parameter is to provide a
|
6
|
-
templating
|
2
|
+
Puppet.type(:file).newproperty(:content) do
|
3
|
+
desc "Specify the contents of a file as a string. Newlines, tabs, and
|
4
|
+
spaces can be specified using the escaped syntax (e.g., \\n for a
|
5
|
+
newline). The primary purpose of this parameter is to provide a
|
6
|
+
kind of limited templating::
|
7
7
|
|
8
8
|
define resolve(nameserver1, nameserver2, domain, search) {
|
9
9
|
$str = \"search $search
|
@@ -17,11 +17,17 @@ module Puppet
|
|
17
17
|
}
|
18
18
|
}
|
19
19
|
|
20
|
-
|
21
|
-
|
20
|
+
This attribute is especially useful when used with
|
21
|
+
`PuppetTemplating templating`:trac:."
|
22
22
|
|
23
23
|
def change_to_s
|
24
|
-
"
|
24
|
+
should = "{md5}" + Digest::MD5.hexdigest(self.should)
|
25
|
+
if @is == :absent
|
26
|
+
return "created file with contents %s" % should
|
27
|
+
else
|
28
|
+
is = "{md5}" + Digest::MD5.hexdigest(@is)
|
29
|
+
return "changed file contents from %s to %s" % [is, should]
|
30
|
+
end
|
25
31
|
end
|
26
32
|
|
27
33
|
# We should probably take advantage of existing md5 sums if they're there,
|
@@ -49,7 +55,7 @@ module Puppet
|
|
49
55
|
rescue => detail
|
50
56
|
@is = nil
|
51
57
|
raise Puppet::Error, "Could not read %s: %s" %
|
52
|
-
[@parent.
|
58
|
+
[@parent.title, detail]
|
53
59
|
end
|
54
60
|
end
|
55
61
|
|
@@ -67,4 +73,4 @@ module Puppet
|
|
67
73
|
end
|
68
74
|
end
|
69
75
|
|
70
|
-
# $Id: content.rb
|
76
|
+
# $Id: content.rb 2408 2007-04-24 02:41:16Z luke $
|
@@ -2,19 +2,21 @@ module Puppet
|
|
2
2
|
Puppet.type(:file).ensurable do
|
3
3
|
require 'etc'
|
4
4
|
desc "Whether to create files that don't currently exist.
|
5
|
-
Possible values are *absent*, *present* (equivalent to
|
6
|
-
|
7
|
-
|
5
|
+
Possible values are *absent*, *present* (equivalent to ``exists`` in
|
6
|
+
most file tests -- will match any form of file existence, and if the
|
7
|
+
file is missing will create an empty file), *file*, and
|
8
|
+
*directory*. Specifying ``absent`` will delete the file, although
|
9
|
+
currently this will not recursively delete directories.
|
8
10
|
|
9
11
|
Anything other than those values will be considered to be a symlink.
|
10
|
-
For instance, the following text creates a link
|
12
|
+
For instance, the following text creates a link::
|
11
13
|
|
12
14
|
# Useful on solaris
|
13
15
|
file { \"/etc/inetd.conf\":
|
14
16
|
ensure => \"/etc/inet/inetd.conf\"
|
15
17
|
}
|
16
18
|
|
17
|
-
You can make relative links
|
19
|
+
You can make relative links::
|
18
20
|
|
19
21
|
# Useful on solaris
|
20
22
|
file { \"/etc/inetd.conf\":
|
@@ -30,7 +32,7 @@ module Puppet
|
|
30
32
|
with directories corresponding to each directory
|
31
33
|
and links corresponding to each file."
|
32
34
|
|
33
|
-
# Most 'ensure'
|
35
|
+
# Most 'ensure' properties have a default, but with files we, um, don't.
|
34
36
|
nodefault
|
35
37
|
|
36
38
|
newvalue(:absent) do
|
@@ -41,8 +43,8 @@ module Puppet
|
|
41
43
|
|
42
44
|
newvalue(:file) do
|
43
45
|
# Make sure we're not managing the content some other way
|
44
|
-
if
|
45
|
-
|
46
|
+
if property = (@parent.property(:content) || @parent.property(:source))
|
47
|
+
property.sync
|
46
48
|
else
|
47
49
|
@parent.write(false) { |f| f.flush }
|
48
50
|
mode = @parent.should(:mode)
|
@@ -50,7 +52,12 @@ module Puppet
|
|
50
52
|
return :file_created
|
51
53
|
end
|
52
54
|
|
53
|
-
aliasvalue(:present, :file)
|
55
|
+
#aliasvalue(:present, :file)
|
56
|
+
newvalue(:present) do
|
57
|
+
# Make a file if they want something, but this will match almost
|
58
|
+
# anything.
|
59
|
+
set_file
|
60
|
+
end
|
54
61
|
|
55
62
|
newvalue(:directory) do
|
56
63
|
mode = @parent.should(:mode)
|
@@ -60,7 +67,7 @@ module Puppet
|
|
60
67
|
"Cannot create %s; parent directory %s does not exist" %
|
61
68
|
[@parent[:path], parent]
|
62
69
|
end
|
63
|
-
|
70
|
+
@parent.write_if_writable(parent) do
|
64
71
|
if mode
|
65
72
|
Puppet::Util.withumask(000) do
|
66
73
|
Dir.mkdir(@parent[:path],mode)
|
@@ -68,22 +75,18 @@ module Puppet
|
|
68
75
|
else
|
69
76
|
Dir.mkdir(@parent[:path])
|
70
77
|
end
|
71
|
-
|
78
|
+
end
|
79
|
+
@parent.send(:property_fix)
|
72
80
|
@parent.setchecksum
|
73
81
|
return :directory_created
|
74
82
|
end
|
75
83
|
|
76
84
|
|
77
85
|
newvalue(:link) do
|
78
|
-
if
|
79
|
-
|
86
|
+
if property = @parent.property(:target)
|
87
|
+
property.retrieve
|
80
88
|
|
81
|
-
|
82
|
-
self.set_directory
|
83
|
-
return :directory_created
|
84
|
-
else
|
85
|
-
return state.mklink
|
86
|
-
end
|
89
|
+
return property.mklink
|
87
90
|
else
|
88
91
|
self.fail "Cannot create a symlink without a target"
|
89
92
|
end
|
@@ -105,6 +108,14 @@ module Puppet
|
|
105
108
|
return :link
|
106
109
|
end
|
107
110
|
|
111
|
+
def change_to_s
|
112
|
+
if property = (@parent.property(:content) || @parent.property(:source)) and ! property.insync?
|
113
|
+
return property.change_to_s
|
114
|
+
else
|
115
|
+
super
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
108
119
|
# Check that we can actually create anything
|
109
120
|
def check
|
110
121
|
basedir = File.dirname(@parent[:path])
|
@@ -112,11 +123,25 @@ module Puppet
|
|
112
123
|
if ! FileTest.exists?(basedir)
|
113
124
|
raise Puppet::Error,
|
114
125
|
"Can not create %s; parent directory does not exist" %
|
115
|
-
@parent.
|
126
|
+
@parent.title
|
116
127
|
elsif ! FileTest.directory?(basedir)
|
117
128
|
raise Puppet::Error,
|
118
129
|
"Can not create %s; %s is not a directory" %
|
119
|
-
[@parent.
|
130
|
+
[@parent.title, dirname]
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
# We have to treat :present specially, because it works with any
|
135
|
+
# type of file.
|
136
|
+
def insync?
|
137
|
+
if self.should == :present
|
138
|
+
if @is.nil? or @is == :absent
|
139
|
+
return false
|
140
|
+
else
|
141
|
+
return true
|
142
|
+
end
|
143
|
+
else
|
144
|
+
return super
|
120
145
|
end
|
121
146
|
end
|
122
147
|
|
@@ -133,23 +158,16 @@ module Puppet
|
|
133
158
|
end
|
134
159
|
|
135
160
|
def sync
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
# file creation, so we have to do some extra checking.
|
140
|
-
@parent.each do |thing|
|
141
|
-
next unless thing.is_a? Puppet::State
|
142
|
-
next if thing == self
|
143
|
-
|
144
|
-
thing.retrieve
|
145
|
-
unless thing.insync?
|
146
|
-
thing.sync
|
147
|
-
end
|
161
|
+
@parent.remove_existing(self.should)
|
162
|
+
if self.should == :absent
|
163
|
+
return :file_removed
|
148
164
|
end
|
149
165
|
|
166
|
+
event = super
|
167
|
+
|
150
168
|
return event
|
151
169
|
end
|
152
170
|
end
|
153
171
|
end
|
154
172
|
|
155
|
-
# $Id: ensure.rb
|
173
|
+
# $Id: ensure.rb 2408 2007-04-24 02:41:16Z luke $
|