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,6 +1,8 @@
1
1
  require 'puppettest'
2
2
 
3
- module PuppetTest
3
+ module PuppetTest::Support
4
+ end
5
+ module PuppetTest::Support::Utils
4
6
  def gcdebug(type)
5
7
  Puppet.warning "%s: %s" % [type, ObjectSpace.each_object(type) { |o| }]
6
8
  end
@@ -19,6 +21,25 @@ module PuppetTest
19
21
  }
20
22
  end
21
23
 
24
+ # Turn a list of resources, or possibly a catalog and some resources,
25
+ # into a catalog object.
26
+ def resources2catalog(*resources)
27
+ if resources[0].is_a?(Puppet::Node::Catalog)
28
+ config = resources.shift
29
+ unless resources.empty?
30
+ resources.each { |r| config.add_resource r }
31
+ end
32
+ elsif resources[0].is_a?(Puppet.type(:component))
33
+ raise ArgumentError, "resource2config() no longer accpts components"
34
+ comp = resources.shift
35
+ comp.delve
36
+ else
37
+ config = Puppet::Node::Catalog.new
38
+ resources.each { |res| config.add_resource res }
39
+ end
40
+ return config
41
+ end
42
+
22
43
  # stop any services that might be hanging around
23
44
  def stopservices
24
45
  if stype = Puppet::Type.type(:service)
@@ -31,6 +52,7 @@ module PuppetTest
31
52
 
32
53
  # TODO: rewrite this to use the 'etc' module.
33
54
 
55
+ # Define a variable that contains the name of my user.
34
56
  def setme
35
57
  # retrieve the user name
36
58
  id = %x{id}.chomp
@@ -44,6 +66,16 @@ module PuppetTest
44
66
  end
45
67
  end
46
68
 
69
+ # Define a variable that contains a group I'm in.
70
+ def set_mygroup
71
+ # retrieve the user name
72
+ group = %x{groups}.chomp.split(/ /)[0]
73
+ unless group
74
+ raise "Could not find group to set in @mygroup"
75
+ end
76
+ @mygroup = group
77
+ end
78
+
47
79
  def run_events(type, trans, events, msg)
48
80
  case type
49
81
  when :evaluate, :rollback: # things are hunky-dory
@@ -82,7 +114,7 @@ module PuppetTest
82
114
  end
83
115
 
84
116
  def fakefile(name)
85
- ary = [basedir, "test"]
117
+ ary = [PuppetTest.basedir, "test"]
86
118
  ary += name.split("/")
87
119
  file = File.join(ary)
88
120
  unless FileTest.exists?(file)
@@ -127,34 +159,20 @@ module PuppetTest
127
159
  }
128
160
  end
129
161
 
130
- def newcomp(*ary)
131
- name = nil
132
- if ary[0].is_a?(String)
133
- name = ary.shift
162
+ def mk_catalog(*resources)
163
+ if resources[0].is_a?(String)
164
+ name = resources.shift
134
165
  else
135
- name = ary[0].title
166
+ name = :testing
136
167
  end
137
-
138
- comp = Puppet.type(:component).create(:name => name)
139
- ary.each { |item|
140
- comp.push item
141
- }
142
-
143
- return comp
144
- end
145
-
146
- def setme
147
- # retrieve the user name
148
- id = %x{id}.chomp
149
- if id =~ /uid=\d+\(([^\)]+)\)/
150
- @me = $1
151
- else
152
- puts id
153
- end
154
- unless defined? @me
155
- raise "Could not retrieve user name; 'id' did not work"
168
+ config = Puppet::Node::Catalog.new :testing do |conf|
169
+ resources.each { |resource| conf.add_resource resource }
156
170
  end
171
+
172
+ return config
157
173
  end
158
174
  end
159
175
 
160
- # $Id$
176
+ module PuppetTest
177
+ include PuppetTest::Support::Utils
178
+ end
@@ -4,28 +4,11 @@
4
4
  # Copyright (c) 2007. All rights reserved.
5
5
 
6
6
  require 'puppettest'
7
+ require 'puppettest/runnable_test'
7
8
 
8
9
  class PuppetTest::TestCase < Test::Unit::TestCase
9
10
  include PuppetTest
