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,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/
3
+ require File.dirname(__FILE__) + '/../lib/puppettest'
4
4
 
5
5
  require 'puppet'
6
6
  require 'puppettest'
@@ -224,4 +224,3 @@ class TestPuppetUtilClassGen < Test::Unit::TestCase
224
224
  end
225
225
  end
226
226
 
227
- # $Id: classgen.rb 1856 2006-11-11 07:40:16Z luke $
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/
3
+ require File.dirname(__FILE__) + '/../lib/puppettest'
4
4
 
5
5
  require 'puppet'
6
6
  require 'puppettest'
@@ -31,4 +31,3 @@ class TestPuppetUtilExecution < Test::Unit::TestCase
31
31
  end
32
32
  end
33
33
 
34
- # $Id: execution.rb 1793 2006-10-16 22:01:40Z luke $
@@ -3,7 +3,7 @@
3
3
  # Created by Luke Kanies on 2006-11-07.
4
4
  # Copyright (c) 2006. All rights reserved.
5
5
 
6
- $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/
6
+ require File.dirname(__FILE__) + '/../lib/puppettest'
7
7
 
8
8
  require 'puppettest'
9
9
  require 'puppet/util/feature'
@@ -93,5 +93,3 @@ class TestFeatures < Test::Unit::TestCase
93
93
  end
94
94
  end
95
95
  end
96
-
97
- # $Id: features.rb 2518 2007-05-16 00:00:47Z luke $
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/
3
+ require File.dirname(__FILE__) + '/../lib/puppettest'
4
4
 
5
5
  require 'puppettest'
6
6
  require 'puppettest/fileparsing'
@@ -456,12 +456,21 @@ billy three four\n"
456
456
  :separator => " " # A single space
457
457
  end
458
458
 
459
- ["a b c d", "a b * d", "a b * *", "a b c *"].each do |line|
459
+ { "a b c d" => [],
460
+ "a b * d" => [:three],
461
+ "a b * *" => [:three, :four],
462
+ "a b c *" => [:four]
463
+ }.each do |line, absentees|
460
464
  record = nil
461
465
  assert_nothing_raised do
462
466
  record = @parser.parse_line(line)
463
467
  end
464
468
 
469
+ # Absent field is :absent, not "*" inside the record
470
+ absentees.each do |absentee|
471
+ assert_equal(:absent, record[absentee])
472
+ end
473
+
465
474
  # Now regenerate the line
466
475
  newline = nil
467
476
  assert_nothing_raised do
@@ -673,5 +682,4 @@ class TestUtilFileRecord < Test::Unit::TestCase
673
682
  end
674
683
  end
675
684
 
676
- # $Id: fileparsing.rb 2407 2007-04-23 18:01:36Z luke $
677
685
 
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/
3
+ require File.dirname(__FILE__) + '/../lib/puppettest'
4
4
 
5
5
  require 'puppettest'
6
6
  require 'puppet/util/filetype'
@@ -135,4 +135,3 @@ class TestFileType < Test::Unit::TestCase
135
135
  end
136
136
  end
137
137
 
138
- # $Id: filetype.rb 2679 2007-07-11 20:23:49Z luke $
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/
3
+ require File.dirname(__FILE__) + '/../lib/puppettest'
4
4
 
5
5
  require 'puppet'
6
6
  require 'puppet/util/inifile'
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/
3
+ require File.dirname(__FILE__) + '/../lib/puppettest'
4
4
 
5
5
  require 'puppet'
6
6
  require 'puppet/util/instance_loader'
@@ -19,15 +19,15 @@ class TestInstanceloader < Test::Unit::TestCase
19
19
  end
20
20
  end
21
21
 
22
- assert_nothing_raised("Could not create autoloader") do
23
- @loader.autoload(:stuff, "puppet/stuff")
22
+ assert_nothing_raised("Could not create instance loader") do
23
+ @loader.instance_load(:stuff, "puppet/stuff")
24
24
  end
25
25
  end
26
26
 
