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,9 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/
3
+ require File.dirname(__FILE__) + '/../lib/puppettest'
4
4
 
5
5
  require 'puppet'
6
- require 'puppet/parser/interpreter'
7
6
  require 'puppet/parser/parser'
8
7
  require 'puppet/network/client'
9
8
  require 'puppettest'
@@ -50,10 +49,9 @@ class TestLangFunctions < Test::Unit::TestCase
50
49
 
51
50
  def test_taggedfunction
52
51
  scope = mkscope
52
+ scope.resource.tag("yayness")
53
53
 
54
- tag = "yayness"
55
- scope.tag(tag)
56
-
54
+ # Make sure the ast stuff does what it's supposed to
57
55
  {"yayness" => true, "booness" => false}.each do |tag, retval|
58
56
  func = taggedobj(tag, :rvalue)
59
57
 
@@ -64,6 +62,12 @@ class TestLangFunctions < Test::Unit::TestCase
64
62
 
65
63
  assert_equal(retval, val, "'tagged' returned %s for %s" % [val, tag])
66
64
  end
65
+
66
+ # Now make sure we correctly get tags.
67
+ scope.resource.tag("resourcetag")
68
+ assert(scope.function_tagged("resourcetag"), "tagged function did not catch resource tags")
69
+ scope.compile.catalog.tag("configtag")
70
+ assert(scope.function_tagged("configtag"), "tagged function did not catch catalog tags")
67
71
  end
68
72
 
69
73
  def test_failfunction
@@ -198,30 +202,30 @@ class TestLangFunctions < Test::Unit::TestCase
198
202
  f.puts "original text"
199
203
  end
200
204
 
201
- manifest = tempfile()
202
205
  file = tempfile()
203
- File.open(manifest, "w") do |f|
204
- f.puts %{file { "#{file}": content => template("#{template}") }}
205
- end
206
206
 
207
- interpreter = Puppet::Parser::Interpreter.new(
208
- :Manifest => manifest,
209
- :UseNodes => false
210
- )
207
+ Puppet[:code] = %{file { "#{file}": content => template("#{template}") }}
208
+ Puppet[:environments] = "yay"
209
+ interp = Puppet::Parser::Interpreter.new
210
+ node = mknode
211
+ node.stubs(:environment).returns("yay")
211
212
 
212
- parsedate = interpreter.parsedate()
213
+ Puppet[:environment] = "yay"
213
214
 
214
- objects = nil
215
+ catalog = nil
215
216
  assert_nothing_raised {
216
- objects = interpreter.run("myhost", {})
217
+ catalog = interp.compile(node)
217
218
  }
218
219
 
219
- fileobj = objects[0]
220
+ version = catalog.version
221
+
222
+ fileobj = catalog.vertices.find { |r| r.title == file }
223
+ assert(fileobj, "File was not in catalog")
220
224
 
221
225
  assert_equal("original text\n", fileobj["content"],
222
226
  "Template did not work")
223
227
 
224
- Puppet[:filetimeout] = 0
228
+ Puppet[:filetimeout] = -5
225
229
  # Have to sleep because one second is the fs's time granularity.
226
230
  sleep(1)
227
231
 
@@ -230,12 +234,9 @@ class TestLangFunctions < Test::Unit::TestCase
230
234
  f.puts "new text"
231
235
  end
232
236
 
233
- assert_nothing_raised {
234
- objects = interpreter.run("myhost", {})
235
- }
236
- newdate = interpreter.parsedate()
237
+ newversion = interp.compile(node).version
237
238
 
238
- assert(parsedate != newdate, "Parse date did not change")
239
+ assert(version != newversion, "Parse date did not change")
239
240
  end
240
241
 
241
242
  def test_template_defined_vars
@@ -306,35 +307,36 @@ class TestLangFunctions < Test::Unit::TestCase
306
307
  end
307
308
 
308
309
  def test_realize
309
- @interp, @scope, @source = mkclassframing
310
+ scope = mkscope
311
+ parser = scope.compile.parser
310
312
 
311
313
  # Make a definition
312
- @interp.newdefine("mytype")
314
+ parser.newdefine("mytype")
313
315
 
314
316
  [%w{file /tmp/virtual}, %w{mytype yay}].each do |type, title|
