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
@@ -7,16 +7,16 @@ class Puppet::Parser::TemplateWrapper
|
|
7
7
|
|
8
8
|
def initialize(scope, file)
|
9
9
|
@scope = scope
|
10
|
-
@file = Puppet::Module::find_template(file)
|
10
|
+
@file = Puppet::Module::find_template(file, @scope.compile.environment)
|
11
11
|
|
12
12
|
unless FileTest.exists?(@file)
|
13
13
|
raise Puppet::ParseError,
|
14
14
|
"Could not find template %s" % file
|
15
15
|
end
|
16
16
|
|
17
|
-
# We'll only ever not have
|
18
|
-
if @scope.
|
19
|
-
@scope.
|
17
|
+
# We'll only ever not have a parser in testing, but, eh.
|
18
|
+
if @scope.parser
|
19
|
+
@scope.parser.watch_file(@file)
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
@@ -51,4 +51,3 @@ class Puppet::Parser::TemplateWrapper
|
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
54
|
-
# $Id: templatewrapper.rb 2277 2007-03-09 00:48:28Z lutter $
|
data/lib/puppet/pgraph.rb
CHANGED
@@ -4,11 +4,13 @@
|
|
4
4
|
require 'puppet/external/gratr/digraph'
|
5
5
|
require 'puppet/external/gratr/import'
|
6
6
|
require 'puppet/external/gratr/dot'
|
7
|
+
|
7
8
|
require 'puppet/relationship'
|
9
|
+
require 'puppet/simple_graph'
|
8
10
|
|
9
11
|
# This class subclasses a graph class in order to handle relationships
|
10
12
|
# among resources.
|
11
|
-
class Puppet::PGraph <
|
13
|
+
class Puppet::PGraph < Puppet::SimpleGraph
|
12
14
|
# This is the type used for splicing.
|
13
15
|
attr_accessor :container_type
|
14
16
|
|
@@ -23,13 +25,6 @@ class Puppet::PGraph < GRATR::Digraph
|
|
23
25
|
@reversal = nil
|
24
26
|
super
|
25
27
|
end
|
26
|
-
|
27
|
-
def clear
|
28
|
-
@vertex_dict.clear
|
29
|
-
if defined? @edge_number
|
30
|
-
@edge_number.clear
|
31
|
-
end
|
32
|
-
end
|
33
28
|
|
34
29
|
# Make sure whichever edge has a label keeps the label
|
35
30
|
def copy_label(source, target, label)
|
@@ -84,7 +79,7 @@ class Puppet::PGraph < GRATR::Digraph
|
|
84
79
|
def matching_edges(events, base = nil)
|
85
80
|
events.collect do |event|
|
86
81
|
source = base || event.source
|
87
|
-
|
82
|
+
|
88
83
|
unless vertex?(source)
|
89
84
|
Puppet.warning "Got an event from invalid vertex %s" % source.ref
|
90
85
|
next
|
@@ -95,7 +90,7 @@ class Puppet::PGraph < GRATR::Digraph
|
|
95
90
|
adjacent(source, :direction => :out, :type => :edges).find_all do |edge|
|
96
91
|
edge.match?(event.event)
|
97
92
|
end
|
98
|
-
end.flatten
|
93
|
+
end.compact.flatten
|
99
94
|
end
|
100
95
|
|
101
96
|
# Take container information from another graph and use it
|
@@ -149,7 +144,7 @@ class Puppet::PGraph < GRATR::Digraph
|
|
149
144
|
# Now get rid of the edge, so remove_vertex! works correctly.
|
150
145
|
remove_edge!(edge)
|
151
146
|
Puppet.debug "%s: %s => %s: %s" % [container,
|
152
|
-
edge.source, edge.target, edge?(edge)]
|
147
|
+
edge.source, edge.target, edge?(edge.source, edge.target)]
|
153
148
|
end
|
154
149
|
end
|
155
150
|
remove_vertex!(container)
|
@@ -190,6 +185,10 @@ class Puppet::PGraph < GRATR::Digraph
|
|
190
185
|
return result
|
191
186
|
end
|
192
187
|
|
188
|
+
def to_yaml_properties
|
189
|
+
instance_variables
|
190
|
+
end
|
191
|
+
|
193
192
|
# A different way of walking a tree, and a much faster way than the
|
194
193
|
# one that comes with GRATR.
|
195
194
|
def tree_from_vertex2(start, direction = :out)
|
@@ -209,5 +208,3 @@ class Puppet::PGraph < GRATR::Digraph
|
|
209
208
|
end
|
210
209
|
end
|
211
210
|
end
|
212
|
-
|
213
|
-
# $Id: pgraph.rb 2521 2007-05-17 20:57:24Z luke $
|
data/lib/puppet/property.rb
CHANGED
@@ -56,8 +56,7 @@ class Property < Puppet::Parameter
|
|
56
56
|
|
57
57
|
# Look up a value's name, so we can find options and such.
|
58
58
|
def self.value_name(value)
|
59
|
-
name = symbolize(value)
|
60
|
-
if @parametervalues[name]
|
59
|
+
if value != '' and name = symbolize(value) and @parametervalues.include?(name)
|
61
60
|
return name
|
62
61
|
elsif ary = self.match?(value)
|
63
62
|
return ary[0]
|
@@ -68,9 +67,7 @@ class Property < Puppet::Parameter
|
|
68
67
|
|
69
68
|
# Retrieve an option set when a value was defined.
|
70
69
|
def self.value_option(name, option)
|
71
|
-
|
72
|
-
option = symbolize(option)
|
73
|
-
end
|
70
|
+
option = option.to_sym
|
74
71
|
if hash = @parameteroptions[name]
|
75
72
|
hash[option]
|
76
73
|
else
|
@@ -161,7 +158,7 @@ class Property < Puppet::Parameter
|
|
161
158
|
def call_valuemethod(name, value)
|
162
159
|
event = nil
|
163
160
|
if method = self.class.value_option(name, :method) and self.respond_to?(method)
|
164
|
-
self.debug "setting %s (currently %s)" % [value, self.retrieve]
|
161
|
+
#self.debug "setting %s (currently %s)" % [value, self.retrieve]
|
165
162
|
|
166
163
|
begin
|
167
164
|
event = self.send(method)
|
@@ -210,28 +207,28 @@ class Property < Puppet::Parameter
|
|
210
207
|
# Figure out which event to return.
|
211
208
|
def event(name, event = nil)
|
212
209
|
if value_event = self.class.value_option(name, :event)
|
213
|
-
return value_event
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
return event
|
220
|
-
end
|
210
|
+
return value_event
|
211
|
+
end
|
212
|
+
|
213
|
+
if event and event.is_a?(Symbol)
|
214
|
+
if event == :nochange
|
215
|
+
return nil
|
221
216
|
else
|
222
|
-
|
223
|
-
event = case self.should
|
224
|
-
when :present: (@resource.class.name.to_s + "_created").intern
|
225
|
-
when :absent: (@resource.class.name.to_s + "_removed").intern
|
226
|
-
else
|
227
|
-
(@resource.class.name.to_s + "_changed").intern
|
228
|
-
end
|
229
|
-
else
|
230
|
-
event = (@resource.class.name.to_s + "_changed").intern
|
231
|
-
end
|
217
|
+
return event
|
232
218
|
end
|
233
219
|
end
|
234
220
|
|
221
|
+
if self.class.name == :ensure
|
222
|
+
event = case self.should
|
223
|
+
when :present: (@resource.class.name.to_s + "_created").intern
|
224
|
+
when :absent: (@resource.class.name.to_s + "_removed").intern
|
225
|
+
else
|
226
|
+
(@resource.class.name.to_s + "_changed").intern
|
227
|
+
end
|
228
|
+
else
|
229
|
+
event = (@resource.class.name.to_s + "_changed").intern
|
230
|
+
end
|
231
|
+
|
235
232
|
return event
|
236
233
|
end
|
237
234
|
|
@@ -298,8 +295,7 @@ class Property < Puppet::Parameter
|
|
298
295
|
# Send a log message.
|
299
296
|
def log(msg)
|
300
297
|
unless @resource[:loglevel]
|
301
|
-
self.devfail "Parent %s has no loglevel" %
|
302
|
-
@resource.name
|
298
|
+
self.devfail "Parent %s has no loglevel" % @resource.name
|
303
299
|
end
|
304
300
|
Puppet::Util::Log.create(
|
305
301
|
:level => @resource[:loglevel],
|
@@ -339,10 +335,7 @@ class Property < Puppet::Parameter
|
|
339
335
|
# provider. In other words, if the property name is 'gid', we'll call
|
340
336
|
# 'provider.gid' to retrieve the current value.
|
341
337
|
def retrieve
|
342
|
-
|
343
|
-
# puts "IS is: " + is.to_s
|
344
|
-
# puts "and its an array!!!" if is.is_a? Array
|
345
|
-
return is
|
338
|
+
provider.send(self.class.name)
|
346
339
|
end
|
347
340
|
|
348
341
|
# Set our value, using the provider, an associated block, or both.
|
@@ -421,17 +414,9 @@ class Property < Puppet::Parameter
|
|
421
414
|
end
|
422
415
|
end
|
423
416
|
|
424
|
-
# The default 'sync' method only selects among a list of registered
|
425
|
-
# values.
|
417
|
+
# The default 'sync' method only selects among a list of registered # values.
|
426
418
|
def sync
|
427
|
-
|
428
|
-
# self.info "already in sync"
|
429
|
-
# return nil
|
430
|
-
# end
|
431
|
-
unless self.class.values
|
432
|
-
self.devfail "No values defined for %s" %
|
433
|
-
self.class.name
|
434
|
-
end
|
419
|
+
self.devfail("No values defined for %s" % self.class.name) unless self.class.values
|
435
420
|
|
436
421
|
if value = self.should
|
437
422
|
set(value)
|
@@ -557,4 +542,3 @@ class Property < Puppet::Parameter
|
|
557
542
|
end
|
558
543
|
end
|
559
544
|
|
560
|
-
# $Id: property.rb 2678 2007-07-11 19:30:42Z luke $
|
data/lib/puppet/provider.rb
CHANGED
@@ -64,6 +64,11 @@ class Puppet::Provider
|
|
64
64
|
end
|
65
65
|
end
|
66
66
|
|
67
|
+
# Is the provided feature a declared feature?
|
68
|
+
def self.declared_feature?(name)
|
69
|
+
defined?(@declared_features) and @declared_features.include?(name)
|
70
|
+
end
|
71
|
+
|
67
72
|
# Does this implementation match all of the default requirements? If
|
68
73
|
# defaults are empty, we return false.
|
69
74
|
def self.default?
|
@@ -284,16 +289,16 @@ class Puppet::Provider
|
|
284
289
|
end
|
285
290
|
end
|
286
291
|
|
287
|
-
def self.to_s
|
288
|
-
unless defined? @str
|
289
|
-
if self.resource_type
|
290
|
-
@str = "%s provider %s" % [resource_type.name, self.name]
|
291
|
-
else
|
292
|
-
@str = "unattached provider %s" % [self.name]
|
293
|
-
end
|
294
|
-
end
|
295
|
-
@str
|
296
|
-
end
|
292
|
+
# def self.to_s
|
293
|
+
# unless defined? @str
|
294
|
+
# if self.resource_type
|
295
|
+
# @str = "%s provider %s" % [resource_type.name, self.name]
|
296
|
+
# else
|
297
|
+
# @str = "unattached provider %s" % [self.name]
|
298
|
+
# end
|
299
|
+
# end
|
300
|
+
# @str
|
301
|
+
# end
|
297
302
|
|
298
303
|
dochook(:defaults) do
|
299
304
|
if @defaults.length > 0
|
@@ -372,4 +377,3 @@ class Puppet::Provider
|
|
372
377
|
end
|
373
378
|
end
|
374
379
|
|
375
|
-
# $Id: provider.rb 2753 2007-08-07 02:38:45Z luke $
|
@@ -102,15 +102,15 @@ Puppet::Type.type(:cron).provide(:crontab,
|
|
102
102
|
next if field == :command
|
103
103
|
next if field == :special
|
104
104
|
if record[field] and ! resource.value(field)
|
105
|
-
Puppet.info "Cron is missing %s: %s and %s" %
|
106
|
-
|
105
|
+
#Puppet.info "Cron is missing %s: %s and %s" %
|
106
|
+
# [field, record[field].inspect, resource.value(field).inspect]
|
107
107
|
matched = false
|
108
108
|
break
|
109
109
|
end
|
110
110
|
|
111
111
|
if ! record[field] and resource.value(field)
|
112
|
-
Puppet.info "Hash is missing %s: %s and %s" %
|
113
|
-
|
112
|
+
#Puppet.info "Hash is missing %s: %s and %s" %
|
113
|
+
# [field, resource.value(field).inspect, record[field].inspect]
|
114
114
|
matched = false
|
115
115
|
break
|
116
116
|
end
|
@@ -120,8 +120,8 @@ Puppet::Type.type(:cron).provide(:crontab,
|
|
120
120
|
|
121
121
|
# Everything should be in the form of arrays, not the normal text.
|
122
122
|
next if (record[field] == resource.value(field))
|
123
|
-
Puppet.info "Did not match %s: %s vs %s" %
|
124
|
-
|
123
|
+
#Puppet.info "Did not match %s: %s vs %s" %
|
124
|
+
# [field, resource.value(field).inspect, record[field].inspect]
|
125
125
|
matched = false
|
126
126
|
break
|
127
127
|
end
|
@@ -198,4 +198,3 @@ Puppet::Type.type(:cron).provide(:crontab,
|
|
198
198
|
end
|
199
199
|
end
|
200
200
|
|
201
|
-
# $Id: crontab.rb 2750 2007-08-06 17:59:37Z luke $
|
@@ -2,6 +2,9 @@ require 'puppet/provider/parsedfile'
|
|
2
2
|
require 'erb'
|
3
3
|
|
4
4
|
Puppet::Type.type(:interface).provide(:redhat) do
|
5
|
+
desc "Manage network interfaces on Red Hat operating systems. This provider
|
6
|
+
parses and generates configuration files in ``/etc/sysconfig/network-scripts``."
|
7
|
+
|
5
8
|
INTERFACE_DIR = "/etc/sysconfig/network-scripts"
|
6
9
|
confine :exists => INTERFACE_DIR
|
7
10
|
defaultfor :operatingsystem => [:fedora, :centos, :redhat]
|
@@ -9,31 +12,42 @@ Puppet::Type.type(:interface).provide(:redhat) do
|
|
9
12
|
# Create the setter/gettor methods to match the model.
|
10
13
|
mk_resource_methods
|
11
14
|
|
12
|
-
|
15
|
+
@templates = {}
|
16
|
+
|
17
|
+
# Register a template.
|
18
|
+
def self.register_template(name, string)
|
19
|
+
@templates[name] = ERB.new(string)
|
20
|
+
end
|
21
|
+
|
22
|
+
# Retrieve a template by name.
|
23
|
+
def self.template(name)
|
24
|
+
@templates[name]
|
25
|
+
end
|
26
|
+
|
27
|
+
register_template :alias, <<-ALIAS
|
13
28
|
DEVICE=<%= self.device %>
|
14
29
|
ONBOOT=<%= self.on_boot %>
|
15
|
-
BOOTPROTO
|
30
|
+
BOOTPROTO=none
|
16
31
|
IPADDR=<%= self.name %>
|
17
32
|
NETMASK=<%= self.netmask %>
|
18
33
|
BROADCAST=
|
19
34
|
ALIAS
|
20
35
|
|
21
36
|
|
22
|
-
|
37
|
+
register_template :normal, <<-LOOPBACKDUMMY
|
23
38
|
DEVICE=<%= self.device %>
|
24
39
|
ONBOOT=<%= self.on_boot %>
|
25
40
|
BOOTPROTO=static
|
26
41
|
IPADDR=<%= self.name %>
|
27
|
-
NETMASK
|
42
|
+
NETMASK=<%= self.netmask %>
|
28
43
|
BROADCAST=
|
29
44
|
LOOPBACKDUMMY
|
30
45
|
|
31
46
|
# maximum number of dummy interfaces
|
32
|
-
|
47
|
+
@max_dummies = 10
|
33
48
|
|
34
49
|
# maximum number of aliases per interface
|
35
|
-
|
36
|
-
|
50
|
+
@max_aliases_per_iface = 10
|
37
51
|
|
38
52
|
@@dummies = []
|
39
53
|
@@aliases = Hash.new { |hash, key| hash[key] = [] }
|
@@ -43,17 +57,13 @@ LOOPBACKDUMMY
|
|
43
57
|
def self.instances
|
44
58
|
# parse all of the config files at once
|
45
59
|
Dir.glob("%s/ifcfg-*" % INTERFACE_DIR).collect do |file|
|
46
|
-
|
47
60
|
record = parse(file)
|
48
61
|
|
49
62
|
# store the existing dummy interfaces
|
50
|
-
|
51
|
-
|
52
|
-
|
63
|
+
@@dummies << record[:ifnum] if (record[:interface_type] == :dummy and ! @@dummies.include?(record[:ifnum]))
|
64
|
+
|
65
|
+
@@aliases[record[:interface]] << record[:ifnum] if record[:interface_type] == :alias
|
53
66
|
|
54
|
-
if record[:interface_type] == :alias
|
55
|
-
@@aliases[record[:interface]] << record[:ifnum]
|
56
|
-
end
|
57
67
|
new(record)
|
58
68
|
end
|
59
69
|
end
|
@@ -61,7 +71,7 @@ LOOPBACKDUMMY
|
|
61
71
|
# return the next avaliable dummy interface number, in the case where
|
62
72
|
# ifnum is not manually specified
|
63
73
|
def self.next_dummy
|
64
|
-
|
74
|
+
@max_dummies.times do |i|
|
65
75
|
unless @@dummies.include?(i.to_s)
|
66
76
|
@@dummies << i.to_s
|
67
77
|
return i.to_s
|
@@ -72,7 +82,7 @@ LOOPBACKDUMMY
|
|
72
82
|
# return the next available alias on a given interface, in the case
|
73
83
|
# where ifnum if not manually specified
|
74
84
|
def self.next_alias(interface)
|
75
|
-
|
85
|
+
@max_aliases_per_iface.times do |i|
|
76
86
|
unless @@aliases[interface].include?(i.to_s)
|
77
87
|
@@aliases[interface] << i.to_s
|
78
88
|
return i.to_s
|
@@ -85,68 +95,16 @@ LOOPBACKDUMMY
|
|
85
95
|
|
86
96
|
# Parse the existing file.
|
87
97
|
def self.parse(file)
|
98
|
+
instance = new()
|
99
|
+
return instance unless FileTest.exist?(file)
|
88
100
|
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
File.open(file) do |f|
|
93
|
-
f.readlines.each do |line|
|
94
|
-
if line =~ /^(\w+)=(.+)$/
|
95
|
-
opts[$1.downcase.intern] = $2
|
96
|
-
end
|
97
|
-
end
|
98
|
-
end
|
99
|
-
|
100
|
-
# figure out the "real" device information
|
101
|
-
case opts[:device]
|
102
|
-
when /:/:
|
103
|
-
if opts[:device].include?(":")
|
104
|
-
opts[:interface], opts[:ifnum] = opts[:device].split(":")
|
105
|
-
end
|
106
|
-
|
107
|
-
opts[:interface_type] = :alias
|
108
|
-
when /^dummy/:
|
109
|
-
opts[:interface_type] = :loopback
|
110
|
-
opts[:interface] = "dummy"
|
111
|
-
|
112
|
-
# take the number of the dummy interface, as this is used
|
113
|
-
# when working out whether to call next_dummy when dynamically
|
114
|
-
# creating these
|
115
|
-
opts[:ifnum] = opts[:device].sub("dummy",'')
|
116
|
-
|
117
|
-
@@dummies << opts[:ifnum].to_s unless @@dummies.include?(opts[:ifnum].to_s)
|
118
|
-
else
|
119
|
-
opts[:interface_type] = :normal
|
120
|
-
opts[:interface] = opts[:device]
|
121
|
-
end
|
122
|
-
|
123
|
-
# translate whether we come up on boot to true/false
|
124
|
-
case opts[:onboot].downcase
|
125
|
-
when "yes":
|
126
|
-
opts[:onboot] = :true
|
127
|
-
when "no":
|
128
|
-
opts[:onboot] = :false
|
129
|
-
else
|
130
|
-
# this case should never happen, but just in case
|
131
|
-
opts[:onboot] = false
|
132
|
-
end
|
133
|
-
|
134
|
-
|
135
|
-
# Remove any attributes we don't want. These would be
|
136
|
-
# pretty easy to support.
|
137
|
-
[:bootproto, :broadcast, :netmask, :device].each do |opt|
|
138
|
-
if opts.include?(opt)
|
139
|
-
opts.delete(opt)
|
101
|
+
File.readlines(file).each do |line|
|
102
|
+
if line =~ /^(\w+)=(.+)$/
|
103
|
+
instance.send($1.downcase + "=", $2)
|
140
104
|
end
|
141
105
|
end
|
142
106
|
|
143
|
-
|
144
|
-
opts[:name] = opts[:ipaddr]
|
145
|
-
opts.delete(:ipaddr)
|
146
|
-
end
|
147
|
-
|
148
|
-
return opts
|
149
|
-
|
107
|
+
return instance
|
150
108
|
end
|
151
109
|
|
152
110
|
# Prefetch our interface list, yo.
|
@@ -159,7 +117,7 @@ LOOPBACKDUMMY
|
|
159
117
|
end
|
160
118
|
|
161
119
|
def create
|
162
|
-
|
120
|
+
self.class.resource_type.validproperties.each do |property|
|
163
121
|
if value = @resource.should(property)
|
164
122
|
@property_hash[property] = value
|
165
123
|
end
|
@@ -170,11 +128,11 @@ LOOPBACKDUMMY
|
|
170
128
|
end
|
171
129
|
|
172
130
|
def destroy
|
173
|
-
File.unlink(
|
131
|
+
File.unlink(file_path)
|
174
132
|
end
|
175
133
|
|
176
134
|
def exists?
|
177
|
-
FileTest.
|
135
|
+
FileTest.exist?(file_path)
|
178
136
|
end
|
179
137
|
|
180
138
|
# generate the content for the interface file, so this is dependent
|
@@ -182,23 +140,49 @@ LOOPBACKDUMMY
|
|
182
140
|
# address (also dummy) on linux. For linux it's quite involved, and we
|
183
141
|
# will use an ERB template
|
184
142
|
def generate
|
185
|
-
|
186
|
-
|
187
|
-
case @resource.should(:interface_type)
|
188
|
-
when :loopback
|
189
|
-
return LOOPBACK_TEMPLATE.result(binding)
|
190
|
-
when :alias
|
191
|
-
return ALIAS_TEMPLATE.result(binding)
|
192
|
-
end
|
143
|
+
itype = self.interface_type == :alias ? :alias : :normal
|
144
|
+
self.class.template(itype).result(binding)
|
193
145
|
end
|
194
146
|
|
195
147
|
# Where should the file be written out?
|
196
148
|
# This defaults to INTERFACE_DIR/ifcfg-<namevar>, but can have a
|
197
149
|
# more symbolic name by setting interface_desc in the type.
|
198
150
|
def file_path
|
199
|
-
|
200
|
-
|
151
|
+
if resource and val = resource[:interface_desc]
|
152
|
+
desc = val
|
153
|
+
else
|
154
|
+
desc = self.name
|
155
|
+
end
|
156
|
+
|
157
|
+
self.fail("Could not get name for interface") unless desc
|
158
|
+
|
159
|
+
if self.interface_type == :alias
|
160
|
+
return File.join(INTERFACE_DIR, "ifcfg-" + self.interface + ":" + desc)
|
161
|
+
else
|
162
|
+
return File.join(INTERFACE_DIR, "ifcfg-" + desc)
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
166
|
+
# Use the device value to figure out all kinds of nifty things.
|
167
|
+
def device=(value)
|
168
|
+
case value
|
169
|
+
when /:/:
|
170
|
+
@property_hash[:interface], @property_hash[:ifnum] = value.split(":")
|
171
|
+
@property_hash[:interface_type] = :alias
|
172
|
+
when /^dummy/:
|
173
|
+
@property_hash[:interface_type] = :loopback
|
174
|
+
@property_hash[:interface] = "dummy"
|
201
175
|
|
176
|
+
# take the number of the dummy interface, as this is used
|
177
|
+
# when working out whether to call next_dummy when dynamically
|
178
|
+
# creating these
|
179
|
+
@property_hash[:ifnum] = value.sub("dummy",'')
|
180
|
+
|
181
|
+
@@dummies << @property_hash[:ifnum].to_s unless @@dummies.include?(@property_hash[:ifnum].to_s)
|
182
|
+
else
|
183
|
+
@property_hash[:interface_type] = :normal
|
184
|
+
@property_hash[:interface] = value
|
185
|
+
end
|
202
186
|
end
|
203
187
|
|
204
188
|
# create the device name, so this based on the IP, and interface + type
|
@@ -213,6 +197,11 @@ LOOPBACKDUMMY
|
|
213
197
|
end
|
214
198
|
end
|
215
199
|
|
200
|
+
# Set the name to our ip address.
|
201
|
+
def ipaddr=(value)
|
202
|
+
@property_hash[:name] = value
|
203
|
+
end
|
204
|
+
|
216
205
|
# whether the device is to be brought up on boot or not. converts
|
217
206
|
# the true / false of the type, into yes / no values respectively
|
218
207
|
# writing out the ifcfg-* files
|
@@ -227,10 +216,21 @@ LOOPBACKDUMMY
|
|
227
216
|
end
|
228
217
|
end
|
229
218
|
|
219
|
+
# Mark whether the interface should be started on boot.
|
220
|
+
def on_boot=(value)
|
221
|
+
# translate whether we come up on boot to true/false
|
222
|
+
case value.downcase
|
223
|
+
when "yes":
|
224
|
+
@property_hash[:onboot] = :true
|
225
|
+
else
|
226
|
+
@property_hash[:onboot] = :false
|
227
|
+
end
|
228
|
+
end
|
229
|
+
|
230
230
|
# Write the new file out.
|
231
231
|
def flush
|
232
232
|
# Don't flush to disk if we're removing the config.
|
233
|
-
return if
|
233
|
+
return if self.ensure == :absent
|
234
234
|
|
235
235
|
@property_hash.each do |name, val|
|
236
236
|
if val == :absent
|
@@ -238,14 +238,13 @@ LOOPBACKDUMMY
|
|
238
238
|
end
|
239
239
|
end
|
240
240
|
|
241
|
-
File.open(
|
241
|
+
File.open(file_path, "w") do |f|
|
242
242
|
f.puts generate()
|
243
243
|
end
|
244
244
|
end
|
245
245
|
|
246
246
|
def prefetch
|
247
|
-
@property_hash = self.class.parse(
|
247
|
+
@property_hash = self.class.parse(file_path)
|
248
248
|
end
|
249
249
|
end
|
250
250
|
|
251
|
-
# $Id: redhat.rb 2747 2007-08-05 19:01:39Z luke $
|