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,14 +1,12 @@
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 'puppettest'
7
7
  require 'mocha'
8
8
  require 'puppettest/support/resources'
9
9
 
10
- # $Id: transactions.rb 2678 2007-07-11 19:30:42Z luke $
11
-
12
10
  class TestTransactions < Test::Unit::TestCase
13
11
  include PuppetTest::FileTesting
14
12
  include PuppetTest::Support::Resources
@@ -133,7 +131,7 @@ class TestTransactions < Test::Unit::TestCase
133
131
  inst = type.create :name => "yay"
134
132
 
135
133
  # Create a transaction
136
- trans = Puppet::Transaction.new(newcomp(inst))
134
+ trans = Puppet::Transaction.new(mk_catalog(inst))
137
135
 
138
136
  # Make sure prefetch works
139
137
  assert_nothing_raised do
@@ -255,7 +253,7 @@ class TestTransactions < Test::Unit::TestCase
255
253
  }
256
254
 
257
255
 
258
- component = newcomp("file",file)
256
+ component = mk_catalog("file",file)
259
257
  require 'etc'
260
258
  groupname = Etc.getgrgid(File.stat(file.name).gid).name
261
259
  assert_nothing_raised() {
@@ -295,12 +293,11 @@ class TestTransactions < Test::Unit::TestCase
295
293
  file[:check] = check
296
294
  file[:group] = @groups[0]
297
295
 
298
- assert_apply(file)
296
+ config = mk_catalog(file)
297
+ config.apply
299
298
 
300
299
  @@tmpfiles << execfile
301
300
 
302
- component = newcomp("both",file,exec)
303
-
304
301
  # 'subscribe' expects an array of arrays
305
302
  exec[:subscribe] = [[file.class.name,file.name]]
306
303
  exec[:refreshonly] = true
@@ -317,7 +314,11 @@ class TestTransactions < Test::Unit::TestCase
317
314
  file[:mode] = "755"
318
315
  }
319
316
 
320
- trans = assert_events([:file_changed, :triggered], component)
317
+ # Make a new catalog so the resource relationships get
318
+ # set up.
319
+ config = mk_catalog(file, exec)
320
+
321
+ trans = assert_events([:file_changed, :triggered], config)
321
322
 
322
323
  assert(FileTest.exists?(execfile), "Execfile does not exist")
323
324
  File.unlink(execfile)
@@ -325,7 +326,7 @@ class TestTransactions < Test::Unit::TestCase
325
326
  file[:group] = @groups[1]
326
327
  }
327
328
 
328
- trans = assert_events([:file_changed, :triggered], component)
329
+ trans = assert_events([:file_changed, :triggered], config)
329
330
  assert(FileTest.exists?(execfile), "Execfile does not exist")
330
331
  end
331
332
 
@@ -343,24 +344,30 @@ class TestTransactions < Test::Unit::TestCase
343
344
  file[:group] = @groups[0]
344
345
  assert_apply(file)
345
346
 
346
- fcomp = newcomp("file",file)
347
- ecomp = newcomp("exec",exec)
347
+ config = Puppet::Node::Catalog.new
348
+ fcomp = Puppet::Type.type(:component).create(:name => "file")
349
+ config.add_resource fcomp
350
+ config.add_resource file
351
+ config.add_edge!(fcomp, file)
348
352
 
349
- component = newcomp("both",fcomp,ecomp)
353
+ ecomp = Puppet::Type.type(:component).create(:name => "exec")
354
+ config.add_resource ecomp
355
+ config.add_resource exec
356
+ config.add_edge!(ecomp, exec)
350
357
 
351
358
  # 'subscribe' expects an array of arrays
352
359
  #component[:require] = [[file.class.name,file.name]]
353
360
  ecomp[:subscribe] = fcomp
354
361
  exec[:refreshonly] = true
355
362
 
356
- trans = assert_events([], component)
363
+ trans = assert_events([], config)
357
364
 
358
365
  assert_nothing_raised() {
359
366
  file[:group] = @groups[1]
360
367
  file[:mode] = "755"
361
368
  }
362
369
 
363
- trans = assert_events([:file_changed, :file_changed, :triggered], component)
370
+ trans = assert_events([:file_changed, :file_changed, :triggered], config)
364
371
  end
365
372
 
366
373
  # Make sure that multiple subscriptions get triggered.
