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,294 +0,0 @@
1
- # Test host job creation, modification, and destruction
2
-
3
- if __FILE__ == $0
4
- $:.unshift '..'
5
- $:.unshift '../../lib'
6
- $puppetbase = "../.."
7
- end
8
-
9
- require 'puppettest'
10
- require 'puppet'
11
- require 'puppet/type/parsedtype/mount'
12
- require 'test/unit'
13
- require 'facter'
14
-
15
- class TestMounts < Test::Unit::TestCase
16
- include TestPuppet
17
- def setup
18
- super
19
- @mounttype = Puppet.type(:mount)
20
- @oldfiletype = @mounttype.filetype
21
- end
22
-
23
- def teardown
24
- @mounttype.filetype = @oldfiletype
25
- Puppet.type(:file).clear
26
- super
27
- end
28
-
29
- # Here we just create a fake host type that answers to all of the methods
30
- # but does not modify our actual system.
31
- def mkfaketype
32
- pfile = tempfile()
33
- old = @mounttype.filetype
34
- @mounttype.filetype = Puppet::FileType.filetype(:ram)
35
-
36
- cleanup do
37
- @mounttype.filetype = old
38
- @mounttype.fileobj = nil
39
- end
40
-
41
- # Reset this, just in case
42
- @mounttype.fileobj = nil
43
- end
44
-
45
- def mkmount
46
- mount = nil
47
-
48
- if defined? @pcount
49
- @pcount += 1
50
- else
51
- @pcount = 1
52
- end
53
- args = {
54
- :path => "/fspuppet%s" % @pcount,
55
- :device => "/dev/dsk%s" % @pcount,
56
- }
57
-
58
- Puppet.type(:mount).fields.each do |field|
59
- unless args.include? field
60
- args[field] = "fake%s" % @pcount
61
- end
62
- end
63
-
64
- assert_nothing_raised {
65
- mount = Puppet.type(:mount).create(args)
66
- }
67
-
68
- return mount
69
- end
70
-
71
- def test_simplemount
72
- mkfaketype
73
- host = nil
74
- assert_nothing_raised {
75
- assert_nil(Puppet.type(:mount).retrieve)
76
- }
77
-
78
- mount = mkmount
79
-
80
- assert_nothing_raised {
81
- Puppet.type(:mount).store
82
- }
83
-
84
- assert_nothing_raised {
85
- assert(
86
- Puppet.type(:mount).to_file.include?(
87
- Puppet.type(:mount).fileobj.read
88
- ),
89
- "File does not include all of our objects"
90
- )
91
- }
92
- end
93
-
94
- unless Facter["operatingsystem"].value == "Darwin"
95
- def test_mountsparse
96
- use_fake_fstab
97
- assert_nothing_raised {
98
- @mounttype.retrieve
99
- }
100
-
101
- # Now just make we've got some mounts we know will be there
102
- root = @mounttype["/"]
103
- assert(root, "Could not retrieve root mount")
104
- end
105
-
106
- def test_rootfs
107
- fs = nil
108
- use_fake_fstab
109
- assert_nothing_raised {
110
- Puppet.type(:mount).retrieve
111
- }
112
-
113
- assert_nothing_raised {
114
- fs = Puppet.type(:mount)["/"]
115
- }
116
- assert(fs, "Could not retrieve root fs")
117
-
118
- assert_nothing_raised {
119
- assert(fs.mounted?, "Root is considered not mounted")
120
- }
121
- end
122
- end
123
-
124
- # Make sure it reads and writes correctly.
125
- def test_readwrite
126
- use_fake_fstab
127
- assert_nothing_raised {
128
- Puppet::Type.type(:mount).retrieve
129
- }
130
-
131
- oldtype = Puppet::Type.type(:mount).filetype
132
-
133
- # Now switch to storing in ram
134
- mkfaketype
135
-
136
- fs = mkmount
137
-
138
- assert(Puppet::Type.type(:mount).filetype != oldtype)
139
-
140
- assert_events([:mount_created], fs)
141
-
142
- text = Puppet::Type.type(:mount).fileobj.read
143
-
144
- assert(text =~ /#{fs[:path]}/, "Text did not include new fs")
145
-
146
- fs[:ensure] = :absent
147
-
148
- assert_events([:mount_removed], fs)
149
- text = Puppet::Type.type(:mount).fileobj.read
150
-
151
- assert(text !~ /#{fs[:path]}/, "Text still includes new fs")
152
-
153
- fs[:ensure] = :present
154
-
155
- assert_events([:mount_created], fs)
156
-
157
- text = Puppet::Type.type(:mount).fileobj.read
158
-
159
- assert(text =~ /#{fs[:path]}/, "Text did not include new fs")
160
-
161
- fs[:options] = "rw,noauto"
162
-
163
- assert_events([:mount_changed], fs)
164
- end
165
-
166
- if Process.uid == 0
167
- def test_mountfs
168
- fs = nil
169
- case Facter["hostname"].value
170
- when "culain": fs = "/ubuntu"
171
- when "atalanta": fs = "/mnt"
172
- when "figurehead": fs = "/cg4/net/depts"
173
- else
174
- $stderr.puts "No mount for mount testing; skipping"
175
- return
176
- end
177
-
178
- assert_nothing_raised {
179
- Puppet.type(:mount).retrieve
180
- }
181
-
182
- oldtext = Puppet::Type.type(:mount).fileobj.read
183
-
184
- ftype = Puppet::Type.type(:mount).filetype
185
-
186
- # Make sure the original gets reinstalled.
187
- if ftype == Puppet::FileType.filetype(:netinfo)
188
- cleanup do
189
- IO.popen("niload -r /mounts .", "w") do |file|
190
- file.puts oldtext
191
- end
192
- end
193
- else
194
- cleanup do
195
- Puppet::Type.type(:mount).fileobj.write(oldtext)
196
- end
197
- end
198
-
199
- obj = Puppet.type(:mount)[fs]
200
-
201
- assert(obj, "Could not retrieve %s object" % fs)
202
-
203
- current = nil
204
-
205
- assert_nothing_raised {
206
- current = obj.mounted?
207
- }
208
-
209
- if current
210
- # Make sure the original gets reinstalled.
211
- cleanup do
212
- unless obj.mounted?
213
- obj.mount
214
- end
215
- end
216
- end
217
-
218
- unless current
219
- assert_nothing_raised {
220
- obj.mount
221
- }
222
- end
223
-
224
- # Now copy all of the states' "is" values to the "should" values
225
- obj.each do |state|
226
- state.should = state.is
227
- end
228
-
229
- # Verify we can remove the mount
230
- assert_nothing_raised {
231
- obj[:ensure] = :absent
232
- }
233
-
234
- assert_events([:mount_removed], obj)
235
- assert_events([], obj)
236
-
237
- # And verify it's gone
238
- assert(!obj.mounted?, "Object is mounted after being removed")
239
-
240
- text = Puppet.type(:mount).fileobj.read
241
-
242
- assert(text !~ /#{fs}/,
243
- "Fstab still contains %s" % fs)
244
-
245
- assert_nothing_raised {
246
- obj[:ensure] = :present
247
- }
248
-
249
- assert_events([:mount_created], obj)
250
- assert_events([], obj)
251
-
252
- text = Puppet::Type.type(:mount).fileobj.read
253
- assert(text =~ /#{fs}/, "Fstab does not contain %s" % fs)
254
-
255
- assert(! obj.mounted?, "Object is mounted incorrectly")
256
-
257
- assert_nothing_raised {
258
- obj[:ensure] = :mounted
259
- }
260
-
261
- assert_events([:mount_mounted], obj)
262
- assert_events([], obj)
263
-
264
- text = Puppet::Type.type(:mount).fileobj.read
265
- assert(text =~ /#{fs}/,
266
- "Fstab does not contain %s" % fs)
267
-
268
- obj.retrieve
269
- assert(obj.mounted?, "Object is not mounted")
270
-
271
- unless current
272
- assert_nothing_raised {
273
- obj.unmount
274
- }
275
- end
276
- end
277
- end
278
-
279
- def use_fake_fstab
280
- os = Facter['operatingsystem']
281
- if os == "Solaris"
282
- name = "solaris.fstab"
283
- elsif os == "FreeBSD"
284
- name = "freebsd.fstab"
285
- else
286
- # Catchall for other fstabs
287
- name = "linux.fstab"
288
- end
289
- fstab = fakefile(File::join("data/types/mount", name))
290
- Puppet::Type.type(:mount).path = fstab
291
- end
292
- end
293
-
294
- # $Id: mount.rb 1343 2006-06-30 01:43:02Z lutter $
@@ -1,538 +0,0 @@
1
- if __FILE__ == $0
2
- $:.unshift '..'
3
- $:.unshift '../../lib'
4
- $puppetbase = "../.."
5
- end
6
-
7
- require 'puppettest'
8
- require 'puppet'
9
- require 'test/unit'
10
- require 'facter'
11
-
12
- $platform = Facter["operatingsystem"].value
13
-
14
- unless Puppet.type(:package).default
15
- puts "No default package type for %s; skipping package tests" % $platform
16
- else
17
-
18
- class TestPackages < Test::Unit::TestCase
19
- include FileTesting
20
- def setup
21
- super
22
- #@list = Puppet.type(:package).getpkglist
23
- Puppet.type(:package).clear
24
- end
25
-
26
- # These are packages that we're sure will be installed
27
- def installedpkgs
28
- pkgs = nil
29
- case $platform
30
- when "SunOS"
31
- pkgs = %w{SMCossh}
32
- when "Debian": pkgs = %w{ssh openssl}
33
- when "Fedora": pkgs = %w{openssh}
34
- when "OpenBSD": pkgs = %w{vim}
35
- when "FreeBSD": pkgs = %w{sudo}
36
- when "Darwin": pkgs = %w{gettext}
37
- else
38
- Puppet.notice "No test package for %s" % $platform
39
- return []
40
- end
41
-
42
- return pkgs
43
- end
44
-
45
- def modpkg(pkg)
46
- case $platform
47
- when "Solaris":
48
- pkg[:adminfile] = "/usr/local/pkg/admin_file"
49
- end
50
- end
51
-
52
- def mkpkgs(list = nil, useensure = true)
53
- list ||= tstpkgs()
54
- list.each { |pkg, source|
55
- hash = {:name => pkg}
56
- if useensure
57
- hash[:ensure] = "latest"
58
- end
59
- if source
60
- source = source[0] if source.is_a? Array
61
- hash[:source] = source
62
- end
63
- if Facter["operatingsystem"].value == "Darwin"
64
- hash[:type] = "darwinport"
65
- end
66
- obj = Puppet.type(:package).create(hash)
67
- assert(pkg, "Could not create package")
68
- modpkg(obj)
69
-
70
- yield obj
71
- }
72
- end
73
-
74
- def tstpkgs
75
- retval = []
76
- case $platform
77
- when "Solaris":
78
- arch = Facter["hardwareisa"].value + Facter["operatingsystemrelease"].value
79
- case arch
80
- when "i3865.10":
81
- retval = {"SMCrdesk" => [
82
- "/usr/local/pkg/rdesktop-1.3.1-sol10-intel-local",
83
- "/usr/local/pkg/rdesktop-1.4.1-sol10-x86-local"
84
- ]}
85
- when "sparc5.8":
86
- retval = {"SMCarc" => "/usr/local/pkg/arc-5.21e-sol8-sparc-local"}
87
- when "i3865.8":
88
- retval = {"SMCarc" => "/usr/local/pkg/arc-5.21e-sol8-intel-local"}
89
- end
90
- when "OpenBSD":
91
- retval = {"aalib" => "ftp://ftp.usa.openbsd.org/pub/OpenBSD/3.8/packages/i386/aalib-1.2-no_x11.tgz"}
92
- when "Debian":
93
- retval = {"zec" => nil}
94
- #when "RedHat": type = :rpm
95
- when "Fedora":
96
- retval = {"wv" => nil}
97
- when "CentOS":
98
- retval = {"enhost" => [
99
- "/home/luke/rpm/RPMS/noarch/enhost-1.0.1-1.noarch.rpm",
100
- "/home/luke/rpm/RPMS/noarch/enhost-1.0.2-1.noarch.rpm"
101
- ]}
102
- when "Darwin":
103
- retval = {"aop" => nil}
104
- when "FreeBSD":
105
- retval = {"yahtzee" => nil}
106
- else
107
- Puppet.notice "No test packages for %s" % $platform
108
- end
109
-
110
- return retval
111
- end
112
-
113
- def mkpkgcomp(pkg)
114
- assert_nothing_raised {
115
- pkg = Puppet.type(:package).create(:name => pkg, :ensure => "present")
116
- }
117
- assert_nothing_raised {
118
- pkg.retrieve
119
- }
120
-
121
- comp = newcomp("package", pkg)
122
-
123
- return comp
124
- end
125
-
126
- def test_retrievepkg
127
- mkpkgs(installedpkgs()) { |obj|
128
-
129
- assert(obj, "could not create package")
130
-
131
- assert_nothing_raised {
132
- obj.retrieve
133
- }
134
-
135
- # Version is a parameter, not a state.
136
- assert(obj[:version], "Could not retrieve package version")
137
- }
138
- end
139
-
140
- def test_nosuchpkg
141
- obj = nil
142
- assert_nothing_raised {
143
- obj = Puppet.type(:package).create(
144
- :name => "thispackagedoesnotexist",
145
- :ensure => :installed
146
- )
147
- }
148
-
149
- assert(obj, "Failed to create fake package")
150
-
151
- assert_nothing_raised {
152
- obj.retrieve
153
- }
154
-
155
- assert_equal(:absent, obj.is(:ensure),
156
- "Somehow retrieved unknown pkg's version")
157
-
158
- state = obj.state(:ensure)
159
- assert(state, "Could not retrieve ensure state")
160
-
161
- # Add a fake state, for those that need it
162
- file = tempfile()
163
- File.open(file, "w") { |f| f.puts :yayness }
164
- obj[:source] = file
165
- assert_raise(Puppet::PackageError,
166
- "Successfully installed nonexistent package") {
167
- state.sync
168
- }
169
- end
170
-
171
- def test_specifypkgtype
172
- pkg = nil
173
- assert_nothing_raised {
174
- pkg = Puppet.type(:package).create(
175
- :name => "mypkg",
176
- :type => "yum"
177
- )
178
- }
179
- assert(pkg, "Did not create package")
180
- assert_equal(:yum, pkg[:type])
181
- end
182
-
183
- def test_latestpkg
184
- mkpkgs { |pkg|
185
- next unless pkg.respond_to? :latest
186
- assert_nothing_raised {
187
- assert(pkg.latest,
188
- "Package %s did not return value for 'latest'" % pkg.name)
189
- }
190
- }
191
- end
192
-
193
- # Make sure our package type supports listing.
194
- def test_listing
195
- pkgtype = Puppet::Type.type(:package)
196
-
197
- # Heh
198
- defaulttype = pkgtype.pkgtype(pkgtype.default)
199
-
200
- assert_nothing_raised("Could not list packages") do
201
- defaulttype.list
202
- end
203
- end
204
-
205
- unless Process.uid == 0
206
- $stderr.puts "Run as root to perform package installation tests"
207
- else
208
- def test_installpkg
209
- mkpkgs { |pkg|
210
- # we first set install to 'true', and make sure something gets
211
- # installed
212
- assert_nothing_raised {
213
- pkg.retrieve
214
- }
215
-
216
- if pkg.insync? or pkg.is(:ensure) != :absent
217
- Puppet.notice "Test package %s is already installed; please choose a different package for testing" % pkg
218
- next
219
- end
220
-
221
- comp = newcomp("package", pkg)
222
-
223
- assert_events([:package_created], comp, "package")
224
-
225
- pkg.retrieve
226
-
227
- assert(pkg.insync?, "Package is not in sync")
228
-
229
- # then uninstall it
230
- assert_nothing_raised {
231
- pkg[:ensure] = "absent"
232
- }
233
-
234
- pkg.retrieve
235
-
236
- assert(! pkg.insync?, "Package is in sync")
237
-
238
- assert_events([:package_removed], comp, "package")
239
-
240
- # and now set install to 'latest' and verify it installs
241
- if pkg.respond_to?(:latest)
242
- assert_nothing_raised {
243
- pkg[:ensure] = "latest"
244
- }
245
-
246
- assert_events([:package_created], comp, "package")
247
-
248
- pkg.retrieve
249
- assert(pkg.insync?, "After install, package is not insync")
250
-
251
- assert_nothing_raised {
252
- pkg[:ensure] = "absent"
253
- }
254
-
255
- pkg.retrieve
256
-
257
- assert(! pkg.insync?, "Package is insync")
258
-
259
- assert_events([:package_removed], comp, "package")
260
- end
261
- }
262
- end
263
-
264
- # Make sure that a default is used for 'ensure'
265
- def test_ensuredefault
266
- # Tell mkpkgs not to set 'ensure'.
267
- mkpkgs(nil, false) { |pkg|
268
- assert_nothing_raised {
269
- pkg.retrieve
270
- }
271
-
272
- assert(!pkg.insync?, "Package thinks it's in sync")
273
-
274
- assert_apply(pkg)
275
- pkg.retrieve
276
- assert(pkg.insync?, "Package does not think it's in sync")
277
-
278
- pkg[:ensure] = :absent
279
- assert_apply(pkg)
280
- }
281
- end
282
-
283
- def test_upgradepkg
284
- tstpkgs.each do |name, sources|
285
- unless sources and sources.is_a? Array
286
- $stderr.puts "Skipping pkg upgrade test for %s" % name
287
- next
288
- end
289
- first, second = sources
290
-
291
- unless FileTest.exists?(first) and FileTest.exists?(second)
292
- $stderr.puts "Could not find upgrade test pkgs; skipping"
293
- return
294
- end
295
-
296
- pkg = nil
297
- assert_nothing_raised {
298
- pkg = Puppet.type(:package).create(
299
- :name => name,
300
- :ensure => :latest,
301
- :source => first
302
- )
303
- }
304
-
305
- assert(pkg, "Failed to create package %s" % name)
306
-
307
- modpkg(pkg)
308
-
309
- assert(pkg.latest, "Could not retrieve latest value")
310
-
311
- assert_events([:package_created], pkg)
312
-
313
- assert_nothing_raised {
314
- pkg.retrieve
315
- }
316
- assert(pkg.insync?, "Package is not in sync")
317
- pkg.clear
318
- assert_nothing_raised {
319
- pkg[:source] = second
320
- }
321
- assert_events([:package_changed], pkg)
322
-
323
- assert_nothing_raised {
324
- pkg.retrieve
325
- }
326
- assert(pkg.insync?, "Package is not in sync")
327
- assert_nothing_raised {
328
- pkg[:ensure] = :absent
329
- }
330
- assert_events([:package_removed], pkg)
331
-
332
- assert_nothing_raised {
333
- pkg.retrieve
334
- }
335
- assert(pkg.insync?, "Package is not in sync")
336
- end
337
- end
338
-
339
- # Stupid darwin, not supporting package uninstallation
340
- if Facter["operatingsystem"].value == "Darwin" and
341
- FileTest.exists? "/Users/luke/Documents/Puppet/pkgtesting.pkg"
342
- def test_darwinpkgs
343
- pkg = nil
344
- assert_nothing_raised {
345
- pkg = Puppet::Type.type(:package).create(
346
- :name => "pkgtesting",
347
- :source => "/Users/luke/Documents/Puppet/pkgtesting.pkg",
348
- :ensure => :present
349
- )
350
- }
351
-
352
- assert_nothing_raised {
353
- pkg.retrieve
354
- }
355
-
356
- if pkg.insync?
357
- Puppet.notice "Test package is already installed; please remove it"
358
- next
359
- end
360
-
361
- # The file installed, and the receipt
362
- @@tmpfiles << "/tmp/file"
363
- @@tmpfiles << "/Library/Receipts/pkgtesting.pkg"
364
-
365
- assert_events([:package_created], pkg, "package")
366
-
367
- assert_nothing_raised {
368
- pkg.retrieve
369
- }
370
-
371
- assert(pkg.insync?, "Package is not insync")
372
-
373
- assert(FileTest.exists?("/tmp/pkgtesting/file"), "File did not get created")
374
- end
375
- end
376
-
377
- # Yay, gems. They're special because any OS can test them.
378
- if %x{which gem 2>/dev/null}.chomp != ""
379
- def test_list_gems
380
- gems = nil
381
- assert_nothing_raised {
382
- gems = Puppet::Type.type(:package).pkgtype(:gem).list
383
- }
384
-
385
- gems.each do |gem|
386
- assert_equal(:gem, gem[:type],
387
- "Type was not set correctly")
388
- end
389
- end
390
-
391
- def test_install_gems
392
- gem = nil
393
- name = "wxrubylayouts"
394
- assert_nothing_raised {
395
- gem = Puppet::Type.newpackage(
396
- :name => name,
397
- :version => "0.0.2",
398
- :ensure => "installed",
399
- :type => :gem
400
- )
401
- }
402
-
403
- assert_nothing_raised {
404
- gem.retrieve
405
- }
406
-
407
- if gem.is(:ensure) != :absent
408
- $stderr.puts "Cannot test gem installation; %s is already installed" %
409
- name
410
- return
411
- end
412
-
413
- assert_events([:package_created], gem)
414
-
415
- assert_nothing_raised {
416
- gem.retrieve
417
- }
418
-
419
- assert_equal("0.0.2", gem.is(:ensure),
420
- "Incorrect version was installed")
421
-
422
- latest = nil
423
- assert_nothing_raised {
424
- latest = gem.latest
425
- }
426
-
427
- assert(latest != gem[:version], "Did not correctly find latest value")
428
-
429
- gem[:ensure] = :latest
430
- assert_events([:package_changed], gem)
431
-
432
- gem.retrieve
433
-
434
- assert("0.0.2" != gem.is(:ensure),
435
- "Package was not updated.")
436
-
437
- gem[:ensure] = :absent
438
-
439
- assert_events([:package_removed], gem)
440
- end
441
-
442
- else
443
- def test_nogems_nofailures
444
- obj = nil
445
- assert_nothing_raised do
446
- Puppet::Type.newpackage(
447
- :name => "yayness",
448
- :type => "gem",
449
- :ensure => "installed"
450
- )
451
- end
452
-
453
- assert_nil(Puppet::Type.type(:package)["yayness"],
454
- "Invalid gem package got created")
455
- end
456
- end
457
- end
458
- if ["Fedora", "RedHat", "CentOS"].include?(Facter["operatingsystem"].value) and
459
- FileTest.exists?("/home/luke/rpm/RPMS/i386/puppet-server-0.16.1-1.i386.rpm")
460
-
461
- # We have a special test here, because we don't actually want to install the
462
- # package, just make sure it's getting the "latest" value.
463
- def test_rpmlatest
464
- pkg = nil
465
- assert_nothing_raised {
466
- pkg = Puppet::Type.type(:package).create(
467
- :type => :rpm,
468
- :name => "puppet-server",
469
- :source => "/home/luke/rpm/RPMS/i386/puppet-server-0.16.1-1.i386.rpm"
470
- )
471
- }
472
-
473
- assert_equal("0.16.1-1", pkg.latest, "RPM did not provide correct value for latest")
474
- end
475
- end
476
-
477
- if Facter["operatingsystem"].value == "Solaris"
478
- if pkgget = %x{which pkg-get 2>/dev/null}.chomp and pkgget != ""
479
- # FIXME The packaging crap needs to be rewritten to support testing
480
- # multiple package types on the same platform.
481
- def test_list_blastwave
482
- pkgs = nil
483
- assert_nothing_raised {
484
- pkgs = Puppet::Type.type(:package).pkgtype(:blastwave).list
485
- }
486
-
487
- pkgs.each do |pkg|
488
- if pkg[:name] =~ /^CSW/
489
- assert_equal(:blastwave, pkg[:type],
490
- "Type was not set correctly")
491
- end
492
- end
493
- end
494
-
495
- def test_install_blastwave
496
- pkg = nil
497
- name = "cabextract"
498
- assert_nothing_raised {
499
- pkg = Puppet::Type.newpackage(
500
- :name => name,
501
- :ensure => "installed",
502
- :type => :blastwave
503
- )
504
- }
505
-
506
- assert_nothing_raised {
507
- pkg.retrieve
508
- }
509
-
510
- if pkg.is(:ensure) != :absent
511
- p pkg.is(:ensure)
512
- $stderr.puts "Cannot test pkg installation; %s is already installed" %
513
- name
514
- return
515
- end
516
-
517
- assert_events([:package_created], pkg)
518
-
519
- assert_nothing_raised {
520
- pkg.retrieve
521
- }
522
-
523
- latest = nil
524
- assert_nothing_raised {
525
- latest = pkg.latest
526
- }
527
- pkg[:ensure] = :absent
528
-
529
- assert_events([:package_removed], pkg)
530
- end
531
- else
532
- $stderr.puts "No pkg-get scripting; skipping blastwave tests"
533
- end
534
- end
535
- end
536
- end
537
-
538
- # $Id: package.rb 1356 2006-07-04 05:45:28Z luke $