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,147 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Unit testing for the macauthorization provider
4
+ #
5
+
6
+ require File.dirname(__FILE__) + '/../../spec_helper'
7
+
8
+ require 'puppet'
9
+ require 'facter/util/plist'
10
+
11
+ provider_class = Puppet::Type.type(:macauthorization).provider(:macauthorization)
12
+
13
+ describe provider_class do
14
+
15
+ before :each do
16
+ # Create a mock resource
17
+ @resource = stub 'resource'
18
+
19
+ @authname = "foo.spam.eggs.puppettest"
20
+ @authplist = {}
21
+
22
+ @rules = {@authname => @authplist}
23
+
24
+ authdb = {}
25
+ authdb["rules"] = { "foorule" => "foo" }
26
+ authdb["rights"] = { "fooright" => "foo" }
27
+
28
+ # Stub out Plist::parse_xml
29
+ Plist.stubs(:parse_xml).returns(authdb)
30
+
31
+ # A catch all; no parameters set
32
+ @resource.stubs(:[]).returns(nil)
33
+
34
+ # But set name, ensure
35
+ @resource.stubs(:[]).with(:name).returns @authname
36
+ @resource.stubs(:[]).with(:ensure).returns :present
37
+ @resource.stubs(:ref).returns "MacAuthorization[#{@authname}]"
38
+
39
+ @provider = provider_class.new(@resource)
40
+ end
41
+
42
+ it "should have a create method" do
43
+ @provider.should respond_to(:create)
44
+ end
45
+
46
+ it "should have a destroy method" do
47
+ @provider.should respond_to(:destroy)
48
+ end
49
+
50
+ it "should have an exists? method" do
51
+ @provider.should respond_to(:exists?)
52
+ end
53
+
54
+ it "should have a flush method" do
55
+ @provider.should respond_to(:flush)
56
+ end
57
+
58
+ properties = [ :allow_root, :authenticate_user, :auth_class, :comment,
59
+ :group, :k_of_n, :mechanisms, :rule, :session_owner,
60
+ :shared, :timeout, :tries, :auth_type ]
61
+
62
+ properties.each do |prop|
63
+ it "should have a #{prop.to_s} method" do
64
+ @provider.should respond_to(prop.to_s)
65
+ end
66
+
67
+ it "should have a #{prop.to_s}= method" do
68
+ @provider.should respond_to(prop.to_s + "=")
69
+ end
70
+ end
71
+
72
+ describe "when destroying a right" do
73
+ before :each do
74
+ @resource.stubs(:[]).with(:auth_type).returns(:right)
75
+ end
76
+
77
+ it "should call the internal method destroy_right" do
78
+ @provider.expects(:destroy_right)
79
+ @provider.destroy
80
+ end
81
+ it "should call the external command 'security authorizationdb remove @authname" do
82
+ @provider.expects(:security).with("authorizationdb", :remove, @authname)
83
+ @provider.destroy
84
+ end
85
+ end
86
+
87
+ describe "when destroying a rule" do
88
+ before :each do
89
+ @resource.stubs(:[]).with(:auth_type).returns(:rule)
90
+ end
91
+
92
+ it "should call the internal method destroy_rule" do
93
+ @provider.expects(:destroy_rule)
94
+ @provider.destroy
95
+ end
96
+ end
97
+
98
+ describe "when flushing a right" do
99
+ before :each do
100
+ @resource.stubs(:[]).with(:auth_type).returns(:right)
101
+ end
102
+
103
+ it "should call the internal method flush_right" do
104
+ @provider.expects(:flush_right)
105
+ @provider.flush
106
+ end
107
+
108
+ it "should call the internal method set_right" do
109
+ @provider.expects(:set_right)
110
+ @provider.flush
111
+ end
112
+
113
+ it "should read and write to the auth database with the right arguments" do
114
+ @provider.expects(:execute).with() { |cmds, args|
115
+ cmds.include?("read") and
116
+ cmds.include?(@authname) and
117
+ args[:combine] == false
118
+ }.once
119
+
120
+ @provider.expects(:execute).with() { |cmds, args|
121
+ cmds.include?("write") and
122
+ cmds.include?(@authname) and
123
+ args[:combine] == false and
124
+ args[:stdinfile] != nil
125
+ }.once
126
+ @provider.flush
127
+ end
128
+
129
+ end
130
+
131
+ describe "when flushing a rule" do
132
+ before :each do
133
+ @resource.stubs(:[]).with(:auth_type).returns(:rule)
134
+ end
135
+
136
+ it "should call the internal method flush_rule" do
137
+ @provider.expects(:flush_rule)
138
+ @provider.flush
139
+ end
140
+
141
+ it "should call the internal method set_rule" do
142
+ @provider.expects(:set_rule)
143
+ @provider.flush
144
+ end
145
+ end
146
+
147
+ end
@@ -0,0 +1,175 @@
1
+ #! /usr/bin/env ruby
2
+ #--
3
+ # Copyright (C) 2008 Jeffrey J McCune.
4
+
5
+ # This program and entire repository is free software; you can
6
+ # redistribute it and/or modify it under the terms of the GNU
7
+ # General Public License as published by the Free Software
8
+ # Foundation; either version 2 of the License, or any later version.
9
+
10
+ # This program is distributed in the hope that it will be useful,
11
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ # GNU General Public License for more details.
14
+
15
+ # You should have received a copy of the GNU General Public License
16
+ # along with this program; if not, write to the Free Software
17
+ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18
+
19
+ # Author: Jeff McCune <mccune.jeff@gmail.com>
20
+
21
+ require File.dirname(__FILE__) + '/../../../spec_helper'
22
+
23
+ provider_class = Puppet::Type.type(:mcx).provider(:mcxcontent)
24
+
25
+ # describe creates a new ExampleGroup object.
26
+ describe provider_class do
27
+
28
+ # :each executes before each test.
29
+ # :all executes once for the test group and before :each.
30
+ before :each do
31
+ # Create a mock resource
32
+ @resource = stub 'resource'
33
+
34
+ @provider = provider_class.new
35
+ @attached_to = "/Users/foobar"
36
+ @ds_path = "/Local/Default/Users/foobar"
37
+
38
+ # A catch all; no parameters set
39
+ @resource.stubs(:[]).returns(nil)
40
+
41
+ # But set name, ensure and enable
42
+ @resource.stubs(:[]).with(:name).returns @attached_to
43
+ @resource.stubs(:[]).with(:ensure).returns :present
44
+ @resource.stubs(:ref).returns "Mcx[#{@attached_to}]"
45
+
46
+ # stub out the provider methods that actually touch the filesystem
47
+ # or execute commands
48
+ @provider.class.stubs(:execute).returns('')
49
+ @provider.stubs(:execute).returns('')
50
+ @provider.stubs(:resource).returns @resource
51
+ end
52
+
53
+ it "should have a create method." do
54
+ @provider.should respond_to(:create)
55
+ end
56
+
57
+ it "should have a destroy method." do
58
+ @provider.should respond_to(:destroy)
59
+ end
60
+
61
+ it "should have an exists? method." do
62
+ @provider.should respond_to(:exists?)
63
+ end
64
+
65
+ it "should have an content method." do
66
+ @provider.should respond_to(:content)
67
+ end
68
+
69
+ it "should have an content= method." do
70
+ @provider.should respond_to(:content=)
71
+ end
72
+
73
+ describe "when managing the resource" do
74
+ it "should execute external command dscl from :create" do
75
+ @provider.class.expects(:dscl).returns('').once
76
+ @provider.create
77
+ end
78
+ it "should execute external command dscl from :destroy" do
79
+ @provider.class.expects(:dscl).with('localhost', '-mcxdelete', @ds_path).returns('').once
80
+ @provider.destroy
81
+ end
82
+ it "should execute external command dscl from :exists?" do
83
+ @provider.class.expects(:dscl).with('localhost', '-mcxexport', @ds_path).returns('').once
84
+ @provider.exists?
85
+ end
86
+ it "should execute external command dscl from :content" do
87
+ @provider.class.expects(:dscl).with('localhost', '-mcxexport', @ds_path).returns('')
88
+ @provider.content
89
+ end
90
+ it "should execute external command dscl from :content=" do
91
+ @provider.class.expects(:dscl).returns('')
92
+ @provider.content=''
93
+ end
94
+ end
95
+
96
+ describe "when creating and parsing the name for ds_type" do
97
+ before :each do
98
+ @resource.stubs(:[]).with(:name).returns "/Foo/bar"
99
+ end
100
+ it "should not accept /Foo/bar" do
101
+ lambda { @provider.create }.should raise_error(MCXContentProviderException)
102
+ end
103
+ it "should accept /Foo/bar with ds_type => user" do
104
+ @resource.stubs(:[]).with(:ds_type).returns "user"
105
+ lambda { @provider.create }.should_not raise_error(MCXContentProviderException)
106
+ end
107
+ it "should accept /Foo/bar with ds_type => group" do
108
+ @resource.stubs(:[]).with(:ds_type).returns "group"
109
+ lambda { @provider.create }.should_not raise_error(MCXContentProviderException)
110
+ end
111
+ it "should accept /Foo/bar with ds_type => computer" do
112
+ @resource.stubs(:[]).with(:ds_type).returns "computer"
113
+ lambda { @provider.create }.should_not raise_error(MCXContentProviderException)
114
+ end
115
+ it "should accept :name => /Foo/bar with ds_type => computerlist" do
116
+ @resource.stubs(:[]).with(:ds_type).returns "computerlist"
117
+ lambda { @provider.create }.should_not raise_error(MCXContentProviderException)
118
+ end
119
+ end
120
+
121
+ describe "when creating and :name => foobar" do
122
+ before :each do
123
+ @resource.stubs(:[]).with(:name).returns "foobar"
124
+ end
125
+ it "should not accept unspecified :ds_type and :ds_name" do
126
+ lambda { @provider.create }.should raise_error(MCXContentProviderException)
127
+ end
128
+ it "should not accept unspecified :ds_type" do
129
+ @resource.stubs(:[]).with(:ds_type).returns "user"
130
+ lambda { @provider.create }.should raise_error(MCXContentProviderException)
131
+ end
132
+ it "should not accept unspecified :ds_name" do
133
+ @resource.stubs(:[]).with(:ds_name).returns "foo"
134
+ lambda { @provider.create }.should raise_error(MCXContentProviderException)
135
+ end
136
+ it "should accept :ds_type => user, ds_name => foo" do
137
+ @resource.stubs(:[]).with(:ds_type).returns "user"
138
+ @resource.stubs(:[]).with(:ds_name).returns "foo"
139
+ lambda { @provider.create }.should_not raise_error(MCXContentProviderException)
140
+ end
141
+ it "should accept :ds_type => group, ds_name => foo" do
142
+ @resource.stubs(:[]).with(:ds_type).returns "group"
143
+ @resource.stubs(:[]).with(:ds_name).returns "foo"
144
+ lambda { @provider.create }.should_not raise_error(MCXContentProviderException)
145
+ end
146
+ it "should accept :ds_type => computer, ds_name => foo" do
147
+ @resource.stubs(:[]).with(:ds_type).returns "computer"
148
+ @resource.stubs(:[]).with(:ds_name).returns "foo"
149
+ lambda { @provider.create }.should_not raise_error(MCXContentProviderException)
150
+ end
151
+ it "should accept :ds_type => computerlist, ds_name => foo" do
152
+ @resource.stubs(:[]).with(:ds_type).returns "computerlist"
153
+ @resource.stubs(:[]).with(:ds_name).returns "foo"
154
+ lambda { @provider.create }.should_not raise_error(MCXContentProviderException)
155
+ end
156
+ it "should not accept :ds_type => bogustype, ds_name => foo" do
157
+ @resource.stubs(:[]).with(:ds_type).returns "bogustype"
158
+ @resource.stubs(:[]).with(:ds_name).returns "foo"
159
+ lambda { @provider.create }.should raise_error(MCXContentProviderException)
160
+ end
161
+ end
162
+
163
+ describe "when gathering existing instances" do
164
+ it "should define an instances class method." do
165
+ @provider.class.should respond_to(:instances)
166
+ end
167
+ it "should call external command dscl -list /Local/Default/<ds_type> on each known ds_type" do
168
+ @provider.class.expects(:dscl).with('localhost', '-list', "/Local/Default/Users").returns('')
169
+ @provider.class.expects(:dscl).with('localhost', '-list', "/Local/Default/Groups").returns('')
170
+ @provider.class.expects(:dscl).with('localhost', '-list', "/Local/Default/Computers").returns('')
171
+ @provider.class.expects(:dscl).with('localhost', '-list', "/Local/Default/ComputerLists").returns('')
172
+ @provider.class.instances
173
+ end
174
+ end
175
+ end
@@ -0,0 +1,130 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../spec_helper'
4
+
5
+ require 'puppet/provider/mount'
6
+
7
+ describe Puppet::Provider::Mount do
8
+ before :each do
9
+ @mounter = Object.new
10
+ @mounter.extend(Puppet::Provider::Mount)
11
+
12
+ @name = "/"
13
+
14
+ @resource = stub 'resource'
15
+ @resource.stubs(:[]).with(:name).returns(@name)
16
+
17
+ @mounter.stubs(:resource).returns(@resource)
18
+ end
19
+
20
+ describe Puppet::Provider::Mount, " when mounting" do
21
+
22
+ it "should use the 'mountcmd' method to mount" do
23
+ @mounter.stubs(:options).returns(nil)
24
+ @mounter.expects(:mountcmd)
25
+
26
+ @mounter.mount
27
+ end
28
+
29
+ it "should flush before mounting if a flush method exists" do
30
+ @mounter.meta_def(:flush) { }
31
+ @mounter.expects(:flush)
32
+ @mounter.stubs(:mountcmd)
33
+ @mounter.stubs(:options).returns(nil)
34
+
35
+ @mounter.mount
36
+ end
37
+
38
+ it "should add the options following '-o' if they exist and are not set to :absent" do
39
+ @mounter.stubs(:options).returns("ro")
40
+ @mounter.expects(:mountcmd).with { |*ary| ary[0] == "-o" and ary[1] == "ro" }
41
+
42
+ @mounter.mount
43
+ end
44
+
45
+ it "should specify the filesystem name to the mount command" do
46
+ @mounter.stubs(:options).returns(nil)
47
+ @mounter.expects(:mountcmd).with { |*ary| ary[-1] == @name }
48
+
49
+ @mounter.mount
50
+ end
51
+ end
52
+
53
+ describe Puppet::Provider::Mount, " when remounting" do
54
+
55
+ it "should use '-o remount' if the resource specifies it supports remounting" do
56
+ @mounter.stubs(:info)
57
+ @resource.stubs(:[]).with(:remounts).returns(:true)
58
+ @mounter.expects(:mountcmd).with("-o", "remount", @name)
59
+ @mounter.remount
60
+ end
61
+
62
+ it "should unmount and mount if the resource does not specify it supports remounting" do
63
+ @mounter.stubs(:info)
64
+ @resource.stubs(:[]).with(:remounts).returns(false)
65
+ @mounter.expects(:unmount)
66
+ @mounter.expects(:mount)
67
+ @mounter.remount
68
+ end
69
+
70
+ it "should log that it is remounting" do
71
+ @resource.stubs(:[]).with(:remounts).returns(:true)
72
+ @mounter.stubs(:mountcmd)
73
+ @mounter.expects(:info).with("Remounting")
74
+ @mounter.remount
75
+ end
76
+ end
77
+
78
+ describe Puppet::Provider::Mount, " when unmounting" do
79
+
80
+ it "should call the :umount command with the resource name" do
81
+ @mounter.expects(:umount).with(@name)
82
+ @mounter.unmount
83
+ end
84
+ end
85
+
86
+ describe Puppet::Provider::Mount, " when determining if it is mounted" do
87
+
88
+ it "should parse the results of running the mount command with no arguments" do
89
+ Facter.stubs(:value).returns("whatever")
90
+ @mounter.expects(:mountcmd).returns("")
91
+
92
+ @mounter.mounted?
93
+ end
94
+
95
+ it "should match ' on /private/var/automount<name>' if the operating system is Darwin" do
96
+ Facter.stubs(:value).with("operatingsystem").returns("Darwin")
97
+ @mounter.expects(:mountcmd).returns("/dev/whatever on /private/var/automount/\ndevfs on /dev")
98
+
99
+ @mounter.should be_mounted
100
+ end
101
+
102
+ it "should match ' on <name>' if the operating system is Darwin" do
103
+ Facter.stubs(:value).with("operatingsystem").returns("Darwin")
104
+ @mounter.expects(:mountcmd).returns("/dev/disk03 on / (local, journaled)\ndevfs on /dev")
105
+
106
+ @mounter.should be_mounted
107
+ end
108
+
109
+ it "should match '^<name> on' if the operating system is Solaris" do
110
+ Facter.stubs(:value).with("operatingsystem").returns("Solaris")
111
+ @mounter.expects(:mountcmd).returns("/ on /dev/dsk/whatever\n/var on /dev/dsk/other")
112
+
113
+ @mounter.should be_mounted
114
+ end
115
+
116
+ it "should match ' on <name>' if the operating system is not Darwin or Solaris" do
117
+ Facter.stubs(:value).with("operatingsystem").returns("Debian")
118
+ @mounter.expects(:mountcmd).returns("/dev/dsk/whatever on / and stuff\n/dev/other/disk on /var and stuff")
119
+
120
+ @mounter.should be_mounted
121
+ end
122
+
123
+ it "should not be considered mounted if it did not match the mount output" do
124
+ Facter.stubs(:value).with("operatingsystem").returns("Debian")
125
+ @mounter.expects(:mountcmd).returns("/dev/dsk/whatever on /something/else and stuff\n/dev/other/disk on /var and stuff")
126
+
127
+ @mounter.should_not be_mounted
128
+ end
129
+ end
130
+ end