10
- def self.confine(hash)
11
- @confines ||= {}
12
- hash.each do |message, result|
13
- @confines[message] = result
14
- end
15
- end
16
-
17
- def self.runnable?
18
- @messages ||= []
19
- return false unless @messages.empty?
20
- return true unless defined? @confines
21
- @confines.find_all do |message, result|
22
- ! result
23
- end.each do |message, result|
24
- @messages << message
25
- end
26
-
27
- return @messages.empty?
28
- end
11
+ extend PuppetTest::RunnableTest
29
12
 
30
13
  def self.suite
31
14
  # Always skip this parent class. It'd be nice if there were a
@@ -44,5 +27,3 @@ class PuppetTest::TestCase < Test::Unit::TestCase
44
27
  end
45
28
  end
46
29
  end
47
-
48
- # $Id: testcase.rb 2267 2007-03-08 06:03:36Z luke $
@@ -14,4 +14,3 @@ unless runner.run
14
14
  exit 14
15
15
  end
16
16
 
17
- # $Id: puppet_test_loader.rb 2377 2007-03-31 06:35:23Z luke $
@@ -14,4 +14,3 @@ module Rake
14
14
  end
15
15
  end
16
16
 
17
- # $Id: puppet_testtask.rb 2057 2007-01-05 21:55:18Z luke $
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $:.unshift("../lib") if __FILE__ =~ /\.rb$/
3
+ require File.dirname(__FILE__) + '/../lib/puppettest'
4
4
 
5
5
  require 'puppettest'
6
6
 
@@ -68,5 +68,4 @@ class TestAuthConfig < Test::Unit::TestCase
68
68
  end
69
69
  end
70
70
 
71
- # $Id: authconfig.rb 2259 2007-03-06 19:03:05Z luke $
72
71
 
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $:.unshift("../lib") if __FILE__ =~ /\.rb$/
3
+ require File.dirname(__FILE__) + '/../lib/puppettest'
4
4
 
5
5
  require 'puppettest'
6
6
  require 'puppet/network/authorization'
@@ -134,5 +134,4 @@ class TestAuthConfig < Test::Unit::TestCase
134
134
  end
135
135
  end
136
136
 
137
- # $Id: authorization.rb 2259 2007-03-06 19:03:05Z luke $
138
137
 
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $:.unshift("../lib") if __FILE__ =~ /\.rb$/
3
+ require File.dirname(__FILE__) + '/../lib/puppettest'
4
4
 
5
5
  require 'puppettest'
6
6
  require 'mocha'
@@ -446,5 +446,4 @@ class TestAuthStoreDeclaration < PuppetTest::TestCase
446
446
  end
447
447
  end
448
448
 
449
- # $Id: authstore.rb 2262 2007-03-08 00:16:53Z luke $
450
449
 
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $:.unshift("../../lib") if __FILE__ =~ /\.rb$/
3
+ require File.dirname(__FILE__) + '/../../lib/puppettest'
4
4
 
5
5
  require 'mocha'
6
6
  require 'puppettest'
@@ -11,6 +11,7 @@ class TestClientCA < Test::Unit::TestCase
11
11
  include PuppetTest::ServerTest
12
12
 
13
13
  def setup
14
+ Puppet::Util::SUIDManager.stubs(:asuser).yields
14
15
  super
15
16
  @ca = Puppet::Network::Handler.ca.new
16
17
  @client = Puppet::Network::Client.ca.new :CA => @ca
@@ -22,17 +23,22 @@ class TestClientCA < Test::Unit::TestCase
22
23
  end
23
24
 
24
25
  [:hostprivkey, :hostcert, :localcacert].each do |name|