@@ -426,7 +433,8 @@ class TestTransactions < Test::Unit::TestCase
426
433
  Puppet[:ignoreschedules] = false
427
434
  file = Puppet.type(:file).create(
428
435
  :name => tempfile(),
429
- :ensure => "file"
436
+ :ensure => "file",
437
+ :backup => false
430
438
  )
431
439
 
432
440
  fname = tempfile()
@@ -437,11 +445,10 @@ class TestTransactions < Test::Unit::TestCase
437
445
  :subscribe => ["file", file.name]
438
446
  )
439
447
 
440
- comp = newcomp(file,exec)
441
- comp.finalize
448
+ config = mk_catalog(file, exec)
442
449
 
443
450
  # Run it once
444
- assert_apply(comp)
451
+ assert_apply(config)
445
452
  assert(FileTest.exists?(fname), "File did not get created")
446
453
 
447
454
  assert(!exec.scheduled?, "Exec is somehow scheduled")
@@ -451,7 +458,8 @@ class TestTransactions < Test::Unit::TestCase
451
458
 
452
459
  file[:content] = "some content"
453
460
 
454
- assert_events([:file_changed, :triggered], comp)
461
+ assert_events([:file_changed, :triggered], config)
462
+
455
463
  assert(FileTest.exists?(fname), "File did not get recreated")
456
464
 
457
465
  # Now remove it, so it can get created again
@@ -469,7 +477,7 @@ class TestTransactions < Test::Unit::TestCase
469
477
 
470
478
  assert(! file.insync?(file.retrieve), "Uh, file is in sync?")
471
479
 
472
- assert_events([:file_changed, :triggered], comp)
480
+ assert_events([:file_changed, :triggered], config)
473
481
  assert(FileTest.exists?(fname), "File did not get recreated")
474
482
  end
475
483
 
@@ -493,11 +501,9 @@ class TestTransactions < Test::Unit::TestCase
493
501
  :ensure => :file
494
502
  )
495
503
 
496
- comp = newcomp(exec, file1, file2)
504
+ config = mk_catalog(exec, file1, file2)
497
505
 
498
- comp.finalize
499
-
500
- assert_apply(comp)
506
+ assert_apply(config)
501
507
 
502
508
  assert(! FileTest.exists?(file1[:path]),
503
509
  "File got created even tho its dependency failed")
@@ -506,31 +512,27 @@ class TestTransactions < Test::Unit::TestCase
506
512
  end
507
513
  end
508
514
 
509
- def f(n)
510
- Puppet::Type.type(:file)["/tmp/#{n.to_s}"]
511
- end
512
-
513
515
  def test_relationship_graph
514
- one, two, middle, top = mktree
516
+ config = mktree
517
+
518
+ config.meta_def(:f) do |name|
519
+ self.resource("File[%s]" % name)
520
+ end
515
521
 
516
- {one => two, "f" => "c", "h" => middle}.each do |source, target|
517
- if source.is_a?(String)
518
- source = f(source)
519
- end
520
- if target.is_a?(String)
521
- target = f(target)
522
- end
522
+ {"one" => "two", "File[f]" => "File[c]", "File[h]" => "middle"}.each do |source_ref, target_ref|
523
+ source = config.resource(source_ref) or raise "Missing %s" % source_ref
524
+ target = config.resource(target_ref) or raise "Missing %s" % target_ref
523
525
  target[:require] = source
524
526
  end
525
527
 
526
- trans = Puppet::Transaction.new(top)
528
+ trans = Puppet::Transaction.new(config)
527
529
 
528
530
  graph = nil
529
531
  assert_nothing_raised do
530
532
  graph = trans.relationship_graph
531
533
  end
