puppet 0.18.4 → 0.22.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (673) hide show
  1. data/CHANGELOG +288 -0
  2. data/README +2 -2
  3. data/Rakefile +78 -5
  4. data/bin/puppet +28 -36
  5. data/bin/puppetca +81 -38
  6. data/bin/puppetd +65 -62
  7. data/bin/puppetdoc +409 -140
  8. data/bin/puppetmasterd +59 -47
  9. data/bin/puppetrun +38 -23
  10. data/conf/freebsd/puppetd +26 -0
  11. data/conf/freebsd/puppetmasterd +26 -0
  12. data/conf/gentoo/conf.d/puppet +5 -0
  13. data/conf/gentoo/conf.d/puppetmaster +12 -0
  14. data/conf/gentoo/init.d/puppet +38 -0
  15. data/conf/gentoo/init.d/puppetmaster +50 -0
  16. data/conf/gentoo/puppet/fileserver.conf +12 -0
  17. data/conf/gentoo/puppet/puppetca.conf +29 -0
  18. data/conf/gentoo/puppet/puppetd.conf +29 -0
  19. data/conf/gentoo/puppet/puppetmasterd.conf +29 -0
  20. data/conf/redhat/client.init +10 -5
  21. data/conf/redhat/client.sysconfig +1 -1
  22. data/conf/redhat/fileserver.conf +2 -2
  23. data/conf/redhat/logrotate +1 -1
  24. data/conf/redhat/no-lockdir.patch +13 -0
  25. data/conf/redhat/puppet.spec +65 -8
  26. data/conf/redhat/puppetd.conf +0 -4
  27. data/conf/redhat/server.init +3 -6
  28. data/conf/solaris/pkginfo +1 -1
  29. data/conf/solaris/smf/svc-puppetd +2 -2
  30. data/conf/suse/client.init +142 -0
  31. data/conf/suse/puppet.spec +221 -0
  32. data/conf/suse/server.init +162 -0
  33. data/examples/code/mac_automount.pp +16 -0
  34. data/examples/root/bin/sleeper +3 -5
  35. data/examples/root/etc/init.d/sleeper +8 -2
  36. data/examples/root/etc/puppet/fileserver.conf +12 -2
  37. data/examples/root/etc/puppet/namespaceauth.conf +20 -0
  38. data/examples/root/etc/puppet/puppetd.conf +4 -0
  39. data/examples/root/etc/puppet/puppetmasterd.conf +6 -9
  40. data/examples/root/etc/puppet/tagmail.conf +1 -0
  41. data/ext/emacs/puppet-mode.el +46 -1
  42. data/ext/logcheck/puppet +15 -0
  43. data/ext/module_puppet +15 -23
  44. data/ext/vim/puppet.vim +4 -2
  45. data/install.rb +2 -1
  46. data/lib/puppet.rb +76 -207
  47. data/lib/puppet/configuration.rb +331 -0
  48. data/lib/puppet/daemon.rb +63 -246
  49. data/lib/puppet/dsl.rb +371 -0
  50. data/lib/puppet/element.rb +8 -26
  51. data/lib/puppet/error.rb +54 -0
  52. data/lib/puppet/event.rb +8 -243
  53. data/lib/puppet/{base64.rb → external/base64.rb} +0 -0
  54. data/lib/puppet/external/event-loop.rb +1 -0
  55. data/lib/puppet/{event-loop → external/event-loop}/better-definers.rb +0 -0
  56. data/lib/puppet/{event-loop → external/event-loop}/event-loop.rb +2 -2
  57. data/lib/puppet/{event-loop → external/event-loop}/signal-system.rb +1 -1
  58. data/lib/puppet/external/gratr.rb +33 -0
  59. data/lib/puppet/external/gratr/adjacency_graph.rb +257 -0
  60. data/lib/puppet/external/gratr/base.rb +34 -0
  61. data/lib/puppet/external/gratr/biconnected.rb +116 -0
  62. data/lib/puppet/external/gratr/chinese_postman.rb +123 -0
  63. data/lib/puppet/external/gratr/common.rb +73 -0
  64. data/lib/puppet/external/gratr/comparability.rb +92 -0
  65. data/lib/puppet/external/gratr/digraph.rb +116 -0
  66. data/lib/puppet/external/gratr/digraph_distance.rb +185 -0
  67. data/lib/puppet/external/gratr/dot.rb +90 -0
  68. data/lib/puppet/external/gratr/edge.rb +145 -0
  69. data/lib/puppet/external/gratr/graph.rb +303 -0
  70. data/lib/puppet/external/gratr/graph_api.rb +83 -0
  71. data/lib/puppet/external/gratr/import.rb +44 -0
  72. data/lib/puppet/external/gratr/labels.rb +90 -0
  73. data/lib/puppet/external/gratr/maximum_flow.rb +64 -0
  74. data/lib/puppet/external/gratr/rdot.rb +327 -0
  75. data/lib/puppet/external/gratr/search.rb +409 -0
  76. data/lib/puppet/external/gratr/strong_components.rb +127 -0
  77. data/lib/puppet/external/gratr/undirected_graph.rb +153 -0
  78. data/lib/puppet/{lock.rb → external/lock.rb} +1 -1
  79. data/lib/puppet/feature/base.rb +20 -0
  80. data/lib/puppet/feature/rails.rb +52 -0
  81. data/lib/puppet/metatype/attributes.rb +719 -0
  82. data/lib/puppet/metatype/closure.rb +111 -0
  83. data/lib/puppet/metatype/container.rb +94 -0
  84. data/lib/puppet/metatype/evaluation.rb +118 -0
  85. data/lib/puppet/metatype/instances.rb +261 -0
  86. data/lib/puppet/metatype/manager.rb +169 -0
  87. data/lib/puppet/metatype/metaparams.rb +409 -0
  88. data/lib/puppet/metatype/providers.rb +260 -0
  89. data/lib/puppet/metatype/relationships.rb +116 -0
  90. data/lib/puppet/metatype/schedules.rb +39 -0
  91. data/lib/puppet/metatype/tags.rb +39 -0
  92. data/lib/puppet/modules.rb +113 -0
  93. data/lib/puppet/network/authconfig.rb +168 -0
  94. data/lib/puppet/network/authorization.rb +84 -0
  95. data/lib/puppet/network/authstore.rb +293 -0
  96. data/lib/puppet/network/client.rb +187 -0
  97. data/lib/puppet/network/client/ca.rb +56 -0
  98. data/lib/puppet/network/client/dipper.rb +81 -0
  99. data/lib/puppet/network/client/file.rb +7 -0
  100. data/lib/puppet/network/client/logger.rb +6 -0
  101. data/lib/puppet/network/client/master.rb +644 -0
  102. data/lib/puppet/{client → network/client}/proxy.rb +3 -3
  103. data/lib/puppet/{client/reporter.rb → network/client/report.rb} +4 -7
  104. data/lib/puppet/{client/pelement.rb → network/client/resource.rb} +6 -19
  105. data/lib/puppet/network/client/runner.rb +13 -0
  106. data/lib/puppet/network/client/status.rb +5 -0
  107. data/lib/puppet/network/client_request.rb +32 -0
  108. data/lib/puppet/network/handler.rb +33 -0
  109. data/lib/puppet/{server → network/handler}/ca.rb +5 -6
  110. data/lib/puppet/network/handler/filebucket.rb +180 -0
  111. data/lib/puppet/{server → network/handler}/fileserver.rb +277 -219
  112. data/lib/puppet/{server → network/handler}/logger.rb +3 -5
  113. data/lib/puppet/{server → network/handler}/master.rb +42 -8
  114. data/lib/puppet/network/handler/report.rb +158 -0
  115. data/lib/puppet/network/handler/resource.rb +190 -0
  116. data/lib/puppet/{server → network/handler}/runner.rb +17 -18
  117. data/lib/puppet/network/handler/status.rb +13 -0
  118. data/lib/puppet/network/rights.rb +74 -0
  119. data/lib/puppet/network/server.rb +5 -0
  120. data/lib/puppet/network/server/mongrel.rb +138 -0
  121. data/lib/puppet/network/server/webrick.rb +153 -0
  122. data/lib/puppet/network/xmlrpc/client.rb +129 -0
  123. data/lib/puppet/network/xmlrpc/processor.rb +91 -0
  124. data/lib/puppet/network/xmlrpc/server.rb +20 -0
  125. data/lib/puppet/network/xmlrpc/webrick_servlet.rb +121 -0
  126. data/lib/puppet/parameter.rb +390 -346
  127. data/lib/puppet/parser/ast.rb +116 -147
  128. data/lib/puppet/parser/ast/astarray.rb +17 -33
  129. data/lib/puppet/parser/ast/branch.rb +2 -0
  130. data/lib/puppet/parser/ast/caseopt.rb +7 -12
  131. data/lib/puppet/parser/ast/casestatement.rb +23 -32
  132. data/lib/puppet/parser/ast/collection.rb +19 -80
  133. data/lib/puppet/parser/ast/collexpr.rb +81 -0
  134. data/lib/puppet/parser/ast/component.rb +160 -89
  135. data/lib/puppet/parser/ast/else.rb +30 -0
  136. data/lib/puppet/parser/ast/function.rb +9 -2
  137. data/lib/puppet/parser/ast/hostclass.rb +47 -131
  138. data/lib/puppet/parser/ast/ifstatement.rb +43 -0
  139. data/lib/puppet/parser/ast/leaf.rb +10 -21
  140. data/lib/puppet/parser/ast/node.rb +32 -79
  141. data/lib/puppet/parser/ast/resourcedef.rb +222 -0
  142. data/lib/puppet/parser/ast/{typedefaults.rb → resourcedefaults.rb} +10 -16
  143. data/lib/puppet/parser/ast/resourceoverride.rb +62 -0
  144. data/lib/puppet/parser/ast/{objectparam.rb → resourceparam.rb} +12 -6
  145. data/lib/puppet/parser/ast/resourceref.rb +44 -0
  146. data/lib/puppet/parser/ast/selector.rb +16 -8
  147. data/lib/puppet/parser/ast/tag.rb +3 -1
  148. data/lib/puppet/parser/ast/vardef.rb +8 -12
  149. data/lib/puppet/parser/collector.rb +181 -0
  150. data/lib/puppet/parser/functions.rb +191 -36
  151. data/lib/puppet/parser/interpreter.rb +802 -380
  152. data/lib/puppet/parser/lexer.rb +86 -19
  153. data/lib/puppet/parser/parser.rb +1123 -960
  154. data/lib/puppet/parser/resource.rb +353 -0
  155. data/lib/puppet/parser/resource/param.rb +57 -0
  156. data/lib/puppet/parser/resource/reference.rb +71 -0
  157. data/lib/puppet/parser/scope.rb +573 -1000
  158. data/lib/puppet/parser/templatewrapper.rb +54 -0
  159. data/lib/puppet/pgraph.rb +208 -0
  160. data/lib/puppet/propertychange.rb +143 -0
  161. data/lib/puppet/provider.rb +302 -0
  162. data/lib/puppet/provider/cron/crontab.rb +187 -0
  163. data/lib/puppet/provider/group/groupadd.rb +29 -0
  164. data/lib/puppet/provider/group/netinfo.rb +12 -0
  165. data/lib/puppet/provider/group/pw.rb +31 -0
  166. data/lib/puppet/provider/host/netinfo.rb +18 -0
  167. data/lib/puppet/provider/host/parsed.rb +73 -0
  168. data/lib/puppet/provider/mount.rb +57 -0
  169. data/lib/puppet/provider/mount/netinfo.rb +38 -0
  170. data/lib/puppet/provider/mount/parsed.rb +37 -0
  171. data/lib/puppet/provider/nameservice.rb +344 -0
  172. data/lib/puppet/provider/nameservice/netinfo.rb +210 -0
  173. data/lib/puppet/provider/nameservice/objectadd.rb +45 -0
  174. data/lib/puppet/provider/nameservice/pw.rb +22 -0
  175. data/lib/puppet/provider/package/apple.rb +53 -0
  176. data/lib/puppet/provider/package/apt.rb +119 -0
  177. data/lib/puppet/provider/package/aptitude.rb +30 -0
  178. data/lib/puppet/provider/package/aptrpm.rb +79 -0
  179. data/lib/puppet/provider/package/blastwave.rb +114 -0
  180. data/lib/puppet/provider/package/darwinport.rb +88 -0
  181. data/lib/puppet/provider/package/dpkg.rb +109 -0
  182. data/lib/puppet/provider/package/freebsd.rb +43 -0
  183. data/lib/puppet/provider/package/gem.rb +104 -0
  184. data/lib/puppet/provider/package/openbsd.rb +93 -0
  185. data/lib/puppet/provider/package/pkgdmg.rb +119 -0
  186. data/lib/puppet/provider/package/portage.rb +112 -0
  187. data/lib/puppet/provider/package/ports.rb +94 -0
  188. data/lib/puppet/provider/package/rpm.rb +125 -0
  189. data/lib/puppet/provider/package/rug.rb +53 -0
  190. data/lib/puppet/provider/package/sun.rb +168 -0
  191. data/lib/puppet/provider/package/sunfreeware.rb +9 -0
  192. data/lib/puppet/provider/package/up2date.rb +45 -0
  193. data/lib/puppet/provider/package/yum.rb +54 -0
  194. data/lib/puppet/provider/parsedfile.rb +342 -0
  195. data/lib/puppet/provider/port/parsed.rb +174 -0
  196. data/lib/puppet/provider/service/base.rb +136 -0
  197. data/lib/puppet/provider/service/debian.rb +32 -0
  198. data/lib/puppet/provider/service/gentoo.rb +49 -0
  199. data/lib/puppet/{type → provider}/service/init.rb +42 -40
  200. data/lib/puppet/provider/service/redhat.rb +59 -0
  201. data/lib/puppet/{type → provider}/service/smf.rb +24 -13
  202. data/lib/puppet/provider/sshkey/parsed.rb +36 -0
  203. data/lib/puppet/provider/user/netinfo.rb +106 -0
  204. data/lib/puppet/provider/user/pw.rb +41 -0
  205. data/lib/puppet/provider/user/useradd.rb +67 -0
  206. data/lib/puppet/provider/zone/solaris.rb +208 -0
  207. data/lib/puppet/rails.rb +102 -66
  208. data/lib/puppet/rails/database/001_add_indexes.rb +38 -0
  209. data/lib/puppet/rails/database/schema.rb +89 -0
  210. data/lib/puppet/rails/external/tagging/acts_as_taggable.rb +62 -0
  211. data/lib/puppet/rails/external/tagging/init.rb +5 -0
  212. data/lib/puppet/rails/external/tagging/tag.rb +50 -0
  213. data/lib/puppet/rails/external/tagging/tagging.rb +12 -0
  214. data/lib/puppet/rails/fact_name.rb +7 -0
  215. data/lib/puppet/rails/fact_value.rb +5 -0
  216. data/lib/puppet/rails/host.rb +95 -46
  217. data/lib/puppet/rails/param_name.rb +28 -0
  218. data/lib/puppet/rails/param_value.rb +5 -0
  219. data/lib/puppet/rails/puppet_class.rb +9 -0
  220. data/lib/puppet/rails/resource.rb +95 -0
  221. data/lib/puppet/rails/source_file.rb +5 -0
  222. data/lib/puppet/relationship.rb +63 -0
  223. data/lib/puppet/reports/log.rb +14 -0
  224. data/lib/puppet/reports/rrdgraph.rb +114 -10
  225. data/lib/puppet/reports/store.rb +64 -0
  226. data/lib/puppet/reports/tagmail.rb +144 -71
  227. data/lib/puppet/sslcertificates.rb +38 -5
  228. data/lib/puppet/sslcertificates/ca.rb +142 -37
  229. data/lib/puppet/sslcertificates/certificate.rb +3 -3
  230. data/lib/puppet/sslcertificates/inventory.rb +53 -0
  231. data/lib/puppet/sslcertificates/support.rb +128 -0
  232. data/lib/puppet/transaction.rb +568 -189
  233. data/lib/puppet/transaction/report.rb +14 -3
  234. data/lib/puppet/transportable.rb +18 -10
  235. data/lib/puppet/type.rb +279 -2299
  236. data/lib/puppet/type/component.rb +63 -63
  237. data/lib/puppet/type/cron.rb +294 -710
  238. data/lib/puppet/type/exec.rb +185 -129
  239. data/lib/puppet/type/group.rb +38 -89
  240. data/lib/puppet/type/host.rb +110 -0
  241. data/lib/puppet/type/mount.rb +189 -0
  242. data/lib/puppet/type/notify.rb +47 -0
  243. data/lib/puppet/type/package.rb +129 -257
  244. data/lib/puppet/type/parsedtype.rb +172 -297
  245. data/lib/puppet/type/pfile.rb +540 -319
  246. data/lib/puppet/type/pfile/checksum.rb +103 -76
  247. data/lib/puppet/type/pfile/content.rb +16 -10
  248. data/lib/puppet/type/pfile/ensure.rb +52 -34
  249. data/lib/puppet/type/pfile/group.rb +25 -18
  250. data/lib/puppet/type/pfile/mode.rb +7 -4
  251. data/lib/puppet/type/pfile/{uid.rb → owner.rb} +21 -17
  252. data/lib/puppet/type/pfile/source.rb +119 -124
  253. data/lib/puppet/type/pfile/target.rb +29 -45
  254. data/lib/puppet/type/pfile/type.rb +2 -2
  255. data/lib/puppet/type/pfilebucket.rb +18 -14
  256. data/lib/puppet/type/port.rb +121 -0
  257. data/lib/puppet/type/property.rb +530 -0
  258. data/lib/puppet/type/resources.rb +150 -0
  259. data/lib/puppet/type/schedule.rb +38 -22
  260. data/lib/puppet/type/service.rb +70 -326
  261. data/lib/puppet/type/sshkey.rb +76 -0
  262. data/lib/puppet/type/tidy.rb +197 -97
  263. data/lib/puppet/type/user.rb +107 -183
  264. data/lib/puppet/type/yumrepo.rb +53 -34
  265. data/lib/puppet/type/zone.rb +55 -208
  266. data/lib/puppet/util.rb +239 -201
  267. data/lib/puppet/util/autoload.rb +107 -0
  268. data/lib/puppet/util/classgen.rb +208 -0
  269. data/lib/puppet/{config.rb → util/config.rb} +102 -54
  270. data/lib/puppet/util/docs.rb +104 -0
  271. data/lib/puppet/util/errors.rb +55 -0
  272. data/lib/puppet/util/execution.rb +22 -0
  273. data/lib/puppet/util/feature.rb +76 -0
  274. data/lib/puppet/util/fileparsing.rb +380 -0
  275. data/lib/puppet/util/filetype.rb +300 -0
  276. data/lib/puppet/util/graph.rb +39 -0
  277. data/lib/puppet/util/inifile.rb +209 -0
  278. data/lib/puppet/util/loadedfile.rb +71 -0
  279. data/lib/puppet/util/log.rb +549 -0
  280. data/lib/puppet/util/logging.rb +20 -0
  281. data/lib/puppet/util/metaid.rb +22 -0
  282. data/lib/puppet/util/methodhelper.rb +37 -0
  283. data/lib/puppet/util/metric.rb +160 -0
  284. data/lib/puppet/util/package.rb +31 -0
  285. data/lib/puppet/util/pidlock.rb +68 -0
  286. data/lib/puppet/util/plist.rb +24 -0
  287. data/lib/puppet/util/plist/generator.rb +226 -0
  288. data/lib/puppet/util/plist/parser.rb +227 -0
  289. data/lib/puppet/util/posix.rb +87 -0
  290. data/lib/puppet/util/provider_features.rb +170 -0
  291. data/lib/puppet/util/rails/collection_merger.rb +42 -0
  292. data/lib/puppet/util/storage.rb +103 -0
  293. data/lib/puppet/util/subclass_loader.rb +83 -0
  294. data/lib/puppet/util/suidmanager.rb +86 -0
  295. data/lib/puppet/util/variables.rb +39 -0
  296. data/lib/puppet/util/warnings.rb +15 -0
  297. data/test/Rakefile +97 -0
  298. data/test/certmgr/ca.rb +81 -0
  299. data/test/certmgr/certmgr.rb +77 -50
  300. data/test/certmgr/inventory.rb +79 -0
  301. data/test/certmgr/support.rb +81 -0
  302. data/test/executables/filebucket.rb +49 -0
  303. data/test/executables/puppetbin.rb +28 -12
  304. data/test/executables/puppetca.rb +75 -54
  305. data/test/executables/puppetd.rb +10 -13
  306. data/test/executables/puppetmasterd.rb +12 -17
  307. data/test/executables/puppetmodule.rb +18 -17
  308. data/test/language/ast.rb +242 -798
  309. data/test/language/ast/casestatement.rb +104 -0
  310. data/test/language/ast/component.rb +133 -0
  311. data/test/language/ast/hostclass.rb +162 -0
  312. data/test/language/ast/selector.rb +62 -0
  313. data/test/language/ast/variable.rb +31 -0
  314. data/test/language/collector.rb +369 -0
  315. data/test/language/functions.rb +305 -18
  316. data/test/language/interpreter.rb +894 -125
  317. data/test/language/lexer.rb +98 -12
  318. data/test/language/node.rb +37 -53
  319. data/test/language/parser.rb +455 -148
  320. data/test/language/resource.rb +535 -0
  321. data/test/language/scope.rb +451 -561
  322. data/test/language/snippets.rb +101 -111
  323. data/test/language/transportable.rb +6 -8
  324. data/test/lib/mocha.rb +19 -0
  325. data/test/lib/mocha/any_instance_method.rb +35 -0
  326. data/test/lib/mocha/auto_verify.rb +113 -0
  327. data/test/lib/mocha/central.rb +35 -0
  328. data/test/lib/mocha/class_method.rb +62 -0
  329. data/test/lib/mocha/expectation.rb +295 -0
  330. data/test/lib/mocha/expectation_error.rb +6 -0
  331. data/test/lib/mocha/infinite_range.rb +27 -0
  332. data/test/lib/mocha/inspect.rb +37 -0
  333. data/test/lib/mocha/instance_method.rb +8 -0
  334. data/test/lib/mocha/metaclass.rb +7 -0
  335. data/test/lib/mocha/mock.rb +20 -0
  336. data/test/lib/mocha/mock_methods.rb +122 -0
  337. data/test/lib/mocha/object.rb +100 -0
  338. data/test/lib/mocha/pretty_parameters.rb +28 -0
  339. data/test/lib/mocha/setup_and_teardown.rb +23 -0
  340. data/test/lib/mocha/standalone.rb +30 -0
  341. data/test/lib/mocha/test_case_adapter.rb +49 -0
  342. data/test/lib/mocha_standalone.rb +2 -0
  343. data/test/lib/puppettest.rb +294 -0
  344. data/test/lib/puppettest/certificates.rb +61 -0
  345. data/test/lib/puppettest/exetest.rb +123 -0
  346. data/test/lib/puppettest/fakes.rb +194 -0
  347. data/test/lib/puppettest/fileparsing.rb +33 -0
  348. data/test/lib/puppettest/filetesting.rb +231 -0
  349. data/test/lib/puppettest/graph.rb +41 -0
  350. data/test/lib/puppettest/parsertesting.rb +392 -0
  351. data/test/lib/puppettest/railstesting.rb +56 -0
  352. data/test/lib/puppettest/reporttesting.rb +19 -0
  353. data/test/lib/puppettest/resourcetesting.rb +73 -0
  354. data/test/lib/puppettest/servertest.rb +72 -0
  355. data/test/lib/puppettest/support.rb +8 -0
  356. data/test/lib/puppettest/support/assertions.rb +101 -0
  357. data/test/lib/puppettest/support/helpers.rb +23 -0
  358. data/test/lib/puppettest/support/resources.rb +37 -0
  359. data/test/lib/puppettest/support/utils.rb +160 -0
  360. data/test/lib/puppettest/testcase.rb +48 -0
  361. data/test/lib/rake/puppet_test_loader.rb +17 -0
  362. data/test/lib/rake/puppet_testtask.rb +17 -0
  363. data/test/lib/spec.rb +8 -0
  364. data/test/lib/spec/callback.rb +11 -0
  365. data/test/lib/spec/callback/callback_container.rb +60 -0
  366. data/test/lib/spec/callback/extensions/module.rb +24 -0
  367. data/test/lib/spec/callback/extensions/object.rb +37 -0
  368. data/test/lib/spec/deprecated.rb +3 -0
  369. data/test/lib/spec/expectations.rb +59 -0
  370. data/test/lib/spec/expectations/differs/default.rb +62 -0
  371. data/test/lib/spec/expectations/errors.rb +6 -0
  372. data/test/lib/spec/expectations/extensions.rb +3 -0
  373. data/test/lib/spec/expectations/extensions/object.rb +109 -0
  374. data/test/lib/spec/expectations/extensions/proc.rb +57 -0
  375. data/test/lib/spec/expectations/extensions/string_and_symbol.rb +17 -0
  376. data/test/lib/spec/expectations/handler.rb +47 -0
  377. data/test/lib/spec/expectations/should.rb +5 -0
  378. data/test/lib/spec/expectations/should/base.rb +64 -0
  379. data/test/lib/spec/expectations/should/change.rb +69 -0
  380. data/test/lib/spec/expectations/should/have.rb +128 -0
  381. data/test/lib/spec/expectations/should/not.rb +74 -0
  382. data/test/lib/spec/expectations/should/should.rb +81 -0
  383. data/test/lib/spec/expectations/sugar.rb +47 -0
  384. data/test/lib/spec/matchers.rb +160 -0
  385. data/test/lib/spec/matchers/be.rb +161 -0
  386. data/test/lib/spec/matchers/be_close.rb +37 -0
  387. data/test/lib/spec/matchers/change.rb +120 -0
  388. data/test/lib/spec/matchers/eql.rb +43 -0
  389. data/test/lib/spec/matchers/equal.rb +43 -0
  390. data/test/lib/spec/matchers/has.rb +44 -0
  391. data/test/lib/spec/matchers/have.rb +140 -0
  392. data/test/lib/spec/matchers/include.rb +50 -0
  393. data/test/lib/spec/matchers/match.rb +41 -0
  394. data/test/lib/spec/matchers/raise_error.rb +100 -0
  395. data/test/lib/spec/matchers/respond_to.rb +35 -0
  396. data/test/lib/spec/matchers/satisfy.rb +47 -0
  397. data/test/lib/spec/matchers/throw_symbol.rb +75 -0
  398. data/test/lib/spec/mocks.rb +232 -0
  399. data/test/lib/spec/mocks/argument_expectation.rb +132 -0
  400. data/test/lib/spec/mocks/error_generator.rb +85 -0
  401. data/test/lib/spec/mocks/errors.rb +10 -0
  402. data/test/lib/spec/mocks/extensions/object.rb +3 -0
  403. data/test/lib/spec/mocks/message_expectation.rb +231 -0
  404. data/test/lib/spec/mocks/methods.rb +40 -0
  405. data/test/lib/spec/mocks/mock.rb +26 -0
  406. data/test/lib/spec/mocks/mock_handler.rb +166 -0
  407. data/test/lib/spec/mocks/order_group.rb +29 -0
  408. data/test/lib/spec/rake/spectask.rb +173 -0
  409. data/test/lib/spec/rake/verify_rcov.rb +47 -0
  410. data/test/lib/spec/runner.rb +132 -0
  411. data/test/lib/spec/runner/backtrace_tweaker.rb +55 -0
  412. data/test/lib/spec/runner/command_line.rb +34 -0
  413. data/test/lib/spec/runner/context.rb +154 -0
  414. data/test/lib/spec/runner/context_eval.rb +142 -0
  415. data/test/lib/spec/runner/context_runner.rb +55 -0
  416. data/test/lib/spec/runner/drb_command_line.rb +21 -0
  417. data/test/lib/spec/runner/execution_context.rb +17 -0
  418. data/test/lib/spec/runner/extensions/kernel.rb +17 -0
  419. data/test/lib/spec/runner/extensions/object.rb +32 -0
  420. data/test/lib/spec/runner/formatter.rb +5 -0
  421. data/test/lib/spec/runner/formatter/base_text_formatter.rb +118 -0
  422. data/test/lib/spec/runner/formatter/html_formatter.rb +219 -0
  423. data/test/lib/spec/runner/formatter/progress_bar_formatter.rb +27 -0
  424. data/test/lib/spec/runner/formatter/rdoc_formatter.rb +22 -0
  425. data/test/lib/spec/runner/formatter/specdoc_formatter.rb +23 -0
  426. data/test/lib/spec/runner/heckle_runner.rb +71 -0
  427. data/test/lib/spec/runner/heckle_runner_win.rb +10 -0
  428. data/test/lib/spec/runner/option_parser.rb +224 -0
  429. data/test/lib/spec/runner/reporter.rb +105 -0
  430. data/test/lib/spec/runner/spec_matcher.rb +25 -0
  431. data/test/lib/spec/runner/spec_parser.rb +41 -0
  432. data/test/lib/spec/runner/spec_should_raise_handler.rb +74 -0
  433. data/test/lib/spec/runner/specification.rb +114 -0
  434. data/test/lib/spec/translator.rb +87 -0
  435. data/test/lib/spec/version.rb +30 -0
  436. data/test/lib/stubba.rb +2 -0
  437. data/test/network/authconfig.rb +72 -0
  438. data/test/network/authorization.rb +138 -0
  439. data/test/network/authstore.rb +450 -0
  440. data/test/network/client/ca.rb +38 -0
  441. data/test/{client → network/client}/client.rb +107 -24
  442. data/test/network/client/dipper.rb +35 -0
  443. data/test/network/client/master.rb +627 -0
  444. data/test/{client/pelement.rb → network/client/resource.rb} +13 -29
  445. data/test/network/client_request.rb +39 -0
  446. data/test/network/daemon.rb +71 -0
  447. data/test/{server → network/handler}/bucket.rb +103 -27
  448. data/test/{server → network/handler}/ca.rb +14 -19
  449. data/test/{server → network/handler}/fileserver.rb +443 -68
  450. data/test/network/handler/handler.rb +64 -0
  451. data/test/{server → network/handler}/logger.rb +26 -26
  452. data/test/network/handler/master.rb +352 -0
  453. data/test/network/handler/report.rb +185 -0
  454. data/test/{server/pelement.rb → network/handler/resource.rb} +25 -38
  455. data/test/{server → network/handler}/runner.rb +17 -16
  456. data/test/network/rights.rb +38 -0
  457. data/test/network/server/webrick.rb +140 -0
  458. data/test/network/xmlrpc/client.rb +68 -0
  459. data/test/network/xmlrpc/processor.rb +80 -0
  460. data/test/network/xmlrpc/server.rb +28 -0
  461. data/test/network/xmlrpc/webrick_servlet.rb +26 -0
  462. data/test/other/dsl.rb +218 -0
  463. data/test/other/events.rb +22 -15
  464. data/test/other/overrides.rb +9 -14
  465. data/test/other/pgraph.rb +289 -0
  466. data/test/other/propertychange.rb +142 -0
  467. data/test/other/provider.rb +162 -0
  468. data/test/other/puppet.rb +63 -10
  469. data/test/other/relationship.rb +74 -0
  470. data/test/other/relationships.rb +199 -123
  471. data/test/other/report.rb +152 -23
  472. data/test/other/transactions.rb +824 -78
  473. data/test/puppet/conffiles.rb +16 -11
  474. data/test/puppet/defaults.rb +7 -10
  475. data/test/puppet/{error.rb → errortest.rb} +5 -8
  476. data/test/puppet/modules.rb +58 -0
  477. data/test/puppet/tc_suidmanager.rb +107 -0
  478. data/test/rails/host.rb +177 -0
  479. data/test/rails/rails.rb +27 -0
  480. data/test/rails/railsparameter.rb +62 -0
  481. data/test/rails/railsresource.rb +100 -0
  482. data/test/ral/manager/attributes.rb +296 -0
  483. data/test/ral/manager/manager.rb +55 -0
  484. data/test/ral/manager/provider.rb +54 -0
  485. data/test/ral/manager/type.rb +837 -0
  486. data/test/ral/providers/cron/crontab.rb +346 -0
  487. data/test/ral/providers/group.rb +252 -0
  488. data/test/ral/providers/host/netinfo.rb +58 -0
  489. data/test/ral/providers/host/parsed.rb +226 -0
  490. data/test/ral/providers/mount/netinfo.rb +80 -0
  491. data/test/ral/providers/mount/parsed.rb +223 -0
  492. data/test/ral/providers/nameservice.rb +33 -0
  493. data/test/ral/providers/package.rb +253 -0
  494. data/test/ral/providers/package/apt.rb +89 -0
  495. data/test/ral/providers/package/aptitude.rb +69 -0
  496. data/test/ral/providers/package/aptrpm.rb +89 -0
  497. data/test/ral/providers/package/dpkg.rb +64 -0
  498. data/test/ral/providers/parsedfile.rb +668 -0
  499. data/test/ral/providers/parsedport.rb +233 -0
  500. data/test/ral/providers/provider.rb +423 -0
  501. data/test/{types → ral/providers}/service.rb +20 -121
  502. data/test/ral/providers/service/base.rb +75 -0
  503. data/test/ral/providers/sshkey/parsed.rb +111 -0
  504. data/test/ral/providers/user.rb +567 -0
  505. data/test/ral/providers/user/useradd.rb +250 -0
  506. data/test/ral/types/basic.rb +90 -0
  507. data/test/ral/types/component.rb +113 -0
  508. data/test/ral/types/cron.rb +480 -0
  509. data/test/{types → ral/types}/exec.rb +278 -82
  510. data/test/ral/types/file.rb +1799 -0
  511. data/test/ral/types/file/target.rb +363 -0
  512. data/test/{types → ral/types}/filebucket.rb +15 -17
  513. data/test/{types → ral/types}/fileignoresource.rb +9 -15
  514. data/test/ral/types/filesources.rb +1046 -0
  515. data/test/ral/types/group.rb +169 -0
  516. data/test/ral/types/host.rb +155 -0
  517. data/test/ral/types/mount.rb +312 -0
  518. data/test/ral/types/package.rb +85 -0
  519. data/test/ral/types/parameter.rb +172 -0
  520. data/test/ral/types/port.rb +148 -0
  521. data/test/ral/types/property.rb +343 -0
  522. data/test/ral/types/resources.rb +221 -0
  523. data/test/{types → ral/types}/schedule.rb +34 -12
  524. data/test/ral/types/service.rb +37 -0
  525. data/test/{types → ral/types}/sshkey.rb +75 -65
  526. data/test/ral/types/tidy.rb +240 -0
  527. data/test/ral/types/user.rb +493 -0
  528. data/test/{types → ral/types}/yumrepo.rb +7 -11
  529. data/test/{types → ral/types}/zone.rb +45 -45
  530. data/test/tagging/tagging.rb +17 -26
  531. data/test/util/autoload.rb +130 -0
  532. data/test/util/classgen.rb +227 -0
  533. data/test/{other → util}/config.rb +373 -113
  534. data/test/util/execution.rb +34 -0
  535. data/test/util/features.rb +94 -0
  536. data/test/util/fileparsing.rb +677 -0
  537. data/test/{other → util}/filetype.rb +9 -12
  538. data/test/util/graph.rb +108 -0
  539. data/test/{other → util}/inifile.rb +24 -11
  540. data/test/util/loadedfile.rb +106 -0
  541. data/test/{other → util}/log.rb +96 -50
  542. data/test/{other → util}/metrics.rb +7 -17
  543. data/test/util/package.rb +27 -0
  544. data/test/util/pidlock.rb +126 -0
  545. data/test/util/posixtest.rb +173 -0
  546. data/test/util/storage.rb +123 -0
  547. data/test/util/subclass_loader.rb +100 -0
  548. data/test/util/utiltest.rb +368 -0
  549. metadata +449 -169
  550. data/examples/code/classing +0 -35
  551. data/examples/code/failers/badclassnoparam +0 -10
  552. data/examples/code/failers/badclassparam +0 -10
  553. data/examples/code/failers/badcompnoparam +0 -9
  554. data/examples/code/failers/badcompparam +0 -9
  555. data/examples/code/failers/badtypeparam +0 -3
  556. data/examples/code/failers/noobjectrvalue +0 -1
  557. data/examples/code/snippets/aliastest.pp +0 -16
  558. data/examples/code/snippets/argumentdefaults +0 -14
  559. data/examples/code/snippets/casestatement.pp +0 -58
  560. data/examples/code/snippets/classheirarchy.pp +0 -15
  561. data/examples/code/snippets/classincludes.pp +0 -17
  562. data/examples/code/snippets/classpathtest +0 -11
  563. data/examples/code/snippets/componentmetaparams.pp +0 -11
  564. data/examples/code/snippets/deepclassheirarchy.pp +0 -23
  565. data/examples/code/snippets/defineoverrides.pp +0 -17
  566. data/examples/code/snippets/dirchmod +0 -19
  567. data/examples/code/snippets/emptyclass.pp +0 -9
  568. data/examples/code/snippets/emptyexec.pp +0 -3
  569. data/examples/code/snippets/failmissingexecpath.pp +0 -13
  570. data/examples/code/snippets/falsevalues.pp +0 -3
  571. data/examples/code/snippets/filecreate +0 -11
  572. data/examples/code/snippets/implicititeration +0 -15
  573. data/examples/code/snippets/multipleinstances +0 -7
  574. data/examples/code/snippets/namevartest +0 -9
  575. data/examples/code/snippets/scopetest +0 -13
  576. data/examples/code/snippets/selectorvalues.pp +0 -42
  577. data/examples/code/snippets/simpledefaults +0 -5
  578. data/examples/code/snippets/simpleselector +0 -38
  579. data/examples/code/snippets/singleary.pp +0 -19
  580. data/examples/code/snippets/singlequote.pp +0 -11
  581. data/examples/code/snippets/singleselector.pp +0 -22
  582. data/examples/code/snippets/tag.pp +0 -9
  583. data/examples/code/snippets/tagged.pp +0 -35
  584. data/lib/puppet/client.rb +0 -177
  585. data/lib/puppet/client/ca.rb +0 -21
  586. data/lib/puppet/client/dipper.rb +0 -76
  587. data/lib/puppet/client/file.rb +0 -20
  588. data/lib/puppet/client/log.rb +0 -17
  589. data/lib/puppet/client/master.rb +0 -531
  590. data/lib/puppet/client/runner.rb +0 -17
  591. data/lib/puppet/client/status.rb +0 -7
  592. data/lib/puppet/event-loop.rb +0 -1
  593. data/lib/puppet/filetype.rb +0 -308
  594. data/lib/puppet/inifile.rb +0 -201
  595. data/lib/puppet/log.rb +0 -524
  596. data/lib/puppet/metric.rb +0 -132
  597. data/lib/puppet/networkclient.rb +0 -175
  598. data/lib/puppet/parsedfile.rb +0 -58
  599. data/lib/puppet/parser/ast/classdef.rb +0 -79
  600. data/lib/puppet/parser/ast/compdef.rb +0 -75
  601. data/lib/puppet/parser/ast/nodedef.rb +0 -73
  602. data/lib/puppet/parser/ast/objectdef.rb +0 -284
  603. data/lib/puppet/parser/ast/objectref.rb +0 -77
  604. data/lib/puppet/rails/database.rb +0 -40
  605. data/lib/puppet/rails/rails_object.rb +0 -42
  606. data/lib/puppet/rails/rails_parameter.rb +0 -5
  607. data/lib/puppet/server.rb +0 -196
  608. data/lib/puppet/server/authconfig.rb +0 -177
  609. data/lib/puppet/server/authstore.rb +0 -226
  610. data/lib/puppet/server/filebucket.rb +0 -155
  611. data/lib/puppet/server/pelement.rb +0 -188
  612. data/lib/puppet/server/report.rb +0 -184
  613. data/lib/puppet/server/rights.rb +0 -78
  614. data/lib/puppet/server/servlet.rb +0 -274
  615. data/lib/puppet/statechange.rb +0 -129
  616. data/lib/puppet/storage.rb +0 -98
  617. data/lib/puppet/type/nameservice.rb +0 -264
  618. data/lib/puppet/type/nameservice/netinfo.rb +0 -232
  619. data/lib/puppet/type/nameservice/objectadd.rb +0 -146
  620. data/lib/puppet/type/nameservice/posix.rb +0 -12
  621. data/lib/puppet/type/nameservice/pw.rb +0 -107
  622. data/lib/puppet/type/package/apple.rb +0 -41
  623. data/lib/puppet/type/package/apt.rb +0 -107
  624. data/lib/puppet/type/package/blastwave.rb +0 -136
  625. data/lib/puppet/type/package/darwinport.rb +0 -97
  626. data/lib/puppet/type/package/dpkg.rb +0 -113
  627. data/lib/puppet/type/package/freebsd.rb +0 -19
  628. data/lib/puppet/type/package/gem.rb +0 -119
  629. data/lib/puppet/type/package/openbsd.rb +0 -112
  630. data/lib/puppet/type/package/ports.rb +0 -103
  631. data/lib/puppet/type/package/rpm.rb +0 -121
  632. data/lib/puppet/type/package/sun.rb +0 -174
  633. data/lib/puppet/type/package/sunfreeware.rb +0 -7
  634. data/lib/puppet/type/package/yum.rb +0 -52
  635. data/lib/puppet/type/parsedtype/host.rb +0 -144
  636. data/lib/puppet/type/parsedtype/mount.rb +0 -271
  637. data/lib/puppet/type/parsedtype/port.rb +0 -261
  638. data/lib/puppet/type/parsedtype/sshkey.rb +0 -123
  639. data/lib/puppet/type/service/base.rb +0 -12
  640. data/lib/puppet/type/service/debian.rb +0 -46
  641. data/lib/puppet/type/service/redhat.rb +0 -38
  642. data/lib/puppet/type/state.rb +0 -393
  643. data/lib/puppet/type/symlink.rb +0 -186
  644. data/test/client/master.rb +0 -207
  645. data/test/language/rails.rb +0 -105
  646. data/test/other/parsedfile.rb +0 -58
  647. data/test/other/storage.rb +0 -100
  648. data/test/puppet/utiltest.rb +0 -299
  649. data/test/puppettest.rb +0 -1170
  650. data/test/server/authconfig.rb +0 -56
  651. data/test/server/authstore.rb +0 -218
  652. data/test/server/master.rb +0 -201
  653. data/test/server/report.rb +0 -93
  654. data/test/server/rights.rb +0 -41
  655. data/test/server/server.rb +0 -152
  656. data/test/test +0 -61
  657. data/test/types/basic.rb +0 -117
  658. data/test/types/component.rb +0 -298
  659. data/test/types/cron.rb +0 -718
  660. data/test/types/file.rb +0 -1314
  661. data/test/types/filesources.rb +0 -590
  662. data/test/types/group.rb +0 -323
  663. data/test/types/host.rb +0 -186
  664. data/test/types/mount.rb +0 -294
  665. data/test/types/package.rb +0 -538
  666. data/test/types/parameter.rb +0 -107
  667. data/test/types/port.rb +0 -201
  668. data/test/types/query.rb +0 -101
  669. data/test/types/state.rb +0 -92
  670. data/test/types/symlink.rb +0 -120
  671. data/test/types/tidy.rb +0 -102
  672. data/test/types/type.rb +0 -469
  673. data/test/types/user.rb +0 -563
@@ -1,16 +1,13 @@
1
- if __FILE__ == $0
2
- $:.unshift '..'
3
- $:.unshift '../../lib'
4
- $puppetbase = "../.."
5
- end
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/
6
4
 
7
5
  require 'puppet'
8
- require 'puppet/filetype'
6
+ require 'puppet/util/filetype'
9
7
  require 'puppettest'
10
- require 'test/unit'
11
8
 
12
9
  class TestFileType < Test::Unit::TestCase
13
- include TestPuppet
10
+ include PuppetTest
14
11
 
15
12
  def test_flat
16
13
  obj = nil
@@ -18,7 +15,7 @@ class TestFileType < Test::Unit::TestCase
18
15
  type = nil
19
16
 
20
17
  assert_nothing_raised {
21
- type = Puppet::FileType.filetype(:flat)
18
+ type = Puppet::Util::FileType.filetype(:flat)
22
19
  }
23
20
 
24
21
  assert(type, "Could not retrieve flat filetype")
@@ -62,7 +59,7 @@ class TestFileType < Test::Unit::TestCase
62
59
  type = nil
63
60
 
64
61
  assert_nothing_raised {
65
- type = Puppet::FileType.filetype(:netinfo)
62
+ type = Puppet::Util::FileType.filetype(:netinfo)
66
63
  }
67
64
 
68
65
  assert(type, "Could not retrieve netinfo filetype")
@@ -77,7 +74,7 @@ class TestFileType < Test::Unit::TestCase
77
74
 
78
75
  array = nil
79
76
 
80
- assert_nothing_raised {
77
+ assert_nothing_raised("Failed to parse %s map" % map) {
81
78
  array = obj.to_array
82
79
  }
83
80
 
@@ -92,4 +89,4 @@ class TestFileType < Test::Unit::TestCase
92
89
  end
93
90
  end
94
91
 
95
- # $Id: filetype.rb 1068 2006-04-04 23:13:55Z luke $
92
+ # $Id: filetype.rb 2259 2007-03-06 19:03:05Z luke $
@@ -0,0 +1,108 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Created by Luke Kanies on 2006-11-16.
4
+ # Copyright (c) 2006. All rights reserved.
5
+
6
+ $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/
7
+
8
+ require 'puppettest'
9
+ require 'puppettest/graph'
10
+ require 'puppet/util/graph'
11
+
12
+ class TestUtilGraph < Test::Unit::TestCase
13
+ include PuppetTest
14
+ include PuppetTest::Graph
15
+
16
+ def test_to_graph
17
+ children = %w{a b c d}
18
+ list = Container.new("yay", children)
19
+
20
+ graph = nil
21
+ assert_nothing_raised do
22
+ graph = list.to_graph
23
+ end
24
+
25
+ assert(graph.vertices.include?(list), "wtf?")
26
+
27
+ ([list] + children).each do |thing|
28
+ assert(graph.vertex?(thing), "%s is not a vertex" % thing)
29
+ end
30
+ children.each do |child|
31
+ assert(graph.edge?(list, child),
32
+ "%s/%s was not added as an edge" % ["yay", child])
33
+ end
34
+ end
35
+
36
+ def test_recursive_to_graph
37
+ one, two, three, middle, top = build_tree
38
+
39
+ graph = nil
40
+ assert_nothing_raised do
41
+ graph = top.to_graph
42
+ end
43
+
44
+ (%w{a b c d e f g h} + [one, two, middle, top]).each do |v|
45
+ assert(graph.vertex?(v), "%s is not a vertex" % v)
46
+ end
47
+
48
+ [one, two, middle, top].each do |con|
49
+ con.each do |child|
50
+ assert(graph.edge?(con, child), "%s/%s is not an edge" % [con, child])
51
+ end
52
+ end
53
+
54
+ # Now make sure we correctly retrieve the leaves from each container
55
+ {top => %w{a b c d e f g h i j},
56
+ one => %w{a b},
57
+ two => %w{c d},
58
+ three => %w{i j},
59
+ middle => %w{c d e f}}.each do |cont, list|
60
+ leaves = nil
61
+ assert_nothing_raised do
62
+ leaves = graph.leaves(cont)
63
+ end
64
+ leaves = leaves.sort
65
+ assert_equal(list.sort, leaves.sort,
66
+ "Got incorrect leaf list for %s" % cont.name)
67
+ %w{a b c d e f g h}.each do |letter|
68
+ unless list.include?(letter)
69
+ assert(!leaves.include?(letter),
70
+ "incorrectly got %s as a leaf of %s" %
71
+ [letter, cont.to_s])
72
+ end
73
+ end
74
+ end
75
+ end
76
+
77
+ def test_to_graph_with_block
78
+ middle = Container.new "middle", ["c", "d", 3, 4]
79
+ top = Container.new "top", ["a", "b", middle, 1, 2]
80
+
81
+ graph = nil
82
+ assert_nothing_raised() {
83
+ graph = top.to_graph { |c| c.is_a?(String) or c.is_a?(Container) }
84
+ }
85
+
86
+ %w{a b c d}.each do |child|
87
+ assert(graph.vertex?(child), "%s was not added as a vertex" % child)
88
+ end
89
+
90
+ [1, 2, 3, 4].each do |child|
91
+ assert(! graph.vertex?(child), "%s is a vertex" % child)
92
+ end
93
+ end
94
+
95
+ def test_cyclic_graphs
96
+ one = Container.new "one", %w{a b}
97
+ two = Container.new "two", %w{c d}
98
+
99
+ one.push(two)
100
+ two.push(one)
101
+
102
+ assert_raise(Puppet::Error, "did not fail on cyclic graph") do
103
+ one.to_graph
104
+ end
105
+ end
106
+ end
107
+
108
+ # $Id: graph.rb 2009 2007-01-01 21:08:45Z luke $
@@ -1,20 +1,17 @@
1
- if __FILE__ == $0
2
- $:.unshift '..'
3
- $:.unshift '../../lib'
4
- $puppetbase = "../.."
5
- end
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/
6
4
 
7
5
  require 'puppet'
8
- require 'puppet/inifile'
6
+ require 'puppet/util/inifile'
9
7
  require 'puppettest'
10
- require 'test/unit'
11
8
 
12
9
  class TestFileType < Test::Unit::TestCase
13
- include TestPuppet
10
+ include PuppetTest
14
11
 
15
12
  def setup
16
13
  super
17
- @file = Puppet::IniConfig::File.new
14
+ @file = Puppet::Util::IniConfig::File.new
18
15
  end
19
16
 
20
17
  def teardown
@@ -23,12 +20,12 @@ class TestFileType < Test::Unit::TestCase
23
20
  end
24
21
 
25
22
  def test_simple
26
- fname = mkfile("[main]\nkey1=value1\n# Comment\nkey2=value2")
23
+ fname = mkfile("[main]\nkey1=value1\n# Comment\nkey2=value=2")
27
24
  assert_nothing_raised {
28
25
  @file.read(fname)
29
26
  }
30
27
  s = get_section('main')
31
- assert_entries(s, { 'key1' => 'value1', 'key2' => 'value2' })
28
+ assert_entries(s, { 'key1' => 'value1', 'key2' => 'value=2' })
32
29
  @file['main']['key2'] = 'newvalue2'
33
30
  @file['main']['key3'] = 'newvalue3'
34
31
  text = s.format
@@ -83,6 +80,7 @@ class TestFileType < Test::Unit::TestCase
83
80
  end
84
81
 
85
82
  def test_whitespace
83
+ # FIXME: Should we really accept keys preceded by whitespace ?
86
84
  fname = mkfile("[main]\n key1=v1\nkey2 =v2\n")
87
85
  assert_nothing_raised {
88
86
  @file.read(fname)
@@ -90,6 +88,21 @@ class TestFileType < Test::Unit::TestCase
90
88
  s = get_section('main')
91
89
  assert_equal('v1', s['key1'])
92
90
  assert_equal('v2', s['key2'])
91
+ # FIXME: We are losing whitespace around keys
92
+ assert_equal("[main]\nkey1=v1\nkey2=v2\n", s.format)
93
+ end
94
+
95
+ def test_continuation
96
+ cont = "[main]\nkey1=v1\nkey2=v2a\n v2b\nkey3=\n\tv3a\n v3b\n"
97
+ fname = mkfile(cont)
98
+ assert_nothing_raised {
99
+ @file.read(fname)
100
+ }
101
+ s = get_section('main')
102
+ assert_equal('v1', s['key1'])
103
+ assert_equal("v2a\n v2b", s['key2'])
104
+ assert_equal("\n\tv3a\n v3b", s['key3'])
105
+ assert_equal(cont, s.format)
93
106
  end
94
107
 
95
108
  def assert_entries(section, hash)
@@ -0,0 +1,106 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/
4
+
5
+ require 'puppet'
6
+ require 'puppet/util/loadedfile'
7
+ require 'puppettest'
8
+
9
+ class TestLoadedFile < Test::Unit::TestCase
10
+ include PuppetTest
11
+ def test_file
12
+ Puppet[:filetimeout] = 0
13
+ file = nil
14
+ path = tempfile()
15
+ File.open(path, "w") { |f| f.puts "yayness" }
16
+ assert_nothing_raised {
17
+ file = Puppet::Util::LoadedFile.new(path)
18
+ }
19
+
20
+ assert(!file.changed?, "File incorrectly returned changed")
21
+
22
+ File.open(path, "w") { |f| f.puts "booness" }
23
+ #file.tstamp = File.stat(path).ctime - 5
24
+ new = File.stat(path).ctime - 5
25
+ file.tstamp = new
26
+
27
+ assert(file.changed?, "File did not catch change")
28
+ end
29
+
30
+ def test_timeout
31
+ Puppet[:filetimeout] = 50
32
+ path = tempfile()
33
+
34
+ File.open(path, "w") { |f| f.puts "yay" }
35
+ file = nil
36
+ assert_nothing_raised {
37
+ file = Puppet::Util::LoadedFile.new(path)
38
+ }
39
+
40
+ assert_nothing_raised {
41
+ assert(!file.changed?,
42
+ "File thought it changed immediately")
43
+ }
44
+
45
+ sleep 1
46
+ File.open(path, "w") { |f| f.puts "yay" }
47
+ #file.tstamp = File.stat(path).ctime - 5
48
+
49
+ assert(!file.changed?,
50
+ "File was marked as changed too soon")
51
+
52
+ Puppet[:filetimeout] = 0
53
+ assert(file.changed?,
54
+ "File was not marked as changed soon enough")
55
+ end
56
+
57
+ def test_stamp
58
+ file = tempfile()
59
+ File.open(file, "w") { |f| f.puts "" }
60
+ obj = nil
61
+ assert_nothing_raised {
62
+ obj = Puppet::Util::LoadedFile.new(file)
63
+ }
64
+
65
+ # Make sure we don't refresh
66
+ Puppet[:filetimeout] = 50
67
+
68
+ stamp = File.stat(file).ctime
69
+
70
+ assert_equal(stamp, obj.stamp)
71
+
72
+ sleep 1
73
+ # Now change the file, and make sure the stamp doesn't update yet
74
+ File.open(file, "w") { |f| f.puts "" }
75
+ assert_equal(stamp, obj.stamp,
76
+ "File prematurely refreshed")
77
+
78
+ Puppet[:filetimeout] = 0
79
+ assert_equal(File.stat(file).ctime, obj.stamp,
80
+ "File did not refresh")
81
+ end
82
+
83
+ # Testing #394.
84
+ def test_changed_missing_file
85
+ file = tempfile()
86
+ File.open(file, "w") { |f| f.puts "" }
87
+ obj = nil
88
+ assert_nothing_raised {
89
+ obj = Puppet::Util::LoadedFile.new(file)
90
+ }
91
+ Puppet[:filetimeout] = -10
92
+
93
+ assert_nothing_raised {
94
+ obj.changed?
95
+ }
96
+
97
+ # Now remove the file
98
+ File.unlink(file)
99
+
100
+ assert_nothing_raised("removed file threw an error") {
101
+ assert(obj.changed?, "File was not considered changed when missing")
102
+ }
103
+ end
104
+ end
105
+
106
+ # $Id: loadedfile.rb 2181 2007-02-08 05:11:49Z luke $
@@ -1,37 +1,32 @@
1
- if __FILE__ == $0
2
- $:.unshift '..'
3
- $:.unshift '../../lib'
4
- $puppetbase = "../.."
5
- end
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift("../lib").unshift("../../lib") if __FILE__ =~ /\.rb$/
6
4
 
7
5
  require 'puppet'
8
- require 'puppet/log'
6
+ require 'puppet/util/log'
9
7
  require 'puppettest'
10
- require 'test/unit'
11
-
12
- # $Id: log.rb 1315 2006-06-27 05:15:51Z luke $
13
8
 
14
9
  class TestLog < Test::Unit::TestCase
15
- include TestPuppet
10
+ include PuppetTest
16
11
 
17
12
  def setup
18
13
  super
19
- @oldloglevel = Puppet::Log.level
20
- Puppet::Log.close
14
+ @oldloglevel = Puppet::Util::Log.level
15
+ Puppet::Util::Log.close
21
16
  end
22
17
 
23
18
  def teardown
24
19
  super
25
- Puppet::Log.close
26
- Puppet::Log.level = @oldloglevel
27
- Puppet::Log.newdestination(:console)
20
+ Puppet::Util::Log.close
21
+ Puppet::Util::Log.level = @oldloglevel
22
+ Puppet::Util::Log.newdestination(:console)
28
23
  end
29
24
 
30
25
  def getlevels
31
26
  levels = nil
32
27
  assert_nothing_raised() {
33
28
  levels = []
34
- Puppet::Log.eachlevel { |level| levels << level }
29
+ Puppet::Util::Log.eachlevel { |level| levels << level }
35
30
  }
36
31
  # Don't test the top levels; too annoying
37
32
  return levels.reject { |level| level == :emerg or level == :crit }
@@ -41,7 +36,7 @@ class TestLog < Test::Unit::TestCase
41
36
  levels.collect { |level|
42
37
  next if level == :alert
43
38
  assert_nothing_raised() {
44
- Puppet::Log.new(
39
+ Puppet::Util::Log.new(
45
40
  :level => level,
46
41
  :source => "Test",
47
42
  :message => "Unit test for %s" % level
@@ -53,16 +48,16 @@ class TestLog < Test::Unit::TestCase
53
48
  def test_logfile
54
49
  fact = nil
55
50
  levels = nil
56
- Puppet::Log.level = :debug
51
+ Puppet::Util::Log.level = :debug
57
52
  levels = getlevels
58
53
  logfile = tempfile()
59
54
  fact = nil
60
55
  assert_nothing_raised() {
61
- Puppet::Log.newdestination(logfile)
56
+ Puppet::Util::Log.newdestination(logfile)
62
57
  }
63
58
  msgs = mkmsgs(levels)
64
59
  assert(msgs.length == levels.length)
65
- Puppet::Log.close
60
+ Puppet::Util::Log.close
66
61
  count = 0
67
62
 
68
63
  assert(FileTest.exists?(logfile), "Did not create logfile")
@@ -83,27 +78,16 @@ class TestLog < Test::Unit::TestCase
83
78
  }
84
79
  }
85
80
  assert_nothing_raised() {
86
- Puppet::Log.newdestination("syslog")
81
+ Puppet::Util::Log.newdestination("syslog")
87
82
  }
88
83
  # there's really no way to verify that we got syslog messages...
89
84
  msgs = mkmsgs(levels)
90
85
  assert(msgs.length == levels.length)
91
86
  end
92
87
 
93
- def test_consolelog
94
- fact = nil
95
- levels = getlevels
96
- assert_nothing_raised() {
97
- Puppet::Log.newdestination(:console)
98
- }
99
- msgs = mkmsgs(levels)
100
- assert(msgs.length == levels.length)
101
- Puppet::Log.close
102
- end
103
-
104
88
  def test_levelmethods
105
89
  assert_nothing_raised() {
106
- Puppet::Log.newdestination("/dev/null")
90
+ Puppet::Util::Log.newdestination("/dev/null")
107
91
  }
108
92
  getlevels.each { |level|
109
93
  assert_nothing_raised() {
@@ -113,18 +97,18 @@ class TestLog < Test::Unit::TestCase
113
97
  end
114
98
 
115
99
  def test_output
116
- Puppet::Log.level = :notice
117
- assert(Puppet.err("This is an error").is_a?(Puppet::Log))
100
+ Puppet::Util::Log.level = :notice
101
+ assert(Puppet.err("This is an error").is_a?(Puppet::Util::Log))
118
102
  assert(Puppet.debug("This is debugging").nil?)
119
- Puppet::Log.level = :debug
120
- assert(Puppet.err("This is an error").is_a?(Puppet::Log))
121
- assert(Puppet.debug("This is debugging").is_a?(Puppet::Log))
103
+ Puppet::Util::Log.level = :debug
104
+ assert(Puppet.err("This is an error").is_a?(Puppet::Util::Log))
105
+ assert(Puppet.debug("This is debugging").is_a?(Puppet::Util::Log))
122
106
  end
123
107
 
124
108
  def test_creatingdirs
125
109
  dir = tempfile()
126
110
  file = File.join(dir, "logfile")
127
- Puppet::Log.newdestination file
111
+ Puppet::Util::Log.newdestination file
128
112
  Puppet.info "testing logs"
129
113
  assert(FileTest.directory?(dir))
130
114
  assert(FileTest.file?(file))
@@ -136,31 +120,44 @@ class TestLog < Test::Unit::TestCase
136
120
 
137
121
  file = Puppet.type(:file).create(
138
122
  :path => path,
139
- :check => [:owner, :group, :mode, :checksum]
123
+ :check => [:owner, :group, :mode, :checksum],
124
+ :ensure => :file
140
125
  )
141
126
  file.tags = %w{this is a test}
142
127
 
128
+ property = file.property(:ensure)
129
+ assert(property, "Did not get property")
143
130
  log = nil
144
131
  assert_nothing_raised {
145
- log = Puppet::Log.new(
132
+ log = Puppet::Util::Log.new(
146
133
  :level => :info,
147
- :source => file,
134
+ :source => property,
148
135
  :message => "A test message"
149
136
  )
150
137
  }
151
138
 
152
- assert(log.tags, "Got no tags")
139
+ # Now yaml and de-yaml it, and test again
140
+ yamllog = YAML.load(YAML.dump(log))
141
+
142
+ {:log => log, :yaml => yamllog}.each do |type, msg|
143
+ assert(msg.tags, "Got no tags")
144
+
145
+ msg.tags.each do |tag|
146
+ assert(msg.tagged?(tag), "Was not tagged with %s" % tag)
147
+ end
148
+
149
+ assert_equal(msg.tags, property.tags, "Tags were not equal")
150
+ assert_equal(msg.source, property.path, "Source was not set correctly")
151
+ end
153
152
 
154
- assert_equal(log.tags, file.tags, "Tags were not equal")
155
- assert_equal(log.source, file.path, "Source was not set correctly")
156
153
  end
157
154
 
158
155
  # Verify that we can pass strings that match printf args
159
156
  def test_percentlogs
160
- Puppet::Log.newdestination :syslog
157
+ Puppet::Util::Log.newdestination :syslog
161
158
 
162
159
  assert_nothing_raised {
163
- Puppet::Log.new(
160
+ Puppet::Util::Log.new(
164
161
  :level => :info,
165
162
  :message => "A message with %s in it"
166
163
  )
@@ -175,7 +172,7 @@ class TestLog < Test::Unit::TestCase
175
172
  :check => %w{owner group}
176
173
  )
177
174
  assert_nothing_raised {
178
- msg = Puppet::Log.new(:level => :info, :message => "This is a message")
175
+ msg = Puppet::Util::Log.new(:level => :info, :message => "This is a message")
179
176
  }
180
177
  assert_nothing_raised {
181
178
  msg.source = file
@@ -209,7 +206,7 @@ class TestLog < Test::Unit::TestCase
209
206
  def test_destination_matching
210
207
  dest = nil
211
208
  assert_nothing_raised {
212
- dest = Puppet::Log.newdesttype("Destine") do
209
+ dest = Puppet::Util::Log.newdesttype("Destine") do
213
210
  def handle(msg)
214
211
  puts msg
215
212
  end
@@ -224,6 +221,55 @@ class TestLog < Test::Unit::TestCase
224
221
  dest.match(:yayness)
225
222
  }
226
223
  assert(dest.match("Yayness"), "Did not match yayness")
227
- Puppet::Log.close(dest)
224
+ Puppet::Util::Log.close(dest)
225
+ end
226
+
227
+ def test_autoflush
228
+ file = tempfile
229
+ Puppet::Util::Log.close(:console)
230
+ Puppet::Util::Log.newdestination(file)
231
+ Puppet.warning "A test"
232
+ assert(File.read(file) !~ /A test/,
233
+ "File defualted to autoflush")
234
+ Puppet::Util::Log.flush
235
+ assert(File.read(file) =~ /A test/,
236
+ "File did not flush")
237
+ Puppet::Util::Log.close(file)
238
+
239
+ # Now try one with autoflush enabled
240
+ Puppet[:autoflush] = true
241
+ file = tempfile
242
+ Puppet::Util::Log.newdestination(file)
243
+ Puppet.warning "A test"
244
+ assert(File.read(file) =~ /A test/,
245
+ "File did not autoflush")
246
+ Puppet::Util::Log.close(file)
247
+ end
248
+
249
+ def test_reopen
250
+ Puppet[:autoflush] = true
251
+ file = tempfile
252
+ Puppet::Util::Log.close(:console)
253
+ Puppet::Util::Log.newdestination(file)
254
+ Puppet.warning "A test"
255
+ assert(File.read(file) =~ /A test/,
256
+ "File did not flush")
257
+ # Rename the file
258
+ newfile = file + ".old"
259
+ File.rename(file, newfile)
260
+
261
+ # Send another log
262
+ Puppet.warning "Another test"
263
+ assert(File.read(newfile) =~ /Another test/,
264
+ "File did not rename")
265
+
266
+ # Now reopen the log
267
+ Puppet::Util::Log.reopen
268
+ Puppet.warning "Reopen test"
269
+ assert(File.read(file) =~ /Reopen test/,
270
+ "File did not reopen")
271
+ Puppet::Util::Log.close(file)
228
272
  end
229
273
  end
274
+
275
+ # $Id: log.rb 2259 2007-03-06 19:03:05Z luke $