puppet 0.23.2 → 0.24.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- data/CHANGELOG +112 -1
- data/README +1 -1
- data/Rakefile +1 -2
- data/bin/filebucket +2 -3
- data/bin/puppet +55 -39
- data/bin/puppetca +20 -11
- data/bin/puppetd +30 -31
- data/bin/puppetdoc +27 -28
- data/bin/puppetmasterd +24 -42
- data/bin/puppetrun +3 -4
- data/bin/ralsh +5 -7
- data/conf/redhat/puppet.spec +4 -1
- data/conf/solaris/smf/svc-puppetd +1 -1
- data/conf/solaris/smf/svc-puppetmasterd +1 -1
- data/examples/code/allatonce +1 -1
- data/examples/code/assignments +1 -1
- data/examples/code/components +1 -1
- data/examples/code/file.bl +1 -1
- data/examples/code/filedefaults +1 -1
- data/examples/code/fileparsing +1 -1
- data/examples/code/filerecursion +1 -1
- data/examples/code/functions +1 -1
- data/examples/code/groups +1 -1
- data/examples/code/head +1 -1
- data/examples/code/importing +1 -1
- data/examples/code/modules/sample-module.pp +10 -0
- data/examples/code/modules/sample-module/README.txt +17 -0
- data/examples/code/modules/sample-module/lib/puppet/parser/functions/hostname_to_dn.rb +36 -0
- data/examples/code/modules/sample-module/manifests/init.pp +12 -0
- data/examples/code/modules/sample-module/templates/sample.erb +5 -0
- data/examples/code/nodes +1 -1
- data/examples/code/one +1 -1
- data/examples/code/relationships +1 -1
- data/examples/code/selectors +1 -1
- data/examples/code/simpletests +1 -1
- data/examples/root/etc/init.d/sleeper +1 -1
- data/examples/root/etc/puppet/fileserver.conf +1 -1
- data/ext/ldap/puppet.schema +1 -1
- data/ext/module_puppet +30 -21
- data/ext/puppet-test +3 -3
- data/ext/vim/filetype.vim +1 -1
- data/install.rb +1 -2
- data/lib/puppet.rb +20 -19
- data/lib/puppet/checksum.rb +57 -0
- data/lib/puppet/config_stores/rest.rb +1 -1
- data/lib/puppet/daemon.rb +0 -1
- data/lib/puppet/{configuration.rb → defaults.rb} +56 -23
- data/lib/puppet/dsl.rb +22 -116
- data/lib/puppet/error.rb +0 -9
- data/lib/puppet/event.rb +0 -1
- data/lib/puppet/external/gratr/rdot.rb +0 -1
- data/lib/puppet/external/lock.rb +0 -1
- data/lib/puppet/feature/base.rb +3 -2
- data/lib/puppet/feature/rails.rb +0 -1
- data/lib/puppet/file_serving.rb +7 -0
- data/lib/puppet/file_serving/configuration.rb +129 -0
- data/lib/puppet/file_serving/configuration/parser.rb +124 -0
- data/lib/puppet/file_serving/content.rb +34 -0
- data/lib/puppet/file_serving/file_base.rb +63 -0
- data/lib/puppet/file_serving/fileset.rb +138 -0
- data/lib/puppet/file_serving/indirection_hooks.rb +44 -0
- data/lib/puppet/file_serving/metadata.rb +69 -0
- data/lib/puppet/file_serving/mount.rb +186 -0
- data/lib/puppet/file_serving/terminus_helper.rb +19 -0
- data/lib/puppet/indirector.rb +68 -0
- data/lib/puppet/indirector/catalog/compiler.rb +173 -0
- data/lib/puppet/indirector/catalog/yaml.rb +24 -0
- data/lib/puppet/indirector/checksum/file.rb +33 -0
- data/lib/puppet/indirector/code.rb +6 -0
- data/lib/puppet/indirector/direct_file_server.rb +27 -0
- data/lib/puppet/indirector/exec.rb +57 -0
- data/lib/puppet/indirector/facts/facter.rb +65 -0
- data/lib/puppet/indirector/facts/memory.rb +9 -0
- data/lib/puppet/indirector/facts/yaml.rb +7 -0
- data/lib/puppet/indirector/file.rb +54 -0
- data/lib/puppet/indirector/file_content.rb +5 -0
- data/lib/puppet/indirector/file_content/file.rb +11 -0
- data/lib/puppet/indirector/file_content/file_server.rb +11 -0
- data/lib/puppet/indirector/file_content/modules.rb +11 -0
- data/lib/puppet/indirector/file_content/rest.rb +12 -0
- data/lib/puppet/indirector/file_metadata.rb +5 -0
- data/lib/puppet/indirector/file_metadata/file.rb +26 -0
- data/lib/puppet/indirector/file_metadata/file_server.rb +11 -0
- data/lib/puppet/indirector/file_metadata/modules.rb +17 -0
- data/lib/puppet/indirector/file_metadata/rest.rb +12 -0
- data/lib/puppet/indirector/file_server.rb +56 -0
- data/lib/puppet/indirector/indirection.rb +237 -0
- data/lib/puppet/indirector/ldap.rb +90 -0
- data/lib/puppet/indirector/memory.rb +21 -0
- data/lib/puppet/indirector/module_files.rb +82 -0
- data/lib/puppet/indirector/node/exec.rb +52 -0
- data/lib/puppet/indirector/node/ldap.rb +120 -0
- data/lib/puppet/indirector/node/memory.rb +10 -0
- data/lib/puppet/indirector/node/plain.rb +19 -0
- data/lib/puppet/indirector/node/rest.rb +7 -0
- data/lib/puppet/indirector/node/yaml.rb +7 -0
- data/lib/puppet/indirector/plain.rb +9 -0
- data/lib/puppet/indirector/report/processor.rb +50 -0
- data/lib/puppet/indirector/rest.rb +8 -0
- data/lib/puppet/indirector/ssl_rsa.rb +5 -0
- data/lib/puppet/indirector/ssl_rsa/file.rb +33 -0
- data/lib/puppet/indirector/terminus.rb +178 -0
- data/lib/puppet/indirector/yaml.rb +57 -0
- data/lib/puppet/metatype/attributes.rb +3 -3
- data/lib/puppet/metatype/closure.rb +0 -66
- data/lib/puppet/metatype/container.rb +0 -9
- data/lib/puppet/metatype/evaluation.rb +10 -2
- data/lib/puppet/metatype/instances.rb +16 -30
- data/lib/puppet/metatype/manager.rb +1 -2
- data/lib/puppet/metatype/metaparams.rb +27 -21
- data/lib/puppet/metatype/providers.rb +3 -2
- data/lib/puppet/metatype/relationships.rb +1 -2
- data/lib/puppet/metatype/schedules.rb +0 -1
- data/lib/puppet/metatype/tags.rb +0 -1
- data/lib/puppet/module.rb +60 -32
- data/lib/puppet/network/authconfig.rb +0 -1
- data/lib/puppet/network/authorization.rb +0 -1
- data/lib/puppet/network/authstore.rb +0 -1
- data/lib/puppet/network/client.rb +13 -4
- data/lib/puppet/network/client/ca.rb +4 -5
- data/lib/puppet/network/client/dipper.rb +0 -1
- data/lib/puppet/network/client/file.rb +0 -1
- data/lib/puppet/network/client/master.rb +127 -235
- data/lib/puppet/network/client/proxy.rb +0 -1
- data/lib/puppet/network/client/report.rb +0 -1
- data/lib/puppet/network/client/resource.rb +0 -1
- data/lib/puppet/network/client/runner.rb +0 -1
- data/lib/puppet/network/client/status.rb +0 -1
- data/lib/puppet/network/client_request.rb +0 -1
- data/lib/puppet/network/handler.rb +5 -2
- data/lib/puppet/network/handler/ca.rb +1 -2
- data/lib/puppet/network/handler/configuration.rb +184 -0
- data/lib/puppet/network/handler/filebucket.rb +1 -2
- data/lib/puppet/network/handler/fileserver.rb +279 -107
- data/lib/puppet/network/handler/master.rb +57 -152
- data/lib/puppet/network/handler/report.rb +6 -65
- data/lib/puppet/network/handler/resource.rb +5 -13
- data/lib/puppet/network/handler/runner.rb +3 -4
- data/lib/puppet/network/handler/status.rb +0 -1
- data/lib/puppet/network/http.rb +13 -0
- data/lib/puppet/network/http/handler.rb +109 -0
- data/lib/puppet/network/http/mongrel.rb +54 -0
- data/lib/puppet/network/http/mongrel/rest.rb +37 -0
- data/lib/puppet/network/http/mongrel/xmlrpc.rb +4 -0
- data/lib/puppet/network/http/webrick.rb +51 -0
- data/lib/puppet/network/http/webrick/rest.rb +41 -0
- data/lib/puppet/network/http/webrick/xmlrpc.rb +4 -0
- data/lib/puppet/network/http_server.rb +3 -0
- data/lib/puppet/network/{server → http_server}/mongrel.rb +11 -5
- data/lib/puppet/network/{server → http_server}/webrick.rb +9 -5
- data/lib/puppet/network/rest_controller.rb +2 -0
- data/lib/puppet/network/rights.rb +0 -1
- data/lib/puppet/network/server.rb +63 -3
- data/lib/puppet/network/xmlrpc/client.rb +90 -23
- data/lib/puppet/network/xmlrpc/processor.rb +0 -1
- data/lib/puppet/network/xmlrpc/server.rb +0 -1
- data/lib/puppet/network/xmlrpc/webrick_servlet.rb +0 -1
- data/lib/puppet/node.rb +165 -0
- data/lib/puppet/node/catalog.rb +480 -0
- data/lib/puppet/node/environment.rb +46 -0
- data/lib/puppet/node/facts.rb +36 -0
- data/lib/puppet/parameter.rb +34 -28
- data/lib/puppet/parser/ast.rb +0 -1
- data/lib/puppet/parser/ast/astarray.rb +30 -53
- data/lib/puppet/parser/ast/branch.rb +0 -10
- data/lib/puppet/parser/ast/caseopt.rb +0 -11
- data/lib/puppet/parser/ast/casestatement.rb +0 -12
- data/lib/puppet/parser/ast/collection.rb +1 -3
- data/lib/puppet/parser/ast/collexpr.rb +0 -2
- data/lib/puppet/parser/ast/{component.rb → definition.rb} +58 -72
- data/lib/puppet/parser/ast/else.rb +0 -10
- data/lib/puppet/parser/ast/function.rb +0 -2
- data/lib/puppet/parser/ast/hostclass.rb +21 -19
- data/lib/puppet/parser/ast/ifstatement.rb +0 -13
- data/lib/puppet/parser/ast/leaf.rb +0 -8
- data/lib/puppet/parser/ast/node.rb +13 -10
- data/lib/puppet/parser/ast/resource.rb +75 -0
- data/lib/puppet/parser/ast/{resourcedefaults.rb → resource_defaults.rb} +4 -20
- data/lib/puppet/parser/ast/{resourceoverride.rb → resource_override.rb} +3 -5
- data/lib/puppet/parser/ast/resource_reference.rb +66 -0
- data/lib/puppet/parser/ast/resourceparam.rb +0 -14
- data/lib/puppet/parser/ast/selector.rb +0 -10
- data/lib/puppet/parser/ast/tag.rb +0 -2
- data/lib/puppet/parser/ast/vardef.rb +0 -14
- data/lib/puppet/parser/collector.rb +83 -101
- data/lib/puppet/parser/compile.rb +509 -0
- data/lib/puppet/parser/functions.rb +10 -10
- data/lib/puppet/parser/interpreter.rb +44 -662
- data/lib/puppet/parser/lexer.rb +1 -3
- data/lib/puppet/parser/parser.rb +674 -701
- data/lib/puppet/parser/parser_support.rb +33 -24
- data/lib/puppet/parser/resource.rb +219 -162
- data/lib/puppet/parser/resource/param.rb +1 -2
- data/lib/puppet/parser/resource/reference.rb +24 -16
- data/lib/puppet/parser/scope.rb +48 -459
- data/lib/puppet/parser/templatewrapper.rb +4 -5
- data/lib/puppet/pgraph.rb +10 -13
- data/lib/puppet/property.rb +25 -41
- data/lib/puppet/propertychange.rb +0 -2
- data/lib/puppet/provider.rb +15 -11
- data/lib/puppet/provider/cron/crontab.rb +6 -7
- data/lib/puppet/provider/group/groupadd.rb +0 -1
- data/lib/puppet/provider/group/netinfo.rb +0 -1
- data/lib/puppet/provider/group/pw.rb +0 -1
- data/lib/puppet/provider/host/netinfo.rb +0 -1
- data/lib/puppet/provider/host/parsed.rb +0 -1
- data/lib/puppet/provider/interface/redhat.rb +90 -91
- data/lib/puppet/provider/interface/sunos.rb +98 -81
- data/lib/puppet/provider/mailalias/aliases.rb +0 -1
- data/lib/puppet/provider/maillist/mailman.rb +2 -3
- data/lib/puppet/provider/mount.rb +10 -9
- data/lib/puppet/provider/mount/netinfo.rb +0 -1
- data/lib/puppet/provider/mount/parsed.rb +0 -1
- data/lib/puppet/provider/nameservice.rb +0 -1
- data/lib/puppet/provider/nameservice/netinfo.rb +0 -1
- data/lib/puppet/provider/nameservice/objectadd.rb +0 -1
- data/lib/puppet/provider/nameservice/pw.rb +0 -1
- data/lib/puppet/provider/package.rb +0 -2
- data/lib/puppet/provider/package/appdmg.rb +0 -1
- data/lib/puppet/provider/package/apple.rb +0 -1
- data/lib/puppet/provider/package/apt.rb +0 -1
- data/lib/puppet/provider/package/aptitude.rb +0 -1
- data/lib/puppet/provider/package/aptrpm.rb +0 -1
- data/lib/puppet/provider/package/blastwave.rb +0 -1
- data/lib/puppet/provider/package/darwinport.rb +0 -1
- data/lib/puppet/provider/package/dpkg.rb +9 -1
- data/lib/puppet/provider/package/fink.rb +0 -1
- data/lib/puppet/provider/package/freebsd.rb +0 -1
- data/lib/puppet/provider/package/gem.rb +0 -1
- data/lib/puppet/provider/package/openbsd.rb +1 -2
- data/lib/puppet/provider/package/pkgdmg.rb +14 -15
- data/lib/puppet/provider/package/portage.rb +6 -7
- data/lib/puppet/provider/package/ports.rb +1 -4
- data/lib/puppet/provider/package/rpm.rb +31 -45
- data/lib/puppet/provider/package/sun.rb +0 -3
- data/lib/puppet/provider/package/sunfreeware.rb +0 -1
- data/lib/puppet/provider/package/up2date.rb +0 -1
- data/lib/puppet/provider/package/urpmi.rb +0 -1
- data/lib/puppet/provider/package/yum.rb +45 -14
- data/lib/puppet/provider/package/yumhelper.py +37 -0
- data/lib/puppet/provider/parsedfile.rb +2 -3
- data/lib/puppet/provider/port/parsed.rb +0 -1
- data/lib/puppet/provider/service/base.rb +4 -1
- data/lib/puppet/provider/service/debian.rb +5 -2
- data/lib/puppet/provider/service/freebsd.rb +51 -0
- data/lib/puppet/provider/service/init.rb +16 -40
- data/lib/puppet/provider/service/redhat.rb +1 -6
- data/lib/puppet/provider/service/smf.rb +0 -1
- data/lib/puppet/provider/sshkey/parsed.rb +0 -1
- data/lib/puppet/provider/user/netinfo.rb +0 -1
- data/lib/puppet/provider/user/pw.rb +0 -1
- data/lib/puppet/provider/user/useradd.rb +0 -1
- data/lib/puppet/provider/zone/solaris.rb +0 -1
- data/lib/puppet/rails.rb +35 -30
- data/lib/puppet/rails/database/schema.rb +0 -1
- data/lib/puppet/rails/host.rb +6 -15
- data/lib/puppet/rails/param_name.rb +1 -2
- data/lib/puppet/rails/param_value.rb +0 -1
- data/lib/puppet/rails/puppet_class.rb +0 -1
- data/lib/puppet/rails/resource.rb +3 -5
- data/lib/puppet/reference/configuration.rb +12 -6
- data/lib/puppet/reference/indirection.rb +34 -0
- data/lib/puppet/reference/node_source.rb +9 -0
- data/lib/puppet/relationship.rb +10 -8
- data/lib/puppet/reports.rb +51 -0
- data/lib/puppet/reports/log.rb +2 -3
- data/lib/puppet/reports/rrdgraph.rb +2 -5
- data/lib/puppet/reports/store.rb +6 -7
- data/lib/puppet/reports/tagmail.rb +2 -3
- data/lib/puppet/resource_reference.rb +79 -0
- data/lib/puppet/simple_graph.rb +251 -0
- data/lib/puppet/sslcertificates.rb +19 -15
- data/lib/puppet/sslcertificates/ca.rb +56 -15
- data/lib/puppet/sslcertificates/certificate.rb +0 -1
- data/lib/puppet/sslcertificates/inventory.rb +2 -6
- data/lib/puppet/sslcertificates/monkey_patch.rb +6 -0
- data/lib/puppet/sslcertificates/support.rb +4 -5
- data/lib/puppet/transaction.rb +93 -96
- data/lib/puppet/transaction/report.rb +5 -1
- data/lib/puppet/transportable.rb +79 -125
- data/lib/puppet/type.rb +44 -10
- data/lib/puppet/type/component.rb +25 -110
- data/lib/puppet/type/cron.rb +1 -2
- data/lib/puppet/type/exec.rb +19 -13
- data/lib/puppet/type/group.rb +0 -1
- data/lib/puppet/type/host.rb +0 -1
- data/lib/puppet/type/interface.rb +6 -3
- data/lib/puppet/type/k5login.rb +87 -0
- data/lib/puppet/type/mailalias.rb +0 -1
- data/lib/puppet/type/maillist.rb +0 -1
- data/lib/puppet/type/mount.rb +7 -13
- data/lib/puppet/type/notify.rb +0 -1
- data/lib/puppet/type/package.rb +7 -63
- data/lib/puppet/type/pfile.rb +25 -32
- data/lib/puppet/type/pfile/checksum.rb +0 -1
- data/lib/puppet/type/pfile/content.rb +18 -3
- data/lib/puppet/type/pfile/ensure.rb +5 -6
- data/lib/puppet/type/pfile/group.rb +4 -1
- data/lib/puppet/type/pfile/mode.rb +0 -1
- data/lib/puppet/type/pfile/owner.rb +6 -9
- data/lib/puppet/type/pfile/source.rb +28 -11
- data/lib/puppet/type/pfile/target.rb +2 -1
- data/lib/puppet/type/pfile/type.rb +0 -1
- data/lib/puppet/type/pfilebucket.rb +0 -1
- data/lib/puppet/type/port.rb +0 -1
- data/lib/puppet/type/resources.rb +0 -1
- data/lib/puppet/type/schedule.rb +17 -15
- data/lib/puppet/type/service.rb +23 -159
- data/lib/puppet/type/sshkey.rb +0 -1
- data/lib/puppet/type/tidy.rb +15 -7
- data/lib/puppet/type/user.rb +0 -1
- data/lib/puppet/type/zone.rb +0 -1
- data/lib/puppet/util.rb +1 -2
- data/lib/puppet/util/autoload.rb +21 -23
- data/lib/puppet/util/checksums.rb +37 -0
- data/lib/puppet/util/classgen.rb +0 -1
- data/lib/puppet/util/diff.rb +71 -0
- data/lib/puppet/util/docs.rb +8 -2
- data/lib/puppet/util/errors.rb +0 -1
- data/lib/puppet/util/execution.rb +0 -1
- data/lib/puppet/util/fact_store.rb +0 -1
- data/lib/puppet/util/feature.rb +31 -22
- data/lib/puppet/util/fileparsing.rb +3 -2
- data/lib/puppet/util/filetype.rb +30 -12
- data/lib/puppet/util/graph.rb +0 -1
- data/lib/puppet/util/inifile.rb +0 -1
- data/lib/puppet/util/instance_loader.rb +11 -4
- data/lib/puppet/util/loadedfile.rb +0 -1
- data/lib/puppet/util/log.rb +0 -1
- data/lib/puppet/util/log_paths.rb +0 -1
- data/lib/puppet/util/logging.rb +0 -1
- data/lib/puppet/util/metaid.rb +0 -1
- data/lib/puppet/util/methodhelper.rb +0 -2
- data/lib/puppet/util/metric.rb +1 -2
- data/lib/puppet/util/plist.rb +0 -1
- data/lib/puppet/util/plist/generator.rb +0 -1
- data/lib/puppet/util/plist/parser.rb +0 -1
- data/lib/puppet/util/posix.rb +7 -1
- data/lib/puppet/util/provider_features.rb +11 -12
- data/lib/puppet/util/rails/collection_merger.rb +0 -1
- data/lib/puppet/util/reference.rb +2 -3
- data/lib/puppet/util/{config.rb → settings.rb} +424 -300
- data/lib/puppet/util/storage.rb +1 -3
- data/lib/puppet/util/subclass_loader.rb +0 -1
- data/lib/puppet/util/suidmanager.rb +25 -42
- data/lib/puppet/util/uri_helper.rb +22 -0
- data/lib/puppet/util/variables.rb +0 -1
- data/lib/puppet/util/warnings.rb +0 -1
- data/test/Rakefile +1 -1
- data/test/certmgr/ca.rb +8 -2
- data/test/certmgr/certmgr.rb +14 -6
- data/test/certmgr/inventory.rb +18 -30
- data/test/certmgr/support.rb +3 -2
- data/test/executables/filebucket.rb +1 -2
- data/test/executables/puppetbin.rb +1 -2
- data/test/executables/puppetca.rb +7 -2
- data/test/executables/puppetd.rb +23 -29
- data/test/executables/puppetmasterd.rb +1 -2
- data/test/executables/puppetmodule.rb +1 -2
- data/test/language/ast.rb +24 -29
- data/test/language/ast/casestatement.rb +1 -2
- data/test/language/ast/definition.rb +166 -0
- data/test/language/ast/hostclass.rb +50 -29
- data/test/language/ast/resource.rb +59 -0
- data/test/language/ast/{resourceref.rb → resource_reference.rb} +30 -20
- data/test/language/ast/selector.rb +1 -2
- data/test/language/ast/variable.rb +1 -2
- data/test/language/compile.rb +569 -0
- data/test/language/functions.rb +57 -76
- data/test/language/lexer.rb +20 -3
- data/test/language/parser.rb +45 -33
- data/test/language/resource.rb +275 -308
- data/test/language/scope.rb +135 -410
- data/test/language/snippets.rb +19 -41
- data/test/language/transportable.rb +8 -29
- data/test/lib/mocha/auto_verify.rb +6 -6
- data/test/lib/mocha/deprecation.rb +22 -0
- data/test/lib/mocha/exception_raiser.rb +17 -0
- data/test/lib/mocha/expectation.rb +167 -84
- data/test/lib/mocha/infinite_range.rb +4 -6
- data/test/lib/mocha/inspect.rb +3 -1
- data/test/lib/mocha/is_a.rb +9 -0
- data/test/lib/mocha/missing_expectation.rb +27 -0
- data/test/lib/mocha/mock.rb +192 -5
- data/test/lib/mocha/multiple_yields.rb +20 -0
- data/test/lib/mocha/no_yields.rb +11 -0
- data/test/lib/mocha/object.rb +11 -1
- data/test/lib/mocha/parameter_matchers.rb +9 -0
- data/test/lib/mocha/parameter_matchers/all_of.rb +39 -0
- data/test/lib/mocha/parameter_matchers/any_of.rb +44 -0
- data/test/lib/mocha/parameter_matchers/anything.rb +30 -0
- data/test/lib/mocha/parameter_matchers/has_entry.rb +39 -0
- data/test/lib/mocha/parameter_matchers/has_key.rb +39 -0
- data/test/lib/mocha/parameter_matchers/has_value.rb +39 -0
- data/test/lib/mocha/parameter_matchers/includes.rb +37 -0
- data/test/lib/mocha/return_values.rb +31 -0
- data/test/lib/mocha/single_return_value.rb +24 -0
- data/test/lib/mocha/single_yield.rb +18 -0
- data/test/lib/mocha/standalone.rb +2 -0
- data/test/lib/mocha/stub.rb +18 -0
- data/test/lib/mocha/test_case_adapter.rb +3 -3
- data/test/lib/mocha/yield_parameters.rb +31 -0
- data/test/lib/puppettest.rb +38 -20
- data/test/lib/puppettest/certificates.rb +0 -1
- data/test/lib/puppettest/exetest.rb +0 -1
- data/test/lib/puppettest/fakes.rb +0 -1
- data/test/lib/puppettest/fileparsing.rb +8 -15
- data/test/lib/puppettest/filetesting.rb +0 -1
- data/test/lib/puppettest/parsertesting.rb +37 -23
- data/test/lib/puppettest/railstesting.rb +3 -6
- data/test/lib/puppettest/reporttesting.rb +0 -1
- data/test/lib/puppettest/resourcetesting.rb +6 -34
- data/test/lib/puppettest/runnable_test.rb +30 -0
- data/test/lib/puppettest/servertest.rb +2 -3
- data/test/lib/puppettest/support/assertions.rb +13 -41
- data/test/lib/puppettest/support/collection.rb +0 -1
- data/test/lib/puppettest/support/helpers.rb +0 -1
- data/test/lib/puppettest/support/resources.rb +17 -17
- data/test/lib/puppettest/support/utils.rb +45 -27
- data/test/lib/puppettest/testcase.rb +2 -21
- data/test/lib/rake/puppet_test_loader.rb +0 -1
- data/test/lib/rake/puppet_testtask.rb +0 -1
- data/test/network/authconfig.rb +1 -2
- data/test/network/authorization.rb +1 -2
- data/test/network/authstore.rb +1 -2
- data/test/network/client/ca.rb +12 -7
- data/test/network/client/client.rb +17 -22
- data/test/network/client/dipper.rb +1 -2
- data/test/network/client/master.rb +70 -184
- data/test/network/client/resource.rb +9 -2
- data/test/network/client_request.rb +1 -2
- data/test/network/daemon.rb +1 -2
- data/test/network/handler/bucket.rb +2 -31
- data/test/network/handler/ca.rb +9 -3
- data/test/network/handler/configuration.rb +160 -0
- data/test/network/handler/fileserver.rb +24 -5
- data/test/network/handler/handler.rb +1 -2
- data/test/network/handler/master.rb +38 -243
- data/test/network/handler/report.rb +2 -104
- data/test/network/handler/resource.rb +5 -3
- data/test/network/handler/runner.rb +22 -60
- data/test/network/rights.rb +1 -2
- data/test/network/server/mongrel_test.rb +2 -3
- data/test/network/server/webrick.rb +17 -11
- data/test/network/xmlrpc/client.rb +27 -12
- data/test/network/xmlrpc/processor.rb +3 -4
- data/test/network/xmlrpc/server.rb +1 -2
- data/test/network/xmlrpc/webrick_servlet.rb +8 -2
- data/test/other/dsl.rb +2 -4
- data/test/other/events.rb +14 -56
- data/test/other/overrides.rb +3 -6
- data/test/other/propertychange.rb +1 -2
- data/test/other/provider.rb +1 -2
- data/test/other/puppet.rb +1 -2
- data/test/other/relationships.rb +15 -17
- data/test/other/report.rb +14 -20
- data/test/other/transactions.rb +109 -192
- data/test/puppet/conffiles.rb +3 -5
- data/test/puppet/defaults.rb +1 -28
- data/test/puppet/errortest.rb +1 -2
- data/test/puppet/tc_suidmanager.rb +77 -63
- data/test/rails/ast.rb +4 -4
- data/test/rails/configuration.rb +71 -0
- data/test/rails/host.rb +19 -30
- data/test/rails/rails.rb +1 -2
- data/test/rails/railsparameter.rb +3 -4
- data/test/rails/railsresource.rb +6 -5
- data/test/ral/manager/attributes.rb +1 -2
- data/test/ral/manager/instances.rb +3 -3
- data/test/ral/manager/manager.rb +1 -2
- data/test/ral/manager/provider.rb +1 -2
- data/test/ral/manager/type.rb +89 -93
- data/test/ral/providers/cron/crontab.rb +9 -11
- data/test/ral/providers/group.rb +1 -2
- data/test/ral/providers/host/netinfo.rb +1 -2
- data/test/ral/providers/host/parsed.rb +1 -2
- data/test/ral/providers/mailalias/aliases.rb +1 -2
- data/test/ral/providers/mount/netinfo.rb +1 -2
- data/test/ral/providers/nameservice.rb +1 -2
- data/test/ral/providers/package.rb +5 -4
- data/test/ral/providers/package/apt.rb +0 -1
- data/test/ral/providers/package/aptrpm.rb +0 -1
- data/test/ral/providers/parsedfile.rb +1 -2
- data/test/ral/providers/port/parsed.rb +1 -2
- data/test/ral/providers/provider.rb +10 -5
- data/test/ral/providers/service/base.rb +1 -2
- data/test/ral/providers/service/debian.rb +58 -0
- data/test/ral/providers/sshkey/parsed.rb +1 -2
- data/test/ral/providers/user.rb +3 -2
- data/test/ral/providers/user/useradd.rb +0 -1
- data/test/ral/types/basic.rb +4 -9
- data/test/ral/types/cron.rb +6 -12
- data/test/ral/types/exec.rb +6 -7
- data/test/ral/types/file.rb +35 -14
- data/test/ral/types/file/target.rb +6 -5
- data/test/ral/types/filebucket.rb +3 -2
- data/test/ral/types/fileignoresource.rb +10 -42
- data/test/ral/types/filesources.rb +21 -60
- data/test/ral/types/group.rb +3 -3
- data/test/ral/types/host.rb +6 -3
- data/test/ral/types/mailalias.rb +1 -2
- data/test/ral/types/parameter.rb +5 -3
- data/test/ral/types/port.rb +1 -2
- data/test/ral/types/property.rb +3 -3
- data/test/ral/types/resources.rb +1 -2
- data/test/ral/types/service.rb +5 -3
- data/test/ral/types/sshkey.rb +5 -3
- data/test/ral/types/tidy.rb +63 -3
- data/test/ral/types/user.rb +10 -11
- data/test/ral/types/yumrepo.rb +1 -1
- data/test/ral/types/zone.rb +1 -2
- data/test/util/autoload.rb +23 -27
- data/test/util/classgen.rb +1 -2
- data/test/util/execution.rb +1 -2
- data/test/util/features.rb +1 -3
- data/test/util/fileparsing.rb +11 -3
- data/test/util/filetype.rb +1 -2
- data/test/util/inifile.rb +1 -1
- data/test/util/instance_loader.rb +5 -6
- data/test/util/loadedfile.rb +1 -2
- data/test/util/log.rb +1 -2
- data/test/util/metrics.rb +1 -2
- data/test/util/package.rb +1 -2
- data/test/util/posixtest.rb +1 -2
- data/test/util/{config.rb → settings.rb} +123 -265
- data/test/util/storage.rb +1 -2
- data/test/util/subclass_loader.rb +1 -2
- data/test/util/utiltest.rb +1 -111
- metadata +130 -112
- data/ext/tools/passwd2puppet +0 -45
- data/lib/puppet/fact_stores/yaml.rb +0 -42
- data/lib/puppet/network/handler/facts.rb +0 -70
- data/lib/puppet/parser/ast/resourcedef.rb +0 -222
- data/lib/puppet/parser/ast/resourceref.rb +0 -58
- data/test/language/ast/component.rb +0 -142
- data/test/language/collector.rb +0 -179
- data/test/language/interpreter.rb +0 -804
- data/test/language/node.rb +0 -126
- data/test/lib/mocha/mock_methods.rb +0 -122
- data/test/lib/puppettest/graph.rb +0 -41
- data/test/lib/spec.rb +0 -8
- data/test/lib/spec/callback.rb +0 -11
- data/test/lib/spec/callback/callback_container.rb +0 -60
- data/test/lib/spec/callback/extensions/module.rb +0 -24
- data/test/lib/spec/callback/extensions/object.rb +0 -37
- data/test/lib/spec/deprecated.rb +0 -3
- data/test/lib/spec/expectations.rb +0 -59
- data/test/lib/spec/expectations/differs/default.rb +0 -62
- data/test/lib/spec/expectations/errors.rb +0 -6
- data/test/lib/spec/expectations/extensions.rb +0 -3
- data/test/lib/spec/expectations/extensions/object.rb +0 -109
- data/test/lib/spec/expectations/extensions/proc.rb +0 -57
- data/test/lib/spec/expectations/extensions/string_and_symbol.rb +0 -17
- data/test/lib/spec/expectations/handler.rb +0 -47
- data/test/lib/spec/expectations/should.rb +0 -5
- data/test/lib/spec/expectations/should/base.rb +0 -64
- data/test/lib/spec/expectations/should/change.rb +0 -69
- data/test/lib/spec/expectations/should/have.rb +0 -128
- data/test/lib/spec/expectations/should/not.rb +0 -74
- data/test/lib/spec/expectations/should/should.rb +0 -81
- data/test/lib/spec/expectations/sugar.rb +0 -47
- data/test/lib/spec/matchers.rb +0 -160
- data/test/lib/spec/matchers/be.rb +0 -161
- data/test/lib/spec/matchers/be_close.rb +0 -37
- data/test/lib/spec/matchers/change.rb +0 -120
- data/test/lib/spec/matchers/eql.rb +0 -43
- data/test/lib/spec/matchers/equal.rb +0 -43
- data/test/lib/spec/matchers/has.rb +0 -44
- data/test/lib/spec/matchers/have.rb +0 -140
- data/test/lib/spec/matchers/include.rb +0 -50
- data/test/lib/spec/matchers/match.rb +0 -41
- data/test/lib/spec/matchers/raise_error.rb +0 -100
- data/test/lib/spec/matchers/respond_to.rb +0 -35
- data/test/lib/spec/matchers/satisfy.rb +0 -47
- data/test/lib/spec/matchers/throw_symbol.rb +0 -75
- data/test/lib/spec/mocks.rb +0 -232
- data/test/lib/spec/mocks/argument_expectation.rb +0 -132
- data/test/lib/spec/mocks/error_generator.rb +0 -85
- data/test/lib/spec/mocks/errors.rb +0 -10
- data/test/lib/spec/mocks/extensions/object.rb +0 -3
- data/test/lib/spec/mocks/message_expectation.rb +0 -231
- data/test/lib/spec/mocks/methods.rb +0 -40
- data/test/lib/spec/mocks/mock.rb +0 -26
- data/test/lib/spec/mocks/mock_handler.rb +0 -166
- data/test/lib/spec/mocks/order_group.rb +0 -29
- data/test/lib/spec/rake/spectask.rb +0 -173
- data/test/lib/spec/rake/verify_rcov.rb +0 -47
- data/test/lib/spec/runner.rb +0 -132
- data/test/lib/spec/runner/backtrace_tweaker.rb +0 -55
- data/test/lib/spec/runner/command_line.rb +0 -34
- data/test/lib/spec/runner/context.rb +0 -154
- data/test/lib/spec/runner/context_eval.rb +0 -142
- data/test/lib/spec/runner/context_runner.rb +0 -55
- data/test/lib/spec/runner/drb_command_line.rb +0 -21
- data/test/lib/spec/runner/execution_context.rb +0 -17
- data/test/lib/spec/runner/extensions/kernel.rb +0 -17
- data/test/lib/spec/runner/extensions/object.rb +0 -32
- data/test/lib/spec/runner/formatter.rb +0 -5
- data/test/lib/spec/runner/formatter/base_text_formatter.rb +0 -118
- data/test/lib/spec/runner/formatter/html_formatter.rb +0 -219
- data/test/lib/spec/runner/formatter/progress_bar_formatter.rb +0 -27
- data/test/lib/spec/runner/formatter/rdoc_formatter.rb +0 -22
- data/test/lib/spec/runner/formatter/specdoc_formatter.rb +0 -23
- data/test/lib/spec/runner/heckle_runner.rb +0 -71
- data/test/lib/spec/runner/heckle_runner_win.rb +0 -10
- data/test/lib/spec/runner/option_parser.rb +0 -224
- data/test/lib/spec/runner/reporter.rb +0 -105
- data/test/lib/spec/runner/spec_matcher.rb +0 -25
- data/test/lib/spec/runner/spec_parser.rb +0 -41
- data/test/lib/spec/runner/spec_should_raise_handler.rb +0 -74
- data/test/lib/spec/runner/specification.rb +0 -114
- data/test/lib/spec/translator.rb +0 -87
- data/test/lib/spec/version.rb +0 -30
- data/test/network/handler/facts.rb +0 -112
- data/test/other/pgraph.rb +0 -290
- data/test/other/relationship.rb +0 -74
- data/test/puppet/modules.rb +0 -59
- data/test/rails/collection.rb +0 -247
- data/test/rails/interpreter.rb +0 -91
- data/test/ral/providers/mount/parsed.rb +0 -251
- data/test/ral/providers/service.rb +0 -235
- data/test/ral/types/component.rb +0 -113
- data/test/ral/types/interface.rb +0 -40
- data/test/ral/types/mount.rb +0 -362
- data/test/ral/types/package.rb +0 -154
- data/test/ral/types/schedule.rb +0 -357
- data/test/tagging/tagging.rb +0 -170
- data/test/util/fact_store.rb +0 -67
- data/test/util/graph.rb +0 -108
@@ -1,10 +1,15 @@
|
|
1
1
|
require 'puppet'
|
2
|
+
require 'puppet/indirector'
|
2
3
|
|
3
4
|
# A class for reporting what happens on each client. Reports consist of
|
4
5
|
# two types of data: Logs and Metrics. Logs are the output that each
|
5
6
|
# change produces, and Metrics are all of the numerical data involved
|
6
7
|
# in the transaction.
|
7
8
|
class Puppet::Transaction::Report
|
9
|
+
extend Puppet::Indirector
|
10
|
+
|
11
|
+
indirects :report, :terminus_class => :processor
|
12
|
+
|
8
13
|
attr_accessor :logs, :metrics, :time, :host
|
9
14
|
|
10
15
|
def <<(msg)
|
@@ -76,4 +81,3 @@ class Puppet::Transaction::Report
|
|
76
81
|
end
|
77
82
|
end
|
78
83
|
|
79
|
-
# $Id: report.rb 2459 2007-05-04 05:04:29Z luke $
|
data/lib/puppet/transportable.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'puppet'
|
2
|
+
require 'puppet/resource_reference'
|
2
3
|
require 'yaml'
|
3
4
|
|
4
5
|
module Puppet
|
@@ -8,7 +9,7 @@ module Puppet
|
|
8
9
|
# YAML.
|
9
10
|
class TransObject
|
10
11
|
include Enumerable
|
11
|
-
attr_accessor :type, :name, :file, :line, :
|
12
|
+
attr_accessor :type, :name, :file, :line, :catalog
|
12
13
|
|
13
14
|
attr_writer :tags
|
14
15
|
|
@@ -23,9 +24,8 @@ module Puppet
|
|
23
24
|
end
|
24
25
|
|
25
26
|
def initialize(name,type)
|
26
|
-
@type = type
|
27
|
+
@type = type.to_s.downcase
|
27
28
|
@name = name
|
28
|
-
@collectable = false
|
29
29
|
@params = {}
|
30
30
|
@tags = []
|
31
31
|
end
|
@@ -34,10 +34,28 @@ module Puppet
|
|
34
34
|
return [@type,@name].join('--')
|
35
35
|
end
|
36
36
|
|
37
|
+
def ref
|
38
|
+
unless defined? @ref
|
39
|
+
@ref = Puppet::ResourceReference.new(@type, @name)
|
40
|
+
end
|
41
|
+
@ref.to_s
|
42
|
+
end
|
43
|
+
|
37
44
|
def tags
|
38
45
|
return @tags
|
39
46
|
end
|
40
47
|
|
48
|
+
# Convert a defined type into a component.
|
49
|
+
def to_component
|
50
|
+
trans = TransObject.new(ref, :component)
|
51
|
+
@params.each { |param,value|
|
52
|
+
next unless Puppet::Type::Component.validattr?(param)
|
53
|
+
Puppet.debug "Defining %s on %s" % [param, ref]
|
54
|
+
trans[param] = value
|
55
|
+
}
|
56
|
+
Puppet::Type::Component.create(trans)
|
57
|
+
end
|
58
|
+
|
41
59
|
def to_hash
|
42
60
|
@params.dup
|
43
61
|
end
|
@@ -57,28 +75,19 @@ module Puppet
|
|
57
75
|
end
|
58
76
|
|
59
77
|
def to_yaml_properties
|
60
|
-
instance_variables
|
78
|
+
instance_variables.reject { |v| %w{@ref}.include?(v) }
|
79
|
+
end
|
80
|
+
|
81
|
+
def to_ref
|
82
|
+
ref
|
61
83
|
end
|
62
84
|
|
63
|
-
def to_type
|
85
|
+
def to_type
|
64
86
|
retobj = nil
|
65
87
|
if typeklass = Puppet::Type.type(self.type)
|
66
|
-
|
67
|
-
if retobj = typeklass[self.name]
|
68
|
-
self.each do |param, val|
|
69
|
-
retobj[param] = val
|
70
|
-
end
|
71
|
-
else
|
72
|
-
unless retobj = typeklass.create(self)
|
73
|
-
return nil
|
74
|
-
end
|
75
|
-
end
|
88
|
+
return typeklass.create(self)
|
76
89
|
else
|
77
|
-
|
78
|
-
end
|
79
|
-
|
80
|
-
if parent
|
81
|
-
parent.push retobj
|
90
|
+
return to_component
|
82
91
|
end
|
83
92
|
|
84
93
|
return retobj
|
@@ -90,7 +99,7 @@ module Puppet
|
|
90
99
|
class TransBucket
|
91
100
|
include Enumerable
|
92
101
|
|
93
|
-
attr_accessor :name, :type, :file, :line, :classes, :keyword, :top
|
102
|
+
attr_accessor :name, :type, :file, :line, :classes, :keyword, :top, :catalog
|
94
103
|
|
95
104
|
%w{delete shift include? length empty? << []}.each { |method|
|
96
105
|
define_method(method) do |*args|
|
@@ -100,20 +109,6 @@ module Puppet
|
|
100
109
|
end
|
101
110
|
}
|
102
111
|
|
103
|
-
# Remove all collectable objects from our tree, since the client
|
104
|
-
# should not see them.
|
105
|
-
def collectstrip!
|
106
|
-
@children.dup.each do |child|
|
107
|
-
if child.is_a? self.class
|
108
|
-
child.collectstrip!
|
109
|
-
else
|
110
|
-
if child.collectable and ! child.collected
|
111
|
-
@children.delete(child)
|
112
|
-
end
|
113
|
-
end
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
112
|
# Recursively yield everything.
|
118
113
|
def delve(&block)
|
119
114
|
@children.each do |obj|
|
@@ -167,12 +162,7 @@ module Puppet
|
|
167
162
|
end
|
168
163
|
end
|
169
164
|
|
170
|
-
str =
|
171
|
-
if self.top
|
172
|
-
str = "%s"
|
173
|
-
else
|
174
|
-
str = "#{@keyword} #{@type} {\n%s\n}"
|
175
|
-
end
|
165
|
+
str = "#{@keyword} #{@name} {\n%s\n}"
|
176
166
|
str % @children.collect { |child|
|
177
167
|
child.to_manifest
|
178
168
|
}.collect { |str|
|
@@ -188,95 +178,61 @@ module Puppet
|
|
188
178
|
instance_variables
|
189
179
|
end
|
190
180
|
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
end
|
212
|
-
trans = TransObject.new(tmpname, :component)
|
213
|
-
if defined? @parameters
|
214
|
-
@parameters.each { |param,value|
|
215
|
-
Puppet.debug "Defining %s on %s of type %s" %
|
216
|
-
[param,@name,@type]
|
217
|
-
trans[param] = value
|
218
|
-
}
|
219
|
-
else
|
220
|
-
#Puppet.debug "%s[%s] has no parameters" % [@type, @name]
|
181
|
+
# Create a resource graph from our structure.
|
182
|
+
def to_catalog
|
183
|
+
catalog = Puppet::Node::Catalog.new(Facter.value("hostname")) do |config|
|
184
|
+
delver = proc do |obj|
|
185
|
+
obj.catalog = config
|
186
|
+
unless container = config.resource(obj.to_ref)
|
187
|
+
container = obj.to_type
|
188
|
+
config.add_resource container
|
189
|
+
end
|
190
|
+
obj.each do |child|
|
191
|
+
child.catalog = config
|
192
|
+
unless resource = config.resource(child.to_ref)
|
193
|
+
next unless resource = child.to_type
|
194
|
+
config.add_resource resource
|
195
|
+
end
|
196
|
+
config.add_edge!(container, resource)
|
197
|
+
if child.is_a?(self.class)
|
198
|
+
delver.call(child)
|
199
|
+
end
|
200
|
+
end
|
221
201
|
end
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
202
|
+
|
203
|
+
delver.call(self)
|
204
|
+
end
|
205
|
+
|
206
|
+
return catalog
|
207
|
+
end
|
208
|
+
|
209
|
+
def to_ref
|
210
|
+
unless defined? @ref
|
211
|
+
if self.type and self.name
|
212
|
+
@ref = Puppet::ResourceReference.new(self.type, self.name)
|
213
|
+
elsif self.type and ! self.name # This is old-school node types
|
214
|
+
@ref = Puppet::ResourceReference.new("node", self.type)
|
215
|
+
elsif ! self.type and self.name
|
216
|
+
@ref = Puppet::ResourceReference.new("component", self.name)
|
234
217
|
else
|
235
|
-
|
218
|
+
@ref = nil
|
236
219
|
end
|
237
|
-
|
238
|
-
#if parent
|
239
|
-
# hash[:parent] = parent
|
240
|
-
#end
|
241
|
-
container = Puppet::Type::Component.create(hash)
|
242
220
|
end
|
243
|
-
|
221
|
+
@ref.to_s if @ref
|
222
|
+
end
|
244
223
|
|
245
|
-
|
246
|
-
|
247
|
-
end
|
224
|
+
def to_type
|
225
|
+
Puppet.debug("TransBucket '%s' has no type" % @name) unless defined? @type
|
248
226
|
|
249
|
-
#
|
250
|
-
|
251
|
-
|
252
|
-
|
227
|
+
# Nodes have the same name and type
|
228
|
+
trans = TransObject.new(to_ref, :component)
|
229
|
+
if defined? @parameters
|
230
|
+
@parameters.each { |param,value|
|
231
|
+
Puppet.debug "Defining %s on %s" % [param, to_ref]
|
232
|
+
trans[param] = value
|
233
|
+
}
|
253
234
|
end
|
254
|
-
|
255
|
-
self.each { |child|
|
256
|
-
# the fact that we descend here means that we are
|
257
|
-
# always going to execute depth-first
|
258
|
-
# which is _probably_ a good thing, but one never knows...
|
259
|
-
unless child.is_a?(Puppet::TransBucket) or
|
260
|
-
child.is_a?(Puppet::TransObject)
|
261
|
-
raise Puppet::DevError,
|
262
|
-
"TransBucket#to_type cannot handle objects of type %s" %
|
263
|
-
child.class
|
264
|
-
end
|
265
|
-
|
266
|
-
# Now just call to_type on them with the container as a parent
|
267
|
-
begin
|
268
|
-
child.to_type(container)
|
269
|
-
rescue => detail
|
270
|
-
if Puppet[:trace] and ! detail.is_a?(Puppet::Error)
|
271
|
-
puts detail.backtrace
|
272
|
-
end
|
273
|
-
Puppet.err detail.to_s
|
274
|
-
end
|
275
|
-
}
|
276
|
-
|
277
|
-
# at this point, no objects at are level are still Transportable
|
278
|
-
# objects
|
279
|
-
return container
|
235
|
+
return Puppet::Type::Component.create(trans)
|
280
236
|
end
|
281
237
|
|
282
238
|
def param(param,value)
|
@@ -287,7 +243,5 @@ module Puppet
|
|
287
243
|
end
|
288
244
|
|
289
245
|
end
|
290
|
-
#------------------------------------------------------------
|
291
246
|
end
|
292
247
|
|
293
|
-
# $Id: transportable.rb 2068 2007-01-10 03:25:25Z lutter $
|
data/lib/puppet/type.rb
CHANGED
@@ -10,6 +10,7 @@ require 'puppet/metatype/manager'
|
|
10
10
|
require 'puppet/util/errors'
|
11
11
|
require 'puppet/util/log_paths'
|
12
12
|
require 'puppet/util/logging'
|
13
|
+
require 'puppet/resource_reference'
|
13
14
|
|
14
15
|
# see the bottom of the file for the rest of the inclusions
|
15
16
|
|
@@ -44,7 +45,6 @@ class Type
|
|
44
45
|
# that it is clear whether it operates on all attributes (thus has 'attr' in
|
45
46
|
# the method name, or whether it operates on a specific type of attributes.
|
46
47
|
attr_accessor :file, :line
|
47
|
-
attr_reader :parent
|
48
48
|
|
49
49
|
attr_writer :title
|
50
50
|
attr_writer :noop
|
@@ -117,6 +117,9 @@ class Type
|
|
117
117
|
define_method(:validate, &block)
|
118
118
|
#@validate = block
|
119
119
|
end
|
120
|
+
|
121
|
+
# The catalog that this resource is stored in.
|
122
|
+
attr_accessor :catalog
|
120
123
|
|
121
124
|
# create a log at specified level
|
122
125
|
def log(msg)
|
@@ -179,8 +182,11 @@ class Type
|
|
179
182
|
# If we got passed a transportable object, we just pull a bunch of info
|
180
183
|
# directly from it. This is the main object instantiation mechanism.
|
181
184
|
if hash.is_a?(Puppet::TransObject)
|
185
|
+
# XXX This will need to change when transobjects change to titles.
|
186
|
+
self.title = hash.name
|
187
|
+
|
182
188
|
#self[:name] = hash[:name]
|
183
|
-
[:file, :line, :tags].each { |getter|
|
189
|
+
[:file, :line, :tags, :catalog].each { |getter|
|
184
190
|
if hash.respond_to?(getter)
|
185
191
|
setter = getter.to_s + "="
|
186
192
|
if val = hash.send(getter)
|
@@ -189,13 +195,12 @@ class Type
|
|
189
195
|
end
|
190
196
|
}
|
191
197
|
|
192
|
-
# XXX This will need to change when transobjects change to titles.
|
193
|
-
@title = hash.name
|
194
198
|
hash = hash.to_hash
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
+
else
|
200
|
+
if hash[:title]
|
201
|
+
@title = hash[:title]
|
202
|
+
hash.delete(:title)
|
203
|
+
end
|
199
204
|
end
|
200
205
|
|
201
206
|
# Before anything else, set our parent if it was included
|
@@ -219,7 +224,7 @@ class Type
|
|
219
224
|
if attrs.include?(namevar)
|
220
225
|
attrs.delete(namevar)
|
221
226
|
else
|
222
|
-
self.devfail "My namevar isn
|
227
|
+
self.devfail "My namevar isn't a valid attribute...?"
|
223
228
|
end
|
224
229
|
else
|
225
230
|
self.devfail "I was not passed a namevar"
|
@@ -282,6 +287,14 @@ class Type
|
|
282
287
|
# Scheduling has to be done when the whole config is instantiated, so
|
283
288
|
# that file order doesn't matter in finding them.
|
284
289
|
self.schedule
|
290
|
+
|
291
|
+
# Make sure all of our relationships are valid. Again, must be done
|
292
|
+
# when the entire catalog is instantiated.
|
293
|
+
self.class.relationship_params.collect do |klass|
|
294
|
+
if param = @parameters[klass.name]
|
295
|
+
param.validate_relationship
|
296
|
+
end
|
297
|
+
end.flatten.reject { |r| r.nil? }
|
285
298
|
end
|
286
299
|
|
287
300
|
# Return a cached value
|
@@ -310,6 +323,28 @@ class Type
|
|
310
323
|
return self[:name]
|
311
324
|
end
|
312
325
|
|
326
|
+
# Look up our parent in the catalog, if we have one.
|
327
|
+
def parent
|
328
|
+
return nil unless catalog
|
329
|
+
|
330
|
+
unless defined?(@parent)
|
331
|
+
# This is kinda weird.
|
332
|
+
if implicit?
|
333
|
+
parents = catalog.relationship_graph.adjacent(self, :direction => :in)
|
334
|
+
else
|
335
|
+
parents = catalog.adjacent(self, :direction => :in)
|
336
|
+
end
|
337
|
+
if parents
|
338
|
+
# We should never have more than one parent, so let's just ignore
|
339
|
+
# it if we happen to.
|
340
|
+
@parent = parents.shift
|
341
|
+
else
|
342
|
+
@parent = nil
|
343
|
+
end
|
344
|
+
end
|
345
|
+
@parent
|
346
|
+
end
|
347
|
+
|
313
348
|
# Return the "type[name]" style reference.
|
314
349
|
def ref
|
315
350
|
"%s[%s]" % [self.class.name.to_s.capitalize, self.title]
|
@@ -394,4 +429,3 @@ require 'puppet/type/tidy'
|
|
394
429
|
|
395
430
|
|
396
431
|
|
397
|
-
# $Id: type.rb 2684 2007-07-12 16:39:47Z luke $
|
@@ -48,16 +48,6 @@ Puppet::Type.newtype(:component) do
|
|
48
48
|
@children.each { |child| yield child }
|
49
49
|
end
|
50
50
|
|
51
|
-
# flatten all children, sort them, and evaluate them in order
|
52
|
-
# this is only called on one component over the whole system
|
53
|
-
# this also won't work with scheduling, but eh
|
54
|
-
def evaluate
|
55
|
-
self.finalize unless self.finalized?
|
56
|
-
transaction = Puppet::Transaction.new(self)
|
57
|
-
transaction.component = self
|
58
|
-
return transaction
|
59
|
-
end
|
60
|
-
|
61
51
|
# Do all of the polishing off, mostly doing autorequires and making
|
62
52
|
# dependencies. This will get run once on the top-level component,
|
63
53
|
# and it will do everything necessary.
|
@@ -92,14 +82,14 @@ Puppet::Type.newtype(:component) do
|
|
92
82
|
end
|
93
83
|
|
94
84
|
# Initialize a new component
|
95
|
-
def initialize(args)
|
85
|
+
def initialize(*args)
|
96
86
|
@children = []
|
97
|
-
super
|
87
|
+
super
|
88
|
+
|
89
|
+
@reference = Puppet::ResourceReference.new(:component, @title)
|
98
90
|
|
99
|
-
|
100
|
-
|
101
|
-
unless @title.to_s.include?("[")
|
102
|
-
self.class.alias("class[%s]" % @title, self)
|
91
|
+
unless self.class[@reference.to_s]
|
92
|
+
self.class.alias(@reference.to_s, self)
|
103
93
|
end
|
104
94
|
end
|
105
95
|
|
@@ -108,14 +98,6 @@ Puppet::Type.newtype(:component) do
|
|
108
98
|
@children = []
|
109
99
|
end
|
110
100
|
|
111
|
-
def parent=(parent)
|
112
|
-
if self.parentof?(parent)
|
113
|
-
devfail "%s[%s] is already the parent of %s[%s]" %
|
114
|
-
[self.class.name, self.title, parent.class.name, parent.title]
|
115
|
-
end
|
116
|
-
@parent = parent
|
117
|
-
end
|
118
|
-
|
119
101
|
# Add a hook for testing for recursion.
|
120
102
|
def parentof?(child)
|
121
103
|
if super(child)
|
@@ -127,113 +109,46 @@ Puppet::Type.newtype(:component) do
|
|
127
109
|
return false
|
128
110
|
end
|
129
111
|
end
|
130
|
-
|
131
|
-
def push(*childs)
|
132
|
-
unless defined? @children
|
133
|
-
@children = []
|
134
|
-
end
|
135
|
-
childs.each { |child|
|
136
|
-
# Make sure we don't have any loops here.
|
137
|
-
if parentof?(child)
|
138
|
-
devfail "Already the parent of %s[%s]" % [child.class.name, child.title]
|
139
|
-
end
|
140
|
-
unless child.is_a?(Puppet::Type)
|
141
|
-
self.debug "Got object of type %s" % child.class
|
142
|
-
self.devfail(
|
143
|
-
"Containers can only contain Puppet resources, not %s" %
|
144
|
-
child.class
|
145
|
-
)
|
146
|
-
end
|
147
|
-
@children.push(child)
|
148
|
-
child.parent = self
|
149
|
-
}
|
150
|
-
end
|
151
112
|
|
152
113
|
# Component paths are special because they function as containers.
|
153
114
|
def pathbuilder
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
# that.
|
160
|
-
if self.title == "main[top]"
|
161
|
-
tmp << "" # This empty field results in "//" in the path
|
115
|
+
if @reference.type == "Class"
|
116
|
+
# 'main' is the top class, so we want to see '//' instead of
|
117
|
+
# its name.
|
118
|
+
if @reference.title == "main"
|
119
|
+
myname = ""
|
162
120
|
else
|
163
|
-
|
121
|
+
myname = @reference.title
|
164
122
|
end
|
123
|
+
else
|
124
|
+
myname = @reference.to_s
|
125
|
+
end
|
126
|
+
if p = self.parent
|
127
|
+
return [p.pathbuilder, myname]
|
128
|
+
else
|
129
|
+
return [myname]
|
165
130
|
end
|
166
|
-
|
167
|
-
tmp
|
168
131
|
end
|
169
132
|
|
170
|
-
|
171
|
-
|
172
|
-
def remove(rmdeps = true)
|
173
|
-
# Our children remove themselves from our @children array (else the object
|
174
|
-
# we called this on at the top would not be removed), so we duplicate the
|
175
|
-
# array and iterate over that. If we don't do this, only half of the
|
176
|
-
# objects get removed.
|
177
|
-
@children.dup.each { |child|
|
178
|
-
child.remove(rmdeps)
|
179
|
-
}
|
180
|
-
|
181
|
-
@children.clear
|
182
|
-
|
183
|
-
# Get rid of params and provider, too.
|
184
|
-
super
|
185
|
-
|
186
|
-
@parent = nil
|
133
|
+
def ref
|
134
|
+
@reference.to_s
|
187
135
|
end
|
188
136
|
|
189
|
-
# We
|
137
|
+
# We want our title to just be the whole reference, rather than @title.
|
190
138
|
def title
|
191
|
-
|
192
|
-
if self[:type] == self[:name] # this is the case for classes
|
193
|
-
@title = self[:type]
|
194
|
-
elsif self[:name] =~ /\[.+\]/ # most components already have ref info in the name
|
195
|
-
@title = self[:name]
|
196
|
-
else # else, set it up
|
197
|
-
@title = "%s[%s]" % [self[:type].capitalize, self[:name]]
|
198
|
-
end
|
199
|
-
end
|
200
|
-
return @title
|
139
|
+
@reference.to_s
|
201
140
|
end
|
202
141
|
|
203
142
|
def refresh
|
204
|
-
|
143
|
+
catalog.adjacent(self).each do |child|
|
205
144
|
if child.respond_to?(:refresh)
|
206
145
|
child.refresh
|
207
146
|
child.log "triggering %s" % :refresh
|
208
147
|
end
|
209
|
-
}
|
210
|
-
end
|
211
|
-
|
212
|
-
# Convert to a graph object with all of the container info.
|
213
|
-
def to_graph
|
214
|
-
graph = Puppet::PGraph.new
|
215
|
-
|
216
|
-
delver = proc do |obj|
|
217
|
-
obj.each do |child|
|
218
|
-
graph.add_edge!(obj, child)
|
219
|
-
if child.is_a?(self.class)
|
220
|
-
delver.call(child)
|
221
|
-
end
|
222
|
-
end
|
223
148
|
end
|
224
|
-
|
225
|
-
delver.call(self)
|
226
|
-
|
227
|
-
return graph
|
228
149
|
end
|
229
150
|
|
230
151
|
def to_s
|
231
|
-
|
232
|
-
return self.title
|
233
|
-
else
|
234
|
-
return "component(%s)" % self.title
|
235
|
-
end
|
152
|
+
@reference.to_s
|
236
153
|
end
|
237
154
|
end
|
238
|
-
|
239
|
-
# $Id: component.rb 2715 2007-07-19 19:23:56Z luke $
|