25
- assert(FileTest.exists?(Puppet.config[name]),
26
+ assert(FileTest.exists?(Puppet.settings[name]),
26
27
  "Did not create cert %s" % name)
27
28
  end
28
29
  end
29
30
 
30
31
  # Make sure the ca defaults to specific ports and names
31
32
  def test_ca_server
32
- client = nil
33
- assert_nothing_raised do
34
- client = Puppet::Network::Client.ca.new
35
- end
33
+ Puppet.settings.expects(:value).with(:ca_server).returns("myca")
34
+ Puppet.settings.expects(:value).with(:ca_port).returns(321)
35
+ Puppet.settings.stubs(:value).with(:http_proxy_host).returns(nil)
36
+ Puppet.settings.stubs(:value).with(:http_proxy_port).returns(nil)
37
+ Puppet.settings.stubs(:value).with(:http_keepalive).returns(false)
38
+
39
+ # Just throw an error; the important thing is the values, not what happens next.
40
+ Net::HTTP.stubs(:new).with("myca", 321, nil, nil).raises(ArgumentError)
41
+ assert_raise(ArgumentError) { Puppet::Network::Client.ca.new }
36
42
  end
37
43
 
38
44
  # #578
@@ -61,4 +67,3 @@ class TestClientCA < Test::Unit::TestCase
61
67
  end
62
68
  end
63
69
 
64
- # $Id: ca.rb 2612 2007-06-18 19:51:17Z luke $
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $:.unshift("../../lib") if __FILE__ =~ /\.rb$/
3
+ require File.dirname(__FILE__) + '/../../lib/puppettest'
4
4
 
5
5
  require 'puppettest'
6
6
  require 'mocha'
@@ -46,13 +46,13 @@ class TestClient < Test::Unit::TestCase
46
46
  assert(File.exists?(certfile))
47
47
  assert(File.exists?(publickeyfile))
48
48
 
49
- # verify we can retrieve the configuration
50
- assert_nothing_raised("Client could not retrieve configuration") {
49
+ # verify we can retrieve the catalog
50
+ assert_nothing_raised("Client could not retrieve catalog") {
51
51
  client.getconfig
52
52
  }
53
53
 
54
54
  # and apply it
55
- assert_nothing_raised("Client could not apply configuration") {
55
+ assert_nothing_raised("Client could not apply catalog") {
56
56
  client.apply
57
57
  }
58
58
 
@@ -113,9 +113,9 @@ class TestClient < Test::Unit::TestCase
113
113
  # Create a new ssl root.
114
114
  confdir = tempfile()
115
115
  Puppet[:ssldir] = confdir
116
- Puppet.config.mkdir(:ssldir)
117
- Puppet.config.clearused
118
- Puppet.config.use(:ssl, :ca)
116
+ Puppet.settings.mkdir(:ssldir)
117
+ Puppet.settings.clearused
118
+ Puppet.settings.use(:ssl, :ca)
119
119
 
120
120
  mkserver
121
121
 
@@ -141,17 +141,13 @@ class TestClient < Test::Unit::TestCase
141
141
  end
142
142
 
143
143
  def test_classfile
144
- manifest = tempfile()
144
+ Puppet[:code] = "class yaytest {}\n class bootest {}\n include yaytest, bootest"
145
145
 
146
- File.open(manifest, "w") do |file|
147
- file.puts "class yaytest {}\n class bootest {}\n include yaytest, bootest"
148
- end
146
+ Puppet::Node::Facts.indirection.stubs(:save)
149
147
 
150
148
  master = client = nil
151
149
  assert_nothing_raised() {
152
150
  master = Puppet::Network::Handler.master.new(
153
- :Manifest => manifest,
154
- :UseNodes => false,
155
151
  :Local => false
156
152
  )
157
153
  }
@@ -164,15 +160,13 @@ class TestClient < Test::Unit::TestCase
164
160
  # Fake that it's local, so it creates the class file
165
161
  client.local = false
166
162
 
163
+ # We can't guarantee class ordering
164
+ client.expects(:setclasses).with do |array|
165
+ array.length == 2 and array.include?("yaytest") and array.include?("bootest")
166
+ end
167
167
  assert_nothing_raised {
168
168
  client.getconfig
169
169
  }
170
-
171
- assert(FileTest.exists?(Puppet[:classfile]), "Class file does not exist")
172
-
173
- classes = File.read(Puppet[:classfile]).split("\n")
174
-
175
- assert_equal(%w{bootest yaytest}, classes.sort)
176
170
  end
177
171
 
178
172
  def test_client_loading
@@ -230,6 +224,8 @@ class TestClient < Test::Unit::TestCase
230
224
 
231
225
  # Make sure that reading the cert in also sets up the cert stuff for the driver
232
226
  def test_read_cert
227
+ Puppet::Util::SUIDManager.stubs(:asuser).yields
228
+
233
229
  ca = Puppet::Network::Handler.ca.new
234
230
  caclient = Puppet::Network::Client.ca.new :CA => ca
235
231
 
@@ -247,8 +243,8 @@ class TestClient < Test::Unit::TestCase
247
243
  client = FakeClient.new :Test => FakeDriver.new
248
244
 
249
245
  driver = client.driver
250
- driver.meta_def(:cert_setup) { |c| }
251
- driver.expects(:cert_setup).with(client)
246
+ driver.meta_def(:recycle_connection) { |c| }
247
+ driver.expects(:recycle_connection).with(client)
252
248
 
253
249
  assert_nothing_raised("Could not read cert") do
254
250
  client.read_cert
@@ -256,4 +252,3 @@ class TestClient < Test::Unit::TestCase
256
252
  end
257
253
  end
258
254
 
259
- # $Id: client.rb 2497 2007-05-09 16:21:56Z luke $
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $:.unshift("../../lib") if __FILE__ =~ /\.rb$/
3
+ require File.dirname(__FILE__) + '/../../lib/puppettest'
4
4
 
5
5
  require 'puppettest'
6
6
  require 'puppet/network/client/resource'
@@ -32,4 +32,3 @@ class TestDipperClient < Test::Unit::TestCase
32
32
  end
33
33
  end
34
34
 
35
- # $Id: dipper.rb 2348 2007-03-24 21:16:20Z luke $
@@ -1,213 +1,65 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $:.unshift("../../lib") if __FILE__ =~ /\.rb$/
3
+ require File.dirname(__FILE__) + '/../../lib/puppettest'
4
4
 
5
5
  require 'puppettest'
6
6
  require 'mocha'
7
7
 
8
8
  class TestMasterClient < Test::Unit::TestCase
9
9
  include PuppetTest::ServerTest
10
-
11
- class FakeTrans
12
- def initialize
13
- @counters = Hash.new { |h,k| h[k] = 0 }
14
- end
15
- [:evaluate, :report, :cleanup, :addtimes, :tags, :ignoreschedules].each do |m|
16
- define_method(m.to_s + "=") do |*args|
17
- @counters[m] += 1
18
- end
19
- define_method(m) do |*args|
20
- @counters[m] += 1
21
- end
22
- define_method(m.to_s + "?") do
23
- @counters[m]
24
- end
25
- end
26
- end
27
- class FakeComponent
28
- attr_accessor :trans
29
- def evaluate
30
- @trans = FakeTrans.new
31
- @trans
32
- end
33
-
34
- def finalize
35
- @finalized = true
36
- end
37
-
38
- def finalized?
39
- @finalized
40
- end
41
- end
42
10
 
43
11
  def setup
44
12
  super
45
13
  @master = Puppet::Network::Client.master
46
14
  end
47
15
 
48
- def mkmaster(file = nil)
49
- master = nil
50
-
51
- file ||= mktestmanifest()
16
+ def mkmaster(options = {})
17
+ options[:UseNodes] = false
18
+ options[:Local] = true
19
+ if code = options[:Code]
20
+ Puppet[:code] = code
21
+ else
22
+ Puppet[:manifest] = options[:Manifest] || mktestmanifest
23
+ end
52
24
  # create our master
53
- assert_nothing_raised() {
54
- # this is the default server setup
55
- master = Puppet::Network::Handler.master.new(
56
- :Manifest => file,
57
- :UseNodes => false,
58
- :Local => true
59
- )
60
- }
25
+ # this is the default server setup
26
+ master = Puppet::Network::Handler.master.new(options)
61
27
  return master
62
28
  end
63
29
 
64
30
  def mkclient(master = nil)
65
31
  master ||= mkmaster()
66
- client = nil
67
- assert_nothing_raised() {
68
- client = Puppet::Network::Client.master.new(
69
- :Master => master
70
- )
71
- }
32
+ client = Puppet::Network::Client.master.new(
33
+ :Master => master
34
+ )
72
35
 
73
36
  return client
74
37
  end
75
-
76
- def mk_fake_client
77
- server = Puppet::Network::Handler.master.new :Code => ""
78
- master = Puppet::Network::Client.master.new :Server => server, :Local => true
79
-
80
- # Now create some objects
81
- objects = FakeComponent.new
82
-
83
- master.send(:instance_variable_set, "@objects", objects)
84
-
85
- class << master
86
- def report(r)
87
- @reported ||= 0
88
- @reported += 1
89
- end
90
- def reported
91
- @reported ||= 0
92
- @reported
93
- end
94
- end
95
- return master, objects
96
- end
97
-
98
- def test_apply
99
- master, objects = mk_fake_client
100
-
101
- check = Proc.new do |hash|
102
- assert(objects.trans, "transaction was not created")
103
- trans = objects.trans
104
- hash[:yes].each do |m|
105
- assert_equal(1, trans.send(m.to_s + "?"), "did not call #{m} enough times")
106
- end
107
- hash[:no].each do |m|
108
- assert_equal(0, trans.send(m.to_s + "?"), "called #{m} too many times")
109
- end
110
- end
111
-
112
- # First try it with no arguments
113
- assert_nothing_raised do
114
- master.apply
115
- end
116
- check.call :yes => %w{evaluate cleanup addtimes}, :no => %w{report tags ignoreschedules}
117
- assert_equal(0, master.reported, "master sent report with reports disabled")
118
-
119
-
120
- # Now enable reporting and make sure the report method gets called
121
- Puppet[:report] = true
122
- assert_nothing_raised do
123
- master.apply
124
- end
125
- check.call :yes => %w{evaluate cleanup addtimes}, :no => %w{tags ignoreschedules}
126
- assert_equal(1, master.reported, "master did not send report")
127
-
128
- # Now try it with tags enabled
129
- assert_nothing_raised do
130
- master.apply("tags")
131
- end
132
- check.call :yes => %w{evaluate cleanup tags addtimes}, :no => %w{ignoreschedules}
133
- assert_equal(2, master.reported, "master did not send report")
134
-
135
- # and ignoreschedules
136
- assert_nothing_raised do
137
- master.apply("tags", true)
138
- end
139
- check.call :yes => %w{evaluate cleanup tags ignoreschedules addtimes}, :no => %w{}
140
- assert_equal(3, master.reported, "master did not send report")
141
- end
142
-
143
- def test_getconfig
144
- client = mkclient
145
-
146
- $methodsrun = []
147
- cleanup { $methodsrun = nil }
148
- client.meta_def(:getplugins) do
149
- $methodsrun << :getplugins
150
- end
151
- client.meta_def(:get_actual_config) do
152
- $methodsrun << :get_actual_config
153
- result = Puppet::TransBucket.new()
154
- result.type = "testing"
155
- result.name = "yayness"
156
- result
157
- end
158
-
159
- assert_nothing_raised do
160
- client.getconfig
161
- end
162
- [:get_actual_config].each do |method|
163
- assert($methodsrun.include?(method), "method %s was not run" % method)
164
- end
165
- assert(! $methodsrun.include?(:getplugins), "plugins were synced even tho disabled")
166
-
167
- # Now set pluginsync
168
- Puppet[:pluginsync] = true
169
- $methodsrun.clear
170
-
171
- assert_nothing_raised do
172
- client.getconfig
173
- end
174
- [:getplugins, :get_actual_config].each do |method|
175
- assert($methodsrun.include?(method), "method %s was not run" % method)
176
- end
177
-
178
- objects = client.objects
179
- assert(objects.finalized?, "objects were not finalized")
180
- end
181
38
 
182
39
  def test_disable
183
40
  FileUtils.mkdir_p(Puppet[:statedir])
184
41
  manifest = mktestmanifest
185
42
 
186
- master = mkmaster(manifest)
43
+ master = mkmaster(:Manifest => manifest)
187
44
 
188
45
  client = mkclient(master)
189
46
 
190
- assert(! FileTest.exists?(@createdfile))
191
-
192
- assert_nothing_raised {
47
+ assert_nothing_raised("Could not disable client") {
193
48
  client.disable
194
49
  }
195
50
 
196
- assert_nothing_raised {
197
- client.run
198
- }
51
+ client.expects(:getconfig).never
199
52
 
200
- assert(! FileTest.exists?(@createdfile), "Disabled client ran")
53
+ client.run
201
54
 
202
- assert_nothing_raised {
203
- client.enable
204
- }
55
+ client = mkclient(master)
205
56
 
206
- assert_nothing_raised {
207
- client.run
208
- }
57
+ client.expects(:getconfig)
209
58
 
210
- assert(FileTest.exists?(@createdfile), "Enabled client did not run")
59
+ assert_nothing_raised("Could not enable client") {
60
+ client.enable
61
+ }
62
+ client.run
211
63
  end
212
64
 
213
65
  # Make sure we're getting the client version in our list of facts
@@ -240,7 +92,7 @@ class TestMasterClient < Test::Unit::TestCase
240
92
  }
241
93
  end
242
94
 
243
- # This method is supposed
95
+ # This method downloads files, and yields each file object if a block is given.
244
96
  def test_download
245
97
  source = tempfile()
246
98
  dest = tempfile()
@@ -327,6 +179,7 @@ end
327
179
 
328
180
  assert_equal(hostname, Facter.value(:hostname),
329
181
  "Lost value to hostname")
182
+
330
183
  assert_equal("yayness", Facter.value(:myfact),
331
184
  "Did not get correct fact value")
332
185
 
@@ -432,7 +285,7 @@ end
432
285
  facts = Puppet::Network::Client.master.facts
433
286
  end
434
287
  Facter.to_hash.each do |fact, value|
435
- assert_equal(facts[fact.downcase], value, "%s is not equal" % fact.inspect)
288
+ assert_equal(facts[fact.downcase], value.to_s, "%s is not equal" % fact.inspect)
436
289
  end
437
290
 
438
291
  # Make sure the puppet version got added
@@ -448,7 +301,9 @@ end
448
301
  manifest = tempfile()
449
302
  File.open(manifest, "w") { |f| f.puts "file { '#{file}': content => yay }" }
450
303
 
451
- driver = mkmaster(manifest)
304
+ Puppet::Node::Facts.indirection.stubs(:save)
305
+
306
+ driver = mkmaster(:Manifest => manifest)
452
307
  driver.local = false
453
308
  master = mkclient(driver)
454
309
 
@@ -457,7 +312,7 @@ end
457
312
 
458
313
  assert(! master.fresh?(master.class.facts),
459
314
  "Considered fresh with no compile at all")
460
-
315
+
461
316
  assert_nothing_raised { master.run }
462
317
  assert(master.fresh?(master.class.facts),
463
318
  "not considered fresh after compile")
@@ -532,7 +387,9 @@ end
532
387
  master.local = false
533
388
  driver = master.send(:instance_variable_get, "@driver")
534
389
  driver.local = false
390
+ Puppet::Node::Facts.indirection.stubs(:save)
535
391
  # Retrieve the configuration
392
+
536
393
  master.getconfig
537
394
 
538
395
  # Now the config is up to date, so get rid of the @objects var and
@@ -560,6 +417,8 @@ end
560
417
  driver = master.send(:instance_variable_get, "@driver")
561
418
  driver.local = false
562
419
 
420
+ Puppet::Node::Facts.indirection.stubs(:save)
421
+
563
422
  assert_nothing_raised("Could not compile config") do
564
423
  master.getconfig
565
424
  end
@@ -682,20 +541,32 @@ end
682
541
  end
683
542
  end
684
543
 
544
+ def test_environment_is_added_to_facts
545
+ facts = Puppet::Network::Client::Master.facts
546
+ assert_equal(facts["environment"], Puppet[:environment], "Did not add environment to client facts")
547
+
548
+ # Now set it to a real value
549
+ Puppet[:environments] = "something,else"
550
+ Puppet[:environment] = "something"
551
+ facts = Puppet::Network::Client::Master.facts
552
+ assert_equal(facts["environment"], Puppet[:environment], "Did not add environment to client facts")
553
+ end
554
+
685
555
  # This is partially to fix #532, but also to save on memory.
686
556
  def test_remove_objects_after_every_run
687
557
  client = mkclient
688
558
 
689
559
  ftype = Puppet::Type.type(:file)
560
+ file = ftype.create :title => "/what/ever", :ensure => :present
561
+ config = Puppet::Node::Catalog.new
562
+ config.add_resource(file)
690
563
 
691
- assert_nil(ftype[@createdfile], "file object already exists")
692
- assert(! FileTest.exists?(@createdfile), "File already exists on disk")
564
+ config.expects :apply
693
565
 
694
- assert_nothing_raised("Could not apply config") do
695
- client.run
696
- end
566
+ client.catalog = config
567
+ client.expects(:getconfig)
568
+ client.run
697
569
 
698
- assert(FileTest.exists?(@createdfile), "File does not exist on disk")
699
570
  assert_nil(ftype[@createdfile], "file object was not removed from memory")
700
571
  end
701
572
 
@@ -709,6 +580,21 @@ end
709
580
  client.run
710
581
  end
711
582
  end
712
- end
713
583
 
714
- # $Id: master.rb 2669 2007-07-10 04:17:07Z luke $
584
+ def test_invalid_catalogs_do_not_get_cached
585
+ master = mkmaster :Code => "notify { one: require => File[yaytest] }"
586
+ master.local = false # so it gets cached
587
+ client = mkclient(master)
588
+ client.stubs(:facts).returns({})
589
+ client.local = false
590
+
591
+ Puppet::Node::Facts.indirection.stubs(:terminus_class).returns(:memory)
592
+
593
+ # Make sure the config is not cached.
594
+ client.expects(:cache).never
595
+
596
+ client.getconfig
597
+ # Doesn't throw an exception, but definitely fails.
598
+ client.run
599
+ end
600
+ end