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,12 +1,15 @@
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
+ require 'puppettest/support/utils'
7
+ require 'puppettest/support/assertions'
6
8
  require 'puppet/network/client/resource'
7
9
 
8
10
  class TestResourceClient < Test::Unit::TestCase
9
11
  include PuppetTest::ServerTest
12
+ include PuppetTest::Support::Utils
10
13
 
11
14
  def mkresourceserver
12
15
  Puppet::Network::Handler.resource.new
@@ -35,6 +38,7 @@ class TestResourceClient < Test::Unit::TestCase
35
38
 
36
39
  assert_instance_of(Puppet::TransObject, tobj)
37
40
 
41
+ Puppet::Type.allclear
38
42
  obj = nil
39
43
  assert_nothing_raised {
40
44
  obj = tobj.to_type
@@ -45,6 +49,7 @@ class TestResourceClient < Test::Unit::TestCase
45
49
  File.unlink(file)
46
50
 
47
51
  # Now test applying
52
+ Puppet::Type.allclear
48
53
  result = nil
49
54
  assert_nothing_raised {
50
55
  result = client.apply(tobj)
@@ -52,6 +57,7 @@ class TestResourceClient < Test::Unit::TestCase
52
57
  assert(FileTest.exists?(file), "File was not created on apply")
53
58
 
54
59
  # Lastly, test "list"
60
+ Puppet::Type.allclear
55
61
  list = nil
56
62
  assert_nothing_raised {
57
63
  list = client.list("user")
@@ -64,12 +70,14 @@ class TestResourceClient < Test::Unit::TestCase
64
70
  break if count > 3
65
71
  assert_instance_of(Puppet::TransObject, tobj)
66
72
 
73
+ Puppet::Type.allclear
67
74
  tobj2 = nil
68
75
  assert_nothing_raised {
69
76
  tobj2 = client.describe(tobj.type, tobj.name)
70
77
  }
71
78
 
72
79
  obj = nil
80
+ Puppet::Type.allclear
73
81
  assert_nothing_raised {
74
82
  obj = tobj2.to_type
75
83
  }
@@ -80,4 +88,3 @@ class TestResourceClient < Test::Unit::TestCase
80
88
  end
81
89
  end
82
90
 
83
- # $Id: resource.rb 2259 2007-03-06 19:03:05Z 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
 
@@ -35,5 +35,4 @@ class TestClientRequest < Test::Unit::TestCase
35
35
  end
36
36
  end
37
37
 
38
- # $Id: client_request.rb 2259 2007-03-06 19:03:05Z luke $
39
38
 
@@ -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/daemon'
@@ -67,5 +67,4 @@ class TestDaemon < Test::Unit::TestCase
67
67
  end
68
68
  end
69
69
 
70
- # $Id: daemon.rb 2259 2007-03-06 19:03:05Z luke $
71
70
 
@@ -1,10 +1,11 @@
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/handler/filebucket'
7
7
  require 'base64'
8
+ require 'mocha'
8
9
 
9
10
  class TestBucket < Test::Unit::TestCase
10
11
  include PuppetTest::ServerTest
@@ -202,35 +203,6 @@ class TestBucket < Test::Unit::TestCase
202
203
  checkfiles(client)
203
204
  end
204
205
 
205
- # test that things work over the wire
206
- def test_webxmlmix
207
- files = filelist()
208
-
209
- tmpdir = File.join(tmpdir(),"tmpfiledir")
210
- @@tmpfiles << tmpdir
211
- FileUtils.mkdir_p(tmpdir)
212
-
213
- Puppet[:autosign] = true
214
- client = nil
215
- port = Puppet[:masterport]
216
-
217
- pid = mkserver(:CA => {}, :FileBucket => { :Path => @bucket})
218
-
219
- assert_nothing_raised {
220
- client = Puppet::Network::Client.dipper.new(
221
- :Server => "localhost",
222
- :Port => @@port
223
- )
224
- }
225
-
226
- checkfiles(client)
227
-
228
- unless pid
229
- raise "Uh, we don't have a child pid"
230
- end
231
- Process.kill("TERM", pid)
232
- end
233
-
234
206
  def test_no_path_duplicates
235
207
  bucket = nil
236
208
  assert_nothing_raised {
@@ -339,4 +311,3 @@ class TestBucket < Test::Unit::TestCase
339
311
  end
340
312
  end
341
313
 
342
- # $Id: bucket.rb 2348 2007-03-24 21:16:20Z luke $
@@ -1,9 +1,10 @@
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/handler/ca'
7
+ require 'mocha'
7
8
 
8
9
  if ARGV.length > 0 and ARGV[0] == "short"
9
10
  $short = true
@@ -13,6 +14,12 @@ end
13
14
 
14
15
  class TestCA < Test::Unit::TestCase
15
16
  include PuppetTest::ServerTest
17
+
18
+ def setup
19
+ Puppet::Util::SUIDManager.stubs(:asuser).yields
20
+ super
21
+ end
22
+
16
23
  # Verify that we're autosigning. We have to autosign a "different" machine,
17
24
  # since we always autosign the CA server's certificate.
18
25
  def test_autocertgeneration
@@ -184,7 +191,7 @@ class TestCA < Test::Unit::TestCase
184
191
  server = nil
185
192
  Puppet[:name] = "puppetmasterd"
186
193
  assert_nothing_raised {
187
- server = Puppet::Network::Server::WEBrick.new(
194
+ server = Puppet::Network::HTTPServer::WEBrick.new(
188
195
  :Port => @@port,
189
196
  :Handlers => {
190
197
  :CA => {}, # so that certs autogenerate
@@ -265,4 +272,3 @@ class TestCA < Test::Unit::TestCase
265
272
  end
266
273
  end
267
274
 
268
- # $Id: ca.rb 2612 2007-06-18 19:51:17Z luke $
@@ -0,0 +1,160 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../lib/puppettest'
4
+
5
+ require 'puppettest'
6
+ require 'puppet/network/handler/configuration'
7
+
8
+ class TestHandlerConfiguration < Test::Unit::TestCase
9
+ include PuppetTest
10
+
11
+ Config = Puppet::Network::Handler.handler(:configuration)
12
+
13
+ # Check all of the setup stuff.
14
+ def test_initialize
15
+ config = nil
16
+ assert_nothing_raised("Could not create local config") do
17
+ config = Config.new(:Local => true)
18
+ end
19
+
20
+ assert(config.local?, "Config is not considered local after being started that way")
21
+ end
22
+
23
+ # Test creation/returning of the interpreter
24
+ def test_interpreter
25
+ config = Config.new
26
+
27
+ # First test the defaults
28
+ config.expects(:create_interpreter).returns(:interp)
29
+ assert_equal(:interp, config.send(:interpreter), "Did not return the interpreter")
30
+
31
+ # Now run it again and make sure we get the same thing
32
+ assert_equal(:interp, config.send(:interpreter), "Did not cache the interpreter")
33
+ end
34
+
35
+ def test_create_interpreter
36
+ config = Config.new(:Local => false)
37
+ args = {}
38
+
39
+ # Try it first with defaults.
40
+ Puppet::Parser::Interpreter.expects(:new).returns(:interp)
41
+ assert_equal(:interp, config.send(:create_interpreter), "Did not return the interpreter")
42
+ end
43
+
44
+ # Make sure node objects get appropriate data added to them.
45
+ def test_add_node_data
46
+ # First with no classes
47
+ config = Config.new
48
+
49
+ fakenode = Object.new
50
+ # Set the server facts to something
51
+ config.instance_variable_set("@server_facts", :facts)
52
+ fakenode.expects(:merge).with(:facts)
53
+ config.send(:add_node_data, fakenode)
54
+
55
+ # Now try it with classes.
56
+ config.classes = %w{a b}
57
+ list = []
58
+ fakenode = Object.new
59
+ fakenode.expects(:merge).with(:facts)
60
+ fakenode.expects(:classes).returns(list).times(2)
61
+ config.send(:add_node_data, fakenode)
62
+ assert_equal(%w{a b}, list, "Did not add classes to node")
63
+ end
64
+
65
+ def test_compile
66
+ config = Config.new
67
+
68
+ # First do a local
69
+ node = mock 'node'
70
+ node.stubs(:name).returns(:mynode)
71
+ node.stubs(:environment).returns(:myenv)
72
+
73
+ interp = mock 'interpreter'
74
+ interp.stubs(:environment)
75
+ interp.expects(:compile).with(node).returns(:config)
76
+ config.expects(:interpreter).returns(interp)
77
+
78
+ Puppet.expects(:notice) # The log message from benchmarking
79
+
80
+ assert_equal(:config, config.send(:compile, node), "Did not return config")
81
+
82
+ # Now try it non-local
83
+ node = mock 'node'
84
+ node.stubs(:name).returns(:mynode)
85
+ node.stubs(:environment).returns(:myenv)
86
+
87
+ interp = mock 'interpreter'
88
+ interp.stubs(:environment)
89
+ interp.expects(:compile).with(node).returns(:config)
90
+
91
+ config = Config.new(:Local => true)
92
+ config.expects(:interpreter).returns(interp)
93
+
94
+ assert_equal(:config, config.send(:compile, node), "Did not return config")
95
+ end
96
+
97
+ def test_set_server_facts
98
+ config = Config.new
99
+ assert_nothing_raised("Could not call :set_server_facts") do
100
+ config.send(:set_server_facts)
101
+ end
102
+ facts = config.instance_variable_get("@server_facts")
103
+ %w{servername serverversion serverip}.each do |fact|
104
+ assert(facts.include?(fact), "Config did not set %s fact" % fact)
105
+ end
106
+ end
107
+
108
+ def test_translate
109
+ # First do a local config
110
+ config = Config.new(:Local => true)
111
+ assert_equal(:plain, config.send(:translate, :plain), "Attempted to translate local config")
112
+
113
+ # Now a non-local
114
+ config = Config.new(:Local => false)
115
+ assert(! config.local?, "Config wrongly thinks it's local")
116
+ obj = mock 'dumpee'
117
+ yamld = mock 'yaml'
118
+ obj.expects(:to_yaml).with(:UseBlock => true).returns(yamld)
119
+ CGI.expects(:escape).with(yamld).returns(:translated)
120
+ assert_equal(:translated, config.send(:translate, obj), "Did not return translated config")
121
+ end
122
+
123
+ # Check that we're storing the node freshness into the rails db. Hackilicious.
124
+ def test_update_node_check
125
+ # This is stupid.
126
+ config = Config.new
127
+ node = Object.new
128
+ node.expects(:name).returns(:hostname)
129
+ now = Object.new
130
+ Time.expects(:now).returns(now)
131
+ host = Object.new
132
+ host.expects(:last_freshcheck=).with(now)
133
+ host.expects(:save)
134
+
135
+ # Only test the case where rails is there
136
+ Puppet[:storeconfigs] = true
137
+ Puppet.features.expects(:rails?).returns(true)
138
+ Puppet::Rails.expects(:connect)
139
+ Puppet::Rails::Host.expects(:find_or_create_by_name).with(:hostname).returns(host)
140
+
141
+ config.send(:update_node_check, node)
142
+ end
143
+
144
+ def test_version
145
+ # First try the case where we can't look up the node
146
+ config = Config.new
147
+ node = Object.new
148
+ Puppet::Node.stubs(:find_by_any_name).with(:client).returns(false, node)
149
+ interp = Object.new
150
+ assert_instance_of(Bignum, config.version(:client), "Did not return configuration version")
151
+
152
+ # And then when we find the node.
153
+ config = Config.new
154
+ config.expects(:update_node_check).with(node)
155
+ interp = Object.new
156
+ interp.expects(:configuration_version).returns(:version)
157
+ config.expects(:interpreter).returns(interp)
158
+ assert_equal(:version, config.version(:client), "Did not return configuration version")
159
+ end
160
+ end
@@ -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/handler/fileserver'
@@ -970,12 +970,16 @@ allow *
970
970
  }
971
971
 
972
972
  dir = tempfile()
973
+ Facter.stubs(:value).with(:ipaddress).returns("127.0.0.1")
974
+ Facter.stubs(:value).with { |v| v.to_s == "hostname" }.returns("myhost")
975
+ Facter.stubs(:value).with { |v| v.to_s == "domain" }.returns("mydomain.com")
976
+ Facter.stubs(:value).with(:domain).returns("mydomain.com")
973
977
  ip = Facter.value(:ipaddress)
974
978
 
975
979
  Dir.mkdir(dir)
976
- host = "host.domain.com"
980
+ host = "myhost.mydomain.com"
977
981
  {
978
- "%H" => "host.domain.com", "%h" => "host", "%d" => "domain.com"
982
+ "%H" => "myhost.mydomain.com", "%h" => "myhost", "%d" => "mydomain.com"
979
983
  }.each do |pattern, string|
980
984
  file = File.join(dir, string)
981
985
  mount = File.join(dir, pattern)
@@ -1030,7 +1034,6 @@ allow *
1030
1034
  end
1031
1035
 
1032
1036
  conffile = tempfile
1033
- @@tmpfiles << conffile
1034
1037
 
1035
1038
  File.open(conffile, "w") { |f| f.puts "# a test config file" }
1036
1039
 
@@ -1148,7 +1151,23 @@ allow *
1148
1151
  }
1149
1152
  end
1150
1153
  end
1154
+
1155
+ def test_can_start_without_configuration
1156
+ Puppet[:fileserverconfig] = tempfile
1157
+ assert_nothing_raised("Could not create fileserver when configuration is absent") do
1158
+ server = Puppet::Network::Handler::FileServer.new(
1159
+ :Local => false
1160
+ )
1161
+ end
1162
+ end
1163
+
1164
+ def test_creates_default_mounts_when_no_configuration_is_available
1165
+ Puppet[:fileserverconfig] = tempfile
1166
+ server = Puppet::Network::Handler::FileServer.new(:Local => false)
1167
+
1168
+ assert(server.mounted?("plugins"), "Did not create default plugins mount when missing configuration file")
1169
+ assert(server.mounted?("modules"), "Did not create default modules mount when missing configuration file")
1170
+ end
1151
1171
  end
1152
1172
 
1153
- # $Id: fileserver.rb 2629 2007-06-19 22:18:55Z luke $
1154
1173
 
@@ -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/handler'
@@ -61,4 +61,3 @@ class TestHandler < Test::Unit::TestCase
61
61
  end
62
62
  end
63
63
 
64
- # $Id: handler.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/handler/master'
@@ -8,89 +8,16 @@ require 'puppet/network/handler/master'
8
8
  class TestMaster < Test::Unit::TestCase
9
9
  include PuppetTest::ServerTest
10
10
 
11
- # run through all of the existing test files and make sure everything
12
- # works
13
- def test_files
14
- count = 0
15
- textfiles { |file|
16
- Puppet.debug("parsing %s" % file)
17
- client = nil
18
- master = nil
19
-
20
- # create our master
21
- assert_nothing_raised() {
22
- # this is the default server setup
23
- master = Puppet::Network::Handler.master.new(
24
- :Manifest => file,
25
- :UseNodes => false,
26
- :Local => true
27
- )
28
- }
29
-
30
- # and our client
31
- assert_nothing_raised() {
32
- client = Puppet::Network::Client.master.new(
33
- :Master => master
34
- )
35
- }
36
-
37
- # pull our configuration a few times
38
- assert_nothing_raised() {
39
- client.getconfig
40
- stopservices
41
- Puppet::Type.allclear
42
- }
43
- assert_nothing_raised() {
44
- client.getconfig
45
- stopservices
46
- Puppet::Type.allclear
47
- }
48
- assert_nothing_raised() {
49
- client.getconfig
50
- stopservices
51
- Puppet::Type.allclear
52
- }
53
- # only test three files; that's plenty
54
- if count > 3
55
- break
56
- end
57
- count += 1
58
- }
59
- end
60
-
61
- def test_defaultmanifest
62
- textfiles { |file|
63
- Puppet[:manifest] = file
64
- client = nil
65
- master = nil
66
- assert_nothing_raised() {
67
- # this is the default server setup
68
- master = Puppet::Network::Handler.master.new(
69
- :Manifest => file,
70
- :UseNodes => false,
71
- :Local => true
72
- )
73
- }
74
- assert_nothing_raised() {
75
- client = Puppet::Network::Client.master.new(
76
- :Master => master
77
- )
78
- }
79
-
80
- # pull our configuration
81
- assert_nothing_raised() {
82
- client.getconfig
83
- stopservices
84
- Puppet::Type.allclear
85
- }
86
-
87
- break
88
- }
11
+ def teardown
12
+ super
13
+ Puppet::Indirector::Indirection.clear_cache
89
14
  end
90
15
 
16
+ # Make sure that files are reread when they change.
91
17
  def test_filereread
92
18
  # Start with a normal setting
93
19
  Puppet[:filetimeout] = 15
20
+
94
21
  manifest = mktestmanifest()
95
22
 
96
23
  facts = Puppet::Network::Client.master.facts
@@ -101,41 +28,18 @@ class TestMaster < Test::Unit::TestCase
101
28
  @@tmpfiles << file2
102
29
 
103
30
  client = master = nil
31
+ Puppet[:manifest] = manifest
104
32
  assert_nothing_raised() {
105
33
  # this is the default server setup
106
34
  master = Puppet::Network::Handler.master.new(
107
- :Manifest => manifest,
108
- :UseNodes => false,
109
35
  :Local => true
110
36
  )
111
37
  }
112
- assert_nothing_raised() {
113
- client = Puppet::Network::Client.master.new(
114
- :Master => master
115
- )
116
- }
117
38
 
118
- assert(client, "did not create master client")
119
- # The client doesn't have a config, so it can't be up to date
120
- assert(! client.fresh?(facts),
121
- "Client is incorrectly up to date")
122
-
123
- Puppet.config.use(:main)
124
- assert_nothing_raised {
125
- client.getconfig
126
- client.apply
127
- }
128
-
129
- # Now it should be up to date
130
- assert(client.fresh?(facts), "Client is not up to date")
39
+ config = master.getconfig({"hostname" => "blah"})
131
40
 
132
41
  # Cache this value for later
133
- parse1 = master.freshness
134
-
135
- # Verify the config got applied
136
- assert(FileTest.exists?(@createdfile),
137
- "Created file %s does not exist" % @createdfile)
138
- Puppet::Type.allclear
42
+ parse1 = master.freshness("mynode")
139
43
 
140
44
  sleep 1.5
141
45
  # Create a new manifest
@@ -145,161 +49,52 @@ class TestMaster < Test::Unit::TestCase
145
49
 
146
50
  # Verify that the master doesn't immediately reparse the file; we
147
51
  # want to wait through the timeout
148
- assert_equal(parse1, master.freshness, "Master did not wait through timeout")
149
- assert(client.fresh?(facts), "Client is not up to date")
52
+ assert_equal(parse1, master.freshness("mynode"), "Master did not wait through timeout")
150
53
 
151
54
  # Then eliminate it
152
55
  Puppet[:filetimeout] = 0
153
56
 
154
57
  # Now make sure the master does reparse
155
58
  #Puppet.notice "%s vs %s" % [parse1, master.freshness]
156
- assert(parse1 != master.freshness, "Master did not reparse file")
157
- assert(! client.fresh?(facts), "Client is incorrectly up to date")
59
+ assert(parse1 != master.freshness("mynode"), "Master did not reparse file")
158
60
 
159
- # Retrieve and apply the new config
160
- assert_nothing_raised {
161
- client.getconfig
162
- client.apply
163
- }
164
- assert(client.fresh?(facts), "Client is not up to date")
165
-
166
- assert(FileTest.exists?(file2), "Second file %s does not exist" % file2)
167
- end
168
-
169
- def test_addfacts
170
- master = nil
171
- file = mktestmanifest()
172
- # create our master
173
- assert_nothing_raised() {
174
- # this is the default server setup
175
- master = Puppet::Network::Handler.master.new(
176
- :Manifest => file,
177
- :UseNodes => false,
178
- :Local => true
179
- )
180
- }
181
-
182
- facts = {}
183
-
184
- assert_nothing_raised {
185
- master.addfacts(facts)
186
- }
187
-
188
- %w{serverversion servername serverip}.each do |fact|
189
- assert(facts.include?(fact), "Fact %s was not set" % fact)
190
- end
191
- end
192
-
193
- # Make sure we're using the hostname as configured with :node_name
194
- def test_hostname_in_getconfig
195
- master = nil
196
- file = tempfile()
197
- #@createdfile = File.join(tmpdir(), self.class.to_s + "manifesttesting" +
198
- # "_" + @method_name)
199
- file_cert = tempfile()
200
- file_fact = tempfile()
201
-
202
- certname = "y4yn3ss"
203
- factname = Facter.value("hostname")
204
-
205
- File.open(file, "w") { |f|
206
- f.puts %{
207
- node #{certname} { file { "#{file_cert}": ensure => file, mode => 755 } }
208
- node #{factname} { file { "#{file_fact}": ensure => file, mode => 755 } }
209
- }
210
- }
211
- # create our master
212
- assert_nothing_raised() {
213
- # this is the default server setup
214
- master = Puppet::Network::Handler.master.new(
215
- :Manifest => file,
216
- :UseNodes => true,
217
- :Local => true
218
- )
219
- }
220
-
221
- result = nil
222
-
223
- # Use the hostname from facter
224
- Puppet[:node_name] = 'facter'
225
- assert_nothing_raised {
226
- result = master.getconfig({"hostname" => factname}, "yaml", certname, "127.0.0.1")
227
- }
228
-
229
- result = result.flatten
230
-
231
- assert(result.find { |obj| obj.name == file_fact },
232
- "Could not find correct file")
233
- assert(!result.find { |obj| obj.name == file_cert },
234
- "Found incorrect file")
235
-
236
- # Use the hostname from the cert
237
- Puppet[:node_name] = 'cert'
238
- assert_nothing_raised {
239
- result = master.getconfig({"hostname" => factname}, "yaml", certname, "127.0.0.1")
240
- }
241
-
242
- result = result.flatten
243
-
244
- assert(!result.find { |obj| obj.name == file_fact },
245
- "Could not find correct file")
246
- assert(result.find { |obj| obj.name == file_cert },
247
- "Found incorrect file")
61
+ assert(master.getconfig({"hostname" => "blah"}) != config, "Did not use reloaded config")
248
62
  end
249
63
 
250
64
  # Make sure we're correctly doing clientname manipulations.
251
65
  # Testing to make sure we always get a hostname and IP address.
252
66
  def test_clientname
253
- master = nil
254
- file = tempfile()
255
-
256
- File.open(file, "w") { |f|
257
- f.puts %{
258
- node yay { file { "/something": ensure => file, mode => 755 } }
259
- }
260
- }
261
67
  # create our master
262
- assert_nothing_raised() {
263
- # this is the default server setup
264
- master = Puppet::Network::Handler.master.new(
265
- :Manifest => file,
266
- :UseNodes => true,
267
- :Local => true
268
- )
269
- }
270
-
271
- Puppet[:node_name] = "cert"
272
- # First act like we're local
273
- fakename = nil
274
- fakeip = nil
68
+ master = Puppet::Network::Handler.master.new(
69
+ :Manifest => tempfile,
70
+ :UseNodes => true,
71
+ :Local => true
72
+ )
275
73
 
276
- name = ip = nil
277
- facts = Facter.to_hash
278
- assert_nothing_raised do
279
- name, ip = master.clientname(fakename, fakeip, facts)
280
- end
281
74
 
282
- assert(facts["hostname"], "Removed hostname fact")
283
- assert(facts["ipaddress"], "Removed ipaddress fact")
284
-
285
- assert_equal(facts["hostname"], name)
286
- assert_equal(facts["ipaddress"], ip)
287
-
288
- # Now set them to something real, and make sure we get them back
289
- fakename = "yayness"
290
- fakeip = "192.168.0.1"
291
- facts = Facter.to_hash
292
- assert_nothing_raised do
293
- name, ip = master.clientname(fakename, fakeip, facts)
294
- end
295
-
296
- assert(facts["hostname"], "Removed hostname fact")
297
- assert(facts["ipaddress"], "Removed ipaddress fact")
75
+ # First check that 'cert' works
76
+ Puppet[:node_name] = "cert"
298
77
 
299
- assert_equal(fakename, name)
300
- assert_equal(fakeip, ip)
78
+ # Make sure we get the fact data back when nothing is set
79
+ facts = {"hostname" => "fact_hostname", "ipaddress" => "fact_ip"}
80
+ certname = "cert_hostname"
81
+ certip = "cert_ip"
82
+
83
+ resname, resip = master.send(:clientname, nil, nil, facts)
84
+ assert_equal(facts["hostname"], resname, "Did not use fact hostname when no certname was present")
85
+ assert_equal(facts["ipaddress"], resip, "Did not use fact ip when no certname was present")
86
+
87
+ # Now try it with the cert stuff present
88
+ resname, resip = master.send(:clientname, certname, certip, facts)
89
+ assert_equal(certname, resname, "Did not use cert hostname when certname was present")
90
+ assert_equal(certip, resip, "Did not use cert ip when certname was present")
91
+
92
+ # And reset the node_name stuff and make sure we use it.
93
+ Puppet[:node_name] = :facter
94
+ resname, resip = master.send(:clientname, certname, certip, facts)
95
+ assert_equal(facts["hostname"], resname, "Did not use fact hostname when nodename was set to facter")
96
+ assert_equal(facts["ipaddress"], resip, "Did not use fact ip when nodename was set to facter")
301
97
  end
302
98
  end
303
99
 
304
- # $Id: master.rb 2616 2007-06-18 21:03:18Z luke $
305
100