puppet 0.23.2 → 0.24.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- data/CHANGELOG +112 -1
- data/README +1 -1
- data/Rakefile +1 -2
- data/bin/filebucket +2 -3
- data/bin/puppet +55 -39
- data/bin/puppetca +20 -11
- data/bin/puppetd +30 -31
- data/bin/puppetdoc +27 -28
- data/bin/puppetmasterd +24 -42
- data/bin/puppetrun +3 -4
- data/bin/ralsh +5 -7
- data/conf/redhat/puppet.spec +4 -1
- data/conf/solaris/smf/svc-puppetd +1 -1
- data/conf/solaris/smf/svc-puppetmasterd +1 -1
- data/examples/code/allatonce +1 -1
- data/examples/code/assignments +1 -1
- data/examples/code/components +1 -1
- data/examples/code/file.bl +1 -1
- data/examples/code/filedefaults +1 -1
- data/examples/code/fileparsing +1 -1
- data/examples/code/filerecursion +1 -1
- data/examples/code/functions +1 -1
- data/examples/code/groups +1 -1
- data/examples/code/head +1 -1
- data/examples/code/importing +1 -1
- data/examples/code/modules/sample-module.pp +10 -0
- data/examples/code/modules/sample-module/README.txt +17 -0
- data/examples/code/modules/sample-module/lib/puppet/parser/functions/hostname_to_dn.rb +36 -0
- data/examples/code/modules/sample-module/manifests/init.pp +12 -0
- data/examples/code/modules/sample-module/templates/sample.erb +5 -0
- data/examples/code/nodes +1 -1
- data/examples/code/one +1 -1
- data/examples/code/relationships +1 -1
- data/examples/code/selectors +1 -1
- data/examples/code/simpletests +1 -1
- data/examples/root/etc/init.d/sleeper +1 -1
- data/examples/root/etc/puppet/fileserver.conf +1 -1
- data/ext/ldap/puppet.schema +1 -1
- data/ext/module_puppet +30 -21
- data/ext/puppet-test +3 -3
- data/ext/vim/filetype.vim +1 -1
- data/install.rb +1 -2
- data/lib/puppet.rb +20 -19
- data/lib/puppet/checksum.rb +57 -0
- data/lib/puppet/config_stores/rest.rb +1 -1
- data/lib/puppet/daemon.rb +0 -1
- data/lib/puppet/{configuration.rb → defaults.rb} +56 -23
- data/lib/puppet/dsl.rb +22 -116
- data/lib/puppet/error.rb +0 -9
- data/lib/puppet/event.rb +0 -1
- data/lib/puppet/external/gratr/rdot.rb +0 -1
- data/lib/puppet/external/lock.rb +0 -1
- data/lib/puppet/feature/base.rb +3 -2
- data/lib/puppet/feature/rails.rb +0 -1
- data/lib/puppet/file_serving.rb +7 -0
- data/lib/puppet/file_serving/configuration.rb +129 -0
- data/lib/puppet/file_serving/configuration/parser.rb +124 -0
- data/lib/puppet/file_serving/content.rb +34 -0
- data/lib/puppet/file_serving/file_base.rb +63 -0
- data/lib/puppet/file_serving/fileset.rb +138 -0
- data/lib/puppet/file_serving/indirection_hooks.rb +44 -0
- data/lib/puppet/file_serving/metadata.rb +69 -0
- data/lib/puppet/file_serving/mount.rb +186 -0
- data/lib/puppet/file_serving/terminus_helper.rb +19 -0
- data/lib/puppet/indirector.rb +68 -0
- data/lib/puppet/indirector/catalog/compiler.rb +173 -0
- data/lib/puppet/indirector/catalog/yaml.rb +24 -0
- data/lib/puppet/indirector/checksum/file.rb +33 -0
- data/lib/puppet/indirector/code.rb +6 -0
- data/lib/puppet/indirector/direct_file_server.rb +27 -0
- data/lib/puppet/indirector/exec.rb +57 -0
- data/lib/puppet/indirector/facts/facter.rb +65 -0
- data/lib/puppet/indirector/facts/memory.rb +9 -0
- data/lib/puppet/indirector/facts/yaml.rb +7 -0
- data/lib/puppet/indirector/file.rb +54 -0
- data/lib/puppet/indirector/file_content.rb +5 -0
- data/lib/puppet/indirector/file_content/file.rb +11 -0
- data/lib/puppet/indirector/file_content/file_server.rb +11 -0
- data/lib/puppet/indirector/file_content/modules.rb +11 -0
- data/lib/puppet/indirector/file_content/rest.rb +12 -0
- data/lib/puppet/indirector/file_metadata.rb +5 -0
- data/lib/puppet/indirector/file_metadata/file.rb +26 -0
- data/lib/puppet/indirector/file_metadata/file_server.rb +11 -0
- data/lib/puppet/indirector/file_metadata/modules.rb +17 -0
- data/lib/puppet/indirector/file_metadata/rest.rb +12 -0
- data/lib/puppet/indirector/file_server.rb +56 -0
- data/lib/puppet/indirector/indirection.rb +237 -0
- data/lib/puppet/indirector/ldap.rb +90 -0
- data/lib/puppet/indirector/memory.rb +21 -0
- data/lib/puppet/indirector/module_files.rb +82 -0
- data/lib/puppet/indirector/node/exec.rb +52 -0
- data/lib/puppet/indirector/node/ldap.rb +120 -0
- data/lib/puppet/indirector/node/memory.rb +10 -0
- data/lib/puppet/indirector/node/plain.rb +19 -0
- data/lib/puppet/indirector/node/rest.rb +7 -0
- data/lib/puppet/indirector/node/yaml.rb +7 -0
- data/lib/puppet/indirector/plain.rb +9 -0
- data/lib/puppet/indirector/report/processor.rb +50 -0
- data/lib/puppet/indirector/rest.rb +8 -0
- data/lib/puppet/indirector/ssl_rsa.rb +5 -0
- data/lib/puppet/indirector/ssl_rsa/file.rb +33 -0
- data/lib/puppet/indirector/terminus.rb +178 -0
- data/lib/puppet/indirector/yaml.rb +57 -0
- data/lib/puppet/metatype/attributes.rb +3 -3
- data/lib/puppet/metatype/closure.rb +0 -66
- data/lib/puppet/metatype/container.rb +0 -9
- data/lib/puppet/metatype/evaluation.rb +10 -2
- data/lib/puppet/metatype/instances.rb +16 -30
- data/lib/puppet/metatype/manager.rb +1 -2
- data/lib/puppet/metatype/metaparams.rb +27 -21
- data/lib/puppet/metatype/providers.rb +3 -2
- data/lib/puppet/metatype/relationships.rb +1 -2
- data/lib/puppet/metatype/schedules.rb +0 -1
- data/lib/puppet/metatype/tags.rb +0 -1
- data/lib/puppet/module.rb +60 -32
- data/lib/puppet/network/authconfig.rb +0 -1
- data/lib/puppet/network/authorization.rb +0 -1
- data/lib/puppet/network/authstore.rb +0 -1
- data/lib/puppet/network/client.rb +13 -4
- data/lib/puppet/network/client/ca.rb +4 -5
- data/lib/puppet/network/client/dipper.rb +0 -1
- data/lib/puppet/network/client/file.rb +0 -1
- data/lib/puppet/network/client/master.rb +127 -235
- data/lib/puppet/network/client/proxy.rb +0 -1
- data/lib/puppet/network/client/report.rb +0 -1
- data/lib/puppet/network/client/resource.rb +0 -1
- data/lib/puppet/network/client/runner.rb +0 -1
- data/lib/puppet/network/client/status.rb +0 -1
- data/lib/puppet/network/client_request.rb +0 -1
- data/lib/puppet/network/handler.rb +5 -2
- data/lib/puppet/network/handler/ca.rb +1 -2
- data/lib/puppet/network/handler/configuration.rb +184 -0
- data/lib/puppet/network/handler/filebucket.rb +1 -2
- data/lib/puppet/network/handler/fileserver.rb +279 -107
- data/lib/puppet/network/handler/master.rb +57 -152
- data/lib/puppet/network/handler/report.rb +6 -65
- data/lib/puppet/network/handler/resource.rb +5 -13
- data/lib/puppet/network/handler/runner.rb +3 -4
- data/lib/puppet/network/handler/status.rb +0 -1
- data/lib/puppet/network/http.rb +13 -0
- data/lib/puppet/network/http/handler.rb +109 -0
- data/lib/puppet/network/http/mongrel.rb +54 -0
- data/lib/puppet/network/http/mongrel/rest.rb +37 -0
- data/lib/puppet/network/http/mongrel/xmlrpc.rb +4 -0
- data/lib/puppet/network/http/webrick.rb +51 -0
- data/lib/puppet/network/http/webrick/rest.rb +41 -0
- data/lib/puppet/network/http/webrick/xmlrpc.rb +4 -0
- data/lib/puppet/network/http_server.rb +3 -0
- data/lib/puppet/network/{server → http_server}/mongrel.rb +11 -5
- data/lib/puppet/network/{server → http_server}/webrick.rb +9 -5
- data/lib/puppet/network/rest_controller.rb +2 -0
- data/lib/puppet/network/rights.rb +0 -1
- data/lib/puppet/network/server.rb +63 -3
- data/lib/puppet/network/xmlrpc/client.rb +90 -23
- data/lib/puppet/network/xmlrpc/processor.rb +0 -1
- data/lib/puppet/network/xmlrpc/server.rb +0 -1
- data/lib/puppet/network/xmlrpc/webrick_servlet.rb +0 -1
- data/lib/puppet/node.rb +165 -0
- data/lib/puppet/node/catalog.rb +480 -0
- data/lib/puppet/node/environment.rb +46 -0
- data/lib/puppet/node/facts.rb +36 -0
- data/lib/puppet/parameter.rb +34 -28
- data/lib/puppet/parser/ast.rb +0 -1
- data/lib/puppet/parser/ast/astarray.rb +30 -53
- data/lib/puppet/parser/ast/branch.rb +0 -10
- data/lib/puppet/parser/ast/caseopt.rb +0 -11
- data/lib/puppet/parser/ast/casestatement.rb +0 -12
- data/lib/puppet/parser/ast/collection.rb +1 -3
- data/lib/puppet/parser/ast/collexpr.rb +0 -2
- data/lib/puppet/parser/ast/{component.rb → definition.rb} +58 -72
- data/lib/puppet/parser/ast/else.rb +0 -10
- data/lib/puppet/parser/ast/function.rb +0 -2
- data/lib/puppet/parser/ast/hostclass.rb +21 -19
- data/lib/puppet/parser/ast/ifstatement.rb +0 -13
- data/lib/puppet/parser/ast/leaf.rb +0 -8
- data/lib/puppet/parser/ast/node.rb +13 -10
- data/lib/puppet/parser/ast/resource.rb +75 -0
- data/lib/puppet/parser/ast/{resourcedefaults.rb → resource_defaults.rb} +4 -20
- data/lib/puppet/parser/ast/{resourceoverride.rb → resource_override.rb} +3 -5
- data/lib/puppet/parser/ast/resource_reference.rb +66 -0
- data/lib/puppet/parser/ast/resourceparam.rb +0 -14
- data/lib/puppet/parser/ast/selector.rb +0 -10
- data/lib/puppet/parser/ast/tag.rb +0 -2
- data/lib/puppet/parser/ast/vardef.rb +0 -14
- data/lib/puppet/parser/collector.rb +83 -101
- data/lib/puppet/parser/compile.rb +509 -0
- data/lib/puppet/parser/functions.rb +10 -10
- data/lib/puppet/parser/interpreter.rb +44 -662
- data/lib/puppet/parser/lexer.rb +1 -3
- data/lib/puppet/parser/parser.rb +674 -701
- data/lib/puppet/parser/parser_support.rb +33 -24
- data/lib/puppet/parser/resource.rb +219 -162
- data/lib/puppet/parser/resource/param.rb +1 -2
- data/lib/puppet/parser/resource/reference.rb +24 -16
- data/lib/puppet/parser/scope.rb +48 -459
- data/lib/puppet/parser/templatewrapper.rb +4 -5
- data/lib/puppet/pgraph.rb +10 -13
- data/lib/puppet/property.rb +25 -41
- data/lib/puppet/propertychange.rb +0 -2
- data/lib/puppet/provider.rb +15 -11
- data/lib/puppet/provider/cron/crontab.rb +6 -7
- data/lib/puppet/provider/group/groupadd.rb +0 -1
- data/lib/puppet/provider/group/netinfo.rb +0 -1
- data/lib/puppet/provider/group/pw.rb +0 -1
- data/lib/puppet/provider/host/netinfo.rb +0 -1
- data/lib/puppet/provider/host/parsed.rb +0 -1
- data/lib/puppet/provider/interface/redhat.rb +90 -91
- data/lib/puppet/provider/interface/sunos.rb +98 -81
- data/lib/puppet/provider/mailalias/aliases.rb +0 -1
- data/lib/puppet/provider/maillist/mailman.rb +2 -3
- data/lib/puppet/provider/mount.rb +10 -9
- data/lib/puppet/provider/mount/netinfo.rb +0 -1
- data/lib/puppet/provider/mount/parsed.rb +0 -1
- data/lib/puppet/provider/nameservice.rb +0 -1
- data/lib/puppet/provider/nameservice/netinfo.rb +0 -1
- data/lib/puppet/provider/nameservice/objectadd.rb +0 -1
- data/lib/puppet/provider/nameservice/pw.rb +0 -1
- data/lib/puppet/provider/package.rb +0 -2
- data/lib/puppet/provider/package/appdmg.rb +0 -1
- data/lib/puppet/provider/package/apple.rb +0 -1
- data/lib/puppet/provider/package/apt.rb +0 -1
- data/lib/puppet/provider/package/aptitude.rb +0 -1
- data/lib/puppet/provider/package/aptrpm.rb +0 -1
- data/lib/puppet/provider/package/blastwave.rb +0 -1
- data/lib/puppet/provider/package/darwinport.rb +0 -1
- data/lib/puppet/provider/package/dpkg.rb +9 -1
- data/lib/puppet/provider/package/fink.rb +0 -1
- data/lib/puppet/provider/package/freebsd.rb +0 -1
- data/lib/puppet/provider/package/gem.rb +0 -1
- data/lib/puppet/provider/package/openbsd.rb +1 -2
- data/lib/puppet/provider/package/pkgdmg.rb +14 -15
- data/lib/puppet/provider/package/portage.rb +6 -7
- data/lib/puppet/provider/package/ports.rb +1 -4
- data/lib/puppet/provider/package/rpm.rb +31 -45
- data/lib/puppet/provider/package/sun.rb +0 -3
- data/lib/puppet/provider/package/sunfreeware.rb +0 -1
- data/lib/puppet/provider/package/up2date.rb +0 -1
- data/lib/puppet/provider/package/urpmi.rb +0 -1
- data/lib/puppet/provider/package/yum.rb +45 -14
- data/lib/puppet/provider/package/yumhelper.py +37 -0
- data/lib/puppet/provider/parsedfile.rb +2 -3
- data/lib/puppet/provider/port/parsed.rb +0 -1
- data/lib/puppet/provider/service/base.rb +4 -1
- data/lib/puppet/provider/service/debian.rb +5 -2
- data/lib/puppet/provider/service/freebsd.rb +51 -0
- data/lib/puppet/provider/service/init.rb +16 -40
- data/lib/puppet/provider/service/redhat.rb +1 -6
- data/lib/puppet/provider/service/smf.rb +0 -1
- data/lib/puppet/provider/sshkey/parsed.rb +0 -1
- data/lib/puppet/provider/user/netinfo.rb +0 -1
- data/lib/puppet/provider/user/pw.rb +0 -1
- data/lib/puppet/provider/user/useradd.rb +0 -1
- data/lib/puppet/provider/zone/solaris.rb +0 -1
- data/lib/puppet/rails.rb +35 -30
- data/lib/puppet/rails/database/schema.rb +0 -1
- data/lib/puppet/rails/host.rb +6 -15
- data/lib/puppet/rails/param_name.rb +1 -2
- data/lib/puppet/rails/param_value.rb +0 -1
- data/lib/puppet/rails/puppet_class.rb +0 -1
- data/lib/puppet/rails/resource.rb +3 -5
- data/lib/puppet/reference/configuration.rb +12 -6
- data/lib/puppet/reference/indirection.rb +34 -0
- data/lib/puppet/reference/node_source.rb +9 -0
- data/lib/puppet/relationship.rb +10 -8
- data/lib/puppet/reports.rb +51 -0
- data/lib/puppet/reports/log.rb +2 -3
- data/lib/puppet/reports/rrdgraph.rb +2 -5
- data/lib/puppet/reports/store.rb +6 -7
- data/lib/puppet/reports/tagmail.rb +2 -3
- data/lib/puppet/resource_reference.rb +79 -0
- data/lib/puppet/simple_graph.rb +251 -0
- data/lib/puppet/sslcertificates.rb +19 -15
- data/lib/puppet/sslcertificates/ca.rb +56 -15
- data/lib/puppet/sslcertificates/certificate.rb +0 -1
- data/lib/puppet/sslcertificates/inventory.rb +2 -6
- data/lib/puppet/sslcertificates/monkey_patch.rb +6 -0
- data/lib/puppet/sslcertificates/support.rb +4 -5
- data/lib/puppet/transaction.rb +93 -96
- data/lib/puppet/transaction/report.rb +5 -1
- data/lib/puppet/transportable.rb +79 -125
- data/lib/puppet/type.rb +44 -10
- data/lib/puppet/type/component.rb +25 -110
- data/lib/puppet/type/cron.rb +1 -2
- data/lib/puppet/type/exec.rb +19 -13
- data/lib/puppet/type/group.rb +0 -1
- data/lib/puppet/type/host.rb +0 -1
- data/lib/puppet/type/interface.rb +6 -3
- data/lib/puppet/type/k5login.rb +87 -0
- data/lib/puppet/type/mailalias.rb +0 -1
- data/lib/puppet/type/maillist.rb +0 -1
- data/lib/puppet/type/mount.rb +7 -13
- data/lib/puppet/type/notify.rb +0 -1
- data/lib/puppet/type/package.rb +7 -63
- data/lib/puppet/type/pfile.rb +25 -32
- data/lib/puppet/type/pfile/checksum.rb +0 -1
- data/lib/puppet/type/pfile/content.rb +18 -3
- data/lib/puppet/type/pfile/ensure.rb +5 -6
- data/lib/puppet/type/pfile/group.rb +4 -1
- data/lib/puppet/type/pfile/mode.rb +0 -1
- data/lib/puppet/type/pfile/owner.rb +6 -9
- data/lib/puppet/type/pfile/source.rb +28 -11
- data/lib/puppet/type/pfile/target.rb +2 -1
- data/lib/puppet/type/pfile/type.rb +0 -1
- data/lib/puppet/type/pfilebucket.rb +0 -1
- data/lib/puppet/type/port.rb +0 -1
- data/lib/puppet/type/resources.rb +0 -1
- data/lib/puppet/type/schedule.rb +17 -15
- data/lib/puppet/type/service.rb +23 -159
- data/lib/puppet/type/sshkey.rb +0 -1
- data/lib/puppet/type/tidy.rb +15 -7
- data/lib/puppet/type/user.rb +0 -1
- data/lib/puppet/type/zone.rb +0 -1
- data/lib/puppet/util.rb +1 -2
- data/lib/puppet/util/autoload.rb +21 -23
- data/lib/puppet/util/checksums.rb +37 -0
- data/lib/puppet/util/classgen.rb +0 -1
- data/lib/puppet/util/diff.rb +71 -0
- data/lib/puppet/util/docs.rb +8 -2
- data/lib/puppet/util/errors.rb +0 -1
- data/lib/puppet/util/execution.rb +0 -1
- data/lib/puppet/util/fact_store.rb +0 -1
- data/lib/puppet/util/feature.rb +31 -22
- data/lib/puppet/util/fileparsing.rb +3 -2
- data/lib/puppet/util/filetype.rb +30 -12
- data/lib/puppet/util/graph.rb +0 -1
- data/lib/puppet/util/inifile.rb +0 -1
- data/lib/puppet/util/instance_loader.rb +11 -4
- data/lib/puppet/util/loadedfile.rb +0 -1
- data/lib/puppet/util/log.rb +0 -1
- data/lib/puppet/util/log_paths.rb +0 -1
- data/lib/puppet/util/logging.rb +0 -1
- data/lib/puppet/util/metaid.rb +0 -1
- data/lib/puppet/util/methodhelper.rb +0 -2
- data/lib/puppet/util/metric.rb +1 -2
- data/lib/puppet/util/plist.rb +0 -1
- data/lib/puppet/util/plist/generator.rb +0 -1
- data/lib/puppet/util/plist/parser.rb +0 -1
- data/lib/puppet/util/posix.rb +7 -1
- data/lib/puppet/util/provider_features.rb +11 -12
- data/lib/puppet/util/rails/collection_merger.rb +0 -1
- data/lib/puppet/util/reference.rb +2 -3
- data/lib/puppet/util/{config.rb → settings.rb} +424 -300
- data/lib/puppet/util/storage.rb +1 -3
- data/lib/puppet/util/subclass_loader.rb +0 -1
- data/lib/puppet/util/suidmanager.rb +25 -42
- data/lib/puppet/util/uri_helper.rb +22 -0
- data/lib/puppet/util/variables.rb +0 -1
- data/lib/puppet/util/warnings.rb +0 -1
- data/test/Rakefile +1 -1
- data/test/certmgr/ca.rb +8 -2
- data/test/certmgr/certmgr.rb +14 -6
- data/test/certmgr/inventory.rb +18 -30
- data/test/certmgr/support.rb +3 -2
- data/test/executables/filebucket.rb +1 -2
- data/test/executables/puppetbin.rb +1 -2
- data/test/executables/puppetca.rb +7 -2
- data/test/executables/puppetd.rb +23 -29
- data/test/executables/puppetmasterd.rb +1 -2
- data/test/executables/puppetmodule.rb +1 -2
- data/test/language/ast.rb +24 -29
- data/test/language/ast/casestatement.rb +1 -2
- data/test/language/ast/definition.rb +166 -0
- data/test/language/ast/hostclass.rb +50 -29
- data/test/language/ast/resource.rb +59 -0
- data/test/language/ast/{resourceref.rb → resource_reference.rb} +30 -20
- data/test/language/ast/selector.rb +1 -2
- data/test/language/ast/variable.rb +1 -2
- data/test/language/compile.rb +569 -0
- data/test/language/functions.rb +57 -76
- data/test/language/lexer.rb +20 -3
- data/test/language/parser.rb +45 -33
- data/test/language/resource.rb +275 -308
- data/test/language/scope.rb +135 -410
- data/test/language/snippets.rb +19 -41
- data/test/language/transportable.rb +8 -29
- data/test/lib/mocha/auto_verify.rb +6 -6
- data/test/lib/mocha/deprecation.rb +22 -0
- data/test/lib/mocha/exception_raiser.rb +17 -0
- data/test/lib/mocha/expectation.rb +167 -84
- data/test/lib/mocha/infinite_range.rb +4 -6
- data/test/lib/mocha/inspect.rb +3 -1
- data/test/lib/mocha/is_a.rb +9 -0
- data/test/lib/mocha/missing_expectation.rb +27 -0
- data/test/lib/mocha/mock.rb +192 -5
- data/test/lib/mocha/multiple_yields.rb +20 -0
- data/test/lib/mocha/no_yields.rb +11 -0
- data/test/lib/mocha/object.rb +11 -1
- data/test/lib/mocha/parameter_matchers.rb +9 -0
- data/test/lib/mocha/parameter_matchers/all_of.rb +39 -0
- data/test/lib/mocha/parameter_matchers/any_of.rb +44 -0
- data/test/lib/mocha/parameter_matchers/anything.rb +30 -0
- data/test/lib/mocha/parameter_matchers/has_entry.rb +39 -0
- data/test/lib/mocha/parameter_matchers/has_key.rb +39 -0
- data/test/lib/mocha/parameter_matchers/has_value.rb +39 -0
- data/test/lib/mocha/parameter_matchers/includes.rb +37 -0
- data/test/lib/mocha/return_values.rb +31 -0
- data/test/lib/mocha/single_return_value.rb +24 -0
- data/test/lib/mocha/single_yield.rb +18 -0
- data/test/lib/mocha/standalone.rb +2 -0
- data/test/lib/mocha/stub.rb +18 -0
- data/test/lib/mocha/test_case_adapter.rb +3 -3
- data/test/lib/mocha/yield_parameters.rb +31 -0
- data/test/lib/puppettest.rb +38 -20
- data/test/lib/puppettest/certificates.rb +0 -1
- data/test/lib/puppettest/exetest.rb +0 -1
- data/test/lib/puppettest/fakes.rb +0 -1
- data/test/lib/puppettest/fileparsing.rb +8 -15
- data/test/lib/puppettest/filetesting.rb +0 -1
- data/test/lib/puppettest/parsertesting.rb +37 -23
- data/test/lib/puppettest/railstesting.rb +3 -6
- data/test/lib/puppettest/reporttesting.rb +0 -1
- data/test/lib/puppettest/resourcetesting.rb +6 -34
- data/test/lib/puppettest/runnable_test.rb +30 -0
- data/test/lib/puppettest/servertest.rb +2 -3
- data/test/lib/puppettest/support/assertions.rb +13 -41
- data/test/lib/puppettest/support/collection.rb +0 -1
- data/test/lib/puppettest/support/helpers.rb +0 -1
- data/test/lib/puppettest/support/resources.rb +17 -17
- data/test/lib/puppettest/support/utils.rb +45 -27
- data/test/lib/puppettest/testcase.rb +2 -21
- data/test/lib/rake/puppet_test_loader.rb +0 -1
- data/test/lib/rake/puppet_testtask.rb +0 -1
- data/test/network/authconfig.rb +1 -2
- data/test/network/authorization.rb +1 -2
- data/test/network/authstore.rb +1 -2
- data/test/network/client/ca.rb +12 -7
- data/test/network/client/client.rb +17 -22
- data/test/network/client/dipper.rb +1 -2
- data/test/network/client/master.rb +70 -184
- data/test/network/client/resource.rb +9 -2
- data/test/network/client_request.rb +1 -2
- data/test/network/daemon.rb +1 -2
- data/test/network/handler/bucket.rb +2 -31
- data/test/network/handler/ca.rb +9 -3
- data/test/network/handler/configuration.rb +160 -0
- data/test/network/handler/fileserver.rb +24 -5
- data/test/network/handler/handler.rb +1 -2
- data/test/network/handler/master.rb +38 -243
- data/test/network/handler/report.rb +2 -104
- data/test/network/handler/resource.rb +5 -3
- data/test/network/handler/runner.rb +22 -60
- data/test/network/rights.rb +1 -2
- data/test/network/server/mongrel_test.rb +2 -3
- data/test/network/server/webrick.rb +17 -11
- data/test/network/xmlrpc/client.rb +27 -12
- data/test/network/xmlrpc/processor.rb +3 -4
- data/test/network/xmlrpc/server.rb +1 -2
- data/test/network/xmlrpc/webrick_servlet.rb +8 -2
- data/test/other/dsl.rb +2 -4
- data/test/other/events.rb +14 -56
- data/test/other/overrides.rb +3 -6
- data/test/other/propertychange.rb +1 -2
- data/test/other/provider.rb +1 -2
- data/test/other/puppet.rb +1 -2
- data/test/other/relationships.rb +15 -17
- data/test/other/report.rb +14 -20
- data/test/other/transactions.rb +109 -192
- data/test/puppet/conffiles.rb +3 -5
- data/test/puppet/defaults.rb +1 -28
- data/test/puppet/errortest.rb +1 -2
- data/test/puppet/tc_suidmanager.rb +77 -63
- data/test/rails/ast.rb +4 -4
- data/test/rails/configuration.rb +71 -0
- data/test/rails/host.rb +19 -30
- data/test/rails/rails.rb +1 -2
- data/test/rails/railsparameter.rb +3 -4
- data/test/rails/railsresource.rb +6 -5
- data/test/ral/manager/attributes.rb +1 -2
- data/test/ral/manager/instances.rb +3 -3
- data/test/ral/manager/manager.rb +1 -2
- data/test/ral/manager/provider.rb +1 -2
- data/test/ral/manager/type.rb +89 -93
- data/test/ral/providers/cron/crontab.rb +9 -11
- data/test/ral/providers/group.rb +1 -2
- data/test/ral/providers/host/netinfo.rb +1 -2
- data/test/ral/providers/host/parsed.rb +1 -2
- data/test/ral/providers/mailalias/aliases.rb +1 -2
- data/test/ral/providers/mount/netinfo.rb +1 -2
- data/test/ral/providers/nameservice.rb +1 -2
- data/test/ral/providers/package.rb +5 -4
- data/test/ral/providers/package/apt.rb +0 -1
- data/test/ral/providers/package/aptrpm.rb +0 -1
- data/test/ral/providers/parsedfile.rb +1 -2
- data/test/ral/providers/port/parsed.rb +1 -2
- data/test/ral/providers/provider.rb +10 -5
- data/test/ral/providers/service/base.rb +1 -2
- data/test/ral/providers/service/debian.rb +58 -0
- data/test/ral/providers/sshkey/parsed.rb +1 -2
- data/test/ral/providers/user.rb +3 -2
- data/test/ral/providers/user/useradd.rb +0 -1
- data/test/ral/types/basic.rb +4 -9
- data/test/ral/types/cron.rb +6 -12
- data/test/ral/types/exec.rb +6 -7
- data/test/ral/types/file.rb +35 -14
- data/test/ral/types/file/target.rb +6 -5
- data/test/ral/types/filebucket.rb +3 -2
- data/test/ral/types/fileignoresource.rb +10 -42
- data/test/ral/types/filesources.rb +21 -60
- data/test/ral/types/group.rb +3 -3
- data/test/ral/types/host.rb +6 -3
- data/test/ral/types/mailalias.rb +1 -2
- data/test/ral/types/parameter.rb +5 -3
- data/test/ral/types/port.rb +1 -2
- data/test/ral/types/property.rb +3 -3
- data/test/ral/types/resources.rb +1 -2
- data/test/ral/types/service.rb +5 -3
- data/test/ral/types/sshkey.rb +5 -3
- data/test/ral/types/tidy.rb +63 -3
- data/test/ral/types/user.rb +10 -11
- data/test/ral/types/yumrepo.rb +1 -1
- data/test/ral/types/zone.rb +1 -2
- data/test/util/autoload.rb +23 -27
- data/test/util/classgen.rb +1 -2
- data/test/util/execution.rb +1 -2
- data/test/util/features.rb +1 -3
- data/test/util/fileparsing.rb +11 -3
- data/test/util/filetype.rb +1 -2
- data/test/util/inifile.rb +1 -1
- data/test/util/instance_loader.rb +5 -6
- data/test/util/loadedfile.rb +1 -2
- data/test/util/log.rb +1 -2
- data/test/util/metrics.rb +1 -2
- data/test/util/package.rb +1 -2
- data/test/util/posixtest.rb +1 -2
- data/test/util/{config.rb → settings.rb} +123 -265
- data/test/util/storage.rb +1 -2
- data/test/util/subclass_loader.rb +1 -2
- data/test/util/utiltest.rb +1 -111
- metadata +130 -112
- data/ext/tools/passwd2puppet +0 -45
- data/lib/puppet/fact_stores/yaml.rb +0 -42
- data/lib/puppet/network/handler/facts.rb +0 -70
- data/lib/puppet/parser/ast/resourcedef.rb +0 -222
- data/lib/puppet/parser/ast/resourceref.rb +0 -58
- data/test/language/ast/component.rb +0 -142
- data/test/language/collector.rb +0 -179
- data/test/language/interpreter.rb +0 -804
- data/test/language/node.rb +0 -126
- data/test/lib/mocha/mock_methods.rb +0 -122
- data/test/lib/puppettest/graph.rb +0 -41
- data/test/lib/spec.rb +0 -8
- data/test/lib/spec/callback.rb +0 -11
- data/test/lib/spec/callback/callback_container.rb +0 -60
- data/test/lib/spec/callback/extensions/module.rb +0 -24
- data/test/lib/spec/callback/extensions/object.rb +0 -37
- data/test/lib/spec/deprecated.rb +0 -3
- data/test/lib/spec/expectations.rb +0 -59
- data/test/lib/spec/expectations/differs/default.rb +0 -62
- data/test/lib/spec/expectations/errors.rb +0 -6
- data/test/lib/spec/expectations/extensions.rb +0 -3
- data/test/lib/spec/expectations/extensions/object.rb +0 -109
- data/test/lib/spec/expectations/extensions/proc.rb +0 -57
- data/test/lib/spec/expectations/extensions/string_and_symbol.rb +0 -17
- data/test/lib/spec/expectations/handler.rb +0 -47
- data/test/lib/spec/expectations/should.rb +0 -5
- data/test/lib/spec/expectations/should/base.rb +0 -64
- data/test/lib/spec/expectations/should/change.rb +0 -69
- data/test/lib/spec/expectations/should/have.rb +0 -128
- data/test/lib/spec/expectations/should/not.rb +0 -74
- data/test/lib/spec/expectations/should/should.rb +0 -81
- data/test/lib/spec/expectations/sugar.rb +0 -47
- data/test/lib/spec/matchers.rb +0 -160
- data/test/lib/spec/matchers/be.rb +0 -161
- data/test/lib/spec/matchers/be_close.rb +0 -37
- data/test/lib/spec/matchers/change.rb +0 -120
- data/test/lib/spec/matchers/eql.rb +0 -43
- data/test/lib/spec/matchers/equal.rb +0 -43
- data/test/lib/spec/matchers/has.rb +0 -44
- data/test/lib/spec/matchers/have.rb +0 -140
- data/test/lib/spec/matchers/include.rb +0 -50
- data/test/lib/spec/matchers/match.rb +0 -41
- data/test/lib/spec/matchers/raise_error.rb +0 -100
- data/test/lib/spec/matchers/respond_to.rb +0 -35
- data/test/lib/spec/matchers/satisfy.rb +0 -47
- data/test/lib/spec/matchers/throw_symbol.rb +0 -75
- data/test/lib/spec/mocks.rb +0 -232
- data/test/lib/spec/mocks/argument_expectation.rb +0 -132
- data/test/lib/spec/mocks/error_generator.rb +0 -85
- data/test/lib/spec/mocks/errors.rb +0 -10
- data/test/lib/spec/mocks/extensions/object.rb +0 -3
- data/test/lib/spec/mocks/message_expectation.rb +0 -231
- data/test/lib/spec/mocks/methods.rb +0 -40
- data/test/lib/spec/mocks/mock.rb +0 -26
- data/test/lib/spec/mocks/mock_handler.rb +0 -166
- data/test/lib/spec/mocks/order_group.rb +0 -29
- data/test/lib/spec/rake/spectask.rb +0 -173
- data/test/lib/spec/rake/verify_rcov.rb +0 -47
- data/test/lib/spec/runner.rb +0 -132
- data/test/lib/spec/runner/backtrace_tweaker.rb +0 -55
- data/test/lib/spec/runner/command_line.rb +0 -34
- data/test/lib/spec/runner/context.rb +0 -154
- data/test/lib/spec/runner/context_eval.rb +0 -142
- data/test/lib/spec/runner/context_runner.rb +0 -55
- data/test/lib/spec/runner/drb_command_line.rb +0 -21
- data/test/lib/spec/runner/execution_context.rb +0 -17
- data/test/lib/spec/runner/extensions/kernel.rb +0 -17
- data/test/lib/spec/runner/extensions/object.rb +0 -32
- data/test/lib/spec/runner/formatter.rb +0 -5
- data/test/lib/spec/runner/formatter/base_text_formatter.rb +0 -118
- data/test/lib/spec/runner/formatter/html_formatter.rb +0 -219
- data/test/lib/spec/runner/formatter/progress_bar_formatter.rb +0 -27
- data/test/lib/spec/runner/formatter/rdoc_formatter.rb +0 -22
- data/test/lib/spec/runner/formatter/specdoc_formatter.rb +0 -23
- data/test/lib/spec/runner/heckle_runner.rb +0 -71
- data/test/lib/spec/runner/heckle_runner_win.rb +0 -10
- data/test/lib/spec/runner/option_parser.rb +0 -224
- data/test/lib/spec/runner/reporter.rb +0 -105
- data/test/lib/spec/runner/spec_matcher.rb +0 -25
- data/test/lib/spec/runner/spec_parser.rb +0 -41
- data/test/lib/spec/runner/spec_should_raise_handler.rb +0 -74
- data/test/lib/spec/runner/specification.rb +0 -114
- data/test/lib/spec/translator.rb +0 -87
- data/test/lib/spec/version.rb +0 -30
- data/test/network/handler/facts.rb +0 -112
- data/test/other/pgraph.rb +0 -290
- data/test/other/relationship.rb +0 -74
- data/test/puppet/modules.rb +0 -59
- data/test/rails/collection.rb +0 -247
- data/test/rails/interpreter.rb +0 -91
- data/test/ral/providers/mount/parsed.rb +0 -251
- data/test/ral/providers/service.rb +0 -235
- data/test/ral/types/component.rb +0 -113
- data/test/ral/types/interface.rb +0 -40
- data/test/ral/types/mount.rb +0 -362
- data/test/ral/types/package.rb +0 -154
- data/test/ral/types/schedule.rb +0 -357
- data/test/tagging/tagging.rb +0 -170
- data/test/util/fact_store.rb +0 -67
- data/test/util/graph.rb +0 -108
data/test/language/resource.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
|
3
|
+
require File.dirname(__FILE__) + '/../lib/puppettest'
|
4
4
|
|
5
5
|
require 'puppettest'
|
6
6
|
require 'puppettest/resourcetesting'
|
@@ -11,159 +11,217 @@ class TestResource < PuppetTest::TestCase
|
|
11
11
|
include PuppetTest::ResourceTesting
|
12
12
|
Parser = Puppet::Parser
|
13
13
|
AST = Parser::AST
|
14
|
+
Resource = Puppet::Parser::Resource
|
14
15
|
Reference = Puppet::Parser::Resource::Reference
|
15
16
|
|
16
17
|
def setup
|
17
18
|
super
|
18
19
|
Puppet[:trace] = false
|
19
|
-
|
20
|
+
end
|
21
|
+
|
22
|
+
def teardown
|
23
|
+
mocha_verify
|
20
24
|
end
|
21
25
|
|
22
26
|
def test_initialize
|
23
27
|
args = {:type => "resource", :title => "testing",
|
24
|
-
:
|
28
|
+
:scope => mkscope}
|
25
29
|
# Check our arg requirements
|
26
30
|
args.each do |name, value|
|
27
31
|
try = args.dup
|
28
32
|
try.delete(name)
|
29
|
-
assert_raise(
|
33
|
+
assert_raise(ArgumentError, "Did not fail when %s was missing" % name) do
|
30
34
|
Parser::Resource.new(try)
|
31
35
|
end
|
32
36
|
end
|
33
37
|
|
34
|
-
args[:params] = paramify @source, :one => "yay", :three => "rah"
|
35
|
-
|
36
38
|
res = nil
|
37
39
|
assert_nothing_raised do
|
38
40
|
res = Parser::Resource.new(args)
|
39
41
|
end
|
40
42
|
|
41
|
-
|
42
|
-
assert_equal("
|
43
|
-
assert_equal("
|
44
|
-
|
45
|
-
assert_equal({:one => "yay", :three => "rah"}, res.to_hash)
|
43
|
+
ref = res.instance_variable_get("@ref")
|
44
|
+
assert_equal("Resource", ref.type, "did not set resource type")
|
45
|
+
assert_equal("testing", ref.title, "did not set resource title")
|
46
46
|
end
|
47
47
|
|
48
|
-
def
|
48
|
+
def test_merge
|
49
49
|
res = mkresource
|
50
|
+
other = mkresource
|
50
51
|
|
51
|
-
#
|
52
|
-
|
53
|
-
|
52
|
+
# First try the case where the resource is not allowed to override
|
53
|
+
res.source = "source1"
|
54
|
+
other.source = "source2"
|
55
|
+
other.source.expects(:child_of?).with("source1").returns(false)
|
56
|
+
assert_raise(Puppet::ParseError, "Allowed unrelated resources to override") do
|
57
|
+
res.merge(other)
|
54
58
|
end
|
55
59
|
|
56
|
-
#
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
+
# Next try it when the sources are equal.
|
61
|
+
res.source = "source3"
|
62
|
+
other.source = res.source
|
63
|
+
other.source.expects(:child_of?).with("source3").never
|
64
|
+
params = {:a => :b, :c => :d}
|
65
|
+
other.expects(:params).returns(params)
|
66
|
+
res.expects(:override_parameter).with(:b)
|
67
|
+
res.expects(:override_parameter).with(:d)
|
68
|
+
res.merge(other)
|
69
|
+
|
70
|
+
# And then parentage is involved
|
71
|
+
other = mkresource
|
72
|
+
res.source = "source3"
|
73
|
+
other.source = "source4"
|
74
|
+
other.source.expects(:child_of?).with("source3").returns(true)
|
75
|
+
params = {:a => :b, :c => :d}
|
76
|
+
other.expects(:params).returns(params)
|
77
|
+
res.expects(:override_parameter).with(:b)
|
78
|
+
res.expects(:override_parameter).with(:d)
|
79
|
+
res.merge(other)
|
80
|
+
end
|
60
81
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
82
|
+
# the [] method
|
83
|
+
def test_array_accessors
|
84
|
+
res = mkresource
|
85
|
+
params = res.instance_variable_get("@params")
|
86
|
+
assert_nil(res[:missing], "Found a missing parameter somehow")
|
87
|
+
params[:something] = stub(:value => "yay")
|
88
|
+
assert_equal("yay", res[:something], "Did not correctly call value on the parameter")
|
65
89
|
|
66
|
-
|
67
|
-
|
68
|
-
res.set paramify(@scope.findclass("sub2"), "one" => "something").shift
|
69
|
-
end
|
90
|
+
res.expects(:title).returns(:mytitle)
|
91
|
+
assert_equal(:mytitle, res[:title], "Did not call title when asked for it as a param")
|
70
92
|
end
|
71
93
|
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
94
|
+
# Make sure any defaults stored in the scope get added to our resource.
|
95
|
+
def test_add_defaults
|
96
|
+
res = mkresource
|
97
|
+
params = res.instance_variable_get("@params")
|
98
|
+
params[:a] = :b
|
99
|
+
res.scope.expects(:lookupdefaults).with(res.type).returns(:a => :replaced, :c => :d)
|
100
|
+
res.expects(:debug)
|
101
|
+
|
102
|
+
res.send(:add_defaults)
|
103
|
+
assert_equal(:d, params[:c], "Did not set default")
|
104
|
+
assert_equal(:b, params[:a], "Replaced parameter with default")
|
80
105
|
end
|
81
106
|
|
82
|
-
def
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
check_paramadd("yay", ["rah", "bah"], ["yay", "rah", "bah"])
|
90
|
-
|
91
|
-
check_paramadd(["yay", "boo"], [], ["yay", "boo"])
|
92
|
-
check_paramadd(["yay", "boo"], "rah", ["yay", "boo", "rah"])
|
93
|
-
check_paramadd(["yay", "boo"], ["rah", "bah"],
|
94
|
-
["yay", "boo", "rah", "bah"])
|
107
|
+
def test_finish
|
108
|
+
res = mkresource
|
109
|
+
res.expects(:add_overrides)
|
110
|
+
res.expects(:add_defaults)
|
111
|
+
res.expects(:add_metaparams)
|
112
|
+
res.expects(:validate)
|
113
|
+
res.finish
|
95
114
|
end
|
96
115
|
|
97
|
-
|
98
|
-
|
116
|
+
# Make sure we paramcheck our params
|
117
|
+
def test_validate
|
99
118
|
res = mkresource
|
119
|
+
params = res.instance_variable_get("@params")
|
120
|
+
params[:one] = :two
|
121
|
+
params[:three] = :four
|
122
|
+
res.expects(:paramcheck).with(:one)
|
123
|
+
res.expects(:paramcheck).with(:three)
|
124
|
+
res.send(:validate)
|
125
|
+
end
|
100
126
|
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
#
|
113
|
-
|
114
|
-
|
115
|
-
|
127
|
+
def test_override_parameter
|
128
|
+
res = mkresource
|
129
|
+
params = res.instance_variable_get("@params")
|
130
|
+
|
131
|
+
# There are three cases, with the second having two options:
|
132
|
+
|
133
|
+
# No existing parameter.
|
134
|
+
param = stub(:name => "myparam")
|
135
|
+
res.send(:override_parameter, param)
|
136
|
+
assert_equal(param, params["myparam"], "Override was not added to param list")
|
137
|
+
|
138
|
+
# An existing parameter that we can override.
|
139
|
+
source = stub(:child_of? => true)
|
140
|
+
# Start out without addition
|
141
|
+
params["param2"] = stub(:source => :whatever)
|
142
|
+
param = stub(:name => "param2", :source => source, :add => false)
|
143
|
+
res.send(:override_parameter, param)
|
144
|
+
assert_equal(param, params["param2"], "Override was not added to param list")
|
145
|
+
|
146
|
+
# Try with addition.
|
147
|
+
params["param2"] = stub(:value => :a, :source => :whatever)
|
148
|
+
param = stub(:name => "param2", :source => source, :add => true, :value => :b)
|
149
|
+
param.expects(:value=).with([:a, :b])
|
150
|
+
res.send(:override_parameter, param)
|
151
|
+
assert_equal(param, params["param2"], "Override was not added to param list")
|
152
|
+
|
153
|
+
# And finally, make sure we throw an exception when the sources aren't related
|
154
|
+
source = stub(:child_of? => false)
|
155
|
+
params["param2"] = stub(:source => :whatever, :file => :f, :line => :l)
|
156
|
+
old = params["param2"]
|
157
|
+
param = stub(:name => "param2", :source => source, :file => :f, :line => :l)
|
158
|
+
assert_raise(Puppet::ParseError, "Did not fail when params conflicted") do
|
159
|
+
res.send(:override_parameter, param)
|
160
|
+
end
|
161
|
+
assert_equal(old, params["param2"], "Param was replaced irrespective of conflict")
|
162
|
+
end
|
116
163
|
|
117
|
-
|
164
|
+
def test_set_parameter
|
165
|
+
res = mkresource
|
166
|
+
params = res.instance_variable_get("@params")
|
167
|
+
|
168
|
+
# First test the simple case: It's already a parameter
|
169
|
+
param = mock('param')
|
170
|
+
param.expects(:is_a?).with(Resource::Param).returns(true)
|
171
|
+
param.expects(:name).returns("pname")
|
172
|
+
res.send(:set_parameter, param)
|
173
|
+
assert_equal(param, params["pname"], "Parameter was not added to hash")
|
174
|
+
|
175
|
+
# Now the case where there's no value but it's not a param
|
176
|
+
param = mock('param')
|
177
|
+
param.expects(:is_a?).with(Resource::Param).returns(false)
|
178
|
+
assert_raise(ArgumentError, "Did not fail when a non-param was passed") do
|
179
|
+
res.send(:set_parameter, param)
|
180
|
+
end
|
181
|
+
|
182
|
+
# and the case where a value is passed in
|
183
|
+
param = stub :name => "pname", :value => "whatever"
|
184
|
+
Resource::Param.expects(:new).with(:name => "pname", :value => "myvalue", :source => res.source).returns(param)
|
185
|
+
res.send(:set_parameter, "pname", "myvalue")
|
186
|
+
assert_equal(param, params["pname"], "Did not put param in hash")
|
118
187
|
end
|
119
188
|
|
120
189
|
def test_paramcheck
|
121
|
-
#
|
122
|
-
res = nil
|
123
|
-
assert_nothing_raised do
|
124
|
-
res = Parser::Resource.new :type => "file", :title => tempfile(),
|
125
|
-
:source => @source, :scope => @scope
|
126
|
-
end
|
127
|
-
|
128
|
-
%w{path group source schedule subscribe}.each do |param|
|
129
|
-
assert_nothing_raised("Param %s was considered invalid" % param) do
|
130
|
-
res.paramcheck(param)
|
131
|
-
end
|
132
|
-
end
|
190
|
+
# There are three cases here:
|
133
191
|
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
res.paramcheck(param)
|
155
|
-
end
|
156
|
-
end
|
192
|
+
# It's a valid parameter
|
193
|
+
res = mkresource
|
194
|
+
ref = mock('ref')
|
195
|
+
res.instance_variable_set("@ref", ref)
|
196
|
+
klass = mock("class")
|
197
|
+
ref.expects(:typeclass).returns(klass).times(4)
|
198
|
+
klass.expects(:validattr?).with("good").returns(true)
|
199
|
+
assert(res.send(:paramcheck, :good), "Did not allow valid param")
|
200
|
+
|
201
|
+
# It's name or title
|
202
|
+
klass.expects(:validattr?).with("name").returns(false)
|
203
|
+
assert(res.send(:paramcheck, :name), "Did not allow name")
|
204
|
+
klass.expects(:validattr?).with("title").returns(false)
|
205
|
+
assert(res.send(:paramcheck, :title), "Did not allow title")
|
206
|
+
|
207
|
+
# It's not actually allowed
|
208
|
+
klass.expects(:validattr?).with("other").returns(false)
|
209
|
+
res.expects(:fail)
|
210
|
+
ref.expects(:type)
|
211
|
+
res.send(:paramcheck, :other)
|
157
212
|
end
|
158
213
|
|
159
|
-
def
|
214
|
+
def test_to_transobject
|
160
215
|
# First try translating a builtin resource. Make sure we use some references
|
161
216
|
# and arrays, to make sure they translate correctly.
|
217
|
+
source = mock("source")
|
218
|
+
scope = mkscope
|
219
|
+
scope.stubs(:tags).returns([])
|
162
220
|
refs = []
|
163
221
|
4.times { |i| refs << Puppet::Parser::Resource::Reference.new(:title => "file%s" % i, :type => "file") }
|
164
222
|
res = Parser::Resource.new :type => "file", :title => "/tmp",
|
165
|
-
:source =>
|
166
|
-
:params => paramify(
|
223
|
+
:source => source, :scope => scope,
|
224
|
+
:params => paramify(source, :owner => "nobody", :group => %w{you me},
|
167
225
|
:require => refs[0], :ignore => %w{svn},
|
168
226
|
:subscribe => [refs[1], refs[2]], :notify => [refs[3]])
|
169
227
|
|
@@ -174,182 +232,91 @@ class TestResource < PuppetTest::TestCase
|
|
174
232
|
|
175
233
|
assert_instance_of(Puppet::TransObject, obj)
|
176
234
|
|
177
|
-
assert_equal(obj.type, res.type)
|
235
|
+
assert_equal(obj.type, res.type.downcase)
|
178
236
|
assert_equal(obj.name, res.title)
|
179
237
|
|
180
238
|
# TransObjects use strings, resources use symbols
|
181
239
|
assert_equal("nobody", obj["owner"], "Single-value string was not passed correctly")
|
182
240
|
assert_equal(%w{you me}, obj["group"], "Array of strings was not passed correctly")
|
183
241
|
assert_equal("svn", obj["ignore"], "Array with single string was not turned into single value")
|
184
|
-
assert_equal(["
|
185
|
-
assert_equal([["
|
186
|
-
assert_equal(["
|
242
|
+
assert_equal(["File", refs[0].title], obj["require"], "Resource reference was not passed correctly")
|
243
|
+
assert_equal([["File", refs[1].title], ["File", refs[2].title]], obj["subscribe"], "Array of resource references was not passed correctly")
|
244
|
+
assert_equal(["File", refs[3].title], obj["notify"], "Array with single resource reference was not turned into single value")
|
187
245
|
end
|
188
246
|
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
res = Parser::Resource.new :type => "resource", :title => "yay",
|
197
|
-
:source => @source, :scope => @scope
|
198
|
-
|
199
|
-
# Add the defaults
|
200
|
-
assert_nothing_raised do
|
201
|
-
res.adddefaults
|
202
|
-
end
|
203
|
-
|
204
|
-
# And make sure we got them
|
205
|
-
top.each do |p, v|
|
206
|
-
assert_equal(v, res[p])
|
207
|
-
end
|
208
|
-
|
209
|
-
# Now got a bit lower
|
210
|
-
other = @scope.newscope
|
211
|
-
|
212
|
-
# And create a resource
|
213
|
-
lowerres = Parser::Resource.new :type => "resource", :title => "funtest",
|
214
|
-
:source => @source, :scope => other
|
215
|
-
|
216
|
-
assert_nothing_raised do
|
217
|
-
lowerres.adddefaults
|
218
|
-
end
|
219
|
-
|
220
|
-
# And check
|
221
|
-
top.each do |p, v|
|
222
|
-
assert_equal(v, lowerres[p])
|
223
|
-
end
|
224
|
-
|
225
|
-
# Now add some of our own defaults
|
226
|
-
lower = {:one => "shun", :three => "free"}
|
227
|
-
other.setdefaults("resource", paramify(@source, lower))
|
228
|
-
otherres = Parser::Resource.new :type => "resource", :title => "yaytest",
|
229
|
-
:source => @source, :scope => other
|
230
|
-
|
231
|
-
should = top.dup
|
232
|
-
# Make sure the lower defaults beat the higher ones.
|
233
|
-
lower.each do |p, v| should[p] = v end
|
247
|
+
# FIXME This isn't a great test, but I need to move on.
|
248
|
+
def test_to_transbucket
|
249
|
+
bucket = mock("transbucket")
|
250
|
+
source = mock("source")
|
251
|
+
scope = mkscope
|
252
|
+
res = Parser::Resource.new :type => "mydefine", :title => "yay",
|
253
|
+
:source => source, :scope => scope
|
234
254
|
|
235
|
-
otherres.adddefaults
|
236
255
|
|
237
|
-
|
238
|
-
|
239
|
-
|
256
|
+
result = res.to_trans
|
257
|
+
assert_equal("yay", result.name, "did not set bucket name correctly")
|
258
|
+
assert_equal("Mydefine", result.type, "did not set bucket type correctly")
|
240
259
|
end
|
241
260
|
|
242
261
|
def test_evaluate
|
243
|
-
#
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
res =
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
# Make sure we can find our object now
|
260
|
-
result = @scope.findresource("File[/tmp]")
|
261
|
-
|
262
|
-
# Now make sure we got the code we expected.
|
263
|
-
assert_instance_of(Puppet::Parser::Resource, result)
|
264
|
-
|
265
|
-
assert_equal("file", result.type)
|
266
|
-
assert_equal("/tmp", result.title)
|
267
|
-
assert_equal("nobody", result["owner"])
|
268
|
-
assert_equal("755", result["mode"])
|
269
|
-
|
270
|
-
# And that we cannot find the old resource
|
271
|
-
assert_nil(@scope.findresource("Evaltest[yay]"),
|
272
|
-
"Evaluated resource was not deleted")
|
262
|
+
# First try the most common case, we're not a builtin type.
|
263
|
+
res = mkresource
|
264
|
+
ref = res.instance_variable_get("@ref")
|
265
|
+
type = mock("type")
|
266
|
+
ref.expects(:definedtype).returns(type)
|
267
|
+
res.expects(:finish)
|
268
|
+
res.scope = mock("scope")
|
269
|
+
config = mock("config")
|
270
|
+
res.scope.expects(:compile).returns(config)
|
271
|
+
config.expects(:delete_resource).with(res)
|
272
|
+
|
273
|
+
args = {:scope => res.scope, :resource => res}
|
274
|
+
type.expects(:evaluate).with(args)
|
275
|
+
|
276
|
+
res.evaluate
|
273
277
|
end
|
274
278
|
|
275
|
-
def
|
276
|
-
#
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
#
|
286
|
-
res = mkresource
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
# Now add our late-binding override
|
306
|
-
assert_nothing_raised do
|
307
|
-
res.addoverrides
|
308
|
-
end
|
309
|
-
|
310
|
-
# And make sure they're still around
|
311
|
-
assert_equal("yay", res[:one], "Override 1 lost")
|
312
|
-
assert_equal("yay", res[:three], "Override 2 lost")
|
313
|
-
|
314
|
-
# And finally, make sure that there are no remaining overrides
|
315
|
-
assert_nothing_raised do
|
316
|
-
res.addoverrides
|
317
|
-
end
|
279
|
+
def test_add_overrides
|
280
|
+
# Try it with nil
|
281
|
+
res = mkresource
|
282
|
+
res.scope = mock('scope')
|
283
|
+
config = mock("config")
|
284
|
+
res.scope.expects(:compile).returns(config)
|
285
|
+
config.expects(:resource_overrides).with(res).returns(nil)
|
286
|
+
res.expects(:merge).never
|
287
|
+
res.send(:add_overrides)
|
288
|
+
|
289
|
+
# And an empty array
|
290
|
+
res = mkresource
|
291
|
+
res.scope = mock('scope')
|
292
|
+
config = mock("config")
|
293
|
+
res.scope.expects(:compile).returns(config)
|
294
|
+
config.expects(:resource_overrides).with(res).returns([])
|
295
|
+
res.expects(:merge).never
|
296
|
+
res.send(:add_overrides)
|
297
|
+
|
298
|
+
# And with some overrides
|
299
|
+
res = mkresource
|
300
|
+
res.scope = mock('scope')
|
301
|
+
config = mock("config")
|
302
|
+
res.scope.expects(:compile).returns(config)
|
303
|
+
returns = %w{a b}
|
304
|
+
config.expects(:resource_overrides).with(res).returns(returns)
|
305
|
+
res.expects(:merge).with("a")
|
306
|
+
res.expects(:merge).with("b")
|
307
|
+
res.send(:add_overrides)
|
308
|
+
assert(returns.empty?, "Did not clear overrides")
|
318
309
|
end
|
319
310
|
|
320
311
|
def test_proxymethods
|
321
312
|
res = Parser::Resource.new :type => "evaltest", :title => "yay",
|
322
|
-
:source =>
|
313
|
+
:source => mock("source"), :scope => mkscope
|
323
314
|
|
324
|
-
assert_equal("
|
315
|
+
assert_equal("Evaltest", res.type)
|
325
316
|
assert_equal("yay", res.title)
|
326
317
|
assert_equal(false, res.builtin?)
|
327
318
|
end
|
328
319
|
|
329
|
-
def test_addmetaparams
|
330
|
-
mkevaltest @interp
|
331
|
-
res = Parser::Resource.new :type => "evaltest", :title => "yay",
|
332
|
-
:source => @source, :scope => @scope,
|
333
|
-
:params => paramify(@source, :tag => "yay")
|
334
|
-
|
335
|
-
assert_nil(res[:schedule], "Got schedule already")
|
336
|
-
assert_nothing_raised do
|
337
|
-
res.addmetaparams
|
338
|
-
end
|
339
|
-
@scope.setvar("schedule", "daily")
|
340
|
-
|
341
|
-
# This is so we can test that it won't override already-set metaparams
|
342
|
-
@scope.setvar("tag", "funtest")
|
343
|
-
|
344
|
-
assert_nothing_raised do
|
345
|
-
res.addmetaparams
|
346
|
-
end
|
347
|
-
|
348
|
-
assert_equal("daily", res[:schedule], "Did not get metaparam")
|
349
|
-
assert_equal("yay", res[:tag], "Overrode explicitly-set metaparam")
|
350
|
-
assert_nil(res[:noop], "Got invalid metaparam")
|
351
|
-
end
|
352
|
-
|
353
320
|
def test_reference_conversion
|
354
321
|
# First try it as a normal string
|
355
322
|
ref = Parser::Resource::Reference.new(:type => "file", :title => "/tmp/ref1")
|
@@ -357,6 +324,7 @@ class TestResource < PuppetTest::TestCase
|
|
357
324
|
# Now create an obj that uses it
|
358
325
|
res = mkresource :type => "file", :title => "/tmp/resource",
|
359
326
|
:params => {:require => ref}
|
327
|
+
res.scope = mkscope
|
360
328
|
|
361
329
|
trans = nil
|
362
330
|
assert_nothing_raised do
|
@@ -364,12 +332,13 @@ class TestResource < PuppetTest::TestCase
|
|
364
332
|
end
|
365
333
|
|
366
334
|
assert_instance_of(Array, trans["require"])
|
367
|
-
assert_equal(["
|
335
|
+
assert_equal(["File", "/tmp/ref1"], trans["require"])
|
368
336
|
|
369
337
|
# Now try it when using an array of references.
|
370
338
|
two = Parser::Resource::Reference.new(:type => "file", :title => "/tmp/ref2")
|
371
339
|
res = mkresource :type => "file", :title => "/tmp/resource2",
|
372
340
|
:params => {:require => [ref, two]}
|
341
|
+
res.scope = mkscope
|
373
342
|
|
374
343
|
trans = nil
|
375
344
|
assert_nothing_raised do
|
@@ -379,7 +348,7 @@ class TestResource < PuppetTest::TestCase
|
|
379
348
|
assert_instance_of(Array, trans["require"][0])
|
380
349
|
trans["require"].each do |val|
|
381
350
|
assert_instance_of(Array, val)
|
382
|
-
assert_equal("
|
351
|
+
assert_equal("File", val[0])
|
383
352
|
assert(val[1] =~ /\/tmp\/ref[0-9]/,
|
384
353
|
"Was %s instead of the file name" % val[1])
|
385
354
|
end
|
@@ -391,63 +360,27 @@ class TestResource < PuppetTest::TestCase
|
|
391
360
|
def test_components_are_not_builtin
|
392
361
|
ref = Parser::Resource::Reference.new(:type => "component", :title => "yay")
|
393
362
|
|
394
|
-
assert_nil(ref.builtintype, "
|
395
|
-
end
|
396
|
-
|
397
|
-
# #472. Really, this still isn't the best behaviour, but at least
|
398
|
-
# it's consistent with what we have elsewhere.
|
399
|
-
def test_defaults_from_parent_classes
|
400
|
-
# Make a parent class with some defaults in it
|
401
|
-
@interp.newclass("base",
|
402
|
-
:code => defaultobj("file", :owner => "root", :group => "root")
|
403
|
-
)
|
404
|
-
|
405
|
-
# Now a mid-level class with some different values
|
406
|
-
@interp.newclass("middle", :parent => "base",
|
407
|
-
:code => defaultobj("file", :owner => "bin", :mode => "755")
|
408
|
-
)
|
409
|
-
|
410
|
-
# Now a lower class with its own defaults plus a resource
|
411
|
-
@interp.newclass("bottom", :parent => "middle",
|
412
|
-
:code => AST::ASTArray.new(:children => [
|
413
|
-
defaultobj("file", :owner => "adm", :recurse => "true"),
|
414
|
-
resourcedef("file", "/tmp/yayness", {})
|
415
|
-
])
|
416
|
-
)
|
417
|
-
|
418
|
-
# Now evaluate the class.
|
419
|
-
assert_nothing_raised("Failed to evaluate class tree") do
|
420
|
-
@scope.evalclasses("bottom")
|
421
|
-
end
|
422
|
-
|
423
|
-
# Make sure our resource got created.
|
424
|
-
res = @scope.findresource("File[/tmp/yayness]")
|
425
|
-
assert_nothing_raised("Could not add defaults") do
|
426
|
-
res.adddefaults
|
427
|
-
end
|
428
|
-
assert(res, "could not find resource")
|
429
|
-
{:owner => "adm", :recurse => "true", :group => "root", :mode => "755"}.each do |param, value|
|
430
|
-
assert_equal(value, res[param], "%s => %s did not inherit correctly" %
|
431
|
-
[param, value])
|
432
|
-
end
|
363
|
+
assert_nil(ref.builtintype, "Definition was considered builtin")
|
433
364
|
end
|
434
365
|
|
435
366
|
# The second part of #539 - make sure resources pass the arguments
|
436
367
|
# correctly.
|
437
368
|
def test_title_with_definitions
|
438
|
-
|
369
|
+
parser = mkparser
|
370
|
+
define = parser.newdefine "yayness",
|
439
371
|
:code => resourcedef("file", "/tmp",
|
440
372
|
"owner" => varref("name"), "mode" => varref("title"))
|
441
373
|
|
442
|
-
|
374
|
+
|
375
|
+
klass = parser.findclass("", "")
|
443
376
|
should = {:name => :owner, :title => :mode}
|
444
377
|
[
|
445
378
|
{:name => "one", :title => "two"},
|
446
379
|
{:title => "three"},
|
447
380
|
].each do |hash|
|
448
|
-
|
381
|
+
config = mkcompile parser
|
449
382
|
args = {:type => "yayness", :title => hash[:title],
|
450
|
-
:source => klass, :scope =>
|
383
|
+
:source => klass, :scope => config.topscope}
|
451
384
|
if hash[:name]
|
452
385
|
args[:params] = {:name => hash[:name]}
|
453
386
|
else
|
@@ -462,7 +395,7 @@ class TestResource < PuppetTest::TestCase
|
|
462
395
|
res.evaluate
|
463
396
|
end
|
464
397
|
|
465
|
-
made =
|
398
|
+
made = config.topscope.findresource("File[/tmp]")
|
466
399
|
assert(made, "Did not create resource with %s" % hash.inspect)
|
467
400
|
should.each do |orig, param|
|
468
401
|
assert_equal(hash[orig] || hash[:title], made[param],
|
@@ -474,7 +407,7 @@ class TestResource < PuppetTest::TestCase
|
|
474
407
|
# part of #629 -- the undef keyword. Make sure 'undef' params get skipped.
|
475
408
|
def test_undef_and_to_hash
|
476
409
|
res = mkresource :type => "file", :title => "/tmp/testing",
|
477
|
-
:source =>
|
410
|
+
:source => mock("source"), :scope => mkscope,
|
478
411
|
:params => {:owner => :undef, :mode => "755"}
|
479
412
|
|
480
413
|
hash = nil
|
@@ -487,11 +420,14 @@ class TestResource < PuppetTest::TestCase
|
|
487
420
|
|
488
421
|
# #643 - Make sure virtual defines result in virtual resources
|
489
422
|
def test_virtual_defines
|
490
|
-
|
423
|
+
parser = mkparser
|
424
|
+
define = parser.newdefine("yayness",
|
491
425
|
:code => resourcedef("file", varref("name"),
|
492
426
|
"mode" => "644"))
|
493
427
|
|
494
|
-
|
428
|
+
config = mkcompile(parser)
|
429
|
+
|
430
|
+
res = mkresource :type => "yayness", :title => "foo", :params => {}, :scope => config.topscope
|
495
431
|
res.virtual = true
|
496
432
|
|
497
433
|
result = nil
|
@@ -506,7 +442,7 @@ class TestResource < PuppetTest::TestCase
|
|
506
442
|
assert(newres.virtual?, "Virtual defined resource generated non-virtual resources")
|
507
443
|
|
508
444
|
# Now try it with exported resources
|
509
|
-
res = mkresource :type => "yayness", :title => "bar", :params => {}
|
445
|
+
res = mkresource :type => "yayness", :title => "bar", :params => {}, :scope => config.topscope
|
510
446
|
res.exported = true
|
511
447
|
|
512
448
|
result = nil
|
@@ -521,6 +457,37 @@ class TestResource < PuppetTest::TestCase
|
|
521
457
|
assert(newres.exported?, "Exported defined resource generated non-exported resources")
|
522
458
|
assert(newres.virtual?, "Exported defined resource generated non-virtual resources")
|
523
459
|
end
|
524
|
-
end
|
525
460
|
|
526
|
-
#
|
461
|
+
# Make sure tags behave appropriately.
|
462
|
+
def test_tags
|
463
|
+
scope_resource = stub 'scope_resource', :tags => %w{srone srtwo}
|
464
|
+
scope = stub 'scope', :resource => scope_resource
|
465
|
+
resource = Puppet::Parser::Resource.new(:type => "file", :title => "yay", :scope => scope, :source => mock('source'))
|
466
|
+
|
467
|
+
# Make sure we get the scope resource's tags, plus the type and title
|
468
|
+
%w{srone srtwo yay file}.each do |tag|
|
469
|
+
assert(resource.tags.include?(tag), "Did not tag resource with %s" % tag)
|
470
|
+
end
|
471
|
+
|
472
|
+
# make sure we can only set legal tags
|
473
|
+
["an invalid tag", "-anotherinvalid", "bad*tag"].each do |tag|
|
474
|
+
assert_raise(Puppet::ParseError, "Tag #{tag} was considered valid") do
|
475
|
+
resource.tag tag
|
476
|
+
end
|
477
|
+
end
|
478
|
+
|
479
|
+
# make sure good tags make it through.
|
480
|
+
tags = %w{good-tag yaytag GoodTag another_tag a ab A}
|
481
|
+
tags.each do |tag|
|
482
|
+
assert_nothing_raised("Tag #{tag} was considered invalid") do
|
483
|
+
resource.tag tag
|
484
|
+
end
|
485
|
+
end
|
486
|
+
|
487
|
+
# make sure we get each of them.
|
488
|
+
ptags = resource.tags
|
489
|
+
tags.each do |tag|
|
490
|
+
assert(ptags.include?(tag.downcase), "missing #{tag}")
|
491
|
+
end
|
492
|
+
end
|
493
|
+
end
|