puppet 0.23.2 → 0.24.0
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 +112 -1
- data/README +1 -1
- data/Rakefile +1 -2
- data/bin/filebucket +2 -3
- data/bin/puppet +55 -39
- data/bin/puppetca +20 -11
- data/bin/puppetd +30 -31
- data/bin/puppetdoc +27 -28
- data/bin/puppetmasterd +24 -42
- data/bin/puppetrun +3 -4
- data/bin/ralsh +5 -7
- data/conf/redhat/puppet.spec +4 -1
- data/conf/solaris/smf/svc-puppetd +1 -1
- data/conf/solaris/smf/svc-puppetmasterd +1 -1
- data/examples/code/allatonce +1 -1
- data/examples/code/assignments +1 -1
- data/examples/code/components +1 -1
- data/examples/code/file.bl +1 -1
- data/examples/code/filedefaults +1 -1
- data/examples/code/fileparsing +1 -1
- data/examples/code/filerecursion +1 -1
- data/examples/code/functions +1 -1
- data/examples/code/groups +1 -1
- data/examples/code/head +1 -1
- data/examples/code/importing +1 -1
- data/examples/code/modules/sample-module.pp +10 -0
- data/examples/code/modules/sample-module/README.txt +17 -0
- data/examples/code/modules/sample-module/lib/puppet/parser/functions/hostname_to_dn.rb +36 -0
- data/examples/code/modules/sample-module/manifests/init.pp +12 -0
- data/examples/code/modules/sample-module/templates/sample.erb +5 -0
- data/examples/code/nodes +1 -1
- data/examples/code/one +1 -1
- data/examples/code/relationships +1 -1
- data/examples/code/selectors +1 -1
- data/examples/code/simpletests +1 -1
- data/examples/root/etc/init.d/sleeper +1 -1
- data/examples/root/etc/puppet/fileserver.conf +1 -1
- data/ext/ldap/puppet.schema +1 -1
- data/ext/module_puppet +30 -21
- data/ext/puppet-test +3 -3
- data/ext/vim/filetype.vim +1 -1
- data/install.rb +1 -2
- data/lib/puppet.rb +20 -19
- data/lib/puppet/checksum.rb +57 -0
- data/lib/puppet/config_stores/rest.rb +1 -1
- data/lib/puppet/daemon.rb +0 -1
- data/lib/puppet/{configuration.rb → defaults.rb} +56 -23
- data/lib/puppet/dsl.rb +22 -116
- data/lib/puppet/error.rb +0 -9
- data/lib/puppet/event.rb +0 -1
- data/lib/puppet/external/gratr/rdot.rb +0 -1
- data/lib/puppet/external/lock.rb +0 -1
- data/lib/puppet/feature/base.rb +3 -2
- data/lib/puppet/feature/rails.rb +0 -1
- data/lib/puppet/file_serving.rb +7 -0
- data/lib/puppet/file_serving/configuration.rb +129 -0
- data/lib/puppet/file_serving/configuration/parser.rb +124 -0
- data/lib/puppet/file_serving/content.rb +34 -0
- data/lib/puppet/file_serving/file_base.rb +63 -0
- data/lib/puppet/file_serving/fileset.rb +138 -0
- data/lib/puppet/file_serving/indirection_hooks.rb +44 -0
- data/lib/puppet/file_serving/metadata.rb +69 -0
- data/lib/puppet/file_serving/mount.rb +186 -0
- data/lib/puppet/file_serving/terminus_helper.rb +19 -0
- data/lib/puppet/indirector.rb +68 -0
- data/lib/puppet/indirector/catalog/compiler.rb +173 -0
- data/lib/puppet/indirector/catalog/yaml.rb +24 -0
- data/lib/puppet/indirector/checksum/file.rb +33 -0
- data/lib/puppet/indirector/code.rb +6 -0
- data/lib/puppet/indirector/direct_file_server.rb +27 -0
- data/lib/puppet/indirector/exec.rb +57 -0
- data/lib/puppet/indirector/facts/facter.rb +65 -0
- data/lib/puppet/indirector/facts/memory.rb +9 -0
- data/lib/puppet/indirector/facts/yaml.rb +7 -0
- data/lib/puppet/indirector/file.rb +54 -0
- data/lib/puppet/indirector/file_content.rb +5 -0
- data/lib/puppet/indirector/file_content/file.rb +11 -0
- data/lib/puppet/indirector/file_content/file_server.rb +11 -0
- data/lib/puppet/indirector/file_content/modules.rb +11 -0
- data/lib/puppet/indirector/file_content/rest.rb +12 -0
- data/lib/puppet/indirector/file_metadata.rb +5 -0
- data/lib/puppet/indirector/file_metadata/file.rb +26 -0
- data/lib/puppet/indirector/file_metadata/file_server.rb +11 -0
- data/lib/puppet/indirector/file_metadata/modules.rb +17 -0
- data/lib/puppet/indirector/file_metadata/rest.rb +12 -0
- data/lib/puppet/indirector/file_server.rb +56 -0
- data/lib/puppet/indirector/indirection.rb +237 -0
- data/lib/puppet/indirector/ldap.rb +90 -0
- data/lib/puppet/indirector/memory.rb +21 -0
- data/lib/puppet/indirector/module_files.rb +82 -0
- data/lib/puppet/indirector/node/exec.rb +52 -0
- data/lib/puppet/indirector/node/ldap.rb +120 -0
- data/lib/puppet/indirector/node/memory.rb +10 -0
- data/lib/puppet/indirector/node/plain.rb +19 -0
- data/lib/puppet/indirector/node/rest.rb +7 -0
- data/lib/puppet/indirector/node/yaml.rb +7 -0
- data/lib/puppet/indirector/plain.rb +9 -0
- data/lib/puppet/indirector/report/processor.rb +50 -0
- data/lib/puppet/indirector/rest.rb +8 -0
- data/lib/puppet/indirector/ssl_rsa.rb +5 -0
- data/lib/puppet/indirector/ssl_rsa/file.rb +33 -0
- data/lib/puppet/indirector/terminus.rb +178 -0
- data/lib/puppet/indirector/yaml.rb +57 -0
- data/lib/puppet/metatype/attributes.rb +3 -3
- data/lib/puppet/metatype/closure.rb +0 -66
- data/lib/puppet/metatype/container.rb +0 -9
- data/lib/puppet/metatype/evaluation.rb +10 -2
- data/lib/puppet/metatype/instances.rb +16 -30
- data/lib/puppet/metatype/manager.rb +1 -2
- data/lib/puppet/metatype/metaparams.rb +27 -21
- data/lib/puppet/metatype/providers.rb +3 -2
- data/lib/puppet/metatype/relationships.rb +1 -2
- data/lib/puppet/metatype/schedules.rb +0 -1
- data/lib/puppet/metatype/tags.rb +0 -1
- data/lib/puppet/module.rb +60 -32
- data/lib/puppet/network/authconfig.rb +0 -1
- data/lib/puppet/network/authorization.rb +0 -1
- data/lib/puppet/network/authstore.rb +0 -1
- data/lib/puppet/network/client.rb +13 -4
- data/lib/puppet/network/client/ca.rb +4 -5
- data/lib/puppet/network/client/dipper.rb +0 -1
- data/lib/puppet/network/client/file.rb +0 -1
- data/lib/puppet/network/client/master.rb +127 -235
- data/lib/puppet/network/client/proxy.rb +0 -1
- data/lib/puppet/network/client/report.rb +0 -1
- data/lib/puppet/network/client/resource.rb +0 -1
- data/lib/puppet/network/client/runner.rb +0 -1
- data/lib/puppet/network/client/status.rb +0 -1
- data/lib/puppet/network/client_request.rb +0 -1
- data/lib/puppet/network/handler.rb +5 -2
- data/lib/puppet/network/handler/ca.rb +1 -2
- data/lib/puppet/network/handler/configuration.rb +184 -0
- data/lib/puppet/network/handler/filebucket.rb +1 -2
- data/lib/puppet/network/handler/fileserver.rb +279 -107
- data/lib/puppet/network/handler/master.rb +57 -152
- data/lib/puppet/network/handler/report.rb +6 -65
- data/lib/puppet/network/handler/resource.rb +5 -13
- data/lib/puppet/network/handler/runner.rb +3 -4
- data/lib/puppet/network/handler/status.rb +0 -1
- data/lib/puppet/network/http.rb +13 -0
- data/lib/puppet/network/http/handler.rb +109 -0
- data/lib/puppet/network/http/mongrel.rb +54 -0
- data/lib/puppet/network/http/mongrel/rest.rb +37 -0
- data/lib/puppet/network/http/mongrel/xmlrpc.rb +4 -0
- data/lib/puppet/network/http/webrick.rb +51 -0
- data/lib/puppet/network/http/webrick/rest.rb +41 -0
- data/lib/puppet/network/http/webrick/xmlrpc.rb +4 -0
- data/lib/puppet/network/http_server.rb +3 -0
- data/lib/puppet/network/{server → http_server}/mongrel.rb +11 -5
- data/lib/puppet/network/{server → http_server}/webrick.rb +9 -5
- data/lib/puppet/network/rest_controller.rb +2 -0
- data/lib/puppet/network/rights.rb +0 -1
- data/lib/puppet/network/server.rb +63 -3
- data/lib/puppet/network/xmlrpc/client.rb +90 -23
- data/lib/puppet/network/xmlrpc/processor.rb +0 -1
- data/lib/puppet/network/xmlrpc/server.rb +0 -1
- data/lib/puppet/network/xmlrpc/webrick_servlet.rb +0 -1
- data/lib/puppet/node.rb +165 -0
- data/lib/puppet/node/catalog.rb +480 -0
- data/lib/puppet/node/environment.rb +46 -0
- data/lib/puppet/node/facts.rb +36 -0
- data/lib/puppet/parameter.rb +34 -28
- data/lib/puppet/parser/ast.rb +0 -1
- data/lib/puppet/parser/ast/astarray.rb +30 -53
- data/lib/puppet/parser/ast/branch.rb +0 -10
- data/lib/puppet/parser/ast/caseopt.rb +0 -11
- data/lib/puppet/parser/ast/casestatement.rb +0 -12
- data/lib/puppet/parser/ast/collection.rb +1 -3
- data/lib/puppet/parser/ast/collexpr.rb +0 -2
- data/lib/puppet/parser/ast/{component.rb → definition.rb} +58 -72
- data/lib/puppet/parser/ast/else.rb +0 -10
- data/lib/puppet/parser/ast/function.rb +0 -2
- data/lib/puppet/parser/ast/hostclass.rb +21 -19
- data/lib/puppet/parser/ast/ifstatement.rb +0 -13
- data/lib/puppet/parser/ast/leaf.rb +0 -8
- data/lib/puppet/parser/ast/node.rb +13 -10
- data/lib/puppet/parser/ast/resource.rb +75 -0
- data/lib/puppet/parser/ast/{resourcedefaults.rb → resource_defaults.rb} +4 -20
- data/lib/puppet/parser/ast/{resourceoverride.rb → resource_override.rb} +3 -5
- data/lib/puppet/parser/ast/resource_reference.rb +66 -0
- data/lib/puppet/parser/ast/resourceparam.rb +0 -14
- data/lib/puppet/parser/ast/selector.rb +0 -10
- data/lib/puppet/parser/ast/tag.rb +0 -2
- data/lib/puppet/parser/ast/vardef.rb +0 -14
- data/lib/puppet/parser/collector.rb +83 -101
- data/lib/puppet/parser/compile.rb +509 -0
- data/lib/puppet/parser/functions.rb +10 -10
- data/lib/puppet/parser/interpreter.rb +44 -662
- data/lib/puppet/parser/lexer.rb +1 -3
- data/lib/puppet/parser/parser.rb +674 -701
- data/lib/puppet/parser/parser_support.rb +33 -24
- data/lib/puppet/parser/resource.rb +219 -162
- data/lib/puppet/parser/resource/param.rb +1 -2
- data/lib/puppet/parser/resource/reference.rb +24 -16
- data/lib/puppet/parser/scope.rb +48 -459
- data/lib/puppet/parser/templatewrapper.rb +4 -5
- data/lib/puppet/pgraph.rb +10 -13
- data/lib/puppet/property.rb +25 -41
- data/lib/puppet/propertychange.rb +0 -2
- data/lib/puppet/provider.rb +15 -11
- data/lib/puppet/provider/cron/crontab.rb +6 -7
- data/lib/puppet/provider/group/groupadd.rb +0 -1
- data/lib/puppet/provider/group/netinfo.rb +0 -1
- data/lib/puppet/provider/group/pw.rb +0 -1
- data/lib/puppet/provider/host/netinfo.rb +0 -1
- data/lib/puppet/provider/host/parsed.rb +0 -1
- data/lib/puppet/provider/interface/redhat.rb +90 -91
- data/lib/puppet/provider/interface/sunos.rb +98 -81
- data/lib/puppet/provider/mailalias/aliases.rb +0 -1
- data/lib/puppet/provider/maillist/mailman.rb +2 -3
- data/lib/puppet/provider/mount.rb +10 -9
- data/lib/puppet/provider/mount/netinfo.rb +0 -1
- data/lib/puppet/provider/mount/parsed.rb +0 -1
- data/lib/puppet/provider/nameservice.rb +0 -1
- data/lib/puppet/provider/nameservice/netinfo.rb +0 -1
- data/lib/puppet/provider/nameservice/objectadd.rb +0 -1
- data/lib/puppet/provider/nameservice/pw.rb +0 -1
- data/lib/puppet/provider/package.rb +0 -2
- data/lib/puppet/provider/package/appdmg.rb +0 -1
- data/lib/puppet/provider/package/apple.rb +0 -1
- data/lib/puppet/provider/package/apt.rb +0 -1
- data/lib/puppet/provider/package/aptitude.rb +0 -1
- data/lib/puppet/provider/package/aptrpm.rb +0 -1
- data/lib/puppet/provider/package/blastwave.rb +0 -1
- data/lib/puppet/provider/package/darwinport.rb +0 -1
- data/lib/puppet/provider/package/dpkg.rb +9 -1
- data/lib/puppet/provider/package/fink.rb +0 -1
- data/lib/puppet/provider/package/freebsd.rb +0 -1
- data/lib/puppet/provider/package/gem.rb +0 -1
- data/lib/puppet/provider/package/openbsd.rb +1 -2
- data/lib/puppet/provider/package/pkgdmg.rb +14 -15
- data/lib/puppet/provider/package/portage.rb +6 -7
- data/lib/puppet/provider/package/ports.rb +1 -4
- data/lib/puppet/provider/package/rpm.rb +31 -45
- data/lib/puppet/provider/package/sun.rb +0 -3
- data/lib/puppet/provider/package/sunfreeware.rb +0 -1
- data/lib/puppet/provider/package/up2date.rb +0 -1
- data/lib/puppet/provider/package/urpmi.rb +0 -1
- data/lib/puppet/provider/package/yum.rb +45 -14
- data/lib/puppet/provider/package/yumhelper.py +37 -0
- data/lib/puppet/provider/parsedfile.rb +2 -3
- data/lib/puppet/provider/port/parsed.rb +0 -1
- data/lib/puppet/provider/service/base.rb +4 -1
- data/lib/puppet/provider/service/debian.rb +5 -2
- data/lib/puppet/provider/service/freebsd.rb +51 -0
- data/lib/puppet/provider/service/init.rb +16 -40
- data/lib/puppet/provider/service/redhat.rb +1 -6
- data/lib/puppet/provider/service/smf.rb +0 -1
- data/lib/puppet/provider/sshkey/parsed.rb +0 -1
- data/lib/puppet/provider/user/netinfo.rb +0 -1
- data/lib/puppet/provider/user/pw.rb +0 -1
- data/lib/puppet/provider/user/useradd.rb +0 -1
- data/lib/puppet/provider/zone/solaris.rb +0 -1
- data/lib/puppet/rails.rb +35 -30
- data/lib/puppet/rails/database/schema.rb +0 -1
- data/lib/puppet/rails/host.rb +6 -15
- data/lib/puppet/rails/param_name.rb +1 -2
- data/lib/puppet/rails/param_value.rb +0 -1
- data/lib/puppet/rails/puppet_class.rb +0 -1
- data/lib/puppet/rails/resource.rb +3 -5
- data/lib/puppet/reference/configuration.rb +12 -6
- data/lib/puppet/reference/indirection.rb +34 -0
- data/lib/puppet/reference/node_source.rb +9 -0
- data/lib/puppet/relationship.rb +10 -8
- data/lib/puppet/reports.rb +51 -0
- data/lib/puppet/reports/log.rb +2 -3
- data/lib/puppet/reports/rrdgraph.rb +2 -5
- data/lib/puppet/reports/store.rb +6 -7
- data/lib/puppet/reports/tagmail.rb +2 -3
- data/lib/puppet/resource_reference.rb +79 -0
- data/lib/puppet/simple_graph.rb +251 -0
- data/lib/puppet/sslcertificates.rb +19 -15
- data/lib/puppet/sslcertificates/ca.rb +56 -15
- data/lib/puppet/sslcertificates/certificate.rb +0 -1
- data/lib/puppet/sslcertificates/inventory.rb +2 -6
- data/lib/puppet/sslcertificates/monkey_patch.rb +6 -0
- data/lib/puppet/sslcertificates/support.rb +4 -5
- data/lib/puppet/transaction.rb +93 -96
- data/lib/puppet/transaction/report.rb +5 -1
- data/lib/puppet/transportable.rb +79 -125
- data/lib/puppet/type.rb +44 -10
- data/lib/puppet/type/component.rb +25 -110
- data/lib/puppet/type/cron.rb +1 -2
- data/lib/puppet/type/exec.rb +19 -13
- data/lib/puppet/type/group.rb +0 -1
- data/lib/puppet/type/host.rb +0 -1
- data/lib/puppet/type/interface.rb +6 -3
- data/lib/puppet/type/k5login.rb +87 -0
- data/lib/puppet/type/mailalias.rb +0 -1
- data/lib/puppet/type/maillist.rb +0 -1
- data/lib/puppet/type/mount.rb +7 -13
- data/lib/puppet/type/notify.rb +0 -1
- data/lib/puppet/type/package.rb +7 -63
- data/lib/puppet/type/pfile.rb +25 -32
- data/lib/puppet/type/pfile/checksum.rb +0 -1
- data/lib/puppet/type/pfile/content.rb +18 -3
- data/lib/puppet/type/pfile/ensure.rb +5 -6
- data/lib/puppet/type/pfile/group.rb +4 -1
- data/lib/puppet/type/pfile/mode.rb +0 -1
- data/lib/puppet/type/pfile/owner.rb +6 -9
- data/lib/puppet/type/pfile/source.rb +28 -11
- data/lib/puppet/type/pfile/target.rb +2 -1
- data/lib/puppet/type/pfile/type.rb +0 -1
- data/lib/puppet/type/pfilebucket.rb +0 -1
- data/lib/puppet/type/port.rb +0 -1
- data/lib/puppet/type/resources.rb +0 -1
- data/lib/puppet/type/schedule.rb +17 -15
- data/lib/puppet/type/service.rb +23 -159
- data/lib/puppet/type/sshkey.rb +0 -1
- data/lib/puppet/type/tidy.rb +15 -7
- data/lib/puppet/type/user.rb +0 -1
- data/lib/puppet/type/zone.rb +0 -1
- data/lib/puppet/util.rb +1 -2
- data/lib/puppet/util/autoload.rb +21 -23
- data/lib/puppet/util/checksums.rb +37 -0
- data/lib/puppet/util/classgen.rb +0 -1
- data/lib/puppet/util/diff.rb +71 -0
- data/lib/puppet/util/docs.rb +8 -2
- data/lib/puppet/util/errors.rb +0 -1
- data/lib/puppet/util/execution.rb +0 -1
- data/lib/puppet/util/fact_store.rb +0 -1
- data/lib/puppet/util/feature.rb +31 -22
- data/lib/puppet/util/fileparsing.rb +3 -2
- data/lib/puppet/util/filetype.rb +30 -12
- data/lib/puppet/util/graph.rb +0 -1
- data/lib/puppet/util/inifile.rb +0 -1
- data/lib/puppet/util/instance_loader.rb +11 -4
- data/lib/puppet/util/loadedfile.rb +0 -1
- data/lib/puppet/util/log.rb +0 -1
- data/lib/puppet/util/log_paths.rb +0 -1
- data/lib/puppet/util/logging.rb +0 -1
- data/lib/puppet/util/metaid.rb +0 -1
- data/lib/puppet/util/methodhelper.rb +0 -2
- data/lib/puppet/util/metric.rb +1 -2
- data/lib/puppet/util/plist.rb +0 -1
- data/lib/puppet/util/plist/generator.rb +0 -1
- data/lib/puppet/util/plist/parser.rb +0 -1
- data/lib/puppet/util/posix.rb +7 -1
- data/lib/puppet/util/provider_features.rb +11 -12
- data/lib/puppet/util/rails/collection_merger.rb +0 -1
- data/lib/puppet/util/reference.rb +2 -3
- data/lib/puppet/util/{config.rb → settings.rb} +424 -300
- data/lib/puppet/util/storage.rb +1 -3
- data/lib/puppet/util/subclass_loader.rb +0 -1
- data/lib/puppet/util/suidmanager.rb +25 -42
- data/lib/puppet/util/uri_helper.rb +22 -0
- data/lib/puppet/util/variables.rb +0 -1
- data/lib/puppet/util/warnings.rb +0 -1
- data/test/Rakefile +1 -1
- data/test/certmgr/ca.rb +8 -2
- data/test/certmgr/certmgr.rb +14 -6
- data/test/certmgr/inventory.rb +18 -30
- data/test/certmgr/support.rb +3 -2
- data/test/executables/filebucket.rb +1 -2
- data/test/executables/puppetbin.rb +1 -2
- data/test/executables/puppetca.rb +7 -2
- data/test/executables/puppetd.rb +23 -29
- data/test/executables/puppetmasterd.rb +1 -2
- data/test/executables/puppetmodule.rb +1 -2
- data/test/language/ast.rb +24 -29
- data/test/language/ast/casestatement.rb +1 -2
- data/test/language/ast/definition.rb +166 -0
- data/test/language/ast/hostclass.rb +50 -29
- data/test/language/ast/resource.rb +59 -0
- data/test/language/ast/{resourceref.rb → resource_reference.rb} +30 -20
- data/test/language/ast/selector.rb +1 -2
- data/test/language/ast/variable.rb +1 -2
- data/test/language/compile.rb +569 -0
- data/test/language/functions.rb +57 -76
- data/test/language/lexer.rb +20 -3
- data/test/language/parser.rb +45 -33
- data/test/language/resource.rb +275 -308
- data/test/language/scope.rb +135 -410
- data/test/language/snippets.rb +19 -41
- data/test/language/transportable.rb +8 -29
- data/test/lib/mocha/auto_verify.rb +6 -6
- data/test/lib/mocha/deprecation.rb +22 -0
- data/test/lib/mocha/exception_raiser.rb +17 -0
- data/test/lib/mocha/expectation.rb +167 -84
- data/test/lib/mocha/infinite_range.rb +4 -6
- data/test/lib/mocha/inspect.rb +3 -1
- data/test/lib/mocha/is_a.rb +9 -0
- data/test/lib/mocha/missing_expectation.rb +27 -0
- data/test/lib/mocha/mock.rb +192 -5
- data/test/lib/mocha/multiple_yields.rb +20 -0
- data/test/lib/mocha/no_yields.rb +11 -0
- data/test/lib/mocha/object.rb +11 -1
- data/test/lib/mocha/parameter_matchers.rb +9 -0
- data/test/lib/mocha/parameter_matchers/all_of.rb +39 -0
- data/test/lib/mocha/parameter_matchers/any_of.rb +44 -0
- data/test/lib/mocha/parameter_matchers/anything.rb +30 -0
- data/test/lib/mocha/parameter_matchers/has_entry.rb +39 -0
- data/test/lib/mocha/parameter_matchers/has_key.rb +39 -0
- data/test/lib/mocha/parameter_matchers/has_value.rb +39 -0
- data/test/lib/mocha/parameter_matchers/includes.rb +37 -0
- data/test/lib/mocha/return_values.rb +31 -0
- data/test/lib/mocha/single_return_value.rb +24 -0
- data/test/lib/mocha/single_yield.rb +18 -0
- data/test/lib/mocha/standalone.rb +2 -0
- data/test/lib/mocha/stub.rb +18 -0
- data/test/lib/mocha/test_case_adapter.rb +3 -3
- data/test/lib/mocha/yield_parameters.rb +31 -0
- data/test/lib/puppettest.rb +38 -20
- data/test/lib/puppettest/certificates.rb +0 -1
- data/test/lib/puppettest/exetest.rb +0 -1
- data/test/lib/puppettest/fakes.rb +0 -1
- data/test/lib/puppettest/fileparsing.rb +8 -15
- data/test/lib/puppettest/filetesting.rb +0 -1
- data/test/lib/puppettest/parsertesting.rb +37 -23
- data/test/lib/puppettest/railstesting.rb +3 -6
- data/test/lib/puppettest/reporttesting.rb +0 -1
- data/test/lib/puppettest/resourcetesting.rb +6 -34
- data/test/lib/puppettest/runnable_test.rb +30 -0
- data/test/lib/puppettest/servertest.rb +2 -3
- data/test/lib/puppettest/support/assertions.rb +13 -41
- data/test/lib/puppettest/support/collection.rb +0 -1
- data/test/lib/puppettest/support/helpers.rb +0 -1
- data/test/lib/puppettest/support/resources.rb +17 -17
- data/test/lib/puppettest/support/utils.rb +45 -27
- data/test/lib/puppettest/testcase.rb +2 -21
- data/test/lib/rake/puppet_test_loader.rb +0 -1
- data/test/lib/rake/puppet_testtask.rb +0 -1
- data/test/network/authconfig.rb +1 -2
- data/test/network/authorization.rb +1 -2
- data/test/network/authstore.rb +1 -2
- data/test/network/client/ca.rb +12 -7
- data/test/network/client/client.rb +17 -22
- data/test/network/client/dipper.rb +1 -2
- data/test/network/client/master.rb +70 -184
- data/test/network/client/resource.rb +9 -2
- data/test/network/client_request.rb +1 -2
- data/test/network/daemon.rb +1 -2
- data/test/network/handler/bucket.rb +2 -31
- data/test/network/handler/ca.rb +9 -3
- data/test/network/handler/configuration.rb +160 -0
- data/test/network/handler/fileserver.rb +24 -5
- data/test/network/handler/handler.rb +1 -2
- data/test/network/handler/master.rb +38 -243
- data/test/network/handler/report.rb +2 -104
- data/test/network/handler/resource.rb +5 -3
- data/test/network/handler/runner.rb +22 -60
- data/test/network/rights.rb +1 -2
- data/test/network/server/mongrel_test.rb +2 -3
- data/test/network/server/webrick.rb +17 -11
- data/test/network/xmlrpc/client.rb +27 -12
- data/test/network/xmlrpc/processor.rb +3 -4
- data/test/network/xmlrpc/server.rb +1 -2
- data/test/network/xmlrpc/webrick_servlet.rb +8 -2
- data/test/other/dsl.rb +2 -4
- data/test/other/events.rb +14 -56
- data/test/other/overrides.rb +3 -6
- data/test/other/propertychange.rb +1 -2
- data/test/other/provider.rb +1 -2
- data/test/other/puppet.rb +1 -2
- data/test/other/relationships.rb +15 -17
- data/test/other/report.rb +14 -20
- data/test/other/transactions.rb +109 -192
- data/test/puppet/conffiles.rb +3 -5
- data/test/puppet/defaults.rb +1 -28
- data/test/puppet/errortest.rb +1 -2
- data/test/puppet/tc_suidmanager.rb +77 -63
- data/test/rails/ast.rb +4 -4
- data/test/rails/configuration.rb +71 -0
- data/test/rails/host.rb +19 -30
- data/test/rails/rails.rb +1 -2
- data/test/rails/railsparameter.rb +3 -4
- data/test/rails/railsresource.rb +6 -5
- data/test/ral/manager/attributes.rb +1 -2
- data/test/ral/manager/instances.rb +3 -3
- data/test/ral/manager/manager.rb +1 -2
- data/test/ral/manager/provider.rb +1 -2
- data/test/ral/manager/type.rb +89 -93
- data/test/ral/providers/cron/crontab.rb +9 -11
- data/test/ral/providers/group.rb +1 -2
- data/test/ral/providers/host/netinfo.rb +1 -2
- data/test/ral/providers/host/parsed.rb +1 -2
- data/test/ral/providers/mailalias/aliases.rb +1 -2
- data/test/ral/providers/mount/netinfo.rb +1 -2
- data/test/ral/providers/nameservice.rb +1 -2
- data/test/ral/providers/package.rb +5 -4
- data/test/ral/providers/package/apt.rb +0 -1
- data/test/ral/providers/package/aptrpm.rb +0 -1
- data/test/ral/providers/parsedfile.rb +1 -2
- data/test/ral/providers/port/parsed.rb +1 -2
- data/test/ral/providers/provider.rb +10 -5
- data/test/ral/providers/service/base.rb +1 -2
- data/test/ral/providers/service/debian.rb +58 -0
- data/test/ral/providers/sshkey/parsed.rb +1 -2
- data/test/ral/providers/user.rb +3 -2
- data/test/ral/providers/user/useradd.rb +0 -1
- data/test/ral/types/basic.rb +4 -9
- data/test/ral/types/cron.rb +6 -12
- data/test/ral/types/exec.rb +6 -7
- data/test/ral/types/file.rb +35 -14
- data/test/ral/types/file/target.rb +6 -5
- data/test/ral/types/filebucket.rb +3 -2
- data/test/ral/types/fileignoresource.rb +10 -42
- data/test/ral/types/filesources.rb +21 -60
- data/test/ral/types/group.rb +3 -3
- data/test/ral/types/host.rb +6 -3
- data/test/ral/types/mailalias.rb +1 -2
- data/test/ral/types/parameter.rb +5 -3
- data/test/ral/types/port.rb +1 -2
- data/test/ral/types/property.rb +3 -3
- data/test/ral/types/resources.rb +1 -2
- data/test/ral/types/service.rb +5 -3
- data/test/ral/types/sshkey.rb +5 -3
- data/test/ral/types/tidy.rb +63 -3
- data/test/ral/types/user.rb +10 -11
- data/test/ral/types/yumrepo.rb +1 -1
- data/test/ral/types/zone.rb +1 -2
- data/test/util/autoload.rb +23 -27
- data/test/util/classgen.rb +1 -2
- data/test/util/execution.rb +1 -2
- data/test/util/features.rb +1 -3
- data/test/util/fileparsing.rb +11 -3
- data/test/util/filetype.rb +1 -2
- data/test/util/inifile.rb +1 -1
- data/test/util/instance_loader.rb +5 -6
- data/test/util/loadedfile.rb +1 -2
- data/test/util/log.rb +1 -2
- data/test/util/metrics.rb +1 -2
- data/test/util/package.rb +1 -2
- data/test/util/posixtest.rb +1 -2
- data/test/util/{config.rb → settings.rb} +123 -265
- data/test/util/storage.rb +1 -2
- data/test/util/subclass_loader.rb +1 -2
- data/test/util/utiltest.rb +1 -111
- metadata +130 -112
- data/ext/tools/passwd2puppet +0 -45
- data/lib/puppet/fact_stores/yaml.rb +0 -42
- data/lib/puppet/network/handler/facts.rb +0 -70
- data/lib/puppet/parser/ast/resourcedef.rb +0 -222
- data/lib/puppet/parser/ast/resourceref.rb +0 -58
- data/test/language/ast/component.rb +0 -142
- data/test/language/collector.rb +0 -179
- data/test/language/interpreter.rb +0 -804
- data/test/language/node.rb +0 -126
- data/test/lib/mocha/mock_methods.rb +0 -122
- data/test/lib/puppettest/graph.rb +0 -41
- data/test/lib/spec.rb +0 -8
- data/test/lib/spec/callback.rb +0 -11
- data/test/lib/spec/callback/callback_container.rb +0 -60
- data/test/lib/spec/callback/extensions/module.rb +0 -24
- data/test/lib/spec/callback/extensions/object.rb +0 -37
- data/test/lib/spec/deprecated.rb +0 -3
- data/test/lib/spec/expectations.rb +0 -59
- data/test/lib/spec/expectations/differs/default.rb +0 -62
- data/test/lib/spec/expectations/errors.rb +0 -6
- data/test/lib/spec/expectations/extensions.rb +0 -3
- data/test/lib/spec/expectations/extensions/object.rb +0 -109
- data/test/lib/spec/expectations/extensions/proc.rb +0 -57
- data/test/lib/spec/expectations/extensions/string_and_symbol.rb +0 -17
- data/test/lib/spec/expectations/handler.rb +0 -47
- data/test/lib/spec/expectations/should.rb +0 -5
- data/test/lib/spec/expectations/should/base.rb +0 -64
- data/test/lib/spec/expectations/should/change.rb +0 -69
- data/test/lib/spec/expectations/should/have.rb +0 -128
- data/test/lib/spec/expectations/should/not.rb +0 -74
- data/test/lib/spec/expectations/should/should.rb +0 -81
- data/test/lib/spec/expectations/sugar.rb +0 -47
- data/test/lib/spec/matchers.rb +0 -160
- data/test/lib/spec/matchers/be.rb +0 -161
- data/test/lib/spec/matchers/be_close.rb +0 -37
- data/test/lib/spec/matchers/change.rb +0 -120
- data/test/lib/spec/matchers/eql.rb +0 -43
- data/test/lib/spec/matchers/equal.rb +0 -43
- data/test/lib/spec/matchers/has.rb +0 -44
- data/test/lib/spec/matchers/have.rb +0 -140
- data/test/lib/spec/matchers/include.rb +0 -50
- data/test/lib/spec/matchers/match.rb +0 -41
- data/test/lib/spec/matchers/raise_error.rb +0 -100
- data/test/lib/spec/matchers/respond_to.rb +0 -35
- data/test/lib/spec/matchers/satisfy.rb +0 -47
- data/test/lib/spec/matchers/throw_symbol.rb +0 -75
- data/test/lib/spec/mocks.rb +0 -232
- data/test/lib/spec/mocks/argument_expectation.rb +0 -132
- data/test/lib/spec/mocks/error_generator.rb +0 -85
- data/test/lib/spec/mocks/errors.rb +0 -10
- data/test/lib/spec/mocks/extensions/object.rb +0 -3
- data/test/lib/spec/mocks/message_expectation.rb +0 -231
- data/test/lib/spec/mocks/methods.rb +0 -40
- data/test/lib/spec/mocks/mock.rb +0 -26
- data/test/lib/spec/mocks/mock_handler.rb +0 -166
- data/test/lib/spec/mocks/order_group.rb +0 -29
- data/test/lib/spec/rake/spectask.rb +0 -173
- data/test/lib/spec/rake/verify_rcov.rb +0 -47
- data/test/lib/spec/runner.rb +0 -132
- data/test/lib/spec/runner/backtrace_tweaker.rb +0 -55
- data/test/lib/spec/runner/command_line.rb +0 -34
- data/test/lib/spec/runner/context.rb +0 -154
- data/test/lib/spec/runner/context_eval.rb +0 -142
- data/test/lib/spec/runner/context_runner.rb +0 -55
- data/test/lib/spec/runner/drb_command_line.rb +0 -21
- data/test/lib/spec/runner/execution_context.rb +0 -17
- data/test/lib/spec/runner/extensions/kernel.rb +0 -17
- data/test/lib/spec/runner/extensions/object.rb +0 -32
- data/test/lib/spec/runner/formatter.rb +0 -5
- data/test/lib/spec/runner/formatter/base_text_formatter.rb +0 -118
- data/test/lib/spec/runner/formatter/html_formatter.rb +0 -219
- data/test/lib/spec/runner/formatter/progress_bar_formatter.rb +0 -27
- data/test/lib/spec/runner/formatter/rdoc_formatter.rb +0 -22
- data/test/lib/spec/runner/formatter/specdoc_formatter.rb +0 -23
- data/test/lib/spec/runner/heckle_runner.rb +0 -71
- data/test/lib/spec/runner/heckle_runner_win.rb +0 -10
- data/test/lib/spec/runner/option_parser.rb +0 -224
- data/test/lib/spec/runner/reporter.rb +0 -105
- data/test/lib/spec/runner/spec_matcher.rb +0 -25
- data/test/lib/spec/runner/spec_parser.rb +0 -41
- data/test/lib/spec/runner/spec_should_raise_handler.rb +0 -74
- data/test/lib/spec/runner/specification.rb +0 -114
- data/test/lib/spec/translator.rb +0 -87
- data/test/lib/spec/version.rb +0 -30
- data/test/network/handler/facts.rb +0 -112
- data/test/other/pgraph.rb +0 -290
- data/test/other/relationship.rb +0 -74
- data/test/puppet/modules.rb +0 -59
- data/test/rails/collection.rb +0 -247
- data/test/rails/interpreter.rb +0 -91
- data/test/ral/providers/mount/parsed.rb +0 -251
- data/test/ral/providers/service.rb +0 -235
- data/test/ral/types/component.rb +0 -113
- data/test/ral/types/interface.rb +0 -40
- data/test/ral/types/mount.rb +0 -362
- data/test/ral/types/package.rb +0 -154
- data/test/ral/types/schedule.rb +0 -357
- data/test/tagging/tagging.rb +0 -170
- data/test/util/fact_store.rb +0 -67
- data/test/util/graph.rb +0 -108
@@ -1,5 +1,7 @@
|
|
1
1
|
module Puppet
|
2
2
|
Puppet.type(:file).newproperty(:content) do
|
3
|
+
include Puppet::Util::Diff
|
4
|
+
|
3
5
|
desc "Specify the contents of a file as a string. Newlines, tabs, and
|
4
6
|
spaces can be specified using the escaped syntax (e.g., \\n for a
|
5
7
|
newline). The primary purpose of this parameter is to provide a
|
@@ -30,6 +32,21 @@ module Puppet
|
|
30
32
|
end
|
31
33
|
end
|
32
34
|
|
35
|
+
# Override this method to provide diffs if asked for.
|
36
|
+
# Also, fix #872: when content is used, and replace is true, the file
|
37
|
+
# should be insync when it exists
|
38
|
+
def insync?(is)
|
39
|
+
if ! @resource.replace? and File.exists?(@resource[:path])
|
40
|
+
return true
|
41
|
+
end
|
42
|
+
|
43
|
+
result = super
|
44
|
+
if ! result and Puppet[:show_diff] and File.exists?(@resource[:path])
|
45
|
+
string_file_diff(@resource[:path], self.should)
|
46
|
+
end
|
47
|
+
return result
|
48
|
+
end
|
49
|
+
|
33
50
|
# We should probably take advantage of existing md5 sums if they're there,
|
34
51
|
# but I really don't feel like dealing with the complexity right now.
|
35
52
|
def retrieve
|
@@ -62,11 +79,9 @@ module Puppet
|
|
62
79
|
def sync
|
63
80
|
return_event = @resource.stat ? :file_changed : :file_created
|
64
81
|
|
65
|
-
@resource.write { |f| f.print self.should }
|
82
|
+
@resource.write(:content) { |f| f.print self.should }
|
66
83
|
|
67
84
|
return return_event
|
68
85
|
end
|
69
86
|
end
|
70
87
|
end
|
71
|
-
|
72
|
-
# $Id: content.rb 2500 2007-05-09 22:05:32Z luke $
|
@@ -2,11 +2,11 @@ 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* (
|
6
|
-
|
7
|
-
file
|
8
|
-
|
9
|
-
|
5
|
+
Possible values are *absent*, *present* (will match any form of
|
6
|
+
file existence, and if the file is missing will create an empty
|
7
|
+
file), *file*, and *directory*. Specifying ``absent`` will delete
|
8
|
+
the file, although currently this will not recursively delete
|
9
|
+
directories.
|
10
10
|
|
11
11
|
Anything other than those values will be considered to be a symlink.
|
12
12
|
For instance, the following text creates a link::
|
@@ -172,4 +172,3 @@ module Puppet
|
|
172
172
|
end
|
173
173
|
end
|
174
174
|
|
175
|
-
# $Id: ensure.rb 2500 2007-05-09 22:05:32Z luke $
|
@@ -6,6 +6,10 @@ module Puppet
|
|
6
6
|
name or group ID."
|
7
7
|
@event = :file_changed
|
8
8
|
|
9
|
+
validate do |group|
|
10
|
+
raise(Puppet::Error, "Invalid group name '%s'" % group.inspect) unless group and group != ""
|
11
|
+
end
|
12
|
+
|
9
13
|
def id2name(id)
|
10
14
|
if id > 70000
|
11
15
|
return nil
|
@@ -118,4 +122,3 @@ module Puppet
|
|
118
122
|
end
|
119
123
|
end
|
120
124
|
|
121
|
-
# $Id: group.rb 2741 2007-08-03 23:14:32Z lutter $
|
@@ -6,12 +6,9 @@ module Puppet
|
|
6
6
|
@event = :file_changed
|
7
7
|
|
8
8
|
def id2name(id)
|
9
|
-
if id.is_a?(Symbol)
|
10
|
-
|
11
|
-
|
12
|
-
if id > 70000
|
13
|
-
return nil
|
14
|
-
end
|
9
|
+
return id.to_s if id.is_a?(Symbol)
|
10
|
+
return nil if id > Puppet[:maximum_uid].to_i
|
11
|
+
|
15
12
|
begin
|
16
13
|
user = Etc.getpwuid(id)
|
17
14
|
rescue TypeError
|
@@ -19,6 +16,7 @@ module Puppet
|
|
19
16
|
rescue ArgumentError
|
20
17
|
return nil
|
21
18
|
end
|
19
|
+
|
22
20
|
if user.uid == ""
|
23
21
|
return nil
|
24
22
|
else
|
@@ -113,8 +111,8 @@ module Puppet
|
|
113
111
|
# On OS X, files that are owned by -2 get returned as really
|
114
112
|
# large UIDs instead of negative ones. This isn't a Ruby bug,
|
115
113
|
# it's an OS X bug, since it shows up in perl, too.
|
116
|
-
if currentvalue >
|
117
|
-
self.warning "
|
114
|
+
if currentvalue > Puppet[:maximum_uid].to_i
|
115
|
+
self.warning "Apparently using negative UID (%s) on a platform that does not consistently handle them" % currentvalue
|
118
116
|
currentvalue = :silly
|
119
117
|
end
|
120
118
|
|
@@ -167,4 +165,3 @@ module Puppet
|
|
167
165
|
end
|
168
166
|
end
|
169
167
|
|
170
|
-
# $Id: owner.rb 2501 2007-05-09 23:08:42Z luke $
|
@@ -5,6 +5,7 @@ module Puppet
|
|
5
5
|
# this state, during retrieval, modifies the appropriate other states
|
6
6
|
# so that things get taken care of appropriately.
|
7
7
|
Puppet.type(:file).newproperty(:source) do
|
8
|
+
include Puppet::Util::Diff
|
8
9
|
|
9
10
|
attr_accessor :source, :local
|
10
11
|
desc "Copy a file over the current file. Uses ``checksum`` to
|
@@ -158,7 +159,17 @@ module Puppet
|
|
158
159
|
end
|
159
160
|
# Now, we just check to see if the checksums are the same
|
160
161
|
parentchecksum = @resource.property(:checksum).retrieve
|
161
|
-
|
162
|
+
result = (!parentchecksum.nil? and (parentchecksum == @stats[:checksum]))
|
163
|
+
|
164
|
+
# Diff the contents if they ask it. This is quite annoying -- we need to do this in
|
165
|
+
# 'insync?' because they might be in noop mode, but we don't want to do the file
|
166
|
+
# retrieval twice, so we cache the value annoyingly.
|
167
|
+
if ! result and Puppet[:show_diff] and File.exists?(@resource[:path]) and ! @stats[:_diffed]
|
168
|
+
@stats[:_remote_content] = get_remote_content
|
169
|
+
string_file_diff(@resource[:path], @stats[:_remote_content])
|
170
|
+
@stats[:_diffed] = true
|
171
|
+
end
|
172
|
+
return result
|
162
173
|
end
|
163
174
|
|
164
175
|
def pinparams
|
@@ -236,6 +247,21 @@ module Puppet
|
|
236
247
|
end
|
237
248
|
|
238
249
|
def sync
|
250
|
+
contents = @stats[:_remote_content] || get_remote_content()
|
251
|
+
|
252
|
+
exists = File.exists?(@resource[:path])
|
253
|
+
|
254
|
+
@resource.write(:source) { |f| f.print contents }
|
255
|
+
|
256
|
+
if exists
|
257
|
+
return :file_changed
|
258
|
+
else
|
259
|
+
return :file_created
|
260
|
+
end
|
261
|
+
end
|
262
|
+
|
263
|
+
private
|
264
|
+
def get_remote_content
|
239
265
|
unless @stats[:type] == "file"
|
240
266
|
#if @stats[:type] == "directory"
|
241
267
|
#[@resource.name, @should.inspect]
|
@@ -264,17 +290,8 @@ module Puppet
|
|
264
290
|
self.notice "Could not retrieve contents for %s" %
|
265
291
|
@source
|
266
292
|
end
|
267
|
-
exists = File.exists?(@resource[:path])
|
268
293
|
|
269
|
-
|
270
|
-
|
271
|
-
if exists
|
272
|
-
return :file_changed
|
273
|
-
else
|
274
|
-
return :file_created
|
275
|
-
end
|
294
|
+
return contents
|
276
295
|
end
|
277
296
|
end
|
278
297
|
end
|
279
|
-
|
280
|
-
# $Id: source.rb 2699 2007-07-14 23:04:19Z luke $
|
data/lib/puppet/type/port.rb
CHANGED
data/lib/puppet/type/schedule.rb
CHANGED
@@ -241,7 +241,7 @@ module Puppet
|
|
241
241
|
:daily => :day,
|
242
242
|
:monthly => :month,
|
243
243
|
:weekly => proc do |prev, now|
|
244
|
-
prev.strftime("%U")
|
244
|
+
prev.strftime("%U") != now.strftime("%U")
|
245
245
|
end
|
246
246
|
}
|
247
247
|
|
@@ -256,8 +256,7 @@ module Puppet
|
|
256
256
|
return method.call(previous, now)
|
257
257
|
else
|
258
258
|
# We negate it, because if they're equal we don't run
|
259
|
-
|
260
|
-
return val
|
259
|
+
return now.send(method) != previous.send(method)
|
261
260
|
end
|
262
261
|
when :distance
|
263
262
|
scale = @@scale[value]
|
@@ -266,6 +265,9 @@ module Puppet
|
|
266
265
|
# than the unit of time, we match. We divide the scale
|
267
266
|
# by the repeat, so that we'll repeat that often within
|
268
267
|
# the scale.
|
268
|
+
diff = (now.to_i - previous.to_i)
|
269
|
+
comparison = (scale / @resource[:repeat])
|
270
|
+
|
269
271
|
return (now.to_i - previous.to_i) >= (scale / @resource[:repeat])
|
270
272
|
end
|
271
273
|
end
|
@@ -312,25 +314,27 @@ module Puppet
|
|
312
314
|
end
|
313
315
|
|
314
316
|
def self.mkdefaultschedules
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
317
|
+
return [] if self["puppet"]
|
318
|
+
|
319
|
+
result = []
|
320
|
+
Puppet.debug "Creating default schedules"
|
321
|
+
result << self.create(
|
322
|
+
:name => "puppet",
|
323
|
+
:period => :hourly,
|
324
|
+
:repeat => "2"
|
325
|
+
)
|
324
326
|
|
325
327
|
# And then one for every period
|
326
328
|
@parameters.find { |p| p.name == :period }.values.each { |value|
|
327
329
|
unless self[value.to_s]
|
328
|
-
self.create(
|
330
|
+
result << self.create(
|
329
331
|
:name => value.to_s,
|
330
332
|
:period => value
|
331
333
|
)
|
332
334
|
end
|
333
335
|
}
|
336
|
+
|
337
|
+
result
|
334
338
|
end
|
335
339
|
|
336
340
|
def match?(previous = nil, now = nil)
|
@@ -346,7 +350,6 @@ module Puppet
|
|
346
350
|
self.class.allattrs.each { |param|
|
347
351
|
if @parameters.include?(param) and
|
348
352
|
@parameters[param].respond_to?(:match?)
|
349
|
-
#self.notice "Trying to match %s" % param
|
350
353
|
return false unless @parameters[param].match?(previous, now)
|
351
354
|
end
|
352
355
|
}
|
@@ -358,4 +361,3 @@ module Puppet
|
|
358
361
|
end
|
359
362
|
end
|
360
363
|
|
361
|
-
# $Id: schedule.rb 2665 2007-07-09 21:32:33Z luke $
|
data/lib/puppet/type/service.rb
CHANGED
@@ -28,79 +28,23 @@ module Puppet
|
|
28
28
|
feature :enableable, "The provider can enable and disable the service",
|
29
29
|
:methods => [:disable, :enable, :enabled?]
|
30
30
|
|
31
|
-
|
32
|
-
|
33
|
-
newproperty(:enable) do
|
34
|
-
attr_reader :runlevel
|
31
|
+
newproperty(:enable, :required_features => :enableable) do
|
35
32
|
desc "Whether a service should be enabled to start at boot.
|
36
33
|
This property behaves quite differently depending on the platform;
|
37
34
|
wherever possible, it relies on local tools to enable or disable
|
38
35
|
a given service."
|
39
36
|
|
40
37
|
newvalue(:true, :event => :service_enabled) do
|
41
|
-
unless provider.respond_to?(:enable)
|
42
|
-
raise Puppet::Error, "Service %s does not support enabling" %
|
43
|
-
@resource.name
|
44
|
-
end
|
45
38
|
provider.enable
|
46
39
|
end
|
47
40
|
|
48
41
|
newvalue(:false, :event => :service_disabled) do
|
49
|
-
unless provider.respond_to?(:disable)
|
50
|
-
raise Puppet::Error, "Service %s does not support enabling" %
|
51
|
-
@resource.name
|
52
|
-
end
|
53
42
|
provider.disable
|
54
43
|
end
|
55
44
|
|
56
45
|
def retrieve
|
57
|
-
unless provider.respond_to?(:enabled?)
|
58
|
-
raise Puppet::Error, "Service %s does not support enabling" %
|
59
|
-
@resource.name
|
60
|
-
end
|
61
46
|
return provider.enabled?
|
62
47
|
end
|
63
|
-
|
64
|
-
validate do |value|
|
65
|
-
unless value =~ /^\d+/
|
66
|
-
super(value)
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
munge do |should|
|
71
|
-
@runlevel = nil
|
72
|
-
if should =~ /^\d+$/
|
73
|
-
arity = @resource.method(:enable)
|
74
|
-
if @runlevel and arity != 1
|
75
|
-
raise Puppet::Error,
|
76
|
-
"Services on %s do not accept runlevel specs" %
|
77
|
-
@resource.type
|
78
|
-
elsif arity != 0
|
79
|
-
raise Puppet::Error,
|
80
|
-
"Services on %s must specify runlevels" %
|
81
|
-
@resource.type
|
82
|
-
end
|
83
|
-
@runlevel = should
|
84
|
-
return :true
|
85
|
-
else
|
86
|
-
super(should)
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
|
-
def sync
|
91
|
-
case self.should
|
92
|
-
when :true
|
93
|
-
if @runlevel
|
94
|
-
provider.enable(@runlevel)
|
95
|
-
else
|
96
|
-
provider.enable()
|
97
|
-
end
|
98
|
-
return :service_enabled
|
99
|
-
when :false
|
100
|
-
provider.disable
|
101
|
-
return :service_disabled
|
102
|
-
end
|
103
|
-
end
|
104
48
|
end
|
105
49
|
|
106
50
|
# Handle whether the service should actually be running right now.
|
@@ -124,42 +68,16 @@ module Puppet
|
|
124
68
|
|
125
69
|
def sync
|
126
70
|
event = super()
|
127
|
-
# case self.should
|
128
|
-
# when :running
|
129
|
-
# provider.start
|
130
|
-
# event = :service_started
|
131
|
-
# when :stopped
|
132
|
-
# provider.stop
|
133
|
-
# event = :service_stopped
|
134
|
-
# else
|
135
|
-
# self.debug "Not running '%s' and shouldn't be running" %
|
136
|
-
# self
|
137
|
-
# end
|
138
71
|
|
139
72
|
if property = @resource.property(:enable)
|
140
73
|
val = property.retrieve
|
141
|
-
unless property.insync?(val)
|
142
|
-
property.sync
|
143
|
-
end
|
74
|
+
property.sync unless property.insync?(val)
|
144
75
|
end
|
145
76
|
|
146
77
|
return event
|
147
78
|
end
|
148
79
|
end
|
149
80
|
|
150
|
-
# Produce a warning, rather than just failing.
|
151
|
-
newparam(:running) do
|
152
|
-
desc "A place-holder parameter that wraps ``ensure``, because
|
153
|
-
``running`` is deprecated. You should use ``ensure`` instead
|
154
|
-
of this, but using this will still work, albeit with a
|
155
|
-
warning."
|
156
|
-
|
157
|
-
munge do |value|
|
158
|
-
@resource.warning "'running' is deprecated; please use 'ensure'"
|
159
|
-
@resource[:ensure] = value
|
160
|
-
end
|
161
|
-
end
|
162
|
-
|
163
81
|
newparam(:binary) do
|
164
82
|
desc "The path to the daemon. This is only used for
|
165
83
|
systems that do not support init scripts. This binary will be
|
@@ -178,53 +96,38 @@ module Puppet
|
|
178
96
|
|
179
97
|
If you do not specify anything, then the service name will be
|
180
98
|
looked for in the process table."
|
99
|
+
|
100
|
+
newvalues(:true, :false)
|
181
101
|
end
|
182
102
|
newparam(:name) do
|
183
|
-
desc "The name of the service to run. This name
|
184
|
-
|
185
|
-
is in."
|
103
|
+
desc "The name of the service to run. This name is used to find
|
104
|
+
the service in whatever service subsystem it is in."
|
186
105
|
isnamevar
|
187
106
|
end
|
188
107
|
|
189
|
-
newparam(:type) do
|
190
|
-
desc "Deprecated form of ``provider``."
|
191
|
-
|
192
|
-
munge do |value|
|
193
|
-
warning "'type' is deprecated; use 'provider' instead"
|
194
|
-
@resource[:provider] = value
|
195
|
-
end
|
196
|
-
end
|
197
|
-
|
198
108
|
newparam(:path) do
|
199
|
-
desc "The search path for finding init scripts.
|
109
|
+
desc "The search path for finding init scripts. Multiple values should
|
110
|
+
be separated by colons or provided as an array."
|
200
111
|
|
201
112
|
munge do |value|
|
202
|
-
|
203
|
-
|
204
|
-
paths += value.flatten.collect { |p|
|
205
|
-
p.split(":")
|
206
|
-
}.flatten
|
207
|
-
else
|
208
|
-
paths = value.split(":")
|
209
|
-
end
|
210
|
-
|
211
|
-
paths.each do |path|
|
113
|
+
value = [value] unless value.is_a?(Array)
|
114
|
+
paths = value.flatten.collect { |p| p.split(":") }.flatten.find_all do |path|
|
212
115
|
if FileTest.directory?(path)
|
213
|
-
|
214
|
-
end
|
215
|
-
if FileTest.exists?(path)
|
216
|
-
unless FileTest.directory?(path)
|
217
|
-
@resource.debug "Search path %s is not a directory" %
|
218
|
-
[path]
|
219
|
-
end
|
116
|
+
true
|
220
117
|
else
|
221
|
-
|
118
|
+
if FileTest.exist?(path) and ! FileTest.directory?(path)
|
119
|
+
@resource.debug "Search path %s is not a directory" % [path]
|
120
|
+
else
|
121
|
+
@resource.debug("Search path %s does not exist" % [path])
|
122
|
+
end
|
123
|
+
false
|
222
124
|
end
|
223
|
-
paths.delete(path)
|
224
125
|
end
|
225
126
|
|
226
127
|
paths
|
227
128
|
end
|
129
|
+
|
130
|
+
defaultto { provider.class.defpath if provider.class.respond_to?(:defpath) }
|
228
131
|
end
|
229
132
|
newparam(:pattern) do
|
230
133
|
desc "The pattern to search for in the process table.
|
@@ -238,9 +141,7 @@ module Puppet
|
|
238
141
|
|
239
142
|
The pattern can be a simple string or any legal Ruby pattern."
|
240
143
|
|
241
|
-
defaultto {
|
242
|
-
@resource[:binary] || @resource[:name]
|
243
|
-
}
|
144
|
+
defaultto { @resource[:binary] || @resource[:name] }
|
244
145
|
end
|
245
146
|
newparam(:restart) do
|
246
147
|
desc "Specify a *restart* command manually. If left
|
@@ -268,52 +169,15 @@ module Puppet
|
|
268
169
|
newvalues(:true, :false)
|
269
170
|
end
|
270
171
|
|
271
|
-
# Add a new path to our list of paths that services could be in.
|
272
|
-
def self.newpath(type, path)
|
273
|
-
type = type.intern if type.is_a? String
|
274
|
-
@paths ||= {}
|
275
|
-
@paths[type] ||= []
|
276
|
-
|
277
|
-
unless @paths[type].include? path
|
278
|
-
@paths[type] << path
|
279
|
-
end
|
280
|
-
end
|
281
|
-
|
282
|
-
def self.paths(type)
|
283
|
-
type = type.intern if type.is_a? String
|
284
|
-
@paths ||= {}
|
285
|
-
@paths[type] ||= []
|
286
|
-
|
287
|
-
@paths[type].dup
|
288
|
-
end
|
289
|
-
|
290
|
-
# Initialize the service. This is basically responsible for merging
|
291
|
-
# in the right module.
|
292
|
-
def initialize(hash)
|
293
|
-
super
|
294
|
-
|
295
|
-
# and then see if it needs to be checked
|
296
|
-
if self.respond_to?(:configchk)
|
297
|
-
self.configchk
|
298
|
-
end
|
299
|
-
|
300
|
-
unless @parameters.include?(:ensure) or @parameters.include?(:enable)
|
301
|
-
warning "No properties specified; 'enable' or 'ensure' should be specified"
|
302
|
-
end
|
303
|
-
end
|
304
|
-
|
305
172
|
# Basically just a synonym for restarting. Used to respond
|
306
173
|
# to events.
|
307
174
|
def refresh
|
308
|
-
# Only restart if we're
|
309
|
-
|
310
|
-
if ens = @parameters[:ensure] and ens.should == :running and ens.retrieve == :running
|
175
|
+
# Only restart if we're actually running
|
176
|
+
if (@parameters[:ensure] || newattr(:ensure)).retrieve == :running
|
311
177
|
provider.restart
|
312
178
|
else
|
313
|
-
debug "Skipping restart;
|
179
|
+
debug "Skipping restart; service is not running"
|
314
180
|
end
|
315
181
|
end
|
316
182
|
end
|
317
183
|
end
|
318
|
-
|
319
|
-
# $Id: service.rb 2696 2007-07-14 20:26:31Z luke $
|