532
-
533
- assert_instance_of(Puppet::PGraph, graph,
534
+
535
+ assert_instance_of(Puppet::Node::Catalog, graph,
534
536
  "Did not get relationship graph")
535
537
 
536
538
  # Make sure all of the components are gone
@@ -544,13 +546,13 @@ class TestTransactions < Test::Unit::TestCase
544
546
  sorted = graph.topsort.reverse
545
547
 
546
548
  # Now make sure the appropriate edges are there and are in the right order
547
- assert(graph.dependents(f(:f)).include?(f(:c)),
549
+ assert(graph.dependents(config.f(:f)).include?(config.f(:c)),
548
550
  "c not marked a dep of f")
549
- assert(sorted.index(f(:c)) < sorted.index(f(:f)),
551
+ assert(sorted.index(config.f(:c)) < sorted.index(config.f(:f)),
550
552
  "c is not before f")
551
553
 
552
- one.each do |o|
553
- two.each do |t|
554
+ config.resource("one").each do |o|
555
+ config.resource("two").each do |t|
554
556
  assert(graph.dependents(o).include?(t),
555
557
  "%s not marked a dep of %s" % [t.ref, o.ref])
556
558
  assert(sorted.index(t) < sorted.index(o),
@@ -558,22 +560,22 @@ class TestTransactions < Test::Unit::TestCase
558
560
  end
559
561
  end
560
562
 
561
- trans.resources.leaves(middle).each do |child|
562
- assert(graph.dependents(f(:h)).include?(child),
563
+ trans.catalog.leaves(config.resource("middle")).each do |child|
564
+ assert(graph.dependents(config.f(:h)).include?(child),
563
565
  "%s not marked a dep of h" % [child.ref])
564
- assert(sorted.index(child) < sorted.index(f(:h)),
566
+ assert(sorted.index(child) < sorted.index(config.f(:h)),
565
567
  "%s is not before h" % child.ref)
566
568
  end
567
569
 
568
570
  # Lastly, make sure our 'g' vertex made it into the relationship
569
571
  # graph, since it's not involved in any relationships.
570
- assert(graph.vertex?(f(:g)),
572
+ assert(graph.vertex?(config.f(:g)),
571
573
  "Lost vertexes with no relations")
572
574
 
573
575
  # Now make the reversal graph and make sure all of the vertices made it into that
574
576
  reverse = graph.reversal
575
577
  %w{a b c d e f g h}.each do |letter|
576
- file = f(letter)
578
+ file = config.f(letter)
577
579
  assert(reverse.vertex?(file), "%s did not make it into reversal" % letter)
578
580
  end
579
581
  end
@@ -594,15 +596,15 @@ class TestTransactions < Test::Unit::TestCase
594
596
 
595
597
  yay = Puppet::Type.newgenerator :title => "yay"
596
598
  rah = Puppet::Type.newgenerator :title => "rah"
597
- comp = newcomp(yay, rah)
598
- trans = comp.evaluate
599
+ config = mk_catalog(yay, rah)
600
+ trans = Puppet::Transaction.new(config)
599
601
 
600
602
  assert_nothing_raised do
601
603
  trans.generate
602
604
  end
603
605
 
604
606
  %w{ya ra y r}.each do |name|
605
- assert(trans.resources.vertex?(Puppet::Type.type(:generator)[name]),
607
+ assert(trans.catalog.vertex?(Puppet::Type.type(:generator)[name]),
606
608
  "Generated %s was not a vertex" % name)
607
609
  assert($finished.include?(name), "%s was not finished" % name)
608
610
  end
@@ -613,7 +615,7 @@ class TestTransactions < Test::Unit::TestCase
613
615
  end
614
616
 
615
617
  %w{ya ra y r}.each do |name|
616
- assert(!trans.resources.vertex?(Puppet::Type.type(:generator)[name]),
618
+ assert(!trans.catalog.vertex?(Puppet::Type.type(:generator)[name]),
617
619
  "Generated vertex %s was not removed from graph" % name)
618
620
  assert_nil(Puppet::Type.type(:generator)[name],
619
621
  "Generated vertex %s was not removed from class" % name)
@@ -633,8 +635,8 @@ class TestTransactions < Test::Unit::TestCase
633
635
 
634
636
  yay = Puppet::Type.newgenerator :title => "yay"
635
637
  rah = Puppet::Type.newgenerator :title => "rah", :subscribe => yay
636
- comp = newcomp(yay, rah)
637
- trans = comp.evaluate
638
+ config = mk_catalog(yay, rah)
639
+ trans = Puppet::Transaction.new(config)
638
640
 
639
641
  trans.prepare
640
642
 
@@ -645,13 +647,13 @@ class TestTransactions < Test::Unit::TestCase
645
647
  end
646
648
  ya = type["ya"]
647
649
  assert(ya, "Did not generate ya")
648
- assert(trans.relgraph.vertex?(ya),
650
+ assert(trans.relationship_graph.vertex?(ya),
649
651
  "Did not add ya to rel_graph")
650
652
 
651
653
  # Now make sure the appropriate relationships were added
652
- assert(trans.relgraph.edge?(yay, ya),
654
+ assert(trans.relationship_graph.edge?(yay, ya),
653
655
  "parent was not required by child")
654
- assert(! trans.relgraph.edge?(ya, rah),
656
+ assert(! trans.relationship_graph.edge?(ya, rah),
655
657
  "generated child ya inherited depencency on rah")
656
658
 
657
659
  # Now make sure it in turn eval_generates appropriately
@@ -662,7 +664,7 @@ class TestTransactions < Test::Unit::TestCase
662
664
  %w{y}.each do |name|
663
665
  res = type[name]
664
666
  assert(res, "Did not generate %s" % name)
665
- assert(trans.relgraph.vertex?(res),
667
+ assert(trans.relationship_graph.vertex?(res),
666
668
  "Did not add %s to rel_graph" % name)
667
669
  assert($finished.include?("y"), "y was not finished")
668
670
  end
@@ -670,7 +672,7 @@ class TestTransactions < Test::Unit::TestCase
670
672
  assert_nothing_raised("failed to eval_generate with nil response") do
671
673
  trans.eval_resource(type["y"])
672
674
  end
673
- assert(trans.relgraph.edge?(yay, ya), "no edge was created for ya => yay")
675
+ assert(trans.relationship_graph.edge?(yay, ya), "no edge was created for ya => yay")
674
676
 
675
677
  assert_nothing_raised("failed to apply rah") do
676
678
  trans.eval_resource(rah)
@@ -678,15 +680,15 @@ class TestTransactions < Test::Unit::TestCase
678
680
 
679
681
  ra = type["ra"]
680
682
  assert(ra, "Did not generate ra")
681
- assert(trans.relgraph.vertex?(ra),
683
+ assert(trans.relationship_graph.vertex?(ra),
682
684
  "Did not add ra to rel_graph" % name)
683
685
  assert($finished.include?("ra"), "y was not finished")
684
686
 
685
687
  # Now make sure this generated resource has the same relationships as
686
688
  # the generating resource
687
- assert(! trans.relgraph.edge?(yay, ra),
689
+ assert(! trans.relationship_graph.edge?(yay, ra),
688
690
  "rah passed its dependencies on to its children")
689
- assert(! trans.relgraph.edge?(ya, ra),
691
+ assert(! trans.relationship_graph.edge?(ya, ra),
690
692
  "children have a direct relationship")
691
693
 
692
694
  # Now make sure that cleanup gets rid of those generated types.
@@ -695,14 +697,14 @@ class TestTransactions < Test::Unit::TestCase
695
697
  end
696
698
 
697
699
  %w{ya ra y r}.each do |name|
698
- assert(!trans.relgraph.vertex?(type[name]),
700
+ assert(!trans.relationship_graph.vertex?(type[name]),
699
701
  "Generated vertex %s was not removed from graph" % name)
700
702
  assert_nil(type[name],
701
703
  "Generated vertex %s was not removed from class" % name)
702
704
  end
703
705
 
704
706
  # Now, start over and make sure that everything gets evaluated.
705
- trans = comp.evaluate
707
+ trans = Puppet::Transaction.new(config)
706
708
  $evaluated.clear
707
709
  assert_nothing_raised do
708
710
  trans.evaluate
@@ -711,54 +713,41 @@ class TestTransactions < Test::Unit::TestCase
711
713
  assert_equal(%w{yay ya y rah ra r}, $evaluated,
712
714
  "Not all resources were evaluated or not in the right order")
713
715
  end
714
-
715
- def test_tags
716
- res = Puppet::Type.newfile :path => tempfile()
717
- comp = newcomp(res)
718
-
719
- # Make sure they default to none
720
- assert_equal([], comp.evaluate.tags)
721
-
722
- # Make sure we get the main tags
723
- Puppet[:tags] = %w{this is some tags}
724
- assert_equal(%w{this is some tags}, comp.evaluate.tags)
725
-
726
- # And make sure they get processed correctly
727
- Puppet[:tags] = ["one", "two,three", "four"]
728
- assert_equal(%w{one two three four}, comp.evaluate.tags)
729
-
730
- # lastly, make sure we can override them
731
- trans = comp.evaluate
732
- trans.tags = ["one", "two,three", "four"]
733
- assert_equal(%w{one two three four}, comp.evaluate.tags)
716
+
717
+ def test_ignore_tags?
718
+ config = Puppet::Node::Catalog.new
719
+ config.host_config = true
720
+ transaction = Puppet::Transaction.new(config)
721
+ assert(! transaction.ignore_tags?, "Ignoring tags when applying a host catalog")
722
+
723
+ config.host_config = false
724
+ transaction = Puppet::Transaction.new(config)
725
+ assert(transaction.ignore_tags?, "Not ignoring tags when applying a non-host catalog")
734
726
  end
735
727
 
736
- def test_tagged?
737
- res = Puppet::Type.newfile :path => tempfile()
738
- comp = newcomp(res)
739
- trans = comp.evaluate
740
-
741
- assert(trans.tagged?(res), "tagged? defaulted to false")
742
-
743
- # Now set some tags
744
- trans.tags = %w{some tags}
745
-
746
- # And make sure it's false
747
- assert(! trans.tagged?(res), "matched invalid tags")
748
-
749
- # Set ignoretags and make sure it sticks
750
- trans.ignoretags = true
751
- assert(trans.tagged?(res), "tags were not ignored")
752
-
753
- # Now make sure we actually correctly match tags
754
- res[:tag] = "mytag"
755
- trans.ignoretags = false
756
- trans.tags = %w{notag}
757
-
758
- assert(! trans.tagged?(res), "tags incorrectly matched")
759
-
760
- trans.tags = %w{mytag yaytag}
761
- assert(trans.tagged?(res), "tags should have matched")
728
+ def test_missing_tags?
729
+ resource = stub 'resource', :tagged? => true
730
+ config = Puppet::Node::Catalog.new
731
+
732
+ # Mark it as a host config so we don't care which test is first
733
+ config.host_config = true
734
+ transaction = Puppet::Transaction.new(config)
735
+ assert(! transaction.missing_tags?(resource), "Considered a resource to be missing tags when none are set")
736
+
737
+ # host catalogs pay attention to tags, no one else does.
738
+ Puppet[:tags] = "three,four"
739
+ config.host_config = false
740
+ transaction = Puppet::Transaction.new(config)
741
+ assert(! transaction.missing_tags?(resource), "Considered a resource to be missing tags when not running a host catalog")
742
+
743
+ #
744
+ config.host_config = true
745
+ transaction = Puppet::Transaction.new(config)
746
+ assert(! transaction.missing_tags?(resource), "Considered a resource to be missing tags when running a host catalog and all tags are present")
747
+
748
+ transaction = Puppet::Transaction.new(config)
749
+ resource.stubs :tagged? => false
750
+ assert(transaction.missing_tags?(resource), "Considered a resource not to be missing tags when running a host catalog and tags are missing")
762
751
  end
763
752
 
764
753
  # Make sure changes generated by eval_generated resources have proxies
@@ -772,8 +761,8 @@ class TestTransactions < Test::Unit::TestCase
772
761
  end
773
762
 
774
763
  resource = type.create :name => "test"
775
- comp = newcomp(resource)
776
- trans = comp.evaluate
764
+ config = mk_catalog(resource)
765
+ trans = Puppet::Transaction.new(config)
777
766
  trans.prepare
778
767
 
779
768
  assert_nothing_raised do
@@ -831,7 +820,7 @@ class TestTransactions < Test::Unit::TestCase
831
820
  end
832
821
 
833
822
  # Make a graph with some stuff in it.
834
- graph = Puppet::PGraph.new
823
+ graph = Puppet::Node::Catalog.new
835
824
 
836
825
  # Add a non-triggering edge.
837
826
  a = trigger.new(:a)
@@ -883,52 +872,12 @@ class TestTransactions < Test::Unit::TestCase
883
872
  assert(trans.triggered?(c, :refresh),
884
873
  "Transaction did not store the trigger")
885
874
  end
886
-
887
- def test_graph
888
- Puppet.config.use(:main)
889
- # Make a graph
890
- graph = Puppet::PGraph.new
891
- graph.add_edge!("a", "b")
892
-
893
- # Create our transaction
894
- trans = Puppet::Transaction.new(graph)
895
-
896
- assert_nothing_raised do
897
- trans.graph(graph, :testing)
898
- end
899
-
900
- dotfile = File.join(Puppet[:graphdir], "testing.dot")
901
- assert(! FileTest.exists?(dotfile), "Enabled graphing even tho disabled")
902
-
903
- # Now enable graphing
904
- Puppet[:graph] = true
905
-
906
- assert_nothing_raised do
907
- trans.graph(graph, :testing)
908
- end
909
- assert(FileTest.exists?(dotfile), "Did not create graph.")
910
- end
911
-
912
- def test_created_graphs
913
- FileUtils.mkdir_p(Puppet[:graphdir])
914
- file = Puppet::Type.newfile(:path => tempfile, :content => "yay")
915
- exec = Puppet::Type.type(:exec).create(:command => "echo yay", :path => ENV['PATH'],
916
- :require => file)
917
-
918
- Puppet[:graph] = true
919
- assert_apply(file, exec)
920
-
921
- %w{resources relationships expanded_relationships}.each do |name|
922
- file = File.join(Puppet[:graphdir], "%s.dot" % name)
923
- assert(FileTest.exists?(file), "graph for %s was not created" % name)
924
- end
925
- end
926
875
 
927
876
  def test_set_target
928
877
  file = Puppet::Type.newfile(:path => tempfile(), :content => "yay")
929
878
  exec1 = Puppet::Type.type(:exec).create :command => "/bin/echo exec1"
930
879
  exec2 = Puppet::Type.type(:exec).create :command => "/bin/echo exec2"
931
- trans = Puppet::Transaction.new(newcomp(file, exec1, exec2))
880
+ trans = Puppet::Transaction.new(mk_catalog(file, exec1, exec2))
932
881
 
933
882
  # First try it with an edge that has no callback
934
883
  edge = Puppet::Relationship.new(file, exec1)
@@ -975,7 +924,8 @@ class TestTransactions < Test::Unit::TestCase
975
924
  one[:require] = two
976
925
  two[:require] = one
977
926
 
978
- trans = newcomp(one, two).evaluate
927
+ config = mk_catalog(one, two)
928
+ trans = Puppet::Transaction.new(config)
979
929
  assert_raise(Puppet::Error) do
980
930
  trans.prepare
981
931
  end
@@ -1042,51 +992,20 @@ class TestTransactions < Test::Unit::TestCase
1042
992
 
1043
993
  rels[dir] = file
1044
994
  rels.each do |after, before|
1045
- comp = newcomp(before, after)
1046
- trans = comp.evaluate
995
+ config = mk_catalog(before, after)
996
+ trans = Puppet::Transaction.new(config)
1047
997
  str = "from %s to %s" % [before, after]
1048
998
 
1049
999
  assert_nothing_raised("Failed to create graph %s" % str) do
1050
1000
  trans.prepare
1051
1001
  end
1052
1002
 
1053
- graph = trans.relgraph
1003
+ graph = trans.relationship_graph
1054
1004
  assert(graph.edge?(before, after), "did not create manual relationship %s" % str)
1055
1005
  assert(! graph.edge?(after, before), "created automatic relationship %s" % str)
1056
1006
  end
1057
1007
  end
1058
1008
 
1059
- def test_labeled_deps_beat_unlabeled
1060
- one = Puppet::Type.type(:exec).create :command => "/bin/echo one"
1061
- two = Puppet::Type.type(:exec).create :command => "/bin/echo two"
1062
-
1063
- one[:require] = two
1064
- one[:subscribe] = two
1065
-
1066
- comp = newcomp(one, two)
1067
- trans = Puppet::Transaction.new(comp)
1068
- graph = trans.relationship_graph
1069
-
1070
- label = graph.edge_label(two, one)
1071
- assert(label, "require beat subscribe")
1072
- assert_equal(:refresh, label[:callback],
1073
- "did not get correct callback from subscribe")
1074
-
1075
- one.delete(:require)
1076
- one.delete(:subscribe)
1077
-
1078
- two[:before] = one
1079
- two[:notify] = one
1080
-
1081
- trans = Puppet::Transaction.new(comp)
1082
- graph = trans.relationship_graph
1083
-
1084
- label = graph.edge_label(two, one)
1085
- assert(label, "before beat notify")
1086
- assert_equal(:refresh, label[:callback],
1087
- "did not get correct callback from notify")
1088
- end
1089
-
1090
1009
  # #542 - make sure resources in noop mode still notify their resources,
1091
1010
  # so that users know if a service will get restarted.
1092
1011
  def test_noop_with_notify
@@ -1188,5 +1107,3 @@ class TestTransactions < Test::Unit::TestCase
1188
1107
  assert_equal(1, $flushed, "object was flushed in noop")
1189
1108
  end
1190
1109
  end
1191
-
1192
- # $Id: transactions.rb 2678 2007-07-11 19:30:42Z luke $