27
27
  # Make sure we correctly create our autoload instance. This covers the basics.
28
28
  def test_autoload
29
29
  # Make sure we can retrieve the loader
30
- assert_instance_of(Puppet::Util::Autoload, @loader.instance_loader(:stuff), "Could not get autoloader")
30
+ assert_instance_of(Puppet::Util::Autoload, @loader.instance_loader(:stuff), "Could not get instance loader")
31
31
 
32
32
  # Make sure we can get the instance hash
33
33
  assert(@loader.instance_hash(:stuff), "Could not get instance hash")
@@ -46,8 +46,7 @@ class TestInstanceloader < Test::Unit::TestCase
46
46
  assert_equal("a value", @loader.loaded_instance(:stuff, :testing), "Got incorrect loaded instance")
47
47
  end
48
48
 
49
- def test_autoloading
49
+ def test_instance_loading
50
50
  end
51
51
  end
52
52
 
53
- # $Id: instance_loader.rb 2476 2007-05-07 18:59:40Z luke $
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/
3
+ require File.dirname(__FILE__) + '/../lib/puppettest'
4
4
 
5
5
  require 'puppet'
6
6
  require 'puppet/util/loadedfile'
@@ -119,4 +119,3 @@ class TestLoadedFile < Test::Unit::TestCase
119
119
  end
120
120
  end
121
121
 
122
- # $Id: loadedfile.rb 2629 2007-06-19 22:18:55Z luke $
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/
3
+ require File.dirname(__FILE__) + '/../lib/puppettest'
4
4
 
5
5
  require 'puppet'
6
6
  require 'puppet/util/log'
@@ -272,4 +272,3 @@ class TestLog < Test::Unit::TestCase
272
272
  end
273
273
  end
274
274
 
275
- # $Id: log.rb 2259 2007-03-06 19:03:05Z luke $
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/
3
+ require File.dirname(__FILE__) + '/../lib/puppettest'
4
4
 
5
5
  require 'puppet'
6
6
  require 'puppet/util/metric'
@@ -75,4 +75,3 @@ class TestMetric < PuppetTest::TestCase
75
75
  end
76
76
  end
77
77
 
78
- # $Id: metrics.rb 2579 2007-06-14 06:07:31Z luke $
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/
3
+ require File.dirname(__FILE__) + '/../lib/puppettest'
4
4
 
5
5
  require 'puppet'
6
6
  require 'puppet/util/package'
@@ -24,4 +24,3 @@ class TestPuppetUtilPackage < Test::Unit::TestCase
24
24
  end
25
25
  end
26
26
 
27
- # $Id: package.rb 2132 2007-01-31 06:48:31Z mpalmer $
@@ -3,7 +3,7 @@
3
3
  # Created by Luke Kanies on 2006-11-07.
4
4
  # Copyright (c) 2006. All rights reserved.
5
5
 
6
- $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/
6
+ require File.dirname(__FILE__) + '/../lib/puppettest'
7
7
 
8
8
  require 'puppettest'
9
9
  require 'puppet/util/posix'
@@ -167,4 +167,3 @@ class TestPosixUtil < Test::Unit::TestCase
167
167
  end
168
168
  end
169
169
 
170
- # $Id: posixtest.rb 2598 2007-06-17 23:11:14Z luke $
@@ -1,15 +1,17 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/
3
+ require File.dirname(__FILE__) + '/../lib/puppettest'
4
4
 
5
5
  require 'mocha'
6
6
  require 'puppettest'
7
- require 'puppet/util/config'
7
+ require 'puppet/util/settings'
8
8
  require 'puppettest/parsertesting'
9
9
 
10
- class TestConfig < Test::Unit::TestCase
10
+ class TestSettings < Test::Unit::TestCase
11
11
  include PuppetTest
12
12
  include PuppetTest::ParserTesting
13
+ CElement = Puppet::Util::Settings::CElement
14
+ CBoolean = Puppet::Util::Settings::CBoolean
13
15
 
14
16
  def setup
15
17
  super
@@ -57,41 +59,6 @@ class TestConfig < Test::Unit::TestCase
57
59
  }
58
60
  end
59
61
 
60
- def test_to_manifest
61
- set_configs
62
- manifest = nil
63
- assert_nothing_raised("Could not convert to a manifest") {
64
- manifest = @config.to_manifest
65
- }
66
-
67
- Puppet[:parseonly] = true
68
-
69
- interp = nil
70
- assert_nothing_raised do
71
- interp = mkinterp :Code => manifest, :UseNodes => false
72
- end
73
-
74
- trans = nil
75
- assert_nothing_raised do
76
- trans = interp.evaluate(nil, {})
77
- end
78
- assert_nothing_raised("Could not instantiate objects") {
79
- trans.to_type
80
- }
81
- end
82
-
83
- def test_to_comp
84
- set_configs
85
- comp = nil
86
- assert_nothing_raised("Could not convert to a component") {
87
- comp = @config.to_component
88
- }
89
-
90
- assert_nothing_raised("Could not retrieve component") {
91
- comp.retrieve
92
- }
93
- end
94
-
95
62
  def test_to_config
96
63
  set_configs
97
64
 
@@ -128,7 +95,7 @@ class TestConfig < Test::Unit::TestCase
128
95
  def mkconfig
129
96
  c = nil
130
97
  assert_nothing_raised {
131
- c = Puppet::Util::Config.new
98
+ c = Puppet::Util::Settings.new
132
99
  }
133
100
  return c
134
101
  end
@@ -159,11 +126,11 @@ class TestConfig < Test::Unit::TestCase
159
126
 
160
127
  assert(! @config[:booltest], "Booltest is not false")
161
128
 
162
- assert_raise(Puppet::Error) {
129
+ assert_raise(ArgumentError) {
163
130
  @config[:booltest] = "yayness"
164
131
  }
165
132
 
166
- assert_raise(Puppet::Error) {
133
+ assert_raise(ArgumentError) {
167
134
  @config[:booltest] = "/some/file"
168
135
  }
169
136
  end
@@ -202,7 +169,7 @@ class TestConfig < Test::Unit::TestCase
202
169
 
203
170
  def test_getset
204
171
  initial = "an initial value"
205
- assert_raise(Puppet::Error) {
172
+ assert_raise(ArgumentError) {
206
173
  @config[:yayness] = initial
207
174
  }
208
175
 
@@ -223,7 +190,7 @@ class TestConfig < Test::Unit::TestCase
223
190
  @config.clear
224
191
  }
225
192
 
226
- assert_equal(default, @config[:yayness])
193
+ assert_equal(default, @config[:yayness], "'clear' did not remove old values")
227
194
 
228
195
  assert_nothing_raised {
229
196
  @config[:yayness] = "not default"
@@ -372,27 +339,26 @@ yay = /a/path
372
339
  :shoe => ["puppet", "b"] # our default name
373
340
  )
374
341
  @config.handlearg("--cliparam", "changed")
375
- @config.expects(:parse_file).returns(result).times(2)
342
+ @config.stubs(:parse_file).returns(result)
376
343
 
377
344
  # First do it with our name being 'puppet'
378
345
  assert_nothing_raised("Could not handle parse results") do
379
346
  @config.parse(tempfile)
380
347
  end
381
348
 
382
- assert_logged(:warning, /unknown configuration parameter bad/, "Did not log invalid config param")
383
-
349
+ assert_equal(:puppet, @config.name, "Did not get correct name")
384
350
  assert_equal("main", @config[:main], "Did not get main value")
385
351
  assert_equal("puppet", @config[:other], "Did not get name value")
386
352
  assert_equal("changed", @config[:cliparam], "CLI values were overridden by config")
387
353
 
388
354
  # Now switch names and make sure the parsing switches, too.
389
355
  @config.clear(true)
390
- @config[:name] = :puppetd
391
356
  assert_nothing_raised("Could not handle parse results") do
392
357
  @config.parse(tempfile)
393
358
  end
394
- assert_logged(:warning, /unknown configuration parameter bad/, "Did not log invalid config param")
359
+ @config[:name] = :puppetd
395
360
 
361
+ assert_equal(:puppetd, @config.name, "Did not get correct name")
396
362
  assert_equal("main", @config[:main], "Did not get main value")
397
363
  assert_equal("puppetd", @config[:other], "Did not get name value")
398
364
  assert_equal("changed", @config[:cliparam], "CLI values were overridden by config")
@@ -411,6 +377,7 @@ yay = /a/path
411
377
  )
412
378
 
413
379
  file = tempfile
380
+ count = 0
414
381
 
415
382
  {
416
383
  :pass => {
@@ -430,17 +397,19 @@ yay = /a/path
430
397
  %{{owner => you}}
431
398
  ]
432
399
  }.each do |type, list|
400
+ count += 1
433
401
  list.each do |value|
434
402
  if type == :pass
435
403
  value, should = value[0], value[1]
436
404
  end
405
+ path = "/other%s" % count
437
406
  # Write our file out
438
407
  File.open(file, "w") do |f|
439
- f.puts %{[main]\nfile = /other%s} % value
408
+ f.puts %{[main]\nfile = #{path}#{value}}
440
409
  end
441
410
 
442
411
  if type == :fail
443
- assert_raise(Puppet::Error, "Did not fail on %s" % value.inspect) do
412
+ assert_raise(ArgumentError, "Did not fail on %s" % value.inspect) do
444
413
  @config.send(:parse_file, file)
445
414
  end
446
415
  else
@@ -449,6 +418,7 @@ yay = /a/path
449
418
  result = @config.send(:parse_file, file)
450
419
  end
451
420
  assert_equal(should, result[:main][:_meta][:file], "Got incorrect return for %s" % value.inspect)
421
+ assert_equal(path, result[:main][:file], "Got incorrect value for %s" % value.inspect)
452
422
  end
453
423
  end
454
424
  end
@@ -488,6 +458,7 @@ yay = /a/path
488
458
  # Get the actual object, so we can verify metadata
489
459
  file = @config.element(:file)
490
460
 
461
+ assert_equal("/other", @config[:file], "Did not get correct value")
491
462
  assert_equal("you", file.owner, "Did not pass on user")
492
463
  assert_equal("you", file.group, "Did not pass on group")
493
464
  assert_equal("644", file.mode, "Did not pass on mode")
@@ -535,34 +506,46 @@ yay = /a/path
535
506
  }
536
507
  end
537
508
 
538
- def test_argadding
539
- c = mkconfig
540
-
541
- assert_nothing_raised {
542
- @config.setdefaults("testing",
543
- :onboolean => [true, "An on bool"],
544
- :offboolean => [false, "An off bool"],
545
- :string => ["a string", "A string arg"],
546
- :file => ["/path/to/file", "A file arg"]
547
- )
548
- }
549
- options = []
550
-
551
- @config.addargs(options)
509
+ def test_addargs
510
+ @config.setdefaults("testing",
511
+ :onboolean => [true, "An on bool"],
512
+ :offboolean => [false, "An off bool"],
513
+ :string => ["a string", "A string arg"],
514
+ :file => ["/path/to/file", "A file arg"]
515
+ )
516
+
517
+ should = []
518
+ @config.each { |name, element|
519
+ element.expects(:getopt_args).returns([name])
520
+ should << name
521
+ }
522
+ result = []
523
+ assert_nothing_raised("Add args failed") do
524
+ @config.addargs(result)
525
+ end
526
+ assert_equal(should, result, "Did not call addargs correctly.")
552
527
 
553
- @config.each { |param, obj|
554
- opt = "--%s" % param
555
- assert(options.find { |ary|
556
- ary[0] == opt
557
- }, "Argument %s was not added" % opt)
528
+ end
558
529
 
559
- if @config.boolean?(param)
560
- o = "--no-%s" % param
561
- assert(options.find { |ary|
562
- ary[0] == o
563
- }, "Boolean off %s was not added" % o)
530
+ def test_addargs_functional
531
+ @config.setdefaults("testing",
532
+ :onboolean => [true, "An on bool"],
533
+ :string => ["a string", "A string arg"]
534
+ )
535
+ result = []
536
+ should = []
537
+ assert_nothing_raised("Add args failed") do
538
+ @config.addargs(result)
539
+ end
540
+ @config.each do |name, element|
541
+ if name == :onboolean
542
+ should << ["--onboolean", GetoptLong::NO_ARGUMENT]
543
+ should << ["--no-onboolean", GetoptLong::NO_ARGUMENT]
544
+ elsif name == :string
545
+ should << ["--string", GetoptLong::REQUIRED_ARGUMENT]
564
546
  end
565
- }
547
+ end
548
+ assert_equal(should, result, "Add args functional test failed")
566
549
  end
567
550
 
568
551
  def test_usesection
@@ -634,91 +617,6 @@ yay = /a/path
634
617
  assert_equal("/my/file", @config[:b], "Values are not equal")
635
618
  end
636
619
 
637
- def test_reuse
638
- c = mkconfig
639
-
640
- file = tempfile()
641
- section = "testing"
642
- assert_nothing_raised {
643
- @config.setdefaults(section,
644
- :myfile => {:default => file, :create => true, :desc => "yay"}
645
- )
646
- }
647
-
648
- assert_nothing_raised("Could not use a section") {
649
- @config.use(section)
650
- }
651
-
652
- assert(FileTest.exists?(file), "Did not create file")
653
-
654
- assert(! Puppet::Type.type(:file)[file], "File obj still exists")
655
-
656
- File.unlink(file)
657
-
658
- @config.reuse
659
- assert(FileTest.exists?(file), "Did not create file")
660
- end
661
-
662
- def test_mkusers
663
- c = mkconfig
664
-
665
- file = tempfile()
666
- section = "testing"
667
- assert_nothing_raised {
668
- @config.setdefaults(section,
669
- :mkusers => [false, "yay"],
670
- :myfile => {
671
- :default => file,
672
- :owner => "pptest",
673
- :group => "pptest",
674
- :desc => "yay",
675
- :create => true
676
- }
677
- )
678
- }
679
-
680
- comp = nil
681
- assert_nothing_raised {
682
- comp = @config.to_component
683
- }
684
-
685
- [:user, :group].each do |type|
686
- # The objects might get created internally by Puppet::Util; just
687
- # make sure they're not being managed
688
- if obj = Puppet.type(type)["pptest"]
689
- assert(! obj.managed?, "%s objectis managed" % type)
690
- end
691
- end
692
- comp.each { |o| o.remove }
693
-
694
- @config[:mkusers] = true
695
-
696
- assert_nothing_raised {
697
- @config.to_component
698
- }
699
-
700
- user = Puppet.type(:user)["pptest"]
701
- assert(user, "User object did not get created")
702
- assert(user.managed?, "User object is not managed.")
703
- assert(user.should(:comment), "user does not have a comment set")
704
-
705
- group = Puppet.type(:group)["pptest"]
706
- assert(group, "Group object did not get created")
707
- assert(group.managed?,
708
- "Group object is not managed."
709
- )
710
-
711
- if Process.uid == 0
712
- cleanup do
713
- user[:ensure] = :absent
714
- group[:ensure] = :absent
715
- assert_apply(user, group)
716
- end
717
-
718
- assert_apply(user, group)
719
- end
720
- end
721
-
722
620
  def test_notmanagingdev
723
621
  c = mkconfig
724
622
  path = "/dev/testing"
@@ -730,11 +628,9 @@ yay = /a/path
730
628
  }
731
629
  )
732
630
 
733
- assert_nothing_raised {
734
- @config.to_component
735
- }
631
+ config = @config.to_configuration
736
632
 
737
- assert(! Puppet.type(:file)["/dev/testing"], "Created dev file")
633
+ assert(! config.resource(:file, "/dev/testing"), "Created dev file")
738
634
  end
739
635
 
740
636
  def test_groupsetting
@@ -839,37 +735,6 @@ yay = /a/path
839
735
  end
840
736
  end
841
737
 
842
- def test_booleans_and_integers
843
- config = mkconfig
844
- config.setdefaults(:mysection,
845
- :booltest => [false, "yay"],
846
- :inttest => [14, "yay"]
847
- )
848
-
849
- file = tempfile()
850
-
851
- File.open(file, "w") do |f|
852
- f.puts %{
853
- [main]
854
- booltest = true
855
- inttest = 27
856
- }
857
- end
858
-
859
- assert_nothing_raised {
860
- config.parse(file)
861
- }
862
-
863
- assert_equal(true, config[:booltest], "Boolean was not converted")
864
- assert_equal(27, config[:inttest], "Integer was not converted")
865
-
866
- # Now make sure that they get converted through handlearg
867
- config.handlearg("--inttest", "true")
868
- assert_equal(true, config[:inttest], "Boolean was not converted")
869
- config.handlearg("--no-booltest", "false")
870
- assert_equal(false, config[:booltest], "Boolean was not converted")
871
- end
872
-
873
738
  # Make sure that tags are ignored when configuring
874
739
  def test_configs_ignore_tags
875
740
  config = mkconfig
@@ -903,15 +768,15 @@ inttest = 27
903
768
  }
904
769
 
905
770
  assert_equal("http://yayness/rahness", val,
906
- "Config got messed up")
771
+ "Settings got messed up")
907
772
  end
908
773
 
909
774
  def test_correct_type_assumptions
910
775
  config = mkconfig
911
776
 
912
- file = Puppet::Util::Config::CFile
913
- element = Puppet::Util::Config::CElement
914
- bool = Puppet::Util::Config::CBoolean
777
+ file = Puppet::Util::Settings::CFile
778
+ element = Puppet::Util::Settings::CElement
779
+ bool = Puppet::Util::Settings::CBoolean
915
780
 
916
781
  # We have to keep these ordered, unfortunately.
917
782
  [
@@ -925,15 +790,10 @@ inttest = 27
925
790
  ["$server/yayness.conf", file]
926
791
  ].each do |ary|
927
792
  value, type = ary
928
- elem = nil
929
793
  assert_nothing_raised {
930
- elem = config.newelement(
931
- :name => value,
932
- :default => value,
933
- :desc => name.to_s,
934
- :section => :yayness
935
- )
794
+ config.setdefaults(:yayness, value => { :default => value, :desc => name.to_s})
936
795
  }
796
+ elem = config.element(value)
937
797
 
938
798
  assert_instance_of(type, elem,
939
799
  "%s got created as wrong type" % value.inspect)
@@ -949,11 +809,10 @@ inttest = 27
949
809
  config.setdefaults(:mysection, :clichange => ["clichange", "yay"])
950
810
  config.setdefaults(:mysection, :filechange => ["filechange", "yay"])
951
811
 
952
- file = tempfile()
953
- # Set one parameter in the file
954
- File.open(file, "w") { |f|
955
- f.puts %{[main]\nfilechange = filevalue}
956
- }
812
+ config.stubs(:read_file).returns(%{[main]\nfilechange = filevalue\n})
813
+ file = mock 'file'
814
+ file.stubs(:changed?).returns(true)
815
+
957
816
  assert_nothing_raised {
958
817
  config.parse(file)
959
818
  }
@@ -965,16 +824,14 @@ inttest = 27
965
824
 
966
825
  # And leave the other unset
967
826
  assert_equal("default", config[:default])
968
- assert_equal("filevalue", config[:filechange])
827
+ assert_equal("filevalue", config[:filechange], "Did not get value from file")
969
828
  assert_equal("clivalue", config[:clichange])
970
829
 
971
- # Now rewrite the file
972
- File.open(file, "w") { |f|
973
- f.puts %{[main]\nfilechange = newvalue}
974
- }
975
-
976
- cfile = config.file
977
- cfile.send("tstamp=".intern, Time.now - 50)
830
+ # Now reparse
831
+ config.stubs(:read_file).returns(%{[main]\nfilechange = newvalue\n})
832
+ file = mock 'file'
833
+ file.stubs(:changed?).returns(true)
834
+ config.parse(file)
978
835
 
979
836
  # And check all of the values
980
837
  assert_equal("default", config[:default])
@@ -1059,21 +916,17 @@ inttest = 27
1059
916
  config = mkconfig()
1060
917
 
1061
918
  testing = nil
1062
- elem = nil
1063
919
  assert_nothing_raised do
1064
- elem = config.newelement :default => "yay",
1065
- :name => :blocktest,
1066
- :desc => "boo",
1067
- :section => :test,
1068
- :hook => proc { |value| testing = value }
920
+ config.setdefaults :test, :blocktest => {:default => "yay", :desc => "boo", :hook => proc { |value| testing = value }}
1069
921
  end
922
+ elem = config.element(:blocktest)
1070
923
 
1071
924
  assert_nothing_raised do
1072
925
  assert_equal("yay", elem.value)
1073
926
  end
1074
927
 
1075
928
  assert_nothing_raised do
1076
- elem.value = "yaytest"
929
+ config[:blocktest] = "yaytest"
1077
930
  end
1078
931
 
1079
932
  assert_nothing_raised do
@@ -1082,7 +935,7 @@ inttest = 27
1082
935
  assert_equal("yaytest", testing)
1083
936
 
1084
937
  assert_nothing_raised do
1085
- elem.value = "another"
938
+ config[:blocktest] = "another"
1086
939
  end
1087
940
 
1088
941
  assert_nothing_raised do
@@ -1128,12 +981,12 @@ inttest = 27
1128
981
  # Now enable it so they'll be added
1129
982
  config[:mkusers] = true
1130
983
 
1131
- comp = config.to_component
984
+ comp = config.to_configuration
1132
985
 
1133
- Puppet::Type.type(:user).each do |u|
986
+ comp.vertices.find_all { |r| r.class.name == :user }.each do |u|
1134
987
  assert(u.name != "root", "Tried to manage root user")
1135
988
  end
1136
- Puppet::Type.type(:group).each do |u|
989
+ comp.vertices.find_all { |r| r.class.name == :group }.each do |u|
1137
990
  assert(u.name != "root", "Tried to manage root group")
1138
991
  assert(u.name != "wheel", "Tried to manage wheel group")
1139
992
  end
@@ -1176,9 +1029,6 @@ inttest = 27
1176
1029
  assert_nothing_raised("Unknown parameter threw an exception") do
1177
1030
  config.parse(file)
1178
1031
  end
1179
-
1180
- assert(@logs.detect { |l| l.message =~ /unknown configuration/ and l.level == :warning },
1181
- "Did not generate warning message")
1182
1032
  end
1183
1033
 
1184
1034
  def test_multiple_interpolations
@@ -1204,45 +1054,53 @@ inttest = 27
1204
1054
  "Did not interpolate curlied variables")
1205
1055
  end
1206
1056
 
1207
- # Discovered from #734
1208
- def test_set_parameter_hash
1209
- @config.setdefaults(:section,
1210
- :unchanged => ["unval", "yay"],
1211
- :normal => ["normalval", "yay"],
1212
- :cliparam => ["clival", "yay"],
1213
- :file => ["/my/file", "yay"]
1214
- )
1215
-
1216
- # Set the cli param using the cli method
1217
- @config.handlearg("--cliparam", "other")
1057
+ # Test to make sure that we can set and get a short name
1058
+ def test_celement_short_name
1059
+ element = nil
1060
+ assert_nothing_raised("Could not create celement") do
1061
+ element = CElement.new :short => "n", :desc => "anything"
1062
+ end
1063
+ assert_equal("n", element.short, "Short value is not retained")
1218
1064
 
1219
- # Make sure missing params just throw warnings, not errors
1220
- assert_nothing_raised("Could not call set_parameter_hash with an invalid option") do
1221
- @config.send(:set_parameter_hash, :missing => "something")
1065
+ assert_raise(ArgumentError,"Allowed multicharactered short names.") do
1066
+ element = CElement.new :short => "no", :desc => "anything"
1222
1067
  end
1068
+ end
1223
1069
 
1224
- # Make sure normal values get set
1225
- assert_nothing_raised("Could not call set_parameter_hash with a normal value") do
1226
- @config.send(:set_parameter_hash, :normal => "abnormal")
1070
+ # Test to make sure that no two celements have the same short name
1071
+ def test_celement_short_name_not_duplicated
1072
+ config = mkconfig
1073
+ assert_nothing_raised("Could not create celement with short name.") do
1074
+ config.setdefaults(:main,
1075
+ :one => { :default => "blah", :desc => "anything", :short => "o" })
1227
1076
  end
1228
- assert_equal("abnormal", @config[:normal], "Value did not get set")
1229
-
1230
- # Make sure cli-set values don't get overridden
1231
- assert_nothing_raised("Could not call set_parameter_hash with an override of a cli value") do
1232
- @config.send(:set_parameter_hash, :cliparam => "something else")
1077
+ assert_nothing_raised("Could not create second celement with short name.") do
1078
+ config.setdefaults(:main,
1079
+ :two => { :default => "blah", :desc => "anything", :short => "i" })
1233
1080
  end
1234
- assert_equal("other", @config[:cliparam], "CLI value was overridden by config value")
1235
-
1236
- # Make sure the meta stuff works
1237
- assert_nothing_raised("Could not call set_parameter_hash with meta info") do
1238
- @config.send(:set_parameter_hash, :file => "/other/file", :_meta => {:file => {:mode => "0755"}})
1081
+ assert_raise(ArgumentError, "Could create second celement with duplicate short name.") do
1082
+ config.setdefaults(:main,
1083
+ :three => { :default => "blah", :desc => "anything", :short => "i" })
1239
1084
  end
1240
- assert_equal("/other/file", @config[:file], "value with meta info was overridden by config value")
1241
- assert_equal("0755", @config.element(:file).mode, "Did not set mode from meta info")
1085
+ # make sure that when the above raises an expection that the config is not included
1086
+ assert(!config.include?(:three), "Invalid configuration item was retained")
1087
+ end
1088
+
1089
+ # Tell getopt which arguments are valid
1090
+ def test_get_getopt_args
1091
+ element = CElement.new :name => "foo", :desc => "anything"
1092
+ assert_equal([["--foo", GetoptLong::REQUIRED_ARGUMENT]], element.getopt_args, "Did not produce appropriate getopt args")
1093
+
1094
+ element.short = "n"
1095
+ assert_equal([["--foo", "-n", GetoptLong::REQUIRED_ARGUMENT]], element.getopt_args, "Did not produce appropriate getopt args")
1096
+
1097
+ element = CBoolean.new :name => "foo", :desc => "anything"
1098
+ assert_equal([["--foo", GetoptLong::NO_ARGUMENT], ["--no-foo", GetoptLong::NO_ARGUMENT]],
1099
+ element.getopt_args, "Did not produce appropriate getopt args")
1242
1100
 
1243
- # And make sure other params are unchanged
1244
- assert_equal("unval", @config[:unchanged], "Unchanged value has somehow changed")
1101
+ element.short = "n"
1102
+ assert_equal([["--foo", "-n", GetoptLong::NO_ARGUMENT],["--no-foo", GetoptLong::NO_ARGUMENT]],
1103
+ element.getopt_args, "Did not produce appropriate getopt args")
1245
1104
  end
1246
1105
  end
1247
1106
 
1248
- # $Id: config.rb 2743 2007-08-04 00:36:47Z luke $