315
317
  # Make a virtual resource
316
318
  virtual = mkresource(:type => type, :title => title,
317
- :virtual => true, :params => {})
319
+ :virtual => true, :params => {}, :scope => scope)
318
320
 
319
- @scope.setresource virtual
321
+ scope.compile.store_resource(scope, virtual)
320
322
 
321
323
  ref = Puppet::Parser::Resource::Reference.new(
322
324
  :type => type, :title => title,
323
- :scope => @scope
325
+ :scope => scope
324
326
  )
325
327
  # Now call the realize function
326
328
  assert_nothing_raised do
327
- @scope.function_realize(ref)
329
+ scope.function_realize(ref)
328
330
  end
329
331
 
330
332
  # Make sure it created a collection
331
- assert_equal(1, @scope.collections.length,
333
+ assert_equal(1, scope.compile.collections.length,
332
334
  "Did not set collection")
333
335
 
334
336
  assert_nothing_raised do
335
- @scope.collections.each do |coll| coll.evaluate end
337
+ scope.compile.collections.each do |coll| coll.evaluate end
336
338
  end
337
- @scope.collections.clear
339
+ scope.compile.collections.clear
338
340
 
339
341
  # Now make sure the virtual resource is no longer virtual
340
342
  assert(! virtual.virtual?, "Did not make virtual resource real")
@@ -343,29 +345,29 @@ class TestLangFunctions < Test::Unit::TestCase
343
345
  # Make sure we puke on any resource that doesn't exist
344
346
  none = Puppet::Parser::Resource::Reference.new(
345
347
  :type => "file", :title => "/tmp/nosuchfile",
346
- :scope => @scope
348
+ :scope => scope
347
349
  )
348
350
 
349
351
  # The function works
350
352
  assert_nothing_raised do
351
- @scope.function_realize(none.to_s)
353
+ scope.function_realize(none.to_s)
352
354
  end
353
355
 
354
356
  # Make sure it created a collection
355
- assert_equal(1, @scope.collections.length,
357
+ assert_equal(1, scope.compile.collections.length,
356
358
  "Did not set collection")
357
359
 
358
360
  # And the collection has our resource in it
359
- assert_equal([none.to_s], @scope.collections[0].resources,
361
+ assert_equal([none.to_s], scope.compile.collections[0].resources,
360
362
  "Did not set resources in collection")
361
363
  end
362
364
 
363
365
  def test_defined
364
- interp = mkinterp
365
- scope = mkscope(:interp => interp)
366
+ scope = mkscope
367
+ parser = scope.compile.parser
366
368
 
367
- interp.newclass("yayness")
368
- interp.newdefine("rahness")
369
+ parser.newclass("yayness")
370
+ parser.newdefine("rahness")
369
371
 
370
372
  assert_nothing_raised do
371
373
  assert(scope.function_defined("yayness"), "yayness class was not considered defined")
@@ -383,9 +385,9 @@ class TestLangFunctions < Test::Unit::TestCase
383
385
  "Multiple falses were somehow true")
384
386
 
385
387
  # Now make sure we can test resources
386
- scope.setresource mkresource(:type => "file", :title => "/tmp/rahness",
388
+ scope.compile.store_resource(scope, mkresource(:type => "file", :title => "/tmp/rahness",
387
389
  :scope => scope, :source => scope.source,
388
- :params => {:owner => "root"})
390
+ :params => {:owner => "root"}))
389
391
 
390
392
  yep = Puppet::Parser::Resource::Reference.new(:type => "file", :title => "/tmp/rahness")
391
393
  nope = Puppet::Parser::Resource::Reference.new(:type => "file", :title => "/tmp/fooness")
@@ -395,11 +397,11 @@ class TestLangFunctions < Test::Unit::TestCase
395
397
  end
396
398
 
397
399
  def test_search
398
- interp = mkinterp
399
- scope = mkscope(:interp => interp)
400
+ parser = mkparser
401
+ scope = mkscope(:parser => parser)
400
402
 
401
- fun = interp.newdefine("yay::ness")
402
- foo = interp.newdefine("foo::bar")
403
+ fun = parser.newdefine("yay::ness")
404
+ foo = parser.newdefine("foo::bar")
403
405
 
404
406
  search = Puppet::Parser::Functions.function(:search)
405
407
  assert_nothing_raised do
@@ -417,45 +419,25 @@ class TestLangFunctions < Test::Unit::TestCase
417
419
  end
418
420
 
419
421
  def test_include
420
- interp = mkinterp
421
- scope = mkscope(:interp => interp)
422
+ scope = mkscope
423
+ parser = scope.compile.parser
422
424
 
423
425
  assert_raise(Puppet::ParseError, "did not throw error on missing class") do
424
426
  scope.function_include("nosuchclass")
425
427
  end
426
428
 
427
- interp.newclass("myclass")
429
+ parser.newclass("myclass")
428
430
 
429
- assert_nothing_raised do
430
- scope.function_include "myclass"
431
- end
432
-
433
- assert(scope.classlist.include?("myclass"),
434
- "class was not evaluated")
435
-
436
- # Now try multiple classes at once
437
- classes = %w{one two three}.each { |c| interp.newclass(c) }
431
+ scope.compile.expects(:evaluate_classes).with(%w{myclass otherclass}, scope, false).returns(%w{myclass otherclass})
438
432
 
439
433
  assert_nothing_raised do
440
- scope.function_include classes
441
- end
442
-
443
- classes.each do |c|
444
- assert(scope.classlist.include?(c),
445
- "class %s was not evaluated" % c)
446
- end
447
-
448
- # Now try a scoped class
449
- interp.newclass("os::redhat")
450
-
451
- assert_nothing_raised("Could not include qualified class name") do
452
- scope.function_include("os::redhat")
434
+ scope.function_include(["myclass", "otherclass"])
453
435
  end
454
436
  end
455
437
 
456
438
  def test_file
457
- interp = mkinterp
458
- scope = mkscope(:interp => interp)
439
+ parser = mkparser
440
+ scope = mkscope(:parser => parser)
459
441
 
460
442
  file1 = tempfile
461
443
  file2 = tempfile
@@ -497,8 +479,8 @@ class TestLangFunctions < Test::Unit::TestCase
497
479
  assert_equal("yay\n", %x{#{command}}, "command did not work")
498
480
  assert_equal("yay-foo\n", %x{#{command} foo}, "command did not work")
499
481
 
500
- interp = mkinterp
501
- scope = mkscope(:interp => interp)
482
+ scope = mkscope
483
+ parser = scope.compile.parser
502
484
 
503
485
  val = nil
504
486
  assert_nothing_raised("Could not call generator with no args") do
@@ -529,4 +511,3 @@ class TestLangFunctions < Test::Unit::TestCase
529
511
  end
530
512
  end
531
513
 
532
- # $Id: functions.rb 2714 2007-07-19 18:12:20Z luke $
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/
3
+ require File.dirname(__FILE__) + '/../lib/puppettest'
4
4
 
5
5
  require 'puppet'
6
6
  require 'puppet/parser/lexer'
@@ -111,7 +111,7 @@ class TestLexer < Test::Unit::TestCase
111
111
  types.each { |t|
112
112
  @lexer.string = t
113
113
  assert_equal(
114
- [[:TYPE,t],[false,false]],
114
+ [[:CLASSREF,t],[false,false]],
115
115
  @lexer.fullscan
116
116
  )
117
117
  }
@@ -254,6 +254,23 @@ class TestLexer < Test::Unit::TestCase
254
254
  @lexer.scan {}
255
255
  assert_equal("]", @lexer.expected, "expected value is wrong after pop")
256
256
  end
257
+
258
+ # #774
259
+ def test_classref_token
260
+ string = ["Foo", "::Foo","Foo::Bar","::Foo::Bar"]
261
+
262
+ string.each do |foo|
263
+ assert_nothing_raised {
264
+ @lexer.string = foo
265
+ }
266
+
267
+ ret = nil
268
+ assert_nothing_raised {
269
+ ret = @lexer.fullscan
270
+ }
271
+
272
+ assert_equal([:CLASSREF, foo],ret[0], "Did not correctly tokenize '%s'" % foo)
273
+ end
274
+ end
257
275
  end
258
276
 
259
- # $Id: lexer.rb 2531 2007-05-25 00:31:28Z luke $
@@ -1,14 +1,17 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/
3
+ require File.dirname(__FILE__) + '/../lib/puppettest'
4
4
 
5
5
  require 'mocha'
6
6
  require 'puppet'
7
7
  require 'puppet/parser/parser'
8
8
  require 'puppettest'
9
+ require 'puppettest/support/utils'
9
10
 
10
11
  class TestParser < Test::Unit::TestCase
12
+ include PuppetTest
11
13
  include PuppetTest::ParserTesting
14
+ include PuppetTest::Support::Utils
12
15
  def setup
13
16
  super
14
17
  Puppet[:parseonly] = true
@@ -38,13 +41,13 @@ class TestParser < Test::Unit::TestCase
38
41
  def test_failers
39
42
  failers { |file|
40
43
  parser = mkparser
41
- interp = mkinterp
42
44
  Puppet.debug("parsing failer %s" % file) if __FILE__ == $0
43
- assert_raise(Puppet::ParseError) {
45
+ assert_raise(Puppet::ParseError, "Did not fail while parsing %s" % file) {
44
46
  parser.file = file
45
47
  ast = parser.parse
46
- scope = mkscope :interp => interp
47
- ast.classes[""].evaluate :scope => scope
48
+ config = mkcompile(parser)
49
+ config.compile
50
+ #ast.classes[""].evaluate :scope => config.topscope
48
51
  }
49
52
  Puppet::Type.allclear
50
53
  }
@@ -371,7 +374,7 @@ file { "/tmp/yayness":
371
374
  ret = parser.parse(str1).classes[""].code[0]
372
375
  }
373
376
  assert_instance_of(Puppet::Parser::AST::IfStatement, ret)
374
- parser.clear
377
+ parser = mkparser
375
378
  str2 = %{if true { #{exec.call("true")} } else { #{exec.call("false")} }}
376
379
  assert_nothing_raised {
377
380
  ret = parser.parse(str2).classes[""].code[0]
@@ -475,7 +478,7 @@ file { "/tmp/yayness":
475
478
 
476
479
  assert_instance_of(AST::ASTArray, ret.classes[""].code)
477
480
  resdef = ret.classes[""].code[0]
478
- assert_instance_of(AST::ResourceDef, resdef)
481
+ assert_instance_of(AST::Resource, resdef)
479
482
  assert_equal("/tmp/testing", resdef.title.value)
480
483
  # We always get an astarray back, so...
481
484
  check.call(resdef, "simple resource")
@@ -486,26 +489,9 @@ file { "/tmp/yayness":
486
489
  end
487
490
 
488
491
  ret.classes[""].each do |res|
489
- assert_instance_of(AST::ResourceDef, res)
492
+ assert_instance_of(AST::Resource, res)
490
493
  check.call(res, "multiresource")
491
494
  end
492
-
493
- # Now evaluate these
494
- scope = mkscope
495
-
496
- klass = parser.newclass ""
497
- scope.source = klass
498
-
499
- assert_nothing_raised do
500
- ret.classes[""].evaluate :scope => scope
501
- end
502
-
503
- # Make sure we can find both of them
504
- %w{/tmp/1 /tmp/2}.each do |title|
505
- res = scope.findresource("File[#{title}]")
506
- assert(res, "Could not find %s" % title)
507
- check.call(res, "found multiresource")
508
- end
509
495
  end
510
496
  end
511
497
 
@@ -618,11 +604,12 @@ file { "/tmp/yayness":
618
604
  f.puts "file { '#{file}': ensure => present }"
619
605
  end
620
606
 
621
- interp = mkinterp :Manifest => top, :UseNodes => false
607
+ Puppet[:manifest] = top
608
+ interp = Puppet::Parser::Interpreter.new
622
609
 
623
610
  code = nil
624
611
  assert_nothing_raised do
625
- code = interp.run("hostname.domain.com", {}).flatten
612
+ code = interp.compile(mknode).extract.flatten
626
613
  end
627
614
  assert(code.length == 1, "Did not get the file")
628
615
  assert_instance_of(Puppet::TransObject, code[0])
@@ -653,6 +640,14 @@ file { "/tmp/yayness":
653
640
  }
654
641
  end
655
642
 
643
+ # #774
644
+ def test_fully_qualified_collection_statement
645
+ parser = mkparser
646
+ assert_nothing_raised("Could not parse fully qualified collection statement") {
647
+ parser.parse %{Foo::Bar <||>}
648
+ }
649
+ end
650
+
656
651
  def test_module_import
657
652
  basedir = File.join(tmpdir(), "module-import")
658
653
  @@tmpfiles << basedir
@@ -672,7 +667,7 @@ file { "/tmp/yayness":
672
667
  targets << target
673
668
  txt = %[ file { '#{target}': content => "#{fname}" } ]
674
669
  if fname == "init.pp"
675
- txt = %[import 'mani1' \nimport '#{modname}/mani2'\nimport '#{modname}/sub/*.pp' ] + txt
670
+ txt = %[import 'mani1' \nimport '#{modname}/mani2'\nimport '#{modname}/sub/*.pp'\n ] + txt
676
671
  end
677
672
  File::open(File::join(manipath, fname), "w") do |f|
678
673
  f.puts txt
@@ -685,6 +680,7 @@ file { "/tmp/yayness":
685
680
 
686
681
  manifest = File.join(modpath, "manifest.pp")
687
682
  manifest_texts.each do |txt|
683
+ Puppet::Type.allclear
688
684
  File.open(manifest, "w") { |f| f.puts txt }
689
685
 
690
686
  assert_nothing_raised {
@@ -785,7 +781,7 @@ file { "/tmp/yayness":
785
781
 
786
782
  assert_instance_of(AST::HostClass, result.classes["yay"], "Did not create 'yay' class")
787
783
  assert_instance_of(AST::HostClass, result.classes[""], "Did not create main class")
788
- assert_instance_of(AST::Component, result.definitions["bar"], "Did not create 'bar' definition")
784
+ assert_instance_of(AST::Definition, result.definitions["bar"], "Did not create 'bar' definition")
789
785
  assert_instance_of(AST::Node, result.nodes["foo"], "Did not create 'foo' node")
790
786
  end
791
787
 
@@ -871,7 +867,8 @@ file { "/tmp/yayness":
871
867
  end
872
868
 
873
869
  def test_newclass
874
- parser = mkparser
870
+ scope = mkscope
871
+ parser = scope.compile.parser
875
872
 
876
873
  mkcode = proc do |ary|
877
874
  classes = ary.collect do |string|
@@ -880,7 +877,6 @@ file { "/tmp/yayness":
880
877
  AST::ASTArray.new(:children => classes)
881
878
  end
882
879
 
883
- scope = Puppet::Parser::Scope.new(:interp => mkinterp)
884
880
 
885
881
  # First make sure that code is being appended
886
882
  code = mkcode.call(%w{original code})
@@ -1118,7 +1114,7 @@ file { "/tmp/yayness":
1118
1114
  mk_module(name, :define => true, :init => [name])
1119
1115
 
1120
1116
  klass = parser.finddefine("", name)
1121
- assert_instance_of(AST::Component, klass, "Did not autoload class from module init file")
1117
+ assert_instance_of(AST::Definition, klass, "Did not autoload class from module init file")
1122
1118
  assert_equal(name, klass.classname, "Incorrect class was returned")
1123
1119
 
1124
1120
  # Now try it with namespace classes where both classes are in the init file
@@ -1175,6 +1171,22 @@ file { "/tmp/yayness":
1175
1171
  assert_instance_of(AST::HostClass, klass, "Did not autoload sub class from alone file with no namespace")
1176
1172
  assert_equal("alone::sub", klass.classname, "Incorrect class was returned")
1177
1173
  end
1174
+
1175
+ # Make sure class, node, and define methods are case-insensitive
1176
+ def test_structure_case_insensitivity
1177
+ parser = mkparser
1178
+
1179
+ result = nil
1180
+ assert_nothing_raised do
1181
+ result = parser.newclass "Yayness"
1182
+ end
1183
+ assert_equal(result, parser.findclass("", "yayNess"))
1184
+
1185
+ assert_nothing_raised do
1186
+ result = parser.newdefine "FunTest"
1187
+ end
1188
+ assert_equal(result, parser.finddefine("", "fUntEst"),
1189
+ "%s was not matched" % "fUntEst")
1190
+ end
1178
1191
  end
1179
1192
 
1180
- # $Id: parser.rb 2742 2007-08-03 23:49:53Z luke $