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.

Files changed (629) hide show
  1. data/CHANGELOG +112 -1
  2. data/README +1 -1
  3. data/Rakefile +1 -2
  4. data/bin/filebucket +2 -3
  5. data/bin/puppet +55 -39
  6. data/bin/puppetca +20 -11
  7. data/bin/puppetd +30 -31
  8. data/bin/puppetdoc +27 -28
  9. data/bin/puppetmasterd +24 -42
  10. data/bin/puppetrun +3 -4
  11. data/bin/ralsh +5 -7
  12. data/conf/redhat/puppet.spec +4 -1
  13. data/conf/solaris/smf/svc-puppetd +1 -1
  14. data/conf/solaris/smf/svc-puppetmasterd +1 -1
  15. data/examples/code/allatonce +1 -1
  16. data/examples/code/assignments +1 -1
  17. data/examples/code/components +1 -1
  18. data/examples/code/file.bl +1 -1
  19. data/examples/code/filedefaults +1 -1
  20. data/examples/code/fileparsing +1 -1
  21. data/examples/code/filerecursion +1 -1
  22. data/examples/code/functions +1 -1
  23. data/examples/code/groups +1 -1
  24. data/examples/code/head +1 -1
  25. data/examples/code/importing +1 -1
  26. data/examples/code/modules/sample-module.pp +10 -0
  27. data/examples/code/modules/sample-module/README.txt +17 -0
  28. data/examples/code/modules/sample-module/lib/puppet/parser/functions/hostname_to_dn.rb +36 -0
  29. data/examples/code/modules/sample-module/manifests/init.pp +12 -0
  30. data/examples/code/modules/sample-module/templates/sample.erb +5 -0
  31. data/examples/code/nodes +1 -1
  32. data/examples/code/one +1 -1
  33. data/examples/code/relationships +1 -1
  34. data/examples/code/selectors +1 -1
  35. data/examples/code/simpletests +1 -1
  36. data/examples/root/etc/init.d/sleeper +1 -1
  37. data/examples/root/etc/puppet/fileserver.conf +1 -1
  38. data/ext/ldap/puppet.schema +1 -1
  39. data/ext/module_puppet +30 -21
  40. data/ext/puppet-test +3 -3
  41. data/ext/vim/filetype.vim +1 -1
  42. data/install.rb +1 -2
  43. data/lib/puppet.rb +20 -19
  44. data/lib/puppet/checksum.rb +57 -0
  45. data/lib/puppet/config_stores/rest.rb +1 -1
  46. data/lib/puppet/daemon.rb +0 -1
  47. data/lib/puppet/{configuration.rb → defaults.rb} +56 -23
  48. data/lib/puppet/dsl.rb +22 -116
  49. data/lib/puppet/error.rb +0 -9
  50. data/lib/puppet/event.rb +0 -1
  51. data/lib/puppet/external/gratr/rdot.rb +0 -1
  52. data/lib/puppet/external/lock.rb +0 -1
  53. data/lib/puppet/feature/base.rb +3 -2
  54. data/lib/puppet/feature/rails.rb +0 -1
  55. data/lib/puppet/file_serving.rb +7 -0
  56. data/lib/puppet/file_serving/configuration.rb +129 -0
  57. data/lib/puppet/file_serving/configuration/parser.rb +124 -0
  58. data/lib/puppet/file_serving/content.rb +34 -0
  59. data/lib/puppet/file_serving/file_base.rb +63 -0
  60. data/lib/puppet/file_serving/fileset.rb +138 -0
  61. data/lib/puppet/file_serving/indirection_hooks.rb +44 -0
  62. data/lib/puppet/file_serving/metadata.rb +69 -0
  63. data/lib/puppet/file_serving/mount.rb +186 -0
  64. data/lib/puppet/file_serving/terminus_helper.rb +19 -0
  65. data/lib/puppet/indirector.rb +68 -0
  66. data/lib/puppet/indirector/catalog/compiler.rb +173 -0
  67. data/lib/puppet/indirector/catalog/yaml.rb +24 -0
  68. data/lib/puppet/indirector/checksum/file.rb +33 -0
  69. data/lib/puppet/indirector/code.rb +6 -0
  70. data/lib/puppet/indirector/direct_file_server.rb +27 -0
  71. data/lib/puppet/indirector/exec.rb +57 -0
  72. data/lib/puppet/indirector/facts/facter.rb +65 -0
  73. data/lib/puppet/indirector/facts/memory.rb +9 -0
  74. data/lib/puppet/indirector/facts/yaml.rb +7 -0
  75. data/lib/puppet/indirector/file.rb +54 -0
  76. data/lib/puppet/indirector/file_content.rb +5 -0
  77. data/lib/puppet/indirector/file_content/file.rb +11 -0
  78. data/lib/puppet/indirector/file_content/file_server.rb +11 -0
  79. data/lib/puppet/indirector/file_content/modules.rb +11 -0
  80. data/lib/puppet/indirector/file_content/rest.rb +12 -0
  81. data/lib/puppet/indirector/file_metadata.rb +5 -0
  82. data/lib/puppet/indirector/file_metadata/file.rb +26 -0
  83. data/lib/puppet/indirector/file_metadata/file_server.rb +11 -0
  84. data/lib/puppet/indirector/file_metadata/modules.rb +17 -0
  85. data/lib/puppet/indirector/file_metadata/rest.rb +12 -0
  86. data/lib/puppet/indirector/file_server.rb +56 -0
  87. data/lib/puppet/indirector/indirection.rb +237 -0
  88. data/lib/puppet/indirector/ldap.rb +90 -0
  89. data/lib/puppet/indirector/memory.rb +21 -0
  90. data/lib/puppet/indirector/module_files.rb +82 -0
  91. data/lib/puppet/indirector/node/exec.rb +52 -0
  92. data/lib/puppet/indirector/node/ldap.rb +120 -0
  93. data/lib/puppet/indirector/node/memory.rb +10 -0
  94. data/lib/puppet/indirector/node/plain.rb +19 -0
  95. data/lib/puppet/indirector/node/rest.rb +7 -0
  96. data/lib/puppet/indirector/node/yaml.rb +7 -0
  97. data/lib/puppet/indirector/plain.rb +9 -0
  98. data/lib/puppet/indirector/report/processor.rb +50 -0
  99. data/lib/puppet/indirector/rest.rb +8 -0
  100. data/lib/puppet/indirector/ssl_rsa.rb +5 -0
  101. data/lib/puppet/indirector/ssl_rsa/file.rb +33 -0
  102. data/lib/puppet/indirector/terminus.rb +178 -0
  103. data/lib/puppet/indirector/yaml.rb +57 -0
  104. data/lib/puppet/metatype/attributes.rb +3 -3
  105. data/lib/puppet/metatype/closure.rb +0 -66
  106. data/lib/puppet/metatype/container.rb +0 -9
  107. data/lib/puppet/metatype/evaluation.rb +10 -2
  108. data/lib/puppet/metatype/instances.rb +16 -30
  109. data/lib/puppet/metatype/manager.rb +1 -2
  110. data/lib/puppet/metatype/metaparams.rb +27 -21
  111. data/lib/puppet/metatype/providers.rb +3 -2
  112. data/lib/puppet/metatype/relationships.rb +1 -2
  113. data/lib/puppet/metatype/schedules.rb +0 -1
  114. data/lib/puppet/metatype/tags.rb +0 -1
  115. data/lib/puppet/module.rb +60 -32
  116. data/lib/puppet/network/authconfig.rb +0 -1
  117. data/lib/puppet/network/authorization.rb +0 -1
  118. data/lib/puppet/network/authstore.rb +0 -1
  119. data/lib/puppet/network/client.rb +13 -4
  120. data/lib/puppet/network/client/ca.rb +4 -5
  121. data/lib/puppet/network/client/dipper.rb +0 -1
  122. data/lib/puppet/network/client/file.rb +0 -1
  123. data/lib/puppet/network/client/master.rb +127 -235
  124. data/lib/puppet/network/client/proxy.rb +0 -1
  125. data/lib/puppet/network/client/report.rb +0 -1
  126. data/lib/puppet/network/client/resource.rb +0 -1
  127. data/lib/puppet/network/client/runner.rb +0 -1
  128. data/lib/puppet/network/client/status.rb +0 -1
  129. data/lib/puppet/network/client_request.rb +0 -1
  130. data/lib/puppet/network/handler.rb +5 -2
  131. data/lib/puppet/network/handler/ca.rb +1 -2
  132. data/lib/puppet/network/handler/configuration.rb +184 -0
  133. data/lib/puppet/network/handler/filebucket.rb +1 -2
  134. data/lib/puppet/network/handler/fileserver.rb +279 -107
  135. data/lib/puppet/network/handler/master.rb +57 -152
  136. data/lib/puppet/network/handler/report.rb +6 -65
  137. data/lib/puppet/network/handler/resource.rb +5 -13
  138. data/lib/puppet/network/handler/runner.rb +3 -4
  139. data/lib/puppet/network/handler/status.rb +0 -1
  140. data/lib/puppet/network/http.rb +13 -0
  141. data/lib/puppet/network/http/handler.rb +109 -0
  142. data/lib/puppet/network/http/mongrel.rb +54 -0
  143. data/lib/puppet/network/http/mongrel/rest.rb +37 -0
  144. data/lib/puppet/network/http/mongrel/xmlrpc.rb +4 -0
  145. data/lib/puppet/network/http/webrick.rb +51 -0
  146. data/lib/puppet/network/http/webrick/rest.rb +41 -0
  147. data/lib/puppet/network/http/webrick/xmlrpc.rb +4 -0
  148. data/lib/puppet/network/http_server.rb +3 -0
  149. data/lib/puppet/network/{server → http_server}/mongrel.rb +11 -5
  150. data/lib/puppet/network/{server → http_server}/webrick.rb +9 -5
  151. data/lib/puppet/network/rest_controller.rb +2 -0
  152. data/lib/puppet/network/rights.rb +0 -1
  153. data/lib/puppet/network/server.rb +63 -3
  154. data/lib/puppet/network/xmlrpc/client.rb +90 -23
  155. data/lib/puppet/network/xmlrpc/processor.rb +0 -1
  156. data/lib/puppet/network/xmlrpc/server.rb +0 -1
  157. data/lib/puppet/network/xmlrpc/webrick_servlet.rb +0 -1
  158. data/lib/puppet/node.rb +165 -0
  159. data/lib/puppet/node/catalog.rb +480 -0
  160. data/lib/puppet/node/environment.rb +46 -0
  161. data/lib/puppet/node/facts.rb +36 -0
  162. data/lib/puppet/parameter.rb +34 -28
  163. data/lib/puppet/parser/ast.rb +0 -1
  164. data/lib/puppet/parser/ast/astarray.rb +30 -53
  165. data/lib/puppet/parser/ast/branch.rb +0 -10
  166. data/lib/puppet/parser/ast/caseopt.rb +0 -11
  167. data/lib/puppet/parser/ast/casestatement.rb +0 -12
  168. data/lib/puppet/parser/ast/collection.rb +1 -3
  169. data/lib/puppet/parser/ast/collexpr.rb +0 -2
  170. data/lib/puppet/parser/ast/{component.rb → definition.rb} +58 -72
  171. data/lib/puppet/parser/ast/else.rb +0 -10
  172. data/lib/puppet/parser/ast/function.rb +0 -2
  173. data/lib/puppet/parser/ast/hostclass.rb +21 -19
  174. data/lib/puppet/parser/ast/ifstatement.rb +0 -13
  175. data/lib/puppet/parser/ast/leaf.rb +0 -8
  176. data/lib/puppet/parser/ast/node.rb +13 -10
  177. data/lib/puppet/parser/ast/resource.rb +75 -0
  178. data/lib/puppet/parser/ast/{resourcedefaults.rb → resource_defaults.rb} +4 -20
  179. data/lib/puppet/parser/ast/{resourceoverride.rb → resource_override.rb} +3 -5
  180. data/lib/puppet/parser/ast/resource_reference.rb +66 -0
  181. data/lib/puppet/parser/ast/resourceparam.rb +0 -14
  182. data/lib/puppet/parser/ast/selector.rb +0 -10
  183. data/lib/puppet/parser/ast/tag.rb +0 -2
  184. data/lib/puppet/parser/ast/vardef.rb +0 -14
  185. data/lib/puppet/parser/collector.rb +83 -101
  186. data/lib/puppet/parser/compile.rb +509 -0
  187. data/lib/puppet/parser/functions.rb +10 -10
  188. data/lib/puppet/parser/interpreter.rb +44 -662
  189. data/lib/puppet/parser/lexer.rb +1 -3
  190. data/lib/puppet/parser/parser.rb +674 -701
  191. data/lib/puppet/parser/parser_support.rb +33 -24
  192. data/lib/puppet/parser/resource.rb +219 -162
  193. data/lib/puppet/parser/resource/param.rb +1 -2
  194. data/lib/puppet/parser/resource/reference.rb +24 -16
  195. data/lib/puppet/parser/scope.rb +48 -459
  196. data/lib/puppet/parser/templatewrapper.rb +4 -5
  197. data/lib/puppet/pgraph.rb +10 -13
  198. data/lib/puppet/property.rb +25 -41
  199. data/lib/puppet/propertychange.rb +0 -2
  200. data/lib/puppet/provider.rb +15 -11
  201. data/lib/puppet/provider/cron/crontab.rb +6 -7
  202. data/lib/puppet/provider/group/groupadd.rb +0 -1
  203. data/lib/puppet/provider/group/netinfo.rb +0 -1
  204. data/lib/puppet/provider/group/pw.rb +0 -1
  205. data/lib/puppet/provider/host/netinfo.rb +0 -1
  206. data/lib/puppet/provider/host/parsed.rb +0 -1
  207. data/lib/puppet/provider/interface/redhat.rb +90 -91
  208. data/lib/puppet/provider/interface/sunos.rb +98 -81
  209. data/lib/puppet/provider/mailalias/aliases.rb +0 -1
  210. data/lib/puppet/provider/maillist/mailman.rb +2 -3
  211. data/lib/puppet/provider/mount.rb +10 -9
  212. data/lib/puppet/provider/mount/netinfo.rb +0 -1
  213. data/lib/puppet/provider/mount/parsed.rb +0 -1
  214. data/lib/puppet/provider/nameservice.rb +0 -1
  215. data/lib/puppet/provider/nameservice/netinfo.rb +0 -1
  216. data/lib/puppet/provider/nameservice/objectadd.rb +0 -1
  217. data/lib/puppet/provider/nameservice/pw.rb +0 -1
  218. data/lib/puppet/provider/package.rb +0 -2
  219. data/lib/puppet/provider/package/appdmg.rb +0 -1
  220. data/lib/puppet/provider/package/apple.rb +0 -1
  221. data/lib/puppet/provider/package/apt.rb +0 -1
  222. data/lib/puppet/provider/package/aptitude.rb +0 -1
  223. data/lib/puppet/provider/package/aptrpm.rb +0 -1
  224. data/lib/puppet/provider/package/blastwave.rb +0 -1
  225. data/lib/puppet/provider/package/darwinport.rb +0 -1
  226. data/lib/puppet/provider/package/dpkg.rb +9 -1
  227. data/lib/puppet/provider/package/fink.rb +0 -1
  228. data/lib/puppet/provider/package/freebsd.rb +0 -1
  229. data/lib/puppet/provider/package/gem.rb +0 -1
  230. data/lib/puppet/provider/package/openbsd.rb +1 -2
  231. data/lib/puppet/provider/package/pkgdmg.rb +14 -15
  232. data/lib/puppet/provider/package/portage.rb +6 -7
  233. data/lib/puppet/provider/package/ports.rb +1 -4
  234. data/lib/puppet/provider/package/rpm.rb +31 -45
  235. data/lib/puppet/provider/package/sun.rb +0 -3
  236. data/lib/puppet/provider/package/sunfreeware.rb +0 -1
  237. data/lib/puppet/provider/package/up2date.rb +0 -1
  238. data/lib/puppet/provider/package/urpmi.rb +0 -1
  239. data/lib/puppet/provider/package/yum.rb +45 -14
  240. data/lib/puppet/provider/package/yumhelper.py +37 -0
  241. data/lib/puppet/provider/parsedfile.rb +2 -3
  242. data/lib/puppet/provider/port/parsed.rb +0 -1
  243. data/lib/puppet/provider/service/base.rb +4 -1
  244. data/lib/puppet/provider/service/debian.rb +5 -2
  245. data/lib/puppet/provider/service/freebsd.rb +51 -0
  246. data/lib/puppet/provider/service/init.rb +16 -40
  247. data/lib/puppet/provider/service/redhat.rb +1 -6
  248. data/lib/puppet/provider/service/smf.rb +0 -1
  249. data/lib/puppet/provider/sshkey/parsed.rb +0 -1
  250. data/lib/puppet/provider/user/netinfo.rb +0 -1
  251. data/lib/puppet/provider/user/pw.rb +0 -1
  252. data/lib/puppet/provider/user/useradd.rb +0 -1
  253. data/lib/puppet/provider/zone/solaris.rb +0 -1
  254. data/lib/puppet/rails.rb +35 -30
  255. data/lib/puppet/rails/database/schema.rb +0 -1
  256. data/lib/puppet/rails/host.rb +6 -15
  257. data/lib/puppet/rails/param_name.rb +1 -2
  258. data/lib/puppet/rails/param_value.rb +0 -1
  259. data/lib/puppet/rails/puppet_class.rb +0 -1
  260. data/lib/puppet/rails/resource.rb +3 -5
  261. data/lib/puppet/reference/configuration.rb +12 -6
  262. data/lib/puppet/reference/indirection.rb +34 -0
  263. data/lib/puppet/reference/node_source.rb +9 -0
  264. data/lib/puppet/relationship.rb +10 -8
  265. data/lib/puppet/reports.rb +51 -0
  266. data/lib/puppet/reports/log.rb +2 -3
  267. data/lib/puppet/reports/rrdgraph.rb +2 -5
  268. data/lib/puppet/reports/store.rb +6 -7
  269. data/lib/puppet/reports/tagmail.rb +2 -3
  270. data/lib/puppet/resource_reference.rb +79 -0
  271. data/lib/puppet/simple_graph.rb +251 -0
  272. data/lib/puppet/sslcertificates.rb +19 -15
  273. data/lib/puppet/sslcertificates/ca.rb +56 -15
  274. data/lib/puppet/sslcertificates/certificate.rb +0 -1
  275. data/lib/puppet/sslcertificates/inventory.rb +2 -6
  276. data/lib/puppet/sslcertificates/monkey_patch.rb +6 -0
  277. data/lib/puppet/sslcertificates/support.rb +4 -5
  278. data/lib/puppet/transaction.rb +93 -96
  279. data/lib/puppet/transaction/report.rb +5 -1
  280. data/lib/puppet/transportable.rb +79 -125
  281. data/lib/puppet/type.rb +44 -10
  282. data/lib/puppet/type/component.rb +25 -110
  283. data/lib/puppet/type/cron.rb +1 -2
  284. data/lib/puppet/type/exec.rb +19 -13
  285. data/lib/puppet/type/group.rb +0 -1
  286. data/lib/puppet/type/host.rb +0 -1
  287. data/lib/puppet/type/interface.rb +6 -3
  288. data/lib/puppet/type/k5login.rb +87 -0
  289. data/lib/puppet/type/mailalias.rb +0 -1
  290. data/lib/puppet/type/maillist.rb +0 -1
  291. data/lib/puppet/type/mount.rb +7 -13
  292. data/lib/puppet/type/notify.rb +0 -1
  293. data/lib/puppet/type/package.rb +7 -63
  294. data/lib/puppet/type/pfile.rb +25 -32
  295. data/lib/puppet/type/pfile/checksum.rb +0 -1
  296. data/lib/puppet/type/pfile/content.rb +18 -3
  297. data/lib/puppet/type/pfile/ensure.rb +5 -6
  298. data/lib/puppet/type/pfile/group.rb +4 -1
  299. data/lib/puppet/type/pfile/mode.rb +0 -1
  300. data/lib/puppet/type/pfile/owner.rb +6 -9
  301. data/lib/puppet/type/pfile/source.rb +28 -11
  302. data/lib/puppet/type/pfile/target.rb +2 -1
  303. data/lib/puppet/type/pfile/type.rb +0 -1
  304. data/lib/puppet/type/pfilebucket.rb +0 -1
  305. data/lib/puppet/type/port.rb +0 -1
  306. data/lib/puppet/type/resources.rb +0 -1
  307. data/lib/puppet/type/schedule.rb +17 -15
  308. data/lib/puppet/type/service.rb +23 -159
  309. data/lib/puppet/type/sshkey.rb +0 -1
  310. data/lib/puppet/type/tidy.rb +15 -7
  311. data/lib/puppet/type/user.rb +0 -1
  312. data/lib/puppet/type/zone.rb +0 -1
  313. data/lib/puppet/util.rb +1 -2
  314. data/lib/puppet/util/autoload.rb +21 -23
  315. data/lib/puppet/util/checksums.rb +37 -0
  316. data/lib/puppet/util/classgen.rb +0 -1
  317. data/lib/puppet/util/diff.rb +71 -0
  318. data/lib/puppet/util/docs.rb +8 -2
  319. data/lib/puppet/util/errors.rb +0 -1
  320. data/lib/puppet/util/execution.rb +0 -1
  321. data/lib/puppet/util/fact_store.rb +0 -1
  322. data/lib/puppet/util/feature.rb +31 -22
  323. data/lib/puppet/util/fileparsing.rb +3 -2
  324. data/lib/puppet/util/filetype.rb +30 -12
  325. data/lib/puppet/util/graph.rb +0 -1
  326. data/lib/puppet/util/inifile.rb +0 -1
  327. data/lib/puppet/util/instance_loader.rb +11 -4
  328. data/lib/puppet/util/loadedfile.rb +0 -1
  329. data/lib/puppet/util/log.rb +0 -1
  330. data/lib/puppet/util/log_paths.rb +0 -1
  331. data/lib/puppet/util/logging.rb +0 -1
  332. data/lib/puppet/util/metaid.rb +0 -1
  333. data/lib/puppet/util/methodhelper.rb +0 -2
  334. data/lib/puppet/util/metric.rb +1 -2
  335. data/lib/puppet/util/plist.rb +0 -1
  336. data/lib/puppet/util/plist/generator.rb +0 -1
  337. data/lib/puppet/util/plist/parser.rb +0 -1
  338. data/lib/puppet/util/posix.rb +7 -1
  339. data/lib/puppet/util/provider_features.rb +11 -12
  340. data/lib/puppet/util/rails/collection_merger.rb +0 -1
  341. data/lib/puppet/util/reference.rb +2 -3
  342. data/lib/puppet/util/{config.rb → settings.rb} +424 -300
  343. data/lib/puppet/util/storage.rb +1 -3
  344. data/lib/puppet/util/subclass_loader.rb +0 -1
  345. data/lib/puppet/util/suidmanager.rb +25 -42
  346. data/lib/puppet/util/uri_helper.rb +22 -0
  347. data/lib/puppet/util/variables.rb +0 -1
  348. data/lib/puppet/util/warnings.rb +0 -1
  349. data/test/Rakefile +1 -1
  350. data/test/certmgr/ca.rb +8 -2
  351. data/test/certmgr/certmgr.rb +14 -6
  352. data/test/certmgr/inventory.rb +18 -30
  353. data/test/certmgr/support.rb +3 -2
  354. data/test/executables/filebucket.rb +1 -2
  355. data/test/executables/puppetbin.rb +1 -2
  356. data/test/executables/puppetca.rb +7 -2
  357. data/test/executables/puppetd.rb +23 -29
  358. data/test/executables/puppetmasterd.rb +1 -2
  359. data/test/executables/puppetmodule.rb +1 -2
  360. data/test/language/ast.rb +24 -29
  361. data/test/language/ast/casestatement.rb +1 -2
  362. data/test/language/ast/definition.rb +166 -0
  363. data/test/language/ast/hostclass.rb +50 -29
  364. data/test/language/ast/resource.rb +59 -0
  365. data/test/language/ast/{resourceref.rb → resource_reference.rb} +30 -20
  366. data/test/language/ast/selector.rb +1 -2
  367. data/test/language/ast/variable.rb +1 -2
  368. data/test/language/compile.rb +569 -0
  369. data/test/language/functions.rb +57 -76
  370. data/test/language/lexer.rb +20 -3
  371. data/test/language/parser.rb +45 -33
  372. data/test/language/resource.rb +275 -308
  373. data/test/language/scope.rb +135 -410
  374. data/test/language/snippets.rb +19 -41
  375. data/test/language/transportable.rb +8 -29
  376. data/test/lib/mocha/auto_verify.rb +6 -6
  377. data/test/lib/mocha/deprecation.rb +22 -0
  378. data/test/lib/mocha/exception_raiser.rb +17 -0
  379. data/test/lib/mocha/expectation.rb +167 -84
  380. data/test/lib/mocha/infinite_range.rb +4 -6
  381. data/test/lib/mocha/inspect.rb +3 -1
  382. data/test/lib/mocha/is_a.rb +9 -0
  383. data/test/lib/mocha/missing_expectation.rb +27 -0
  384. data/test/lib/mocha/mock.rb +192 -5
  385. data/test/lib/mocha/multiple_yields.rb +20 -0
  386. data/test/lib/mocha/no_yields.rb +11 -0
  387. data/test/lib/mocha/object.rb +11 -1
  388. data/test/lib/mocha/parameter_matchers.rb +9 -0
  389. data/test/lib/mocha/parameter_matchers/all_of.rb +39 -0
  390. data/test/lib/mocha/parameter_matchers/any_of.rb +44 -0
  391. data/test/lib/mocha/parameter_matchers/anything.rb +30 -0
  392. data/test/lib/mocha/parameter_matchers/has_entry.rb +39 -0
  393. data/test/lib/mocha/parameter_matchers/has_key.rb +39 -0
  394. data/test/lib/mocha/parameter_matchers/has_value.rb +39 -0
  395. data/test/lib/mocha/parameter_matchers/includes.rb +37 -0
  396. data/test/lib/mocha/return_values.rb +31 -0
  397. data/test/lib/mocha/single_return_value.rb +24 -0
  398. data/test/lib/mocha/single_yield.rb +18 -0
  399. data/test/lib/mocha/standalone.rb +2 -0
  400. data/test/lib/mocha/stub.rb +18 -0
  401. data/test/lib/mocha/test_case_adapter.rb +3 -3
  402. data/test/lib/mocha/yield_parameters.rb +31 -0
  403. data/test/lib/puppettest.rb +38 -20
  404. data/test/lib/puppettest/certificates.rb +0 -1
  405. data/test/lib/puppettest/exetest.rb +0 -1
  406. data/test/lib/puppettest/fakes.rb +0 -1
  407. data/test/lib/puppettest/fileparsing.rb +8 -15
  408. data/test/lib/puppettest/filetesting.rb +0 -1
  409. data/test/lib/puppettest/parsertesting.rb +37 -23
  410. data/test/lib/puppettest/railstesting.rb +3 -6
  411. data/test/lib/puppettest/reporttesting.rb +0 -1
  412. data/test/lib/puppettest/resourcetesting.rb +6 -34
  413. data/test/lib/puppettest/runnable_test.rb +30 -0
  414. data/test/lib/puppettest/servertest.rb +2 -3
  415. data/test/lib/puppettest/support/assertions.rb +13 -41
  416. data/test/lib/puppettest/support/collection.rb +0 -1
  417. data/test/lib/puppettest/support/helpers.rb +0 -1
  418. data/test/lib/puppettest/support/resources.rb +17 -17
  419. data/test/lib/puppettest/support/utils.rb +45 -27
  420. data/test/lib/puppettest/testcase.rb +2 -21
  421. data/test/lib/rake/puppet_test_loader.rb +0 -1
  422. data/test/lib/rake/puppet_testtask.rb +0 -1
  423. data/test/network/authconfig.rb +1 -2
  424. data/test/network/authorization.rb +1 -2
  425. data/test/network/authstore.rb +1 -2
  426. data/test/network/client/ca.rb +12 -7
  427. data/test/network/client/client.rb +17 -22
  428. data/test/network/client/dipper.rb +1 -2
  429. data/test/network/client/master.rb +70 -184
  430. data/test/network/client/resource.rb +9 -2
  431. data/test/network/client_request.rb +1 -2
  432. data/test/network/daemon.rb +1 -2
  433. data/test/network/handler/bucket.rb +2 -31
  434. data/test/network/handler/ca.rb +9 -3
  435. data/test/network/handler/configuration.rb +160 -0
  436. data/test/network/handler/fileserver.rb +24 -5
  437. data/test/network/handler/handler.rb +1 -2
  438. data/test/network/handler/master.rb +38 -243
  439. data/test/network/handler/report.rb +2 -104
  440. data/test/network/handler/resource.rb +5 -3
  441. data/test/network/handler/runner.rb +22 -60
  442. data/test/network/rights.rb +1 -2
  443. data/test/network/server/mongrel_test.rb +2 -3
  444. data/test/network/server/webrick.rb +17 -11
  445. data/test/network/xmlrpc/client.rb +27 -12
  446. data/test/network/xmlrpc/processor.rb +3 -4
  447. data/test/network/xmlrpc/server.rb +1 -2
  448. data/test/network/xmlrpc/webrick_servlet.rb +8 -2
  449. data/test/other/dsl.rb +2 -4
  450. data/test/other/events.rb +14 -56
  451. data/test/other/overrides.rb +3 -6
  452. data/test/other/propertychange.rb +1 -2
  453. data/test/other/provider.rb +1 -2
  454. data/test/other/puppet.rb +1 -2
  455. data/test/other/relationships.rb +15 -17
  456. data/test/other/report.rb +14 -20
  457. data/test/other/transactions.rb +109 -192
  458. data/test/puppet/conffiles.rb +3 -5
  459. data/test/puppet/defaults.rb +1 -28
  460. data/test/puppet/errortest.rb +1 -2
  461. data/test/puppet/tc_suidmanager.rb +77 -63
  462. data/test/rails/ast.rb +4 -4
  463. data/test/rails/configuration.rb +71 -0
  464. data/test/rails/host.rb +19 -30
  465. data/test/rails/rails.rb +1 -2
  466. data/test/rails/railsparameter.rb +3 -4
  467. data/test/rails/railsresource.rb +6 -5
  468. data/test/ral/manager/attributes.rb +1 -2
  469. data/test/ral/manager/instances.rb +3 -3
  470. data/test/ral/manager/manager.rb +1 -2
  471. data/test/ral/manager/provider.rb +1 -2
  472. data/test/ral/manager/type.rb +89 -93
  473. data/test/ral/providers/cron/crontab.rb +9 -11
  474. data/test/ral/providers/group.rb +1 -2
  475. data/test/ral/providers/host/netinfo.rb +1 -2
  476. data/test/ral/providers/host/parsed.rb +1 -2
  477. data/test/ral/providers/mailalias/aliases.rb +1 -2
  478. data/test/ral/providers/mount/netinfo.rb +1 -2
  479. data/test/ral/providers/nameservice.rb +1 -2
  480. data/test/ral/providers/package.rb +5 -4
  481. data/test/ral/providers/package/apt.rb +0 -1
  482. data/test/ral/providers/package/aptrpm.rb +0 -1
  483. data/test/ral/providers/parsedfile.rb +1 -2
  484. data/test/ral/providers/port/parsed.rb +1 -2
  485. data/test/ral/providers/provider.rb +10 -5
  486. data/test/ral/providers/service/base.rb +1 -2
  487. data/test/ral/providers/service/debian.rb +58 -0
  488. data/test/ral/providers/sshkey/parsed.rb +1 -2
  489. data/test/ral/providers/user.rb +3 -2
  490. data/test/ral/providers/user/useradd.rb +0 -1
  491. data/test/ral/types/basic.rb +4 -9
  492. data/test/ral/types/cron.rb +6 -12
  493. data/test/ral/types/exec.rb +6 -7
  494. data/test/ral/types/file.rb +35 -14
  495. data/test/ral/types/file/target.rb +6 -5
  496. data/test/ral/types/filebucket.rb +3 -2
  497. data/test/ral/types/fileignoresource.rb +10 -42
  498. data/test/ral/types/filesources.rb +21 -60
  499. data/test/ral/types/group.rb +3 -3
  500. data/test/ral/types/host.rb +6 -3
  501. data/test/ral/types/mailalias.rb +1 -2
  502. data/test/ral/types/parameter.rb +5 -3
  503. data/test/ral/types/port.rb +1 -2
  504. data/test/ral/types/property.rb +3 -3
  505. data/test/ral/types/resources.rb +1 -2
  506. data/test/ral/types/service.rb +5 -3
  507. data/test/ral/types/sshkey.rb +5 -3
  508. data/test/ral/types/tidy.rb +63 -3
  509. data/test/ral/types/user.rb +10 -11
  510. data/test/ral/types/yumrepo.rb +1 -1
  511. data/test/ral/types/zone.rb +1 -2
  512. data/test/util/autoload.rb +23 -27
  513. data/test/util/classgen.rb +1 -2
  514. data/test/util/execution.rb +1 -2
  515. data/test/util/features.rb +1 -3
  516. data/test/util/fileparsing.rb +11 -3
  517. data/test/util/filetype.rb +1 -2
  518. data/test/util/inifile.rb +1 -1
  519. data/test/util/instance_loader.rb +5 -6
  520. data/test/util/loadedfile.rb +1 -2
  521. data/test/util/log.rb +1 -2
  522. data/test/util/metrics.rb +1 -2
  523. data/test/util/package.rb +1 -2
  524. data/test/util/posixtest.rb +1 -2
  525. data/test/util/{config.rb → settings.rb} +123 -265
  526. data/test/util/storage.rb +1 -2
  527. data/test/util/subclass_loader.rb +1 -2
  528. data/test/util/utiltest.rb +1 -111
  529. metadata +130 -112
  530. data/ext/tools/passwd2puppet +0 -45
  531. data/lib/puppet/fact_stores/yaml.rb +0 -42
  532. data/lib/puppet/network/handler/facts.rb +0 -70
  533. data/lib/puppet/parser/ast/resourcedef.rb +0 -222
  534. data/lib/puppet/parser/ast/resourceref.rb +0 -58
  535. data/test/language/ast/component.rb +0 -142
  536. data/test/language/collector.rb +0 -179
  537. data/test/language/interpreter.rb +0 -804
  538. data/test/language/node.rb +0 -126
  539. data/test/lib/mocha/mock_methods.rb +0 -122
  540. data/test/lib/puppettest/graph.rb +0 -41
  541. data/test/lib/spec.rb +0 -8
  542. data/test/lib/spec/callback.rb +0 -11
  543. data/test/lib/spec/callback/callback_container.rb +0 -60
  544. data/test/lib/spec/callback/extensions/module.rb +0 -24
  545. data/test/lib/spec/callback/extensions/object.rb +0 -37
  546. data/test/lib/spec/deprecated.rb +0 -3
  547. data/test/lib/spec/expectations.rb +0 -59
  548. data/test/lib/spec/expectations/differs/default.rb +0 -62
  549. data/test/lib/spec/expectations/errors.rb +0 -6
  550. data/test/lib/spec/expectations/extensions.rb +0 -3
  551. data/test/lib/spec/expectations/extensions/object.rb +0 -109
  552. data/test/lib/spec/expectations/extensions/proc.rb +0 -57
  553. data/test/lib/spec/expectations/extensions/string_and_symbol.rb +0 -17
  554. data/test/lib/spec/expectations/handler.rb +0 -47
  555. data/test/lib/spec/expectations/should.rb +0 -5
  556. data/test/lib/spec/expectations/should/base.rb +0 -64
  557. data/test/lib/spec/expectations/should/change.rb +0 -69
  558. data/test/lib/spec/expectations/should/have.rb +0 -128
  559. data/test/lib/spec/expectations/should/not.rb +0 -74
  560. data/test/lib/spec/expectations/should/should.rb +0 -81
  561. data/test/lib/spec/expectations/sugar.rb +0 -47
  562. data/test/lib/spec/matchers.rb +0 -160
  563. data/test/lib/spec/matchers/be.rb +0 -161
  564. data/test/lib/spec/matchers/be_close.rb +0 -37
  565. data/test/lib/spec/matchers/change.rb +0 -120
  566. data/test/lib/spec/matchers/eql.rb +0 -43
  567. data/test/lib/spec/matchers/equal.rb +0 -43
  568. data/test/lib/spec/matchers/has.rb +0 -44
  569. data/test/lib/spec/matchers/have.rb +0 -140
  570. data/test/lib/spec/matchers/include.rb +0 -50
  571. data/test/lib/spec/matchers/match.rb +0 -41
  572. data/test/lib/spec/matchers/raise_error.rb +0 -100
  573. data/test/lib/spec/matchers/respond_to.rb +0 -35
  574. data/test/lib/spec/matchers/satisfy.rb +0 -47
  575. data/test/lib/spec/matchers/throw_symbol.rb +0 -75
  576. data/test/lib/spec/mocks.rb +0 -232
  577. data/test/lib/spec/mocks/argument_expectation.rb +0 -132
  578. data/test/lib/spec/mocks/error_generator.rb +0 -85
  579. data/test/lib/spec/mocks/errors.rb +0 -10
  580. data/test/lib/spec/mocks/extensions/object.rb +0 -3
  581. data/test/lib/spec/mocks/message_expectation.rb +0 -231
  582. data/test/lib/spec/mocks/methods.rb +0 -40
  583. data/test/lib/spec/mocks/mock.rb +0 -26
  584. data/test/lib/spec/mocks/mock_handler.rb +0 -166
  585. data/test/lib/spec/mocks/order_group.rb +0 -29
  586. data/test/lib/spec/rake/spectask.rb +0 -173
  587. data/test/lib/spec/rake/verify_rcov.rb +0 -47
  588. data/test/lib/spec/runner.rb +0 -132
  589. data/test/lib/spec/runner/backtrace_tweaker.rb +0 -55
  590. data/test/lib/spec/runner/command_line.rb +0 -34
  591. data/test/lib/spec/runner/context.rb +0 -154
  592. data/test/lib/spec/runner/context_eval.rb +0 -142
  593. data/test/lib/spec/runner/context_runner.rb +0 -55
  594. data/test/lib/spec/runner/drb_command_line.rb +0 -21
  595. data/test/lib/spec/runner/execution_context.rb +0 -17
  596. data/test/lib/spec/runner/extensions/kernel.rb +0 -17
  597. data/test/lib/spec/runner/extensions/object.rb +0 -32
  598. data/test/lib/spec/runner/formatter.rb +0 -5
  599. data/test/lib/spec/runner/formatter/base_text_formatter.rb +0 -118
  600. data/test/lib/spec/runner/formatter/html_formatter.rb +0 -219
  601. data/test/lib/spec/runner/formatter/progress_bar_formatter.rb +0 -27
  602. data/test/lib/spec/runner/formatter/rdoc_formatter.rb +0 -22
  603. data/test/lib/spec/runner/formatter/specdoc_formatter.rb +0 -23
  604. data/test/lib/spec/runner/heckle_runner.rb +0 -71
  605. data/test/lib/spec/runner/heckle_runner_win.rb +0 -10
  606. data/test/lib/spec/runner/option_parser.rb +0 -224
  607. data/test/lib/spec/runner/reporter.rb +0 -105
  608. data/test/lib/spec/runner/spec_matcher.rb +0 -25
  609. data/test/lib/spec/runner/spec_parser.rb +0 -41
  610. data/test/lib/spec/runner/spec_should_raise_handler.rb +0 -74
  611. data/test/lib/spec/runner/specification.rb +0 -114
  612. data/test/lib/spec/translator.rb +0 -87
  613. data/test/lib/spec/version.rb +0 -30
  614. data/test/network/handler/facts.rb +0 -112
  615. data/test/other/pgraph.rb +0 -290
  616. data/test/other/relationship.rb +0 -74
  617. data/test/puppet/modules.rb +0 -59
  618. data/test/rails/collection.rb +0 -247
  619. data/test/rails/interpreter.rb +0 -91
  620. data/test/ral/providers/mount/parsed.rb +0 -251
  621. data/test/ral/providers/service.rb +0 -235
  622. data/test/ral/types/component.rb +0 -113
  623. data/test/ral/types/interface.rb +0 -40
  624. data/test/ral/types/mount.rb +0 -362
  625. data/test/ral/types/package.rb +0 -154
  626. data/test/ral/types/schedule.rb +0 -357
  627. data/test/tagging/tagging.rb +0 -170
  628. data/test/util/fact_store.rb +0 -67
  629. data/test/util/graph.rb +0 -108
@@ -1,45 +0,0 @@
1
- #!/usr/bin/ruby -w
2
-
3
- #--------------------
4
- # Convert a passwd-format file to Puppet users
5
- #
6
-
7
- require 'getoptlong'
8
-
9
- result = GetoptLong.new(
10
- [ "--help", "-h", GetoptLong::NO_ARGUMENT ]
11
- )
12
-
13
- result.each { |opt,arg|
14
- case opt
15
- when "--help"
16
- puts "There is no help yet"
17
- exit
18
- else
19
- raise "Invalid option '#{opt}'"
20
- end
21
- }
22
-
23
- fields = %w{uid gid comment home shell}
24
-
25
- puts "user {"
26
- ARGV.each do |file|
27
- File.open(file) do |of|
28
- of.sort.each do |line|
29
- next if line =~ /^\s*#/
30
- next if line =~ /^\s*$/
31
-
32
- ary = line.chomp.split(":")
33
- puts " " + ary.shift + ":"
34
- ary.shift # get rid of that password field
35
-
36
- puts fields.zip(ary).collect { |field, val|
37
- " %s => \"%s\"" % [field, val]
38
- }.join(",\n") + ";"
39
-
40
- end
41
- end
42
- end
43
- puts "}"
44
-
45
- # $Id: passwd2puppet 943 2006-02-24 22:49:57Z luke $
@@ -1,42 +0,0 @@
1
- Puppet::Util::FactStore.newstore(:yaml) do
2
- desc "Store client facts as flat files, serialized using YAML."
3
-
4
- # Get a client's facts.
5
- def get(node)
6
- file = path(node)
7
-
8
- return nil unless FileTest.exists?(file)
9
-
10
- begin
11
- facts = YAML::load(File.read(file))
12
- rescue => detail
13
- Puppet.err "Could not load facts for %s: %s" % [node, detail]
14
- end
15
- facts
16
- end
17
-
18
- def initialize
19
- Puppet.config.use(:yamlfacts)
20
- end
21
-
22
- # Store the facts to disk.
23
- def set(node, facts)
24
- File.open(path(node), "w", 0600) do |f|
25
- begin
26
- f.print YAML::dump(facts)
27
- rescue => detail
28
- Puppet.err "Could not write facts for %s: %s" % [node, detail]
29
- end
30
- end
31
- nil
32
- end
33
-
34
- private
35
-
36
- # Return the path to a given node's file.
37
- def path(node)
38
- File.join(Puppet[:yamlfactdir], node + ".yaml")
39
- end
40
- end
41
-
42
- # $Id: yaml.rb 2457 2007-05-03 05:24:13Z luke $
@@ -1,70 +0,0 @@
1
- require 'yaml'
2
- require 'puppet/util/fact_store'
3
-
4
- class Puppet::Network::Handler
5
- # Receive logs from remote hosts.
6
- class Facts < Handler
7
- desc "An interface for storing and retrieving client facts. Currently only
8
- used internally by Puppet."
9
-
10
- @interface = XMLRPC::Service::Interface.new("facts") { |iface|
11
- iface.add_method("void set(string, string)")
12
- iface.add_method("string get(string)")
13
- iface.add_method("integer store_date(string)")
14
- }
15
-
16
- def initialize(hash = {})
17
- super
18
-
19
- backend = Puppet[:factstore]
20
-
21
- unless klass = Puppet::Util::FactStore.store(backend)
22
- raise Puppet::Error, "Could not find fact store %s" % backend
23
- end
24
-
25
- @backend = klass.new
26
- end
27
-
28
- # Get the facts from our back end.
29
- def get(node)
30
- if facts = @backend.get(node)
31
- return strip_internal(facts)
32
- else
33
- return nil
34
- end
35
- end
36
-
37
- # Set the facts in the backend.
38
- def set(node, facts)
39
- @backend.set(node, add_internal(facts))
40
- nil
41
- end
42
-
43
- # Retrieve a client's storage date.
44
- def store_date(node)
45
- if facts = get(node)
46
- facts[:_puppet_timestamp].to_i
47
- else
48
- nil
49
- end
50
- end
51
-
52
- private
53
-
54
- # Add internal data to the facts for storage.
55
- def add_internal(facts)
56
- facts = facts.dup
57
- facts[:_puppet_timestamp] = Time.now
58
- facts
59
- end
60
-
61
- # Strip out that internal data.
62
- def strip_internal(facts)
63
- facts = facts.dup
64
- facts.find_all { |name, value| name.to_s =~ /^_puppet_/ }.each { |name, value| facts.delete(name) }
65
- facts
66
- end
67
- end
68
- end
69
-
70
- # $Id: facts.rb 2479 2007-05-07 22:29:44Z luke $
@@ -1,222 +0,0 @@
1
- require 'puppet/parser/ast/branch'
2
-
3
- # Any normal puppet object declaration. Can result in a class or a
4
- # component, in addition to builtin types.
5
- class Puppet::Parser::AST
6
- class ResourceDef < AST::Branch
7
- attr_accessor :title, :type, :exported, :virtual
8
- attr_reader :params
9
-
10
- # probably not used at all
11
- def []=(index,obj)
12
- @params[index] = obj
13
- end
14
-
15
- # probably not used at all
16
- def [](index)
17
- return @params[index]
18
- end
19
-
20
- # Iterate across all of our children.
21
- def each
22
- [@type,@title,@params].flatten.each { |param|
23
- #Puppet.debug("yielding param %s" % param)
24
- yield param
25
- }
26
- end
27
-
28
- # Does not actually return an object; instead sets an object
29
- # in the current scope.
30
- def evaluate(hash)
31
- scope = hash[:scope]
32
- @scope = scope
33
- hash = {}
34
-
35
- # Get our type and name.
36
- objtype = @type
37
-
38
- # Disable definition inheritance, for now. 8/27/06, luke
39
- #if objtype == "super"
40
- # objtype = supertype()
41
- # @subtype = true
42
- #else
43
- @subtype = false
44
- #end
45
-
46
- # Evaluate all of the specified params.
47
- paramobjects = @params.collect { |param|
48
- param.safeevaluate(:scope => scope)
49
- }
50
-
51
- # Now collect info from our parent.
52
- parentname = nil
53
- if @subtype
54
- parentname = supersetup(hash)
55
- end
56
-
57
- objtitles = nil
58
- # Determine our name if we have one.
59
- if self.title
60
- objtitles = @title.safeevaluate(:scope => scope)
61
- # it's easier to always use an array, even for only one name
62
- unless objtitles.is_a?(Array)
63
- objtitles = [objtitles]
64
- end
65
- else
66
- if parentname
67
- objtitles = [parentname]
68
- else
69
- # See if they specified the name as a parameter instead of
70
- # as a normal name (i.e., before the colon).
71
- unless object # we're a builtin
72
- if objclass = Puppet::Type.type(objtype)
73
- namevar = objclass.namevar
74
-
75
- tmp = hash["name"] || hash[namevar.to_s]
76
-
77
- if tmp
78
- objtitles = [tmp]
79
- end
80
- else
81
- # This isn't grammatically legal.
82
- raise Puppet::ParseError, "Got a resource with no title"
83
- end
84
- end
85
- end
86
- end
87
-
88
- # This is where our implicit iteration takes place; if someone
89
- # passed an array as the name, then we act just like the called us
90
- # many times.
91
- objtitles.collect { |objtitle|
92
- exceptwrap :type => Puppet::ParseError do
93
- exp = self.exported || scope.exported
94
- # We want virtual to be true if exported is true. We can't
95
- # just set :virtual => self.virtual in the initialization,
96
- # because sometimes the :virtual attribute is set *after*
97
- # :exported, in which case it clobbers :exported if :exported
98
- # is true. Argh, this was a very tough one to track down.
99
- virt = self.virtual || exported
100
- obj = Puppet::Parser::Resource.new(
101
- :type => objtype,
102
- :title => objtitle,
103
- :params => paramobjects,
104
- :file => @file,
105
- :line => @line,
106
- :exported => exp,
107
- :virtual => virt,
108
- :source => scope.source,
109
- :scope => scope
110
- )
111
-
112
- # And then store the resource in the scope.
113
- # XXX At some point, we need to switch all of this to return
114
- # objects instead of storing them like this.
115
- scope.setresource(obj)
116
- obj
117
- end
118
- }.reject { |obj| obj.nil? }
119
- end
120
-
121
- # Create our ResourceDef. Handles type checking for us.
122
- def initialize(hash)
123
- @checked = false
124
- super
125
-
126
- #self.typecheck(@type.value)
127
- end
128
-
129
- # Set the parameters for our object.
130
- def params=(params)
131
- if params.is_a?(AST::ASTArray)
132
- @params = params
133
- else
134
- @params = AST::ASTArray.new(
135
- :line => params.line,
136
- :file => params.file,
137
- :children => [params]
138
- )
139
- end
140
- end
141
-
142
- def supercomp
143
- unless defined? @supercomp
144
- if @scope and comp = @scope.inside
145
- @supercomp = comp
146
- else
147
- error = Puppet::ParseError.new(
148
- "'super' is only valid within definitions"
149
- )
150
- error.line = self.line
151
- error.file = self.file
152
- raise error
153
- end
154
- end
155
- @supercomp
156
- end
157
-
158
- # Take all of the arguments of our parent and add them into our own,
159
- # without overriding anything.
160
- def supersetup(hash)
161
- comp = supercomp()
162
-
163
- # Now check each of the arguments from the parent.
164
- comp.arguments.each do |name, value|
165
- unless hash.has_key? name
166
- hash[name] = value
167
- end
168
- end
169
-
170
- # Return the parent name, so it can be used if appropriate.
171
- return comp.name
172
- end
173
-
174
- # Retrieve our supertype.
175
- def supertype
176
- unless defined? @supertype
177
- if parent = supercomp.parentclass
178
- @supertype = parent
179
- else
180
- error = Puppet::ParseError.new(
181
- "%s does not have a parent class" % comp.type
182
- )
183
- error.line = self.line
184
- error.file = self.file
185
- raise error
186
- end
187
- end
188
- @supertype
189
- end
190
-
191
- # Print this object out.
192
- def tree(indent = 0)
193
- return [
194
- @type.tree(indent + 1),
195
- @title.tree(indent + 1),
196
- ((@@indline * indent) + self.typewrap(self.pin)),
197
- @params.collect { |param|
198
- begin
199
- param.tree(indent + 1)
200
- rescue NoMethodError => detail
201
- Puppet.err @params.inspect
202
- error = Puppet::DevError.new(
203
- "failed to tree a %s" % self.class
204
- )
205
- error.set_backtrace detail.backtrace
206
- raise error
207
- end
208
- }.join("\n")
209
- ].join("\n")
210
- end
211
-
212
- def to_s
213
- return "%s => { %s }" % [@title,
214
- @params.collect { |param|
215
- param.to_s
216
- }.join("\n")
217
- ]
218
- end
219
- end
220
- end
221
-
222
- # $Id: resourcedef.rb 1922 2006-12-14 22:50:28Z luke $
@@ -1,58 +0,0 @@
1
- require 'puppet/parser/ast/branch'
2
-
3
- class Puppet::Parser::AST
4
- # A reference to an object. Only valid as an rvalue.
5
- class ResourceRef < AST::Branch
6
- attr_accessor :title, :type
7
-
8
- def each
9
- [@type,@title].flatten.each { |param|
10
- #Puppet.debug("yielding param %s" % param)
11
- yield param
12
- }
13
- end
14
-
15
- # Evaluate our object, but just return a simple array of the type
16
- # and name.
17
- def evaluate(hash)
18
- scope = hash[:scope]
19
-
20
- # We want a lower-case type.
21
- objtype = @type.downcase
22
- title = @title.safeevaluate(:scope => scope)
23
-
24
- if scope.builtintype?(objtype)
25
- # nothing
26
- elsif dtype = scope.finddefine(objtype)
27
- objtype = dtype.classname
28
- elsif objtype == "class"
29
- # Look up the full path to the class
30
- if classobj = scope.findclass(title)
31
- title = classobj.classname
32
- else
33
- raise Puppet::ParseError, "Could not find class %s" % title
34
- end
35
- else
36
- raise Puppet::ParseError, "Could not find resource type %s" % objtype
37
- end
38
-
39
- return Puppet::Parser::Resource::Reference.new(
40
- :type => objtype, :title => title
41
- )
42
- end
43
-
44
- def tree(indent = 0)
45
- return [
46
- @type.tree(indent + 1),
47
- @title.tree(indent + 1),
48
- ((@@indline * indent) + self.typewrap(self.pin))
49
- ].join("\n")
50
- end
51
-
52
- def to_s
53
- return "%s[%s]" % [@type,@title]
54
- end
55
- end
56
- end
57
-
58
- # $Id: resourceref.rb 2715 2007-07-19 19:23:56Z luke $
@@ -1,142 +0,0 @@
1
- #!/usr/bin/env ruby
2
- #
3
- # Created by Luke A. Kanies on 2006-02-20.
4
- # Copyright (c) 2006. All rights reserved.
5
-
6
- $:.unshift("../../lib") if __FILE__ =~ /\.rb$/
7
-
8
- require 'puppettest'
9
- require 'mocha'
10
- require 'puppettest/parsertesting'
11
- require 'puppettest/resourcetesting'
12
-
13
- class TestASTComponent < Test::Unit::TestCase
14
- include PuppetTest
15
- include PuppetTest::ParserTesting
16
- include PuppetTest::ResourceTesting
17
- AST = Puppet::Parser::AST
18
-
19
- def test_component
20
- interp, scope, source = mkclassframing
21
-
22
- # Create a new definition
23
- klass = interp.newdefine "yayness",
24
- :arguments => [["owner", stringobj("nobody")], %w{mode}],
25
- :code => AST::ASTArray.new(
26
- :children => [resourcedef("file", "/tmp/$name",
27
- "owner" => varref("owner"), "mode" => varref("mode"))]
28
- )
29
-
30
- # Test validattr? a couple different ways
31
- [:owner, "owner", :schedule, "schedule"].each do |var|
32
- assert(klass.validattr?(var), "%s was not considered valid" % var.inspect)
33
- end
34
-
35
- [:random, "random"].each do |var|
36
- assert(! klass.validattr?(var), "%s was considered valid" % var.inspect)
37
- end
38
- # Now call it a couple of times
39
- # First try it without a required param
40
- assert_raise(Puppet::ParseError) do
41
- klass.evaluate(:scope => scope,
42
- :name => "bad",
43
- :arguments => {"owner" => "nobody"}
44
- )
45
- end
46
-
47
- # And make sure it didn't create the file
48
- assert_nil(scope.findresource("File[/tmp/bad]"),
49
- "Made file with invalid params")
50
-
51
- assert_nothing_raised do
52
- klass.evaluate(:scope => scope,
53
- :title => "first",
54
- :arguments => {"mode" => "755"}
55
- )
56
- end
57
-
58
- firstobj = scope.findresource("File[/tmp/first]")
59
- assert(firstobj, "Did not create /tmp/first obj")
60
-
61
- assert_equal("file", firstobj.type)
62
- assert_equal("/tmp/first", firstobj.title)
63
- assert_equal("nobody", firstobj[:owner])
64
- assert_equal("755", firstobj[:mode])
65
-
66
- # Make sure we can't evaluate it with the same args
67
- assert_raise(Puppet::ParseError) do
68
- klass.evaluate(:scope => scope,
69
- :title => "first",
70
- :arguments => {"mode" => "755"}
71
- )
72
- end
73
-
74
- # Now create another with different args
75
- assert_nothing_raised do
76
- klass.evaluate(:scope => scope,
77
- :title => "second",
78
- :arguments => {"mode" => "755", "owner" => "daemon"}
79
- )
80
- end
81
-
82
- secondobj = scope.findresource("File[/tmp/second]")
83
- assert(secondobj, "Did not create /tmp/second obj")
84
-
85
- assert_equal("file", secondobj.type)
86
- assert_equal("/tmp/second", secondobj.title)
87
- assert_equal("daemon", secondobj[:owner])
88
- assert_equal("755", secondobj[:mode])
89
- end
90
-
91
- # #539 - definitions should support both names and titles
92
- def test_names_and_titles
93
- interp, scope, source = mkclassframing
94
-
95
- [
96
- {:name => "one", :title => "two"},
97
- {:title => "mytitle"},
98
- ].each_with_index do |hash, i|
99
-
100
- # Create a definition that uses both name and title
101
- klass = interp.newdefine "yayness%s" % i
102
-
103
- subscope = klass.subscope(scope, "yayness%s" % i)
104
-
105
- klass.expects(:subscope).returns(subscope)
106
-
107
- args = {:title => hash[:title]}
108
- if hash[:name]
109
- args[:arguments] = {:name => hash[:name]}
110
- end
111
- args[:scope] = scope
112
- assert_nothing_raised("Could not evaluate definition with %s" % hash.inspect) do
113
- klass.evaluate(args)
114
- end
115
-
116
- name = hash[:name] || hash[:title]
117
- title = hash[:title]
118
- args[:name] ||= name
119
-
120
- assert_equal(name, subscope.lookupvar("name"),
121
- "Name did not get set correctly")
122
- assert_equal(title, subscope.lookupvar("title"),
123
- "title did not get set correctly")
124
-
125
- [:name, :title].each do |param|
126
- val = args[param]
127
- assert(subscope.tags.include?(val),
128
- "Scope was not tagged with %s" % val)
129
- end
130
- end
131
- end
132
-
133
- # Testing the root cause of #615. We should be using the fqname for the type, instead
134
- # of just the short name.
135
- def test_fully_qualified_types
136
- interp = mkinterp
137
- klass = interp.newclass("one::two")
138
-
139
- assert_equal("one::two", klass.classname, "Class did not get fully qualified class name")
140
- end
141
- end
142
- # $Id: component.rb 2458 2007-05-03 20:45:25Z luke $