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
@@ -0,0 +1,46 @@
|
|
1
|
+
# Model the environment that a node can operate in. This class just
|
2
|
+
# provides a simple wrapper for the functionality around environments.
|
3
|
+
class Puppet::Node::Environment
|
4
|
+
# Return the list of valid environments. Just looks them up in
|
5
|
+
# the settings.
|
6
|
+
def self.valid
|
7
|
+
Puppet.settings.value(:environments).split(",").collect { |e| e.to_sym }
|
8
|
+
end
|
9
|
+
|
10
|
+
# Is the provided environment valid?
|
11
|
+
def self.valid?(name)
|
12
|
+
return false if name.to_s == ""
|
13
|
+
valid.include?(name.to_sym)
|
14
|
+
end
|
15
|
+
|
16
|
+
@seen = {}
|
17
|
+
|
18
|
+
# Return an existing environment instance, or create a new one,
|
19
|
+
# validating the environment name.
|
20
|
+
def self.new(name = nil)
|
21
|
+
name ||= Puppet.settings.value(:environment)
|
22
|
+
|
23
|
+
raise ArgumentError, "Environment name must be specified" unless name
|
24
|
+
|
25
|
+
raise(ArgumentError, "'%s' is not a valid environment" % name) unless valid?(name)
|
26
|
+
|
27
|
+
symbol = name.to_sym
|
28
|
+
|
29
|
+
return @seen[symbol] if @seen[symbol]
|
30
|
+
|
31
|
+
obj = self.allocate
|
32
|
+
obj.send :initialize, symbol
|
33
|
+
@seen[symbol] = obj
|
34
|
+
end
|
35
|
+
|
36
|
+
attr_reader :name
|
37
|
+
|
38
|
+
# Return an environment-specific setting.
|
39
|
+
def [](param)
|
40
|
+
Puppet.settings.value(param, self.name)
|
41
|
+
end
|
42
|
+
|
43
|
+
def initialize(name)
|
44
|
+
@name = name
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'puppet/node'
|
2
|
+
require 'puppet/indirector'
|
3
|
+
|
4
|
+
# Manage a given node's facts. This either accepts facts and stores them, or
|
5
|
+
# returns facts for a given node.
|
6
|
+
class Puppet::Node::Facts
|
7
|
+
# Set up indirection, so that nodes can be looked for in
|
8
|
+
# the node sources.
|
9
|
+
extend Puppet::Indirector
|
10
|
+
|
11
|
+
# Use the node source as the indirection terminus.
|
12
|
+
indirects :facts, :terminus_class => :facter
|
13
|
+
|
14
|
+
attr_accessor :name, :values
|
15
|
+
|
16
|
+
def initialize(name, values = {})
|
17
|
+
@name = name
|
18
|
+
@values = values
|
19
|
+
|
20
|
+
add_internal
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
# Add internal data to the facts for storage.
|
26
|
+
def add_internal
|
27
|
+
self.values[:_timestamp] = Time.now
|
28
|
+
end
|
29
|
+
|
30
|
+
# Strip out that internal data.
|
31
|
+
def strip_internal
|
32
|
+
newvals = values.dup
|
33
|
+
newvals.find_all { |name, value| name.to_s =~ /^_/ }.each { |name, value| newvals.delete(name) }
|
34
|
+
newvals
|
35
|
+
end
|
36
|
+
end
|
data/lib/puppet/parameter.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'puppet/util/methodhelper'
|
2
2
|
require 'puppet/util/log_paths'
|
3
3
|
require 'puppet/util/logging'
|
4
|
+
require 'puppet/util/docs'
|
4
5
|
|
5
6
|
class Puppet::Parameter
|
6
7
|
include Puppet::Util
|
@@ -10,6 +11,7 @@ class Puppet::Parameter
|
|
10
11
|
include Puppet::Util::MethodHelper
|
11
12
|
class << self
|
12
13
|
include Puppet::Util
|
14
|
+
include Puppet::Util::Docs
|
13
15
|
attr_reader :validater, :munger, :name, :default, :required_features
|
14
16
|
attr_accessor :metaparam
|
15
17
|
|
@@ -287,9 +289,6 @@ class Puppet::Parameter
|
|
287
289
|
raise Puppet::DevError, "No resource set for %s" % self.class.name
|
288
290
|
end
|
289
291
|
|
290
|
-
# LAK 2007-05-09: Keep the @parent around for backward compatibility.
|
291
|
-
#@parent = @resource
|
292
|
-
|
293
292
|
if ! self.metaparam? and klass = Puppet::Type.metaparamclass(self.class.name)
|
294
293
|
setup_shadow(klass)
|
295
294
|
end
|
@@ -376,36 +375,37 @@ class Puppet::Parameter
|
|
376
375
|
vals = self.class.values
|
377
376
|
regs = self.class.regexes
|
378
377
|
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
end
|
378
|
+
# this is true on properties
|
379
|
+
regs = regs.keys if regs.is_a?(Hash)
|
380
|
+
|
381
|
+
# This parameter isn't using defined values to do its work.
|
382
|
+
return if vals.empty? and regs.empty?
|
383
|
+
|
386
384
|
newval = value
|
387
|
-
unless value.is_a?(Symbol)
|
388
|
-
newval = value.to_s.intern
|
389
|
-
end
|
385
|
+
newval = value.to_s.intern unless value.is_a?(Symbol)
|
390
386
|
|
391
|
-
|
392
|
-
self.class.alias(newval) or
|
393
|
-
self.class.match?(value) # We match the string, not the symbol
|
394
|
-
str = "Invalid '%s' value %s. " %
|
395
|
-
[self.class.name, value.inspect]
|
387
|
+
name = newval
|
396
388
|
|
397
|
-
|
398
|
-
|
399
|
-
|
389
|
+
unless vals.include?(newval) or name = self.class.alias(newval) or name = self.class.match?(value) # We match the string, not the symbol
|
390
|
+
str = "Invalid '%s' value %s. " %
|
391
|
+
[self.class.name, value.inspect]
|
400
392
|
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
393
|
+
unless vals.empty?
|
394
|
+
str += "Valid values are %s. " % vals.join(", ")
|
395
|
+
end
|
396
|
+
|
397
|
+
unless regs.empty?
|
398
|
+
str += "Valid values match %s." % regs.collect { |r|
|
399
|
+
r.to_s
|
400
|
+
}.join(", ")
|
401
|
+
end
|
406
402
|
|
407
|
-
|
403
|
+
raise ArgumentError, str
|
408
404
|
end
|
405
|
+
|
406
|
+
# Now check for features.
|
407
|
+
name = name[0] if name.is_a?(Array) # This is true for regexes.
|
408
|
+
validate_features_per_value(name) if is_a?(Puppet::Property)
|
409
409
|
end
|
410
410
|
|
411
411
|
def remove
|
@@ -482,6 +482,12 @@ class Puppet::Parameter
|
|
482
482
|
def to_s
|
483
483
|
s = "Parameter(%s)" % self.name
|
484
484
|
end
|
485
|
+
|
486
|
+
# Make sure that we've got all of the required features for a given value.
|
487
|
+
def validate_features_per_value(value)
|
488
|
+
if features = self.class.value_option(value, :required_features)
|
489
|
+
raise ArgumentError, "Provider must have features '%s' to set '%s' to '%s'" % [features, self.class.name, value] unless provider.satisfies?(features)
|
490
|
+
end
|
491
|
+
end
|
485
492
|
end
|
486
493
|
|
487
|
-
# $Id: parameter.rb 2647 2007-07-04 22:25:23Z luke $
|
data/lib/puppet/parser/ast.rb
CHANGED
@@ -21,45 +21,39 @@ class Puppet::Parser::AST
|
|
21
21
|
# We basically always operate declaratively, and when we
|
22
22
|
# do we need to evaluate the settor-like statements first. This
|
23
23
|
# is basically variable and type-default declarations.
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
others = []
|
24
|
+
# This is such a stupid hack. I've no real idea how to make a
|
25
|
+
# "real" declarative language, so I hack it so it looks like
|
26
|
+
# one, yay.
|
27
|
+
settors = []
|
28
|
+
others = []
|
30
29
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
else
|
42
|
-
others << ac
|
43
|
-
end
|
44
|
-
end
|
45
|
-
else
|
46
|
-
if child.class.settor?
|
47
|
-
settors << child
|
30
|
+
# Make a new array, so we don't have to deal with the details of
|
31
|
+
# flattening and such
|
32
|
+
items = []
|
33
|
+
|
34
|
+
# First clean out any AST::ASTArrays
|
35
|
+
@children.each { |child|
|
36
|
+
if child.instance_of?(AST::ASTArray)
|
37
|
+
child.each do |ac|
|
38
|
+
if ac.class.settor?
|
39
|
+
settors << ac
|
48
40
|
else
|
49
|
-
others <<
|
41
|
+
others << ac
|
50
42
|
end
|
51
43
|
end
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
44
|
+
else
|
45
|
+
if child.class.settor?
|
46
|
+
settors << child
|
47
|
+
else
|
48
|
+
others << child
|
49
|
+
end
|
50
|
+
end
|
51
|
+
}
|
52
|
+
|
53
|
+
rets = [settors, others].flatten.collect { |child|
|
54
|
+
child.safeevaluate(:scope => scope)
|
55
|
+
}
|
56
|
+
return rets.reject { |o| o.nil? }
|
63
57
|
end
|
64
58
|
|
65
59
|
def push(*ary)
|
@@ -72,28 +66,11 @@ class Puppet::Parser::AST
|
|
72
66
|
|
73
67
|
return self
|
74
68
|
end
|
75
|
-
|
76
|
-
# Convert to a string. Only used for printing the parse tree.
|
77
|
-
def to_s
|
78
|
-
return "[" + @children.collect { |child|
|
79
|
-
child.to_s
|
80
|
-
}.join(", ") + "]"
|
81
|
-
end
|
82
|
-
|
83
|
-
# Print the parse tree.
|
84
|
-
def tree(indent = 0)
|
85
|
-
#puts((AST.indent * indent) + self.pin)
|
86
|
-
self.collect { |child|
|
87
|
-
child.tree(indent)
|
88
|
-
}.join("\n" + (AST.midline * (indent+1)) + "\n")
|
89
|
-
end
|
90
69
|
end
|
91
70
|
|
92
71
|
# A simple container class, containing the parameters for an object.
|
93
72
|
# Used for abstracting the grammar declarations. Basically unnecessary
|
94
73
|
# except that I kept finding bugs because I had too many arrays that
|
95
74
|
# meant completely different things.
|
96
|
-
class
|
75
|
+
class ResourceInstance < ASTArray; end
|
97
76
|
end
|
98
|
-
|
99
|
-
# $Id: astarray.rb 1739 2006-10-06 03:13:15Z luke $
|
@@ -35,15 +35,5 @@ class Puppet::Parser::AST
|
|
35
35
|
end
|
36
36
|
}
|
37
37
|
end
|
38
|
-
|
39
|
-
# Pretty-print the parse tree.
|
40
|
-
def tree(indent = 0)
|
41
|
-
return ((@@indline * indent) +
|
42
|
-
self.typewrap(self.pin)) + "\n" + self.collect { |child|
|
43
|
-
child.tree(indent + 1)
|
44
|
-
}.join("\n")
|
45
|
-
end
|
46
38
|
end
|
47
39
|
end
|
48
|
-
|
49
|
-
# $Id: branch.rb 1484 2006-08-22 23:34:40Z luke $
|
@@ -56,16 +56,5 @@ class Puppet::Parser::AST
|
|
56
56
|
def evaluate(hash)
|
57
57
|
return @statements.safeevaluate(hash)
|
58
58
|
end
|
59
|
-
|
60
|
-
def tree(indent = 0)
|
61
|
-
rettree = [
|
62
|
-
@value.tree(indent + 1),
|
63
|
-
((@@indline * indent) + self.typewrap(self.pin)),
|
64
|
-
@statements.tree(indent + 1)
|
65
|
-
]
|
66
|
-
return rettree.flatten.join("\n")
|
67
|
-
end
|
68
59
|
end
|
69
60
|
end
|
70
|
-
|
71
|
-
# $Id: caseopt.rb 2259 2007-03-06 19:03:05Z luke $
|
@@ -51,20 +51,8 @@ class Puppet::Parser::AST
|
|
51
51
|
return retvalue
|
52
52
|
end
|
53
53
|
|
54
|
-
def tree(indent = 0)
|
55
|
-
rettree = [
|
56
|
-
@test.tree(indent + 1),
|
57
|
-
((@@indline * indent) + self.typewrap(self.pin)),
|
58
|
-
@options.tree(indent + 1)
|
59
|
-
]
|
60
|
-
|
61
|
-
return rettree.flatten.join("\n")
|
62
|
-
end
|
63
|
-
|
64
54
|
def each
|
65
55
|
[@test,@options].each { |child| yield child }
|
66
56
|
end
|
67
57
|
end
|
68
58
|
end
|
69
|
-
|
70
|
-
# $Id: casestatement.rb 2259 2007-03-06 19:03:05Z luke $
|
@@ -20,11 +20,9 @@ class Collection < AST::Branch
|
|
20
20
|
|
21
21
|
newcoll = Puppet::Parser::Collector.new(scope, @type, str, code, self.form)
|
22
22
|
|
23
|
-
scope.
|
23
|
+
scope.compile.add_collection(newcoll)
|
24
24
|
|
25
25
|
newcoll
|
26
26
|
end
|
27
27
|
end
|
28
28
|
end
|
29
|
-
|
30
|
-
# $Id: collection.rb 1805 2006-10-18 00:22:45Z luke $
|
@@ -4,7 +4,7 @@ class Puppet::Parser::AST
|
|
4
4
|
# Evaluate the stored parse tree for a given component. This will
|
5
5
|
# receive the arguments passed to the component and also the type and
|
6
6
|
# name of the component.
|
7
|
-
class
|
7
|
+
class Definition < AST::Branch
|
8
8
|
include Puppet::Util
|
9
9
|
include Puppet::Util::Warnings
|
10
10
|
include Puppet::Util::MethodHelper
|
@@ -27,78 +27,26 @@ class Puppet::Parser::AST
|
|
27
27
|
false
|
28
28
|
end
|
29
29
|
|
30
|
-
def evaluate(
|
31
|
-
origscope =
|
32
|
-
|
33
|
-
args = symbolize_options(hash[:arguments] || {})
|
30
|
+
def evaluate(options)
|
31
|
+
origscope = options[:scope]
|
32
|
+
resource = options[:resource]
|
34
33
|
|
35
|
-
|
36
|
-
|
37
|
-
exported = hash[:exported]
|
38
|
-
virtual = hash[:virtual]
|
39
|
-
|
40
|
-
pscope = origscope
|
41
|
-
scope = subscope(pscope, title)
|
42
|
-
|
43
|
-
if virtual or origscope.virtual?
|
44
|
-
scope.virtual = true
|
45
|
-
end
|
46
|
-
|
47
|
-
if exported or origscope.exported?
|
48
|
-
scope.exported = true
|
49
|
-
end
|
34
|
+
# Create a new scope.
|
35
|
+
scope = subscope(origscope, resource)
|
50
36
|
|
51
37
|
# Additionally, add a tag for whatever kind of class
|
52
38
|
# we are
|
53
39
|
if @classname != "" and ! @classname.nil?
|
54
|
-
@classname.split(/::/).each { |tag| scope.tag(tag) }
|
40
|
+
@classname.split(/::/).each { |tag| scope.resource.tag(tag) }
|
55
41
|
end
|
56
42
|
|
57
|
-
[name, title].each do |str|
|
43
|
+
[resource.name, resource.title].each do |str|
|
58
44
|
unless str.nil? or str =~ /[^\w]/ or str == ""
|
59
|
-
scope.tag(str)
|
45
|
+
scope.resource.tag(str)
|
60
46
|
end
|
61
47
|
end
|
62
48
|
|
63
|
-
|
64
|
-
if self.arguments
|
65
|
-
# Verify that all required arguments are either present or
|
66
|
-
# have been provided with defaults.
|
67
|
-
self.arguments.each { |arg, default|
|
68
|
-
arg = symbolize(arg)
|
69
|
-
unless args.include?(arg)
|
70
|
-
if defined? default and ! default.nil?
|
71
|
-
default = default.safeevaluate :scope => scope
|
72
|
-
args[arg] = default
|
73
|
-
#Puppet.debug "Got default %s for %s in %s" %
|
74
|
-
# [default.inspect, arg.inspect, @name.inspect]
|
75
|
-
else
|
76
|
-
parsefail "Must pass %s to %s of type %s" %
|
77
|
-
[arg,title,@classname]
|
78
|
-
end
|
79
|
-
end
|
80
|
-
}
|
81
|
-
end
|
82
|
-
|
83
|
-
# Set each of the provided arguments as variables in the
|
84
|
-
# component's scope.
|
85
|
-
args.each { |arg,value|
|
86
|
-
unless validattr?(arg)
|
87
|
-
parsefail "%s does not accept attribute %s" % [@classname, arg]
|
88
|
-
end
|
89
|
-
|
90
|
-
exceptwrap do
|
91
|
-
scope.setvar(arg.to_s,args[arg])
|
92
|
-
end
|
93
|
-
}
|
94
|
-
|
95
|
-
unless args.include? :title
|
96
|
-
scope.setvar("title",title)
|
97
|
-
end
|
98
|
-
|
99
|
-
unless args.include? :name
|
100
|
-
scope.setvar("name",name)
|
101
|
-
end
|
49
|
+
set_resource_parameters(scope, resource)
|
102
50
|
|
103
51
|
if self.code
|
104
52
|
return self.code.safeevaluate(:scope => scope)
|
@@ -130,11 +78,9 @@ class Puppet::Parser::AST
|
|
130
78
|
@arguments.each do |arg, defvalue|
|
131
79
|
next unless Puppet::Type.metaparamclass(arg)
|
132
80
|
if defvalue
|
133
|
-
warnonce "%s is a metaparam; this value will inherit to all contained
|
81
|
+
warnonce "%s is a metaparam; this value will inherit to all contained resources" % arg
|
134
82
|
else
|
135
|
-
raise Puppet::ParseError,
|
136
|
-
"%s is a metaparameter; please choose another name" %
|
137
|
-
name
|
83
|
+
raise Puppet::ParseError, "%s is a metaparameter; please choose another parameter name in the %s definition" % [arg, self.classname]
|
138
84
|
end
|
139
85
|
end
|
140
86
|
end
|
@@ -175,14 +121,15 @@ class Puppet::Parser::AST
|
|
175
121
|
end
|
176
122
|
|
177
123
|
# Create a new subscope in which to evaluate our code.
|
178
|
-
def subscope(scope,
|
124
|
+
def subscope(scope, resource)
|
179
125
|
args = {
|
180
|
-
:
|
126
|
+
:resource => resource,
|
181
127
|
:keyword => self.keyword,
|
182
|
-
:namespace => self.namespace
|
128
|
+
:namespace => self.namespace,
|
129
|
+
:source => self
|
183
130
|
}
|
184
131
|
|
185
|
-
|
132
|
+
oldscope = scope
|
186
133
|
scope = scope.newscope(args)
|
187
134
|
scope.source = self
|
188
135
|
|
@@ -220,7 +167,46 @@ class Puppet::Parser::AST
|
|
220
167
|
return false
|
221
168
|
end
|
222
169
|
end
|
170
|
+
|
171
|
+
private
|
172
|
+
|
173
|
+
# Set any arguments passed by the resource as variables in the scope.
|
174
|
+
def set_resource_parameters(scope, resource)
|
175
|
+
args = symbolize_options(resource.to_hash || {})
|
176
|
+
|
177
|
+
# Verify that all required arguments are either present or
|
178
|
+
# have been provided with defaults.
|
179
|
+
if self.arguments
|
180
|
+
self.arguments.each { |arg, default|
|
181
|
+
arg = symbolize(arg)
|
182
|
+
unless args.include?(arg)
|
183
|
+
if defined? default and ! default.nil?
|
184
|
+
default = default.safeevaluate :scope => scope
|
185
|
+
args[arg] = default
|
186
|
+
#Puppet.debug "Got default %s for %s in %s" %
|
187
|
+
# [default.inspect, arg.inspect, @name.inspect]
|
188
|
+
else
|
189
|
+
parsefail "Must pass %s to %s of type %s" %
|
190
|
+
[arg, resource.title, @classname]
|
191
|
+
end
|
192
|
+
end
|
193
|
+
}
|
194
|
+
end
|
195
|
+
|
196
|
+
# Set each of the provided arguments as variables in the
|
197
|
+
# definition's scope.
|
198
|
+
args.each { |arg,value|
|
199
|
+
unless validattr?(arg)
|
200
|
+
parsefail "%s does not accept attribute %s" % [@classname, arg]
|
201
|
+
end
|
202
|
+
|
203
|
+
exceptwrap do
|
204
|
+
scope.setvar(arg.to_s, args[arg])
|
205
|
+
end
|
206
|
+
}
|
207
|
+
|
208
|
+
scope.setvar("title", resource.title) unless args.include? :title
|
209
|
+
scope.setvar("name", resource.name) unless args.include? :name
|
210
|
+
end
|
223
211
|
end
|
224
212
|
end
|
225
|
-
|
226
|
-
# $Id: component.rb 2742 2007-08-03 23:49:53Z luke $
|