puppet 0.24.6 → 0.24.7

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 (383) hide show
  1. data/CHANGELOG +115 -0
  2. data/Rakefile +43 -14
  3. data/bin/puppetca +6 -5
  4. data/bin/puppetdoc +109 -15
  5. data/bin/ralsh +3 -1
  6. data/conf/redhat/puppet.spec +74 -48
  7. data/examples/mcx_dock_absent.pp +4 -0
  8. data/examples/mcx_dock_default.pp +118 -0
  9. data/examples/mcx_dock_full.pp +125 -0
  10. data/examples/mcx_dock_invalid.pp +9 -0
  11. data/examples/mcx_nogroup.pp +118 -0
  12. data/examples/mcx_notexists_absent.pp +4 -0
  13. data/ext/emacs/puppet-mode.el +1 -1
  14. data/lib/puppet.rb +1 -1
  15. data/lib/puppet/external/nagios/base.rb +114 -71
  16. data/lib/puppet/feature/base.rb +6 -0
  17. data/lib/puppet/indirector/yaml.rb +12 -3
  18. data/lib/puppet/module.rb +1 -1
  19. data/lib/puppet/network/client/master.rb +1 -1
  20. data/lib/puppet/network/xmlrpc/client.rb +3 -1
  21. data/lib/puppet/parameter.rb +1 -1
  22. data/lib/puppet/parser/ast.rb +15 -0
  23. data/lib/puppet/parser/ast/astarray.rb +1 -2
  24. data/lib/puppet/parser/ast/casestatement.rb +2 -0
  25. data/lib/puppet/parser/ast/collection.rb +2 -0
  26. data/lib/puppet/parser/ast/comparison_operator.rb +4 -0
  27. data/lib/puppet/parser/ast/definition.rb +2 -0
  28. data/lib/puppet/parser/ast/else.rb +3 -0
  29. data/lib/puppet/parser/ast/function.rb +19 -12
  30. data/lib/puppet/parser/ast/hostclass.rb +9 -1
  31. data/lib/puppet/parser/ast/ifstatement.rb +3 -0
  32. data/lib/puppet/parser/ast/node.rb +3 -0
  33. data/lib/puppet/parser/ast/resource.rb +3 -0
  34. data/lib/puppet/parser/ast/resource_defaults.rb +2 -0
  35. data/lib/puppet/parser/ast/resource_override.rb +3 -0
  36. data/lib/puppet/parser/ast/vardef.rb +3 -0
  37. data/lib/puppet/parser/functions.rb +14 -0
  38. data/lib/puppet/parser/functions/inline_template.rb +21 -0
  39. data/lib/puppet/parser/functions/template.rb +3 -2
  40. data/lib/puppet/parser/lexer.rb +56 -7
  41. data/lib/puppet/parser/parser.rb +114 -98
  42. data/lib/puppet/parser/parser_support.rb +24 -4
  43. data/lib/puppet/parser/resource/reference.rb +4 -3
  44. data/lib/puppet/parser/templatewrapper.rb +30 -22
  45. data/lib/puppet/property.rb +1 -1
  46. data/lib/puppet/property/list.rb +7 -2
  47. data/lib/puppet/property/ordered_list.rb +22 -0
  48. data/lib/puppet/provider/augeas/augeas.rb +189 -0
  49. data/lib/puppet/provider/computer/computer.rb +22 -0
  50. data/lib/puppet/provider/confine.rb +4 -1
  51. data/lib/puppet/provider/confine/variable.rb +13 -2
  52. data/lib/puppet/provider/confine_collection.rb +4 -1
  53. data/lib/puppet/provider/confiner.rb +1 -1
  54. data/lib/puppet/provider/group/directoryservice.rb +6 -3
  55. data/lib/puppet/provider/group/groupadd.rb +5 -2
  56. data/lib/puppet/provider/group/ldap.rb +11 -9
  57. data/lib/puppet/provider/group/netinfo.rb +8 -4
  58. data/lib/puppet/provider/group/pw.rb +5 -1
  59. data/lib/puppet/provider/host/netinfo.rb +5 -2
  60. data/lib/puppet/provider/macauthorization/macauthorization.rb +315 -0
  61. data/lib/puppet/provider/mcx/mcxcontent.rb +201 -0
  62. data/lib/puppet/provider/nameservice/directoryservice.rb +210 -107
  63. data/lib/puppet/provider/nameservice/netinfo.rb +7 -2
  64. data/lib/puppet/provider/package/appdmg.rb +0 -3
  65. data/lib/puppet/provider/package/apt.rb +6 -0
  66. data/lib/puppet/provider/package/rpm.rb +2 -0
  67. data/lib/puppet/provider/package/yum.rb +5 -1
  68. data/lib/puppet/provider/package/yumhelper.py +9 -0
  69. data/lib/puppet/provider/service/base.rb +9 -6
  70. data/lib/puppet/provider/service/daemontools.rb +25 -15
  71. data/lib/puppet/provider/service/debian.rb +6 -2
  72. data/lib/puppet/provider/service/freebsd.rb +5 -2
  73. data/lib/puppet/provider/service/gentoo.rb +6 -3
  74. data/lib/puppet/provider/service/init.rb +31 -21
  75. data/lib/puppet/provider/service/launchd.rb +195 -0
  76. data/lib/puppet/provider/service/redhat.rb +5 -2
  77. data/lib/puppet/provider/service/runit.rb +30 -20
  78. data/lib/puppet/provider/service/smf.rb +7 -4
  79. data/lib/puppet/provider/ssh_authorized_key/parsed.rb +21 -1
  80. data/lib/puppet/provider/user/directoryservice.rb +1 -0
  81. data/lib/puppet/provider/user/netinfo.rb +9 -3
  82. data/lib/puppet/provider/user/user_role_add.rb +43 -6
  83. data/lib/puppet/provider/zfs/solaris.rb +45 -0
  84. data/lib/puppet/provider/zone/solaris.rb +8 -4
  85. data/lib/puppet/provider/zpool/solaris.rb +116 -0
  86. data/lib/puppet/rails/database/003_add_environment_to_host.rb +9 -0
  87. data/lib/puppet/rails/database/schema.rb +1 -0
  88. data/lib/puppet/rails/host.rb +4 -0
  89. data/lib/puppet/reference/configuration.rb +1 -1
  90. data/lib/puppet/reports/tagmail.rb +15 -6
  91. data/lib/puppet/transaction/change.rb +3 -5
  92. data/lib/puppet/transportable.rb +1 -0
  93. data/lib/puppet/type/augeas.rb +155 -0
  94. data/lib/puppet/type/computer.rb +62 -0
  95. data/lib/puppet/type/exec.rb +2 -1
  96. data/lib/puppet/type/file.rb +1 -1
  97. data/lib/puppet/type/file/ensure.rb +8 -5
  98. data/lib/puppet/type/file/mode.rb +0 -14
  99. data/lib/puppet/type/file/owner.rb +32 -64
  100. data/lib/puppet/type/file/selcontext.rb +3 -8
  101. data/lib/puppet/type/group.rb +27 -45
  102. data/lib/puppet/type/k5login.rb +1 -1
  103. data/lib/puppet/type/macauthorization.rb +141 -0
  104. data/lib/puppet/type/mcx.rb +115 -0
  105. data/lib/puppet/type/mount.rb +1 -1
  106. data/lib/puppet/type/nagios_hostdependency.rb +3 -0
  107. data/lib/puppet/type/ssh_authorized_key.rb +16 -0
  108. data/lib/puppet/type/tidy.rb +43 -14
  109. data/lib/puppet/type/user.rb +25 -1
  110. data/lib/puppet/type/zfs.rb +51 -0
  111. data/lib/puppet/type/zone.rb +8 -0
  112. data/lib/puppet/type/zpool.rb +93 -0
  113. data/lib/puppet/util.rb +17 -38
  114. data/lib/puppet/util/file_locking.rb +44 -0
  115. data/lib/puppet/util/filetype.rb +3 -3
  116. data/lib/puppet/util/log.rb +1 -16
  117. data/lib/puppet/util/metric.rb +0 -5
  118. data/lib/puppet/util/rdoc.rb +85 -0
  119. data/lib/puppet/util/rdoc/code_objects.rb +219 -0
  120. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +829 -0
  121. data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +1051 -0
  122. data/lib/puppet/util/rdoc/parser.rb +437 -0
  123. data/lib/puppet/util/selinux.rb +135 -63
  124. data/lib/puppet/util/settings.rb +136 -126
  125. data/lib/puppet/util/storage.rb +4 -2
  126. data/spec/Rakefile +91 -0
  127. data/spec/integration/checksum.rb +47 -0
  128. data/spec/integration/defaults.rb +47 -0
  129. data/spec/integration/file_serving/configuration.rb +43 -0
  130. data/spec/integration/file_serving/content.rb +18 -0
  131. data/spec/integration/file_serving/metadata.rb +18 -0
  132. data/spec/integration/indirector/direct_file_server.rb +80 -0
  133. data/spec/integration/indirector/file_content/file_server.rb +18 -0
  134. data/spec/integration/indirector/file_metadata/file_server.rb +18 -0
  135. data/spec/integration/indirector/module_files.rb +57 -0
  136. data/spec/integration/indirector/node/ldap.rb +15 -0
  137. data/spec/integration/indirector/rest.rb +464 -0
  138. data/spec/integration/network/server/mongrel.rb +48 -0
  139. data/spec/integration/network/server/webrick.rb +48 -0
  140. data/spec/integration/node.rb +93 -0
  141. data/spec/integration/node/catalog.rb +54 -0
  142. data/spec/integration/node/facts.rb +45 -0
  143. data/spec/integration/provider/package.rb +26 -0
  144. data/spec/integration/provider/service/init.rb +32 -0
  145. data/spec/integration/reference/providers.rb +17 -0
  146. data/spec/integration/reports.rb +14 -0
  147. data/spec/integration/transaction/report.rb +26 -0
  148. data/spec/integration/type/package.rb +22 -0
  149. data/spec/integration/util/file_locking.rb +36 -0
  150. data/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb +46 -0
  151. data/spec/monkey_patches/alias_should_to_must.rb +5 -0
  152. data/spec/shared_behaviours/file_server_terminus.rb +42 -0
  153. data/spec/shared_behaviours/file_serving.rb +64 -0
  154. data/spec/shared_behaviours/memory_terminus.rb +32 -0
  155. data/spec/spec.opts +5 -0
  156. data/spec/spec_helper.rb +36 -0
  157. data/spec/unit/executables/client/certhandler.rb +122 -0
  158. data/spec/unit/file_serving/configuration.rb +224 -0
  159. data/spec/unit/file_serving/configuration/parser.rb +135 -0
  160. data/spec/unit/file_serving/content.rb +71 -0
  161. data/spec/unit/file_serving/file_base.rb +124 -0
  162. data/spec/unit/file_serving/fileset.rb +239 -0
  163. data/spec/unit/file_serving/indirection_hooks.rb +124 -0
  164. data/spec/unit/file_serving/metadata.rb +187 -0
  165. data/spec/unit/file_serving/mount.rb +143 -0
  166. data/spec/unit/file_serving/terminus_helper.rb +76 -0
  167. data/spec/unit/indirector.rb +152 -0
  168. data/spec/unit/indirector/catalog/compiler.rb +156 -0
  169. data/spec/unit/indirector/catalog/yaml.rb +25 -0
  170. data/spec/unit/indirector/checksum/file.rb +139 -0
  171. data/spec/unit/indirector/code.rb +33 -0
  172. data/spec/unit/indirector/direct_file_server.rb +89 -0
  173. data/spec/unit/indirector/envelope.rb +47 -0
  174. data/spec/unit/indirector/exec.rb +51 -0
  175. data/spec/unit/indirector/facts/facter.rb +76 -0
  176. data/spec/unit/indirector/facts/yaml.rb +26 -0
  177. data/spec/unit/indirector/file.rb +154 -0
  178. data/spec/unit/indirector/file_content/file.rb +18 -0
  179. data/spec/unit/indirector/file_content/file_server.rb +18 -0
  180. data/spec/unit/indirector/file_content/modules.rb +18 -0
  181. data/spec/unit/indirector/file_content/rest.rb +11 -0
  182. data/spec/unit/indirector/file_metadata/file.rb +52 -0
  183. data/spec/unit/indirector/file_metadata/file_server.rb +18 -0
  184. data/spec/unit/indirector/file_metadata/modules.rb +42 -0
  185. data/spec/unit/indirector/file_metadata/rest.rb +9 -0
  186. data/spec/unit/indirector/file_server.rb +184 -0
  187. data/spec/unit/indirector/indirection.rb +731 -0
  188. data/spec/unit/indirector/ldap.rb +143 -0
  189. data/spec/unit/indirector/memory.rb +29 -0
  190. data/spec/unit/indirector/module_files.rb +259 -0
  191. data/spec/unit/indirector/node/exec.rb +69 -0
  192. data/spec/unit/indirector/node/ldap.rb +424 -0
  193. data/spec/unit/indirector/node/memory.rb +19 -0
  194. data/spec/unit/indirector/node/plain.rb +19 -0
  195. data/spec/unit/indirector/node/rest.rb +13 -0
  196. data/spec/unit/indirector/node/yaml.rb +25 -0
  197. data/spec/unit/indirector/plain.rb +29 -0
  198. data/spec/unit/indirector/report/processor.rb +81 -0
  199. data/spec/unit/indirector/request.rb +87 -0
  200. data/spec/unit/indirector/rest.rb +372 -0
  201. data/spec/unit/indirector/ssl_rsa/file.rb +116 -0
  202. data/spec/unit/indirector/terminus.rb +245 -0
  203. data/spec/unit/indirector/yaml.rb +145 -0
  204. data/spec/unit/module.rb +247 -0
  205. data/spec/unit/network/client.rb +45 -0
  206. data/spec/unit/network/client/master.rb +442 -0
  207. data/spec/unit/network/handler/fileserver.rb +179 -0
  208. data/spec/unit/network/http.rb +35 -0
  209. data/spec/unit/network/http/mongrel.rb +117 -0
  210. data/spec/unit/network/http/mongrel/rest.rb +377 -0
  211. data/spec/unit/network/http/mongrel/xmlrpc.rb +0 -0
  212. data/spec/unit/network/http/webrick.rb +127 -0
  213. data/spec/unit/network/http/webrick/rest.rb +323 -0
  214. data/spec/unit/network/http/webrick/xmlrpc.rb +0 -0
  215. data/spec/unit/network/http_pool.rb +238 -0
  216. data/spec/unit/network/server.rb +316 -0
  217. data/spec/unit/network/xmlrpc/client.rb +13 -0
  218. data/spec/unit/node.rb +167 -0
  219. data/spec/unit/node/catalog.rb +864 -0
  220. data/spec/unit/node/environment.rb +37 -0
  221. data/spec/unit/node/facts.rb +44 -0
  222. data/spec/unit/other/checksum.rb +92 -0
  223. data/spec/unit/other/pgraph.rb +210 -0
  224. data/spec/unit/other/transaction.rb +33 -0
  225. data/spec/unit/other/transbucket.rb +172 -0
  226. data/spec/unit/other/transobject.rb +92 -0
  227. data/spec/unit/parameter.rb +24 -0
  228. data/spec/unit/parser/ast.rb +37 -0
  229. data/spec/unit/parser/ast/arithmetic_operator.rb +73 -0
  230. data/spec/unit/parser/ast/astarray.rb +66 -0
  231. data/spec/unit/parser/ast/boolean_operator.rb +53 -0
  232. data/spec/unit/parser/ast/collexpr.rb +92 -0
  233. data/spec/unit/parser/ast/comparison_operator.rb +92 -0
  234. data/spec/unit/parser/ast/definition.rb +195 -0
  235. data/spec/unit/parser/ast/function.rb +77 -0
  236. data/spec/unit/parser/ast/hostclass.rb +148 -0
  237. data/spec/unit/parser/ast/minus.rb +36 -0
  238. data/spec/unit/parser/ast/node.rb +125 -0
  239. data/spec/unit/parser/ast/nop.rb +20 -0
  240. data/spec/unit/parser/ast/not.rb +30 -0
  241. data/spec/unit/parser/ast/resource_override.rb +51 -0
  242. data/spec/unit/parser/ast/resource_reference.rb +63 -0
  243. data/spec/unit/parser/ast/vardef.rb +47 -0
  244. data/spec/unit/parser/collector.rb +426 -0
  245. data/spec/unit/parser/compiler.rb +561 -0
  246. data/spec/unit/parser/functions.rb +83 -0
  247. data/spec/unit/parser/functions/inline_template.rb +59 -0
  248. data/spec/unit/parser/functions/template.rb +62 -0
  249. data/spec/unit/parser/interpreter.rb +138 -0
  250. data/spec/unit/parser/lexer.rb +646 -0
  251. data/spec/unit/parser/parser.rb +228 -0
  252. data/spec/unit/parser/resource.rb +336 -0
  253. data/spec/unit/parser/resource/reference.rb +95 -0
  254. data/spec/unit/parser/scope.rb +87 -0
  255. data/spec/unit/parser/templatewrapper.rb +129 -0
  256. data/spec/unit/property.rb +35 -0
  257. data/spec/unit/property/keyvalue.rb +168 -0
  258. data/spec/unit/property/list.rb +156 -0
  259. data/spec/unit/property/ordered_list.rb +64 -0
  260. data/spec/unit/provider/augeas/augeas.rb +238 -0
  261. data/spec/unit/provider/confine.rb +78 -0
  262. data/spec/unit/provider/confine/exists.rb +81 -0
  263. data/spec/unit/provider/confine/false.rb +53 -0
  264. data/spec/unit/provider/confine/feature.rb +60 -0
  265. data/spec/unit/provider/confine/true.rb +53 -0
  266. data/spec/unit/provider/confine/variable.rb +107 -0
  267. data/spec/unit/provider/confine_collection.rb +134 -0
  268. data/spec/unit/provider/confiner.rb +63 -0
  269. data/spec/unit/provider/group/groupadd.rb +31 -0
  270. data/spec/unit/provider/group/ldap.rb +105 -0
  271. data/spec/unit/provider/ldap.rb +248 -0
  272. data/spec/unit/provider/macauthorization.rb +147 -0
  273. data/spec/unit/provider/mcx/mcxcontent.rb +175 -0
  274. data/spec/unit/provider/mount.rb +130 -0
  275. data/spec/unit/provider/mount/parsed.rb +185 -0
  276. data/spec/unit/provider/package/apt.rb +138 -0
  277. data/spec/unit/provider/package/dpkg.rb +163 -0
  278. data/spec/unit/provider/package/gem.rb +87 -0
  279. data/spec/unit/provider/package/hpux.rb +52 -0
  280. data/spec/unit/provider/selboolean.rb +37 -0
  281. data/spec/unit/provider/selmodule-example.pp +0 -0
  282. data/spec/unit/provider/selmodule.rb +66 -0
  283. data/spec/unit/provider/service/daemontools.rb +124 -0
  284. data/spec/unit/provider/service/launchd.rb +134 -0
  285. data/spec/unit/provider/service/runit.rb +117 -0
  286. data/spec/unit/provider/ssh_authorized_key/parsed.rb +102 -0
  287. data/spec/unit/provider/user/hpux.rb +25 -0
  288. data/spec/unit/provider/user/ldap.rb +279 -0
  289. data/spec/unit/provider/user/user_role_add.rb +249 -0
  290. data/spec/unit/provider/user/useradd.rb +115 -0
  291. data/spec/unit/provider/zfs/solaris.rb +87 -0
  292. data/spec/unit/provider/zone/solaris.rb +42 -0
  293. data/spec/unit/provider/zpool/solaris.rb +179 -0
  294. data/spec/unit/rails.rb +125 -0
  295. data/spec/unit/relationship.rb +149 -0
  296. data/spec/unit/reports.rb +61 -0
  297. data/spec/unit/resource_reference.rb +73 -0
  298. data/spec/unit/simple_graph.rb +280 -0
  299. data/spec/unit/transaction/change.rb +187 -0
  300. data/spec/unit/transaction/event.rb +25 -0
  301. data/spec/unit/transaction/report.rb +40 -0
  302. data/spec/unit/type.rb +64 -0
  303. data/spec/unit/type/augeas.rb +113 -0
  304. data/spec/unit/type/computer.rb +82 -0
  305. data/spec/unit/type/exec.rb +91 -0
  306. data/spec/unit/type/file.rb +155 -0
  307. data/spec/unit/type/file/ensure.rb +21 -0
  308. data/spec/unit/type/file/group.rb +118 -0
  309. data/spec/unit/type/file/owner.rb +132 -0
  310. data/spec/unit/type/file/selinux.rb +82 -0
  311. data/spec/unit/type/group.rb +40 -0
  312. data/spec/unit/type/macauthorization.rb +78 -0
  313. data/spec/unit/type/mcx.rb +108 -0
  314. data/spec/unit/type/mount.rb +219 -0
  315. data/spec/unit/type/nagios.rb +63 -0
  316. data/spec/unit/type/noop_metaparam.rb +38 -0
  317. data/spec/unit/type/package.rb +246 -0
  318. data/spec/unit/type/resources.rb +27 -0
  319. data/spec/unit/type/schedule.rb +339 -0
  320. data/spec/unit/type/selboolean.rb +47 -0
  321. data/spec/unit/type/selmodule.rb +18 -0
  322. data/spec/unit/type/service.rb +254 -0
  323. data/spec/unit/type/ssh_authorized_key.rb +106 -0
  324. data/spec/unit/type/tidy.rb +68 -0
  325. data/spec/unit/type/user.rb +260 -0
  326. data/spec/unit/type/zfs.rb +45 -0
  327. data/spec/unit/type/zone.rb +20 -0
  328. data/spec/unit/type/zpool.rb +110 -0
  329. data/spec/unit/util/checksums.rb +99 -0
  330. data/spec/unit/util/constant_inflector.rb +70 -0
  331. data/spec/unit/util/file_locking.rb +115 -0
  332. data/spec/unit/util/ldap/connection.rb +169 -0
  333. data/spec/unit/util/ldap/generator.rb +54 -0
  334. data/spec/unit/util/ldap/manager.rb +654 -0
  335. data/spec/unit/util/loadedfile.rb +65 -0
  336. data/spec/unit/util/log.rb +107 -0
  337. data/spec/unit/util/metric.rb +95 -0
  338. data/spec/unit/util/nagios_maker.rb +128 -0
  339. data/spec/unit/util/posix.rb +256 -0
  340. data/spec/unit/util/resource_template.rb +58 -0
  341. data/spec/unit/util/selinux.rb +219 -0
  342. data/spec/unit/util/settings.rb +847 -0
  343. data/spec/unit/util/storage.rb +248 -0
  344. data/spec/unit/util/tagging.rb +92 -0
  345. data/spec/unit/util/uri_helper.rb +41 -0
  346. data/spec/unit/util/user_attr.rb +47 -0
  347. data/spec/unit/util/warnings.rb +35 -0
  348. data/test/certmgr/support.rb +0 -6
  349. data/test/data/providers/ssh_authorized_key/parsed/authorized_keys +1 -0
  350. data/test/data/snippets/multilinecomments.pp +6 -0
  351. data/test/data/snippets/multipleclass.pp +9 -0
  352. data/test/language/functions.rb +11 -1
  353. data/test/language/snippets.rb +16 -0
  354. data/test/lib/puppettest/runnable_test.rb +1 -1
  355. data/test/network/handler/fileserver.rb +5 -0
  356. data/test/other/report.rb +0 -4
  357. data/test/ral/type/resources.rb +2 -19
  358. data/test/util/settings.rb +4 -4
  359. data/test/util/storage.rb +0 -24
  360. data/test/util/utiltest.rb +0 -33
  361. metadata +319 -26
  362. data/conf/debian/README.source +0 -2
  363. data/conf/debian/TODO.Debian +0 -1
  364. data/conf/debian/changelog +0 -257
  365. data/conf/debian/compat +0 -1
  366. data/conf/debian/control +0 -45
  367. data/conf/debian/copyright +0 -17
  368. data/conf/debian/docs +0 -1
  369. data/conf/debian/fileserver.conf +0 -12
  370. data/conf/debian/puppet.NEWS +0 -63
  371. data/conf/debian/puppet.conf +0 -8
  372. data/conf/debian/puppet.dirs +0 -7
  373. data/conf/debian/puppet.files +0 -6
  374. data/conf/debian/puppet.init +0 -64
  375. data/conf/debian/puppet.logrotate +0 -11
  376. data/conf/debian/puppet.postinst +0 -9
  377. data/conf/debian/puppet.postrm +0 -21
  378. data/conf/debian/puppet.preinst +0 -25
  379. data/conf/debian/puppetmaster.files +0 -4
  380. data/conf/debian/puppetmaster.init +0 -58
  381. data/conf/debian/rules +0 -115
  382. data/conf/debian/watch +0 -2
  383. data/lib/puppet/type/nagios_hostgroupescalation.rb +0 -3
@@ -0,0 +1,185 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Created by Luke Kanies on 2007-9-12.
4
+ # Copyright (c) 2006. All rights reserved.
5
+
6
+ require File.dirname(__FILE__) + '/../../../spec_helper'
7
+
8
+ require 'puppettest/support/utils'
9
+ require 'puppettest/fileparsing'
10
+
11
+ module ParsedMountTesting
12
+ include PuppetTest::Support::Utils
13
+ include PuppetTest::FileParsing
14
+
15
+ def fake_fstab
16
+ os = Facter['operatingsystem']
17
+ if os == "Solaris"
18
+ name = "solaris.fstab"
19
+ elsif os == "FreeBSD"
20
+ name = "freebsd.fstab"
21
+ else
22
+ # Catchall for other fstabs
23
+ name = "linux.fstab"
24
+ end
25
+ oldpath = @provider_class.default_target
26
+ return fakefile(File::join("data/types/mount", name))
27
+ end
28
+
29
+ def mkmountargs
30
+ mount = nil
31
+
32
+ if defined? @pcount
33
+ @pcount += 1
34
+ else
35
+ @pcount = 1
36
+ end
37
+ args = {
38
+ :name => "/fspuppet%s" % @pcount,
39
+ :device => "/dev/dsk%s" % @pcount,
40
+ }
41
+
42
+ @provider_class.fields(:parsed).each do |field|
43
+ unless args.include? field
44
+ args[field] = "fake%s%s" % [field, @pcount]
45
+ end
46
+ end
47
+
48
+ return args
49
+ end
50
+
51
+ def mkmount
52
+ hash = mkmountargs()
53
+ #hash[:provider] = @provider_class.name
54
+
55
+ fakeresource = stub :type => :mount, :name => hash[:name]
56
+ fakeresource.stubs(:[]).with(:name).returns(hash[:name])
57
+ fakeresource.stubs(:should).with(:target).returns(nil)
58
+
59
+ mount = @provider_class.new(fakeresource)
60
+ hash[:record_type] = :parsed
61
+ hash[:ensure] = :present
62
+ mount.property_hash = hash
63
+
64
+ return mount
65
+ end
66
+
67
+ # Here we just create a fake host type that answers to all of the methods
68
+ # but does not modify our actual system.
69
+ def mkfaketype
70
+ @provider.stubs(:filetype).returns(Puppet::Util::FileType.filetype(:ram))
71
+ end
72
+ end
73
+
74
+ provider_class = Puppet::Type.type(:mount).provider(:parsed)
75
+
76
+ describe provider_class do
77
+ before :each do
78
+ @mount_class = Puppet.type(:mount)
79
+ @provider_class = @mount_class.provider(:parsed)
80
+ end
81
+
82
+
83
+ describe provider_class do
84
+ include ParsedMountTesting
85
+
86
+ it "should be able to parse all of the example mount tabs" do
87
+ tab = fake_fstab
88
+ @provider = @provider_class
89
+
90
+ # LAK:FIXME Again, a relatively bad test, but I don't know how to rspec-ify this.
91
+ # I suppose this is more of an integration test? I dunno.
92
+ fakedataparse(tab) do
93
+ # Now just make we've got some mounts we know will be there
94
+ hashes = @provider_class.target_records(tab).find_all { |i| i.is_a? Hash }
95
+ (hashes.length > 0).should be_true
96
+ root = hashes.find { |i| i[:name] == "/" }
97
+
98
+ proc { @provider_class.to_file(hashes) }.should_not raise_error
99
+ end
100
+ end
101
+
102
+ # LAK:FIXME I can't mock Facter because this test happens at parse-time.
103
+ it "should default to /etc/vfstab on Solaris and /etc/fstab everywhere else" do
104
+ should = case Facter.value(:operatingsystem)
105
+ when "Solaris": "/etc/vfstab"
106
+ else
107
+ "/etc/fstab"
108
+ end
109
+ Puppet::Type.type(:mount).provider(:parsed).default_target.should == should
110
+ end
111
+ end
112
+
113
+ describe provider_class, " when mounting an absent filesystem" do
114
+ include ParsedMountTesting
115
+
116
+ # #730 - Make sure 'flush' is called when a mount is moving from absent to mounted
117
+ it "should flush the fstab to disk" do
118
+ mount = mkmount
119
+
120
+ # Mark the mount as absent
121
+ mount.property_hash[:ensure] = :absent
122
+
123
+ mount.stubs(:mountcmd) # just so we don't actually try to mount anything
124
+
125
+ mount.expects(:flush)
126
+ mount.mount
127
+ end
128
+ end
129
+
130
+ describe provider_class, " when modifying the filesystem tab" do
131
+ include ParsedMountTesting
132
+ before do
133
+ # Never write to disk, only to RAM.
134
+ @provider_class.stubs(:filetype).returns(Puppet::Util::FileType.filetype(:ram))
135
+
136
+ @mount = mkmount
137
+ @target = @provider_class.default_target
138
+ end
139
+
140
+ it "should write the mount to disk when :flush is called" do
141
+ @mount.flush
142
+
143
+ text = @provider_class.target_object(@provider_class.default_target).read
144
+ text.should == @mount.class.to_line(@mount.property_hash) + "\n"
145
+ end
146
+ end
147
+
148
+ describe provider_class, " when parsing information about the root filesystem" do
149
+ confine "Mount type not tested on Darwin" => Facter["operatingsystem"].value != "Darwin"
150
+ include ParsedMountTesting
151
+
152
+ before do
153
+ @mount = @mount_class.create :name => "/"
154
+ @provider = @mount.provider
155
+ end
156
+
157
+ it "should have a filesystem tab" do
158
+ FileTest.should be_exist(@provider_class.default_target)
159
+ end
160
+
161
+ it "should find the root filesystem" do
162
+ @provider_class.prefetch("/" => @mount)
163
+ @mount.provider.property_hash[:ensure].should == :present
164
+ end
165
+
166
+ it "should determine that the root fs is mounted" do
167
+ @provider_class.prefetch("/" => @mount)
168
+ @mount.provider.should be_mounted
169
+ end
170
+
171
+ after do
172
+ Puppet::Type.allclear
173
+ end
174
+ end
175
+
176
+ describe provider_class, " when mounting and unmounting" do
177
+ include ParsedMountTesting
178
+
179
+ it "should call the 'mount' command to mount the filesystem"
180
+
181
+ it "should call the 'unmount' command to unmount the filesystem"
182
+
183
+ it "should specify the filesystem when remounting a filesystem"
184
+ end
185
+ end
@@ -0,0 +1,138 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ Dir.chdir(File.dirname(__FILE__)) { (s = lambda { |f| File.exist?(f) ? require(f) : Dir.chdir("..") { s.call(f) } }).call("spec/spec_helper.rb") }
4
+
5
+ provider = Puppet::Type.type(:package).provider(:apt)
6
+
7
+ describe provider do
8
+ before do
9
+ @resource = stub 'resource', :[] => "asdf"
10
+ @provider = provider.new(@resource)
11
+
12
+ @fakeresult = "install ok installed asdf 1.0\n"
13
+ end
14
+
15
+ it "should be versionable" do
16
+ provider.should be_versionable
17
+ end
18
+
19
+ it "should use :install to update" do
20
+ @provider.expects(:install)
21
+ @provider.update
22
+ end
23
+
24
+ it "should use 'apt-get remove' to uninstall" do
25
+ @provider.expects(:aptget).with("-y", "-q", :remove, "asdf")
26
+
27
+ @provider.uninstall
28
+ end
29
+
30
+ it "should use 'apt-get purge' and 'dpkg purge' to purge" do
31
+ @provider.expects(:aptget).with("-y", "-q", :remove, "--purge", "asdf")
32
+ @provider.expects(:dpkg).with("--purge", "asdf")
33
+
34
+ @provider.purge
35
+ end
36
+
37
+ it "should use 'apt-cache policy' to determine the latest version of a package" do
38
+ @provider.expects(:aptcache).with(:policy, "asdf").returns "asdf:
39
+ Installed: 1:1.0
40
+ Candidate: 1:1.1
41
+ Version table:
42
+ 1:1.0
43
+ 650 http://ftp.osuosl.org testing/main Packages
44
+ *** 1:1.1
45
+ 100 /var/lib/dpkg/status"
46
+
47
+ @provider.latest.should == "1:1.1"
48
+ end
49
+
50
+ it "should print and error and return nil if no policy is found" do
51
+ @provider.expects(:aptcache).with(:policy, "asdf").returns "asdf:"
52
+
53
+ @provider.expects(:err)
54
+ @provider.latest.should be_nil
55
+ end
56
+
57
+ it "should be able to preseed" do
58
+ @provider.should respond_to(:run_preseed)
59
+ end
60
+
61
+ it "should preseed with the provided responsefile when preseeding is called for" do
62
+ @resource.expects(:[]).with(:responsefile).returns "/my/file"
63
+ FileTest.expects(:exist?).with("/my/file").returns true
64
+
65
+ @provider.expects(:info)
66
+ @provider.expects(:preseed).with("/my/file")
67
+
68
+ @provider.run_preseed
69
+ end
70
+
71
+ it "should not preseed if no responsefile is provided" do
72
+ @resource.expects(:[]).with(:responsefile).returns nil
73
+
74
+ @provider.expects(:info)
75
+ @provider.expects(:preseed).never
76
+
77
+ @provider.run_preseed
78
+ end
79
+
80
+ it "should fail if a cdrom is listed in the sources list and :allowcdrom is not specified"
81
+
82
+ describe "when installing" do
83
+ it "should preseed if a responsefile is provided" do
84
+ @resource.expects(:[]).with(:responsefile).returns "/my/file"
85
+ @provider.expects(:run_preseed)
86
+
87
+ @provider.stubs(:aptget)
88
+ @provider.install
89
+ end
90
+
91
+ it "should check for a cdrom" do
92
+ @provider.expects(:checkforcdrom)
93
+
94
+ @provider.stubs(:aptget)
95
+ @provider.install
96
+ end
97
+
98
+ it "should use 'apt-get install' with the package name if no version is asked for" do
99
+ @resource.expects(:[]).with(:ensure).returns :installed
100
+ @provider.expects(:aptget).with { |*command| command[-1] == "asdf" and command[-2] == :install }
101
+
102
+ @provider.install
103
+ end
104
+
105
+ it "should specify the package version if one is asked for" do
106
+ @resource.expects(:[]).with(:ensure).returns "1.0"
107
+ @provider.expects(:aptget).with { |*command| command[-1] == "asdf=1.0" }
108
+
109
+ @provider.install
110
+ end
111
+
112
+ it "should do a quiet install" do
113
+ @provider.expects(:aptget).with { |*command| command.include?("-q") }
114
+
115
+ @provider.install
116
+ end
117
+
118
+ it "should default to 'yes' for all questions" do
119
+ @provider.expects(:aptget).with { |*command| command.include?("-y") }
120
+
121
+ @provider.install
122
+ end
123
+
124
+ it "should keep config files if asked" do
125
+ @resource.expects(:[]).with(:configfiles).returns :keep
126
+ @provider.expects(:aptget).with { |*command| command.include?("DPkg::Options::=--force-confold") }
127
+
128
+ @provider.install
129
+ end
130
+
131
+ it "should replace config files if asked" do
132
+ @resource.expects(:[]).with(:configfiles).returns :replace
133
+ @provider.expects(:aptget).with { |*command| command.include?("DPkg::Options::=--force-confnew") }
134
+
135
+ @provider.install
136
+ end
137
+ end
138
+ end
@@ -0,0 +1,163 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ Dir.chdir(File.dirname(__FILE__)) { (s = lambda { |f| File.exist?(f) ? require(f) : Dir.chdir("..") { s.call(f) } }).call("spec/spec_helper.rb") }
4
+
5
+ provider = Puppet::Type.type(:package).provider(:dpkg)
6
+
7
+ describe provider do
8
+ before do
9
+ @resource = stub 'resource', :[] => "asdf"
10
+ @provider = provider.new(@resource)
11
+
12
+ @fakeresult = "install ok installed asdf 1.0\n"
13
+ end
14
+
15
+ it "should have documentation" do
16
+ provider.doc.should be_instance_of(String)
17
+ end
18
+
19
+ describe "when listing all instances" do
20
+ before do
21
+ provider.stubs(:command).with(:dpkgquery).returns "myquery"
22
+ end
23
+
24
+ it "should use dpkg-query" do
25
+ provider.expects(:command).with(:dpkgquery).returns "myquery"
26
+ provider.expects(:execpipe).with("myquery -W --showformat '${Status} ${Package} ${Version}\\n'").returns @fakeresult
27
+
28
+ provider.instances
29
+ end
30
+
31
+ it "should create and return an instance with each parsed line from dpkg-query" do
32
+ pipe = mock 'pipe'
33
+ pipe.expects(:each).yields @fakeresult
34
+ provider.expects(:execpipe).yields pipe
35
+
36
+ asdf = mock 'pkg1'
37
+ provider.expects(:new).with(:ensure => "1.0", :error => "ok", :desired => "install", :name => "asdf", :status => "installed", :provider => :dpkg).returns asdf
38
+
39
+ provider.instances.should == [asdf]
40
+ end
41
+
42
+ it "should warn on and ignore any lines it does not understand" do
43
+ pipe = mock 'pipe'
44
+ pipe.expects(:each).yields "foobar"
45
+ provider.expects(:execpipe).yields pipe
46
+
47
+ Puppet.expects(:warning)
48
+ provider.expects(:new).never
49
+
50
+ provider.instances.should == []
51
+ end
52
+ end
53
+
54
+ describe "when querying the current state" do
55
+ it "should use dpkg-query" do
56
+ @provider.expects(:dpkgquery).with("-W", "--showformat",'${Status} ${Package} ${Version}\\n', "asdf").returns @fakeresult
57
+
58
+ @provider.query
59
+ end
60
+
61
+ it "should consider the package purged if dpkg-query fails" do
62
+ @provider.expects(:dpkgquery).raises Puppet::ExecutionFailure.new("eh")
63
+
64
+ @provider.query[:ensure].should == :purged
65
+ end
66
+
67
+ it "should return a hash of the found status with the desired state, error state, status, name, and 'ensure'" do
68
+ @provider.expects(:dpkgquery).returns @fakeresult
69
+
70
+ @provider.query.should == {:ensure => "1.0", :error => "ok", :desired => "install", :name => "asdf", :status => "installed", :provider => :dpkg}
71
+ end
72
+
73
+ it "should consider the package absent if the dpkg-query result cannot be interpreted" do
74
+ @provider.expects(:dpkgquery).returns "somebaddata"
75
+
76
+ @provider.query[:ensure].should == :absent
77
+ end
78
+
79
+ it "should fail if an error is discovered" do
80
+ @provider.expects(:dpkgquery).returns @fakeresult.sub("ok", "error")
81
+
82
+ lambda { @provider.query }.should raise_error(Puppet::Error)
83
+ end
84
+
85
+ it "should consider the package purged if it is marked 'not-installed'" do
86
+ @provider.expects(:dpkgquery).returns @fakeresult.sub("installed", "not-installed")
87
+
88
+ @provider.query[:ensure].should == :purged
89
+ end
90
+
91
+ it "should consider the package absent if its status is neither 'installed' nor 'not-installed'" do
92
+ @provider.expects(:dpkgquery).returns @fakeresult.sub("installed", "foo")
93
+
94
+ @provider.query[:ensure].should == :absent
95
+ end
96
+ end
97
+
98
+ it "should be able to install" do
99
+ @provider.should respond_to(:install)
100
+ end
101
+
102
+ describe "when installing" do
103
+ before do
104
+ @resource.stubs(:[]).with(:source).returns "mypkg"
105
+ end
106
+
107
+ it "should fail to install if no source is specified in the resource" do
108
+ @resource.expects(:[]).with(:source).returns nil
109
+
110
+ lambda { @provider.install }.should raise_error(ArgumentError)
111
+ end
112
+
113
+ it "should use 'dpkg -i' to install the package" do
114
+ @resource.expects(:[]).with(:source).returns "mypackagefile"
115
+ @provider.expects(:dpkg).with { |*command| command[-1] == "mypackagefile" and command[-2] == "-i" }
116
+
117
+ @provider.install
118
+ end
119
+
120
+ it "should keep old config files if told to do so" do
121
+ @resource.expects(:[]).with(:configfiles).returns :keep
122
+ @provider.expects(:dpkg).with { |*command| command[0] == "--force-confold" }
123
+
124
+ @provider.install
125
+ end
126
+
127
+ it "should replace old config files if told to do so" do
128
+ @resource.expects(:[]).with(:configfiles).returns :replace
129
+ @provider.expects(:dpkg).with { |*command| command[0] == "--force-confnew" }
130
+
131
+ @provider.install
132
+ end
133
+ end
134
+
135
+ it "should use :install to update" do
136
+ @provider.expects(:install)
137
+ @provider.update
138
+ end
139
+
140
+ describe "when determining latest available version" do
141
+ it "should return the version found by dpkg-deb" do
142
+ @resource.expects(:[]).with(:source).returns "myfile"
143
+ @provider.expects(:dpkg_deb).with { |*command| command[-1] == "myfile" }.returns "asdf\t1.0"
144
+ @provider.latest.should == "1.0"
145
+ end
146
+
147
+ it "should warn if the package file contains a different package" do
148
+ @provider.expects(:dpkg_deb).returns("foo\tversion")
149
+ @provider.expects(:warning)
150
+ @provider.latest
151
+ end
152
+ end
153
+
154
+ it "should use 'dpkg -r' to uninstall" do
155
+ @provider.expects(:dpkg).with("-r", "asdf")
156
+ @provider.uninstall
157
+ end
158
+
159
+ it "should use 'dpkg --purge' to purge" do
160
+ @provider.expects(:dpkg).with("--purge", "asdf")
161
+ @provider.purge
162
+ end
163
+ end