puppet 0.18.4 → 0.22.4

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 (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,120 +0,0 @@
1
- if __FILE__ == $0
2
- $:.unshift '..'
3
- $:.unshift '../../lib'
4
- $puppetbase = "../../../../language/trunk"
5
- end
6
-
7
- require 'puppet'
8
- require 'puppettest'
9
- require 'test/unit'
10
-
11
- # $Id: symlink.rb 1256 2006-06-13 15:57:06Z luke $
12
-
13
- class TestSymlink < Test::Unit::TestCase
14
- include FileTesting
15
- def mktmpfile
16
- # because luke's home directory is on nfs, it can't be used for testing
17
- # as root
18
- tmpfile = tempfile()
19
- File.open(tmpfile, "w") { |f| f.puts rand(100) }
20
- @@tmpfiles.push tmpfile
21
- return tmpfile
22
- end
23
-
24
- def mktmpdir
25
- dir = File.join(tmpdir(), "puppetlinkdir")
26
- unless FileTest.exists?(dir)
27
- Dir.mkdir(dir)
28
- end
29
- @@tmpfiles.push dir
30
- return dir
31
- end
32
-
33
- def tmplink
34
- link = File.join(tmpdir(), "puppetlinktest")
35
- @@tmpfiles.push link
36
- return link
37
- end
38
-
39
- def newlink(hash = {})
40
- hash[:name] = tmplink()
41
- unless hash.include?(:ensure)
42
- hash[:ensure] = mktmpfile()
43
- end
44
-
45
- link = Puppet.type(:symlink).create(hash)
46
- return link
47
- end
48
-
49
- def test_target
50
- link = nil
51
- file = mktmpfile()
52
- assert_nothing_raised() {
53
- link = newlink()
54
- }
55
- assert_nothing_raised() {
56
- link.retrieve
57
- }
58
- # we might already be in sync
59
- assert(!link.insync?())
60
- assert_apply(link)
61
- assert_nothing_raised() {
62
- link.retrieve
63
- }
64
- assert(link.insync?())
65
- end
66
-
67
- def test_recursion
68
- source = mktmpdir()
69
- FileUtils.cd(source) {
70
- mkranddirsandfiles()
71
- }
72
-
73
- link = nil
74
- assert_nothing_raised {
75
- link = newlink(:ensure => source, :recurse => true)
76
- }
77
- comp = newcomp(link)
78
- cycle(comp)
79
-
80
- path = link.name
81
- assert(FileTest.directory?(path), "Did not make %s" % path)
82
- list = file_list(path)
83
- FileUtils.cd(path) {
84
- list.each { |file|
85
- unless FileTest.directory?(file)
86
- assert(FileTest.symlink?(file), "file %s is not a symlink" %
87
- file)
88
- target = File.readlink(file)
89
- assert_equal(target,File.join(source,file.sub(/^\.\//,'')))
90
- end
91
- }
92
- }
93
- end
94
-
95
- def disabled_test_createdrecursion
96
- source = tempfile()
97
- file = File.join(source, "file")
98
- dest = tempfile()
99
- link = File.join(dest, "file")
100
-
101
- objects = []
102
- objects << Puppet.type(:file).create(
103
- :path => source,
104
- :ensure => "directory"
105
- )
106
- objects << Puppet.type(:file).create(
107
- :path => file,
108
- :ensure => "file"
109
- )
110
- objects << Puppet.type(:symlink).create(
111
- :path => dest,
112
- :ensure => source,
113
- :recurse => true
114
- )
115
-
116
- assert_apply(*objects)
117
-
118
- assert(FileTest.symlink?(link), "Link was not created")
119
- end
120
- end
@@ -1,102 +0,0 @@
1
- if __FILE__ == $0
2
- $:.unshift '..'
3
- $:.unshift '../../lib'
4
- $puppetbase = "../../../../language/trunk"
5
- end
6
-
7
- require 'puppet'
8
- require 'puppettest'
9
- require 'test/unit'
10
-
11
- # $Id: tidy.rb 984 2006-03-06 18:07:41Z luke $
12
-
13
- class TestTidy < Test::Unit::TestCase
14
- include FileTesting
15
- def mktmpfile
16
- # because luke's home directory is on nfs, it can't be used for testing
17
- # as root
18
- tmpfile = tempfile()
19
- File.open(tmpfile, "w") { |f| f.puts rand(100) }
20
- @@tmpfiles.push tmpfile
21
- return tmpfile
22
- end
23
-
24
- def mktmpdir
25
- dir = File.join(tmpdir(), "puppetlinkdir")
26
- unless FileTest.exists?(dir)
27
- Dir.mkdir(dir)
28
- end
29
- @@tmpfiles.push dir
30
- return dir
31
- end
32
-
33
- def test_simpletidy
34
- dir = mktmpdir
35
- file = File.join(dir, "tidytesting")
36
- File.open(file, "w") { |f|
37
- f.puts rand(100)
38
- }
39
-
40
- tidy = Puppet.type(:tidy).create(
41
- :name => dir,
42
- :size => "1b",
43
- :recurse => true
44
- )
45
- comp = newcomp("tidytesting", tidy)
46
- comp.finalize
47
-
48
- trans = nil
49
- assert_events([:file_tidied], comp)
50
- assert(!FileTest.exists?(file), "Tidied file still exists")
51
- end
52
-
53
- def test_tidydirs
54
- dir = mktmpdir
55
- file = File.join(dir, "tidytesting")
56
- File.open(file, "w") { |f|
57
- f.puts rand(100)
58
- }
59
-
60
- tidy = Puppet.type(:tidy).create(
61
- :name => dir,
62
- :size => "1b",
63
- :age => "1s",
64
- :rmdirs => true,
65
- :recurse => true
66
- )
67
-
68
-
69
- sleep(2)
70
- assert_events([:file_tidied, :file_tidied], tidy)
71
-
72
- assert(!FileTest.exists?(file), "Tidied %s still exists" % file)
73
- assert(!FileTest.exists?(dir), "Tidied %s still exists" % dir)
74
-
75
- end
76
-
77
- def disabled_test_recursion
78
- source = mktmpdir()
79
- FileUtils.cd(source) {
80
- mkranddirsandfiles()
81
- }
82
-
83
- link = nil
84
- assert_nothing_raised {
85
- link = newlink(:target => source, :recurse => true)
86
- }
87
- comp = newcomp("linktest",link)
88
- cycle(comp)
89
-
90
- path = link.name
91
- list = file_list(path)
92
- FileUtils.cd(path) {
93
- list.each { |file|
94
- unless FileTest.directory?(file)
95
- assert(FileTest.symlink?(file))
96
- target = File.readlink(file)
97
- assert_equal(target,File.join(source,file.sub(/^\.\//,'')))
98
- end
99
- }
100
- }
101
- end
102
- end
@@ -1,469 +0,0 @@
1
- if __FILE__ == $0
2
- $:.unshift '..'
3
- $:.unshift '../../lib'
4
- $puppetbase = "../.."
5
- end
6
-
7
- require 'puppet/type'
8
- require 'puppettest'
9
- require 'test/unit'
10
-
11
- class TestType < Test::Unit::TestCase
12
- include TestPuppet
13
- def test_typemethods
14
- assert_nothing_raised() {
15
- Puppet::Type.buildstatehash
16
- }
17
-
18
- Puppet::Type.eachtype { |type|
19
- name = nil
20
- assert_nothing_raised("Searching for name for %s caused failure" %
21
- type.to_s) {
22
- name = type.name
23
- }
24
-
25
- assert(name, "Could not find name for %s" % type.to_s)
26
-
27
- assert_equal(
28
- type,
29
- Puppet::Type.type(name),
30
- "Failed to retrieve %s by name" % name
31
- )
32
-
33
- # Skip types with no parameters or valid states
34
- #unless ! type.parameters.empty? or ! type.validstates.empty?
35
- # next
36
- #end
37
-
38
- assert(
39
- type.namevar,
40
- "Failed to retrieve namevar for %s" % name
41
- )
42
-
43
- assert_not_nil(
44
- type.states,
45
- "States for %s are nil" % name
46
- )
47
-
48
- assert_not_nil(
49
- type.validstates,
50
- "Valid states for %s are nil" % name
51
- )
52
- }
53
- end
54
-
55
- def test_stringvssymbols
56
- file = nil
57
- path = tempfile()
58
- assert_nothing_raised() {
59
- system("rm -f %s" % path)
60
- file = Puppet.type(:file).create(
61
- :path => path,
62
- :ensure => "file",
63
- :recurse => true,
64
- :checksum => "md5"
65
- )
66
- }
67
- assert_nothing_raised() {
68
- file.retrieve
69
- }
70
- assert_nothing_raised() {
71
- file.evaluate
72
- }
73
- Puppet.type(:file).clear
74
- assert_nothing_raised() {
75
- system("rm -f %s" % path)
76
- file = Puppet.type(:file).create(
77
- "path" => path,
78
- "ensure" => "file",
79
- "recurse" => true,
80
- "checksum" => "md5"
81
- )
82
- }
83
- assert_nothing_raised() {
84
- file.retrieve
85
- }
86
- assert_nothing_raised() {
87
- file[:path]
88
- }
89
- assert_nothing_raised() {
90
- file["path"]
91
- }
92
- assert_nothing_raised() {
93
- file[:recurse]
94
- }
95
- assert_nothing_raised() {
96
- file["recurse"]
97
- }
98
- assert_nothing_raised() {
99
- file.evaluate
100
- }
101
- end
102
-
103
- # This was supposed to test objects whose name was a state, but that
104
- # fundamentally doesn't make much sense, and we now don't have any such
105
- # types.
106
- def disabled_test_nameasstate
107
- # currently groups are the only objects with the namevar as a state
108
- group = nil
109
- assert_nothing_raised {
110
- group = Puppet.type(:group).create(
111
- :name => "testing"
112
- )
113
- }
114
-
115
- assert_equal("testing", group.name, "Could not retrieve name")
116
- end
117
-
118
- # Verify that values get merged correctly
119
- def test_mergestatevalues
120
- file = tempfile()
121
-
122
- # Create the first version
123
- assert_nothing_raised {
124
- Puppet.type(:file).create(
125
- :path => file,
126
- :owner => ["root", "bin"]
127
- )
128
- }
129
-
130
- # Make sure no other statements are allowed
131
- assert_raise(Puppet::Error) {
132
- Puppet.type(:file).create(
133
- :path => file,
134
- :group => "root"
135
- )
136
- }
137
- end
138
-
139
- # Verify that aliasing works
140
- def test_aliasing
141
- file = tempfile()
142
-
143
- baseobj = nil
144
- assert_nothing_raised {
145
- baseobj = Puppet.type(:file).create(
146
- :name => file,
147
- :ensure => "file",
148
- :alias => ["funtest"]
149
- )
150
- }
151
-
152
- # Verify we adding ourselves as an alias isn't an error.
153
- assert_nothing_raised {
154
- baseobj[:alias] = file
155
- }
156
-
157
- assert_instance_of(Puppet.type(:file), Puppet.type(:file)["funtest"],
158
- "Could not retrieve alias")
159
-
160
- end
161
-
162
- # Verify that requirements don't depend on file order
163
- def test_prereqorder
164
- one = tempfile()
165
- two = tempfile()
166
-
167
- twoobj = nil
168
- oneobj = nil
169
- assert_nothing_raised("Could not create prereq that doesn't exist yet") {
170
- twoobj = Puppet.type(:file).create(
171
- :name => two,
172
- :require => [:file, one]
173
- )
174
- }
175
-
176
- assert_nothing_raised {
177
- oneobj = Puppet.type(:file).create(
178
- :name => one
179
- )
180
- }
181
-
182
- comp = newcomp(twoobj, oneobj)
183
-
184
- assert_nothing_raised {
185
- comp.finalize
186
- }
187
-
188
-
189
- assert(twoobj.requires?(oneobj), "Requirement was not created")
190
- end
191
-
192
- # Verify that names are aliases, not equivalents
193
- def test_nameasalias
194
- file = nil
195
- # Create the parent dir, so we make sure autorequiring the parent dir works
196
- parentdir = tempfile()
197
- dir = Puppet.type(:file).create(
198
- :name => parentdir,
199
- :ensure => "directory"
200
- )
201
- assert_apply(dir)
202
- path = File.join(parentdir, "subdir")
203
- name = "a test file"
204
- transport = Puppet::TransObject.new(name, "file")
205
- transport[:path] = path
206
- transport[:ensure] = "file"
207
- assert_nothing_raised {
208
- file = transport.to_type
209
- }
210
-
211
- assert_equal(path, file[:path])
212
- assert_equal([name], file[:alias])
213
-
214
- assert_nothing_raised {
215
- file.retrieve
216
- }
217
-
218
- assert_apply(file)
219
-
220
- assert(Puppet.type(:file)[name], "Could not look up object by name")
221
- end
222
-
223
- def test_ensuredefault
224
- user = nil
225
- assert_nothing_raised {
226
- user = Puppet.type(:user).create(
227
- :name => "pptestAA",
228
- :check => [:uid]
229
- )
230
- }
231
-
232
- # make sure we don't get :ensure for unmanaged files
233
- assert(! user.state(:ensure), "User got an ensure state")
234
-
235
- assert_nothing_raised {
236
- user = Puppet.type(:user).create(
237
- :name => "pptestAA",
238
- :comment => "Testingness"
239
- )
240
- }
241
- # but make sure it gets added once we manage them
242
- assert(user.state(:ensure), "User did not add ensure state")
243
-
244
- assert_nothing_raised {
245
- user = Puppet.type(:user).create(
246
- :name => "pptestBB",
247
- :comment => "A fake user"
248
- )
249
- }
250
-
251
- # and make sure managed objects start with them
252
- assert(user.state(:ensure), "User did not get an ensure state")
253
- end
254
-
255
- # Make sure removal works
256
- def test_remove
257
- objects = {}
258
- top = Puppet.type(:component).create(:name => "top")
259
- objects[top.class] = top
260
-
261
- base = tempfile()
262
-
263
- # now make a two-tier, 5 piece tree
264
- %w{a b}.each do |letter|
265
- name = "comp%s" % letter
266
- comp = Puppet.type(:component).create(:name => name)
267
- top.push comp
268
- objects[comp.class] = comp
269
-
270
- 5.times do |i|
271
- file = base + letter + i.to_s
272
-
273
- obj = Puppet.type(:file).create(:name => file, :ensure => "file")
274
-
275
- comp.push obj
276
- objects[obj.class] = obj
277
- end
278
- end
279
-
280
- assert_nothing_raised do
281
- top.remove
282
- end
283
-
284
- objects.each do |klass, obj|
285
- assert_nil(klass[obj.name], "object %s was not removed" % obj.name)
286
- end
287
- end
288
-
289
- # Verify that objects can't be their own children.
290
- def test_object_recursion
291
- comp = Puppet.type(:component).create(:name => "top")
292
-
293
- file = Puppet.type(:file).create(:path => tempfile, :ensure => :file)
294
-
295
- assert_raise(Puppet::DevError) do
296
- comp.push(comp)
297
- end
298
-
299
- assert_raise(Puppet::DevError) do
300
- file.push(file)
301
- end
302
-
303
- assert_raise(Puppet::DevError) do
304
- comp.parent = comp
305
- end
306
-
307
- assert_raise(Puppet::DevError) do
308
- file.parent = file
309
- end
310
-
311
- assert_nothing_raised {
312
- comp.push(file)
313
- }
314
-
315
- assert_raise(Puppet::DevError) do
316
- file.push(comp)
317
- end
318
-
319
- assert_raise(Puppet::DevError) do
320
- comp.parent = file
321
- end
322
- end
323
-
324
- def test_loadplugins
325
- names = %w{loadedplugin1 loadplugin2 loadplugin3}
326
- dirs = []
327
- 3.times { dirs << tempfile() }
328
- # Set plugindest to something random
329
- Puppet[:plugindest] = tempfile()
330
-
331
- Puppet[:pluginpath] = dirs.join(":")
332
-
333
- names.each do |name|
334
- dir = dirs.shift
335
- Dir.mkdir(dir)
336
-
337
- # Create an extra file for later
338
- [name, name + "2ness"].each do |n|
339
- file = File.join(dir, n + ".rb")
340
- File.open(file, "w") do |f|
341
- f.puts %{Puppet::Type.newtype('#{n}') do
342
- newparam(:argument) do
343
- isnamevar
344
- end
345
- end
346
- }
347
- end
348
- end
349
-
350
- assert(Puppet::Type.type(name),
351
- "Did not get loaded plugin")
352
-
353
- assert_nothing_raised {
354
- Puppet::Type.type(name).create(
355
- :name => "myname"
356
- )
357
- }
358
- end
359
-
360
- # Now make sure the plugindest got added to our pluginpath
361
- assert(Puppet[:pluginpath].split(":").include?(Puppet[:plugindest]),
362
- "Plugin dest did not get added to plugin path")
363
-
364
- # Now make sure it works with just a single path, using the extra files
365
- # created above.
366
- Puppet[:pluginpath] = Puppet[:pluginpath].split(":")[0]
367
- assert(Puppet::Type.type("loadedplugin12ness"),
368
- "Did not get loaded plugin")
369
-
370
- end
371
-
372
- def test_newtype_methods
373
- assert_nothing_raised {
374
- Puppet::Type.newtype(:mytype) do
375
- newparam(:wow) do isnamevar end
376
- end
377
- }
378
-
379
- assert(Puppet::Type.respond_to?(:newmytype),
380
- "new<type> method did not get created")
381
-
382
- obj = nil
383
- assert_nothing_raised {
384
- obj = Puppet::Type.newmytype(:wow => "yay")
385
- }
386
-
387
- assert(obj.is_a?(Puppet::Type.type(:mytype)),
388
- "Obj is not the correct type")
389
-
390
- # Now make the type again, just to make sure it works on refreshing.
391
- assert_nothing_raised {
392
- Puppet::Type.newtype(:mytype) do
393
- newparam(:yay) do isnamevar end
394
- end
395
- }
396
-
397
- obj = nil
398
- # Make sure the old class was thrown away and only the new one is sitting
399
- # around.
400
- assert_raise(Puppet::Error) {
401
- obj = Puppet::Type.newmytype(:wow => "yay")
402
- }
403
- assert_nothing_raised {
404
- obj = Puppet::Type.newmytype(:yay => "yay")
405
- }
406
-
407
- # Now make sure that we don't replace existing, non-type methods
408
- parammethod = Puppet::Type.method(:newparam)
409
-
410
- assert_nothing_raised {
411
- Puppet::Type.newtype(:param) do
412
- newparam(:rah) do isnamevar end
413
- end
414
- }
415
- assert_equal(parammethod, Puppet::Type.method(:newparam),
416
- "newparam method got replaced by newtype")
417
- end
418
-
419
- def test_notify_metaparam
420
- file = Puppet::Type.newfile(
421
- :path => tempfile(),
422
- :notify => ["exec", "notifytest"],
423
- :ensure => :file
424
- )
425
-
426
- path = tempfile()
427
- exec = Puppet::Type.newexec(
428
- :name => "notifytest",
429
- :path => "/usr/bin:/bin",
430
- :command => "touch #{path}",
431
- :refreshonly => true
432
- )
433
-
434
- assert_apply(file, exec)
435
-
436
- assert(exec.requires?(file),
437
- "Notify did not correctly set up the requirement chain.")
438
-
439
- assert(FileTest.exists?(path),
440
- "Exec path did not get created.")
441
- end
442
-
443
- def test_before_metaparam
444
- file = Puppet::Type.newfile(
445
- :path => tempfile(),
446
- :before => ["exec", "beforetest"],
447
- :content => "yaytest"
448
- )
449
-
450
- path = tempfile()
451
- exec = Puppet::Type.newexec(
452
- :name => "beforetest",
453
- :command => "/bin/cp #{file[:path]} #{path}"
454
- )
455
-
456
- assert_apply(file, exec)
457
-
458
- assert(exec.requires?(file),
459
- "Before did not correctly set up the requirement chain.")
460
-
461
- assert(FileTest.exists?(path),
462
- "Exec path did not get created.")
463
-
464
- assert_equal("yaytest", File.read(path),
465
- "Exec did not correctly copy file.")
466
- end
467
- end
468
-
469
- # $Id: type.rb 1422 2006-07-22 03:32:56Z luke $