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
data/lib/puppet/type/sshkey.rb
CHANGED
data/lib/puppet/type/tidy.rb
CHANGED
@@ -1,7 +1,3 @@
|
|
1
|
-
|
2
|
-
require 'etc'
|
3
|
-
require 'puppet/type/pfile'
|
4
|
-
|
5
1
|
module Puppet
|
6
2
|
newtype(:tidy, Puppet.type(:file)) do
|
7
3
|
@doc = "Remove unwanted files based on specific criteria. Multiple
|
@@ -14,11 +10,17 @@ module Puppet
|
|
14
10
|
isnamevar
|
15
11
|
end
|
16
12
|
|
13
|
+
newparam(:matches) do
|
14
|
+
desc "One or more file glob patterns, which restrict the list of
|
15
|
+
files to be tidied to those whose basenames match at least one
|
16
|
+
of the patterns specified. Multiple patterns can be specified
|
17
|
+
using an array."
|
18
|
+
end
|
19
|
+
|
17
20
|
copyparam(Puppet.type(:file), :backup)
|
18
21
|
|
19
22
|
newproperty(:ensure) do
|
20
23
|
desc "An internal attribute used to determine which files should be removed."
|
21
|
-
require 'etc'
|
22
24
|
|
23
25
|
@nodoc = true
|
24
26
|
|
@@ -47,6 +49,14 @@ module Puppet
|
|
47
49
|
end
|
48
50
|
else
|
49
51
|
@out = []
|
52
|
+
if @resource[:matches]
|
53
|
+
basename = File.basename(@resource[:path])
|
54
|
+
flags = File::FNM_DOTMATCH | File::FNM_PATHNAME
|
55
|
+
unless @resource[:matches].any? {|pattern| File.fnmatch(pattern, basename, flags) }
|
56
|
+
self.debug "No patterns specified match basename, skipping"
|
57
|
+
return true
|
58
|
+
end
|
59
|
+
end
|
50
60
|
TATTRS.each do |param|
|
51
61
|
if property = @resource.property(param)
|
52
62
|
self.debug "No is value for %s", [param] if is[property].nil?
|
@@ -139,7 +149,6 @@ module Puppet
|
|
139
149
|
type = @resource[:type] || :atime
|
140
150
|
end
|
141
151
|
|
142
|
-
#return Integer(Time.now - stat.send(type))
|
143
152
|
return stat.send(type).to_i
|
144
153
|
end
|
145
154
|
|
@@ -292,4 +301,3 @@ module Puppet
|
|
292
301
|
end
|
293
302
|
end
|
294
303
|
|
295
|
-
# $Id: tidy.rb 2647 2007-07-04 22:25:23Z luke $
|
data/lib/puppet/type/user.rb
CHANGED
data/lib/puppet/type/zone.rb
CHANGED
data/lib/puppet/util.rb
CHANGED
@@ -201,7 +201,7 @@ module Util
|
|
201
201
|
raise Puppet::DevError, "Failed to provide level to :benchmark"
|
202
202
|
end
|
203
203
|
|
204
|
-
unless object.respond_to? level
|
204
|
+
unless level == :none or object.respond_to? level
|
205
205
|
raise Puppet::DevError, "Benchmarked object does not respond to %s" % level
|
206
206
|
end
|
207
207
|
|
@@ -461,4 +461,3 @@ require 'puppet/util/logging'
|
|
461
461
|
require 'puppet/util/package'
|
462
462
|
require 'puppet/util/warnings'
|
463
463
|
|
464
|
-
# $Id: util.rb 2717 2007-07-19 20:02:26Z luke $
|
data/lib/puppet/util/autoload.rb
CHANGED
@@ -3,7 +3,7 @@ class Puppet::Util::Autoload
|
|
3
3
|
include Puppet::Util
|
4
4
|
|
5
5
|
@autoloaders = {}
|
6
|
-
@loaded =
|
6
|
+
@loaded = []
|
7
7
|
|
8
8
|
class << self
|
9
9
|
attr_reader :autoloaders
|
@@ -13,12 +13,6 @@ class Puppet::Util::Autoload
|
|
13
13
|
# Send [], []=, and :clear to the @autloaders hash
|
14
14
|
Puppet::Util.classproxy self, :autoloaders, "[]", "[]="
|
15
15
|
|
16
|
-
# Clear the list of autoloaders and loaded files.
|
17
|
-
def self.clear
|
18
|
-
@autoloaders.clear
|
19
|
-
@loaded.clear
|
20
|
-
end
|
21
|
-
|
22
16
|
# List all loaded files.
|
23
17
|
def self.list_loaded
|
24
18
|
@loaded.sort { |a,b| a[0] <=> b[0] }.collect do |path, hash|
|
@@ -27,15 +21,20 @@ class Puppet::Util::Autoload
|
|
27
21
|
end
|
28
22
|
|
29
23
|
# Has a given path been loaded? This is used for testing whether a
|
30
|
-
# changed file should be loaded or just ignored.
|
24
|
+
# changed file should be loaded or just ignored. This is only
|
25
|
+
# used in network/client/master, when downloading plugins, to
|
26
|
+
# see if a given plugin is currently loaded and thus should be
|
27
|
+
# reloaded.
|
31
28
|
def self.loaded?(path)
|
32
29
|
path = path.to_s.sub(/\.rb$/, '')
|
33
|
-
@loaded
|
30
|
+
@loaded.include?(path)
|
34
31
|
end
|
35
32
|
|
36
|
-
# Save the fact that a given path has been loaded
|
37
|
-
|
38
|
-
|
33
|
+
# Save the fact that a given path has been loaded. This is so
|
34
|
+
# we can load downloaded plugins if they've already been loaded
|
35
|
+
# into memory.
|
36
|
+
def self.loaded(file)
|
37
|
+
@loaded << file unless @loaded.include?(file)
|
39
38
|
end
|
40
39
|
|
41
40
|
attr_accessor :object, :path, :objwarn, :wrap
|
@@ -94,7 +93,7 @@ class Puppet::Util::Autoload
|
|
94
93
|
# Mark the named object as loaded. Note that this supports unqualified
|
95
94
|
# queries, while we store the result as a qualified query in the class.
|
96
95
|
def loaded(name, file)
|
97
|
-
self.class.loaded(File.join(@path, name.to_s)
|
96
|
+
self.class.loaded(File.join(@path, name.to_s))
|
98
97
|
end
|
99
98
|
|
100
99
|
# Indicate whether the specfied plugin has been loaded.
|
@@ -108,16 +107,11 @@ class Puppet::Util::Autoload
|
|
108
107
|
# Load every instance of everything we can find.
|
109
108
|
eachdir do |dir|
|
110
109
|
Dir.glob("#{dir}/*.rb").each do |file|
|
111
|
-
# Load here, rather than require, so that facts
|
112
|
-
# can be reloaded. This has some short-comings, I
|
113
|
-
# believe, but it works as long as real classes
|
114
|
-
# aren't used.
|
115
110
|
name = File.basename(file).sub(".rb", '').intern
|
116
111
|
next if loaded?(name)
|
117
|
-
|
118
|
-
filepath = File.join(@path, name.to_s + ".rb")
|
112
|
+
rubypath = File.join(@path, name.to_s)
|
119
113
|
begin
|
120
|
-
Kernel.require
|
114
|
+
Kernel.require rubypath
|
121
115
|
loaded(name, file)
|
122
116
|
rescue => detail
|
123
117
|
if Puppet[:trace]
|
@@ -141,8 +135,12 @@ class Puppet::Util::Autoload
|
|
141
135
|
|
142
136
|
# The list of directories to search through for loadable plugins.
|
143
137
|
def searchpath
|
144
|
-
|
138
|
+
# JJM: Search for optional lib directories in each module bundle.
|
139
|
+
module_lib_dirs = Puppet[:modulepath].split(":").collect do |d|
|
140
|
+
Dir.glob("%s/*/lib" % d).select do |f|
|
141
|
+
FileTest.directory?(f)
|
142
|
+
end
|
143
|
+
end.flatten
|
144
|
+
[module_lib_dirs, Puppet[:libdir], $:].flatten
|
145
145
|
end
|
146
146
|
end
|
147
|
-
|
148
|
-
# $Id: autoload.rb 2668 2007-07-10 04:00:28Z luke $
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Puppet::Util::Checksums
|
2
|
+
def md5(content)
|
3
|
+
require 'digest/md5'
|
4
|
+
Digest::MD5.hexdigest(content)
|
5
|
+
end
|
6
|
+
|
7
|
+
def md5_file(filename)
|
8
|
+
require 'digest/md5'
|
9
|
+
|
10
|
+
incr_digest = Digest::MD5.new()
|
11
|
+
File.open(filename, 'r') do |file|
|
12
|
+
file.each_line do |line|
|
13
|
+
incr_digest << line
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
return incr_digest.hexdigest
|
18
|
+
end
|
19
|
+
|
20
|
+
def sha1(content)
|
21
|
+
require 'digest/sha1'
|
22
|
+
Digest::SHA1.hexdigest(content)
|
23
|
+
end
|
24
|
+
|
25
|
+
def sha1_file(filename)
|
26
|
+
require 'digest/sha1'
|
27
|
+
|
28
|
+
incr_digest = Digest::SHA1.new()
|
29
|
+
File.open(filename, 'r') do |file|
|
30
|
+
file.each_line do |line|
|
31
|
+
incr_digest << line
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
return incr_digest.hexdigest
|
36
|
+
end
|
37
|
+
end
|
data/lib/puppet/util/classgen.rb
CHANGED
@@ -0,0 +1,71 @@
|
|
1
|
+
# Provide a diff between two strings.
|
2
|
+
module Puppet::Util::Diff
|
3
|
+
include Puppet::Util
|
4
|
+
require 'tempfile'
|
5
|
+
|
6
|
+
def diff(old, new)
|
7
|
+
command = [Puppet[:diff]]
|
8
|
+
if args = Puppet[:diff_args] and args != ""
|
9
|
+
command << args
|
10
|
+
end
|
11
|
+
command << old << new
|
12
|
+
execute(command, :failonfail => false)
|
13
|
+
end
|
14
|
+
|
15
|
+
module_function :diff
|
16
|
+
|
17
|
+
# return diff string of two input strings
|
18
|
+
# format defaults to unified
|
19
|
+
# context defaults to 3 lines
|
20
|
+
def lcs_diff(data_old, data_new, format=:unified, context_lines=3)
|
21
|
+
unless Puppet.features.diff?
|
22
|
+
Puppet.warning "Cannot provide diff without the diff/lcs Ruby library"
|
23
|
+
return ""
|
24
|
+
end
|
25
|
+
data_old = data_old.split(/\n/).map! { |e| e.chomp }
|
26
|
+
data_new = data_new.split(/\n/).map! { |e| e.chomp }
|
27
|
+
|
28
|
+
output = ""
|
29
|
+
|
30
|
+
diffs = Diff::LCS.diff(data_old, data_new)
|
31
|
+
return output if diffs.empty?
|
32
|
+
|
33
|
+
oldhunk = hunk = nil
|
34
|
+
file_length_difference = 0
|
35
|
+
|
36
|
+
diffs.each do |piece|
|
37
|
+
begin
|
38
|
+
hunk = Diff::LCS::Hunk.new(data_old, data_new, piece,
|
39
|
+
context_lines,
|
40
|
+
file_length_difference)
|
41
|
+
file_length_difference = hunk.file_length_difference
|
42
|
+
next unless oldhunk
|
43
|
+
# Hunks may overlap, which is why we need to be careful when our
|
44
|
+
# diff includes lines of context. Otherwise, we might print
|
45
|
+
# redundant lines.
|
46
|
+
if (context_lines > 0) and hunk.overlaps?(oldhunk)
|
47
|
+
hunk.unshift(oldhunk)
|
48
|
+
else
|
49
|
+
output << oldhunk.diff(format)
|
50
|
+
end
|
51
|
+
ensure
|
52
|
+
oldhunk = hunk
|
53
|
+
output << "\n"
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
# Handle the last remaining hunk
|
58
|
+
output << oldhunk.diff(format) << "\n"
|
59
|
+
end
|
60
|
+
|
61
|
+
def string_file_diff(path, string)
|
62
|
+
require 'tempfile'
|
63
|
+
tempfile = Tempfile.new("puppet-diffing")
|
64
|
+
tempfile.open
|
65
|
+
tempfile.print string
|
66
|
+
tempfile.close
|
67
|
+
print diff(path, tempfile.path)
|
68
|
+
tempfile.delete
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
data/lib/puppet/util/docs.rb
CHANGED
@@ -14,9 +14,11 @@ module Puppet::Util::Docs
|
|
14
14
|
meta_def method, &block
|
15
15
|
end
|
16
16
|
|
17
|
+
attr_writer :doc
|
18
|
+
|
17
19
|
# Generate the full doc string.
|
18
20
|
def doc
|
19
|
-
extra = methods.find_all { |m| m.to_s =~ /^dochook_.+/ }.collect { |m|
|
21
|
+
extra = methods.find_all { |m| m.to_s =~ /^dochook_.+/ }.sort.collect { |m|
|
20
22
|
self.send(m)
|
21
23
|
}.join(" ")
|
22
24
|
|
@@ -67,6 +69,11 @@ module Puppet::Util::Docs
|
|
67
69
|
str + "\n"
|
68
70
|
end
|
69
71
|
|
72
|
+
attr_reader :nodoc
|
73
|
+
def nodoc?
|
74
|
+
nodoc
|
75
|
+
end
|
76
|
+
|
70
77
|
# Pad a field with spaces
|
71
78
|
def pad(value, length)
|
72
79
|
value.to_s + (" " * (length - value.to_s.length))
|
@@ -101,4 +108,3 @@ module Puppet::Util::Docs
|
|
101
108
|
module_function :scrub
|
102
109
|
end
|
103
110
|
|
104
|
-
# $Id: docs.rb 2408 2007-04-24 02:41:16Z luke $
|
data/lib/puppet/util/errors.rb
CHANGED
data/lib/puppet/util/feature.rb
CHANGED
@@ -16,8 +16,7 @@ class Puppet::Util::Feature
|
|
16
16
|
if self.class.respond_to?(method)
|
17
17
|
raise ArgumentError, "Feature %s is already defined" % name
|
18
18
|
end
|
19
|
-
|
20
|
-
result = true
|
19
|
+
|
21
20
|
if block_given?
|
22
21
|
begin
|
23
22
|
result = yield
|
@@ -25,33 +24,21 @@ class Puppet::Util::Feature
|
|
25
24
|
warn "Failed to load feature test for %s: %s" % [name, detail]
|
26
25
|
result = false
|
27
26
|
end
|
28
|
-
|
29
|
-
|
30
|
-
if ary = options[:libs]
|
31
|
-
ary = [ary] unless ary.is_a?(Array)
|
32
|
-
|
33
|
-
ary.each do |lib|
|
34
|
-
unless lib.is_a?(String)
|
35
|
-
raise ArgumentError, "Libraries must be passed as strings not %s" % lib.class
|
36
|
-
end
|
37
|
-
|
38
|
-
begin
|
39
|
-
require lib
|
40
|
-
rescue Exception
|
41
|
-
Puppet.debug "Failed to load library '%s' for feature '%s'" % [lib, name]
|
42
|
-
result = false
|
43
|
-
end
|
44
|
-
end
|
27
|
+
@results[name] = result
|
45
28
|
end
|
46
29
|
|
47
30
|
meta_def(method) do
|
48
|
-
|
31
|
+
unless @results.include?(name)
|
32
|
+
@results[name] = test(name, options)
|
33
|
+
end
|
34
|
+
@results[name]
|
49
35
|
end
|
50
36
|
end
|
51
37
|
|
52
38
|
# Create a new feature collection.
|
53
39
|
def initialize(path)
|
54
40
|
@path = path
|
41
|
+
@results = {}
|
55
42
|
@loader = Puppet::Util::Autoload.new(self, @path)
|
56
43
|
end
|
57
44
|
|
@@ -71,6 +58,28 @@ class Puppet::Util::Feature
|
|
71
58
|
return false
|
72
59
|
end
|
73
60
|
end
|
74
|
-
end
|
75
61
|
|
76
|
-
#
|
62
|
+
# Actually test whether the feature is present. We only want to test when
|
63
|
+
# someone asks for the feature, so we don't unnecessarily load
|
64
|
+
# files.
|
65
|
+
def test(name, options)
|
66
|
+
result = true
|
67
|
+
if ary = options[:libs]
|
68
|
+
ary = [ary] unless ary.is_a?(Array)
|
69
|
+
|
70
|
+
ary.each do |lib|
|
71
|
+
unless lib.is_a?(String)
|
72
|
+
raise ArgumentError, "Libraries must be passed as strings not %s" % lib.class
|
73
|
+
end
|
74
|
+
|
75
|
+
begin
|
76
|
+
require lib
|
77
|
+
rescue Exception
|
78
|
+
Puppet.debug "Failed to load library '%s' for feature '%s'" % [lib, name]
|
79
|
+
result = false
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
result
|
84
|
+
end
|
85
|
+
end
|
@@ -268,7 +268,9 @@ module Puppet::Util::FileParsing
|
|
268
268
|
|
269
269
|
# Define a new type of record. These lines get split into hashes. Valid
|
270
270
|
# options are:
|
271
|
-
# * <tt>:absent</tt>: What to use when a field is
|
271
|
+
# * <tt>:absent</tt>: What to use as value within a line, when a field is
|
272
|
+
# absent. Note that in the record object, the literal :absent symbol is
|
273
|
+
# used, and not this value. Defaults to "".
|
272
274
|
# * <tt>:fields</tt>: The list of fields, as an array. By default, all
|
273
275
|
# fields are considered required.
|
274
276
|
# * <tt>:joiner</tt>: How to join fields together. Defaults to '\t'.
|
@@ -394,4 +396,3 @@ module Puppet::Util::FileParsing
|
|
394
396
|
end
|
395
397
|
end
|
396
398
|
|
397
|
-
# $Id: fileparsing.rb 2750 2007-08-06 17:59:37Z luke $
|
data/lib/puppet/util/filetype.rb
CHANGED
@@ -78,6 +78,7 @@ class Puppet::Util::FileType
|
|
78
78
|
end
|
79
79
|
|
80
80
|
def initialize(path)
|
81
|
+
raise ArgumentError.new("Path is nil") if path.nil?
|
81
82
|
@path = path
|
82
83
|
end
|
83
84
|
|
@@ -197,26 +198,44 @@ class Puppet::Util::FileType
|
|
197
198
|
newfiletype(:suntab) do
|
198
199
|
# Read a specific @path's cron tab.
|
199
200
|
def read
|
200
|
-
|
201
|
-
%
|
202
|
-
|
201
|
+
begin
|
202
|
+
output = Puppet::Util.execute(%w{crontab -l}, :uid => @path)
|
203
|
+
return "" if output.include?("can't open your crontab")
|
204
|
+
return output
|
205
|
+
rescue
|
206
|
+
# If there's a failure, treat it like an empty file.
|
207
|
+
return ""
|
208
|
+
end
|
203
209
|
end
|
204
210
|
|
205
211
|
# Remove a specific @path's cron tab.
|
206
212
|
def remove
|
207
|
-
|
208
|
-
%
|
209
|
-
|
213
|
+
begin
|
214
|
+
Puppet::Util.execute(%w{crontab -r}, :uid => @path)
|
215
|
+
rescue => detail
|
216
|
+
raise Puppet::Error, "Could not remove crontab for %s: %s" % [@path, detail]
|
217
|
+
end
|
210
218
|
end
|
211
219
|
|
212
220
|
# Overwrite a specific @path's cron tab; must be passed the @path name
|
213
221
|
# and the text with which to create the cron tab.
|
214
222
|
def write(text)
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
223
|
+
puts text
|
224
|
+
require "tempfile"
|
225
|
+
output_file = Tempfile.new("puppet")
|
226
|
+
fh = output_file.open
|
227
|
+
fh.print text
|
228
|
+
fh.close
|
229
|
+
|
230
|
+
# We have to chown the stupid file to the user.
|
231
|
+
File.chown(Puppet::Util.uid(@path), nil, output_file.path)
|
232
|
+
|
233
|
+
begin
|
234
|
+
Puppet::Util.execute(["crontab", output_file.path], :uid => @path)
|
235
|
+
rescue => detail
|
236
|
+
raise Puppet::Error, "Could not write crontab for %s: %s" % [@path, detail]
|
237
|
+
end
|
238
|
+
output_file.delete
|
220
239
|
end
|
221
240
|
end
|
222
241
|
|
@@ -308,4 +327,3 @@ class Puppet::Util::FileType
|
|
308
327
|
end
|
309
328
|
end
|
310
329
|
|
311
|
-
# $Id: filetype.rb 2679 2007-07-11 20:23:49Z luke $
|