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,87 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../../spec_helper'
4
+
5
+ provider_class = Puppet::Type.type(:package).provider(:gem)
6
+
7
+ describe provider_class do
8
+ it "should have an install method" do
9
+ @provider = provider_class.new
10
+ @provider.should respond_to(:install)
11
+ end
12
+
13
+ describe "when installing" do
14
+ before do
15
+ # Create a mock resource
16
+ @resource = stub 'resource'
17
+
18
+ # A catch all; no parameters set
19
+ @resource.stubs(:[]).returns nil
20
+
21
+ # We have to set a name, though
22
+ @resource.stubs(:[]).with(:name).returns "myresource"
23
+ @resource.stubs(:[]).with(:ensure).returns :installed
24
+
25
+ @provider = provider_class.new
26
+ @provider.stubs(:resource).returns @resource
27
+ end
28
+
29
+ it "should use the path to the gem" do
30
+ provider_class.stubs(:command).with(:gemcmd).returns "/my/gem"
31
+ @provider.expects(:execute).with { |args| args[0] == "/my/gem" }.returns ""
32
+ @provider.install
33
+ end
34
+
35
+ it "should specify that the gem is being installed" do
36
+ @provider.expects(:execute).with { |args| args[1] == "install" }.returns ""
37
+ @provider.install
38
+ end
39
+
40
+ it "should specify that dependencies should be included" do
41
+ @provider.expects(:execute).with { |args| args[2] == "--include-dependencies" }.returns ""
42
+ @provider.install
43
+ end
44
+
45
+ it "should specify the package name" do
46
+ @provider.expects(:execute).with { |args| args[3] == "myresource" }.returns ""
47
+ @provider.install
48
+ end
49
+
50
+ describe "when a source is specified" do
51
+ describe "as a normal file" do
52
+ it "should use the file name instead of the gem name" do
53
+ @resource.stubs(:[]).with(:source).returns "/my/file"
54
+ @provider.expects(:execute).with { |args| args[3] == "/my/file" }.returns ""
55
+ @provider.install
56
+ end
57
+ end
58
+ describe "as a file url" do
59
+ it "should use the file name instead of the gem name" do
60
+ @resource.stubs(:[]).with(:source).returns "file:///my/file"
61
+ @provider.expects(:execute).with { |args| args[3] == "/my/file" }.returns ""
62
+ @provider.install
63
+ end
64
+ end
65
+ describe "as a puppet url" do
66
+ it "should fail" do
67
+ @resource.stubs(:[]).with(:source).returns "puppet://my/file"
68
+ lambda { @provider.install }.should raise_error(Puppet::Error)
69
+ end
70
+ end
71
+ describe "as a non-file and non-puppet url" do
72
+ it "should treat the source as a gem repository" do
73
+ @resource.stubs(:[]).with(:source).returns "http://host/my/file"
74
+ @provider.expects(:execute).with { |args| args[3..5] == ["--source", "http://host/my/file", "myresource"] }.returns ""
75
+ @provider.install
76
+ end
77
+ end
78
+ describe "with an invalid uri" do
79
+ it "should fail" do
80
+ URI.expects(:parse).raises(ArgumentError)
81
+ @resource.stubs(:[]).with(:source).returns "http:::::uppet:/:/my/file"
82
+ lambda { @provider.install }.should raise_error(Puppet::Error)
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,52 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../../spec_helper'
4
+
5
+ provider_class = Puppet::Type.type(:package).provider(:hpux)
6
+
7
+ describe provider_class do
8
+ before(:each) do
9
+ # Create a mock resource
10
+ @resource = stub 'resource'
11
+
12
+ # A catch all; no parameters set
13
+ @resource.stubs(:[]).returns(nil)
14
+
15
+ # But set name and source
16
+ @resource.stubs(:[]).with(:name).returns "mypackage"
17
+ @resource.stubs(:[]).with(:source).returns "mysource"
18
+ @resource.stubs(:[]).with(:ensure).returns :installed
19
+
20
+ @provider = provider_class.new
21
+ @provider.stubs(:resource).returns @resource
22
+ end
23
+
24
+ it "should have an install method" do
25
+ @provider = provider_class.new
26
+ @provider.should respond_to(:install)
27
+ end
28
+
29
+ it "should have an uninstall method" do
30
+ @provider = provider_class.new
31
+ @provider.should respond_to(:uninstall)
32
+ end
33
+
34
+ it "should have a swlist method" do
35
+ @provider = provider_class.new
36
+ @provider.should respond_to(:swlist)
37
+ end
38
+
39
+ describe "when installing" do
40
+ it "should use a command-line like 'swinstall -x mount_all_filesystems=false -s SOURCE PACKAGE-NAME'" do
41
+ @provider.expects(:swinstall).with('-x', 'mount_all_filesystems=false', '-s', 'mysource', 'mypackage')
42
+ @provider.install
43
+ end
44
+ end
45
+
46
+ describe "when uninstalling" do
47
+ it "should use a command-line like 'swremove -x mount_all_filesystems=false PACKAGE-NAME'" do
48
+ @provider.expects(:swremove).with('-x', 'mount_all_filesystems=false', 'mypackage')
49
+ @provider.uninstall
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,37 @@
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_class = Puppet::Type.type(:selboolean).provider(:getsetsebool)
6
+
7
+ describe provider_class do
8
+ before :each do
9
+ @resource = stub("resource", :name => "foo")
10
+ @resource.stubs(:[]).returns "foo"
11
+ @provider = provider_class.new(@resource)
12
+ end
13
+
14
+ it "should return :on when getsebool returns on" do
15
+ @provider.expects(:getsebool).with("foo").returns "foo --> on\n"
16
+ @provider.value.should == :on
17
+ end
18
+
19
+ it "should return :off when getsebool returns on" do
20
+ @provider.expects(:getsebool).with("foo").returns "foo --> off\n"
21
+ @provider.value.should == :off
22
+ end
23
+
24
+ it "should call execpipe when updating boolean setting" do
25
+ @provider.expects(:command).with(:setsebool).returns "/usr/sbin/setsebool"
26
+ @provider.expects(:execpipe).with("/usr/sbin/setsebool foo off")
27
+ @provider.value = :off
28
+ end
29
+
30
+ it "should call execpipe with -P when updating persistent boolean setting" do
31
+ @resource.stubs(:[]).with(:persistent).returns :true
32
+ @provider.expects(:command).with(:setsebool).returns "/usr/sbin/setsebool"
33
+ @provider.expects(:execpipe).with("/usr/sbin/setsebool -P foo off")
34
+ @provider.value = :off
35
+ end
36
+
37
+ end
@@ -0,0 +1,66 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # Note: This unit test depends on having a sample SELinux policy file
4
+ # in the same directory as this test called selmodule-example.pp
5
+ # with version 1.5.0. The provided selmodule-example.pp is the first
6
+ # 256 bytes taken from /usr/share/selinux/targeted/nagios.pp on Fedora 9
7
+
8
+ Dir.chdir(File.dirname(__FILE__)) { (s = lambda { |f| File.exist?(f) ? require(f) : Dir.chdir("..") { s.call(f) } }).call("spec/spec_helper.rb") }
9
+
10
+ provider_class = Puppet::Type.type(:selmodule).provider(:semodule)
11
+
12
+ describe provider_class do
13
+ before :each do
14
+ @resource = stub("resource", :name => "foo")
15
+ @resource.stubs(:[]).returns "foo"
16
+ @provider = provider_class.new(@resource)
17
+ end
18
+
19
+ describe "exists? method" do
20
+ it "should find a module if it is already loaded" do
21
+ @provider.expects(:command).with(:semodule).returns "/usr/sbin/semodule"
22
+ @provider.expects(:execpipe).with("/usr/sbin/semodule --list").yields ["bar\t1.2.3\n", "foo\t4.4.4\n", "bang\t1.0.0\n"]
23
+ @provider.exists?.should == :true
24
+ end
25
+
26
+ it "should return nil if not loaded" do
27
+ @provider.expects(:command).with(:semodule).returns "/usr/sbin/semodule"
28
+ @provider.expects(:execpipe).with("/usr/sbin/semodule --list").yields ["bar\t1.2.3\n", "bang\t1.0.0\n"]
29
+ @provider.exists?.should be_nil
30
+ end
31
+
32
+ it "should return nil if no modules are loaded" do
33
+ @provider.expects(:command).with(:semodule).returns "/usr/sbin/semodule"
34
+ @provider.expects(:execpipe).with("/usr/sbin/semodule --list").yields []
35
+ @provider.exists?.should be_nil
36
+ end
37
+ end
38
+
39
+ describe "selmodversion_file" do
40
+ it "should return 1.5.0 for the example policy file" do
41
+ @provider.expects(:selmod_name_to_filename).returns "#{File.dirname(__FILE__)}/selmodule-example.pp"
42
+ @provider.selmodversion_file.should == "1.5.0"
43
+ end
44
+ end
45
+
46
+ describe "syncversion" do
47
+ it "should return :true if loaded and file modules are in sync" do
48
+ @provider.expects(:selmodversion_loaded).returns "1.5.0"
49
+ @provider.expects(:selmodversion_file).returns "1.5.0"
50
+ @provider.syncversion.should == :true
51
+ end
52
+
53
+ it "should return :false if loaded and file modules are not in sync" do
54
+ @provider.expects(:selmodversion_loaded).returns "1.4.0"
55
+ @provider.expects(:selmodversion_file).returns "1.5.0"
56
+ @provider.syncversion.should == :false
57
+ end
58
+
59
+ it "should return before checking file version if no loaded policy" do
60
+ @provider.expects(:selmodversion_loaded).returns nil
61
+ @provider.syncversion.should == :false
62
+ end
63
+
64
+ end
65
+
66
+ end
@@ -0,0 +1,124 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Unit testing for the Daemontools service Provider
4
+ #
5
+ # author Brice Figureau
6
+ #
7
+ require File.dirname(__FILE__) + '/../../../spec_helper'
8
+
9
+ provider_class = Puppet::Type.type(:service).provider(:daemontools)
10
+
11
+ describe provider_class do
12
+
13
+ before(:each) do
14
+ # Create a mock resource
15
+ @resource = stub 'resource'
16
+
17
+ @provider = provider_class.new
18
+ @servicedir = "/etc/service"
19
+ @provider.servicedir=@servicedir
20
+ @daemondir = "/var/lib/service"
21
+ @provider.class.defpath=@daemondir
22
+
23
+ # A catch all; no parameters set
24
+ @resource.stubs(:[]).returns(nil)
25
+
26
+ # But set name, source and path (because we won't run
27
+ # the thing that will fetch the resource path from the provider)
28
+ @resource.stubs(:[]).with(:name).returns "myservice"
29
+ @resource.stubs(:[]).with(:ensure).returns :enabled
30
+ @resource.stubs(:[]).with(:path).returns @daemondir
31
+ @resource.stubs(:ref).returns "Service[myservice]"
32
+
33
+ @provider.stubs(:resource).returns @resource
34
+ end
35
+
36
+ it "should have a restartcmd method" do
37
+ @provider.should respond_to(:restartcmd)
38
+ end
39
+
40
+ it "should have a start method" do
41
+ @provider.should respond_to(:start)
42
+ end
43
+
44
+ it "should have a stop method" do
45
+ @provider.should respond_to(:stop)
46
+ end
47
+
48
+ it "should have an enabled? method" do
49
+ @provider.should respond_to(:enabled?)
50
+ end
51
+
52
+ it "should have an enable method" do
53
+ @provider.should respond_to(:enable)
54
+ end
55
+
56
+ it "should have a disable method" do
57
+ @provider.should respond_to(:disable)
58
+ end
59
+
60
+ describe "when starting" do
61
+ it "should call enable" do
62
+ @provider.expects(:enable)
63
+ @provider.start
64
+ end
65
+ end
66
+
67
+ describe "when stopping" do
68
+ it "should call disable" do
69
+ @provider.expects(:disable)
70
+ @provider.stop
71
+ end
72
+ end
73
+
74
+ describe "when enabling" do
75
+ it "should create a symlink between daemon dir and service dir" do
76
+ FileTest.stubs(:symlink?).returns(false)
77
+ File.expects(:symlink).with(File.join(@daemondir,"myservice"), File.join(@servicedir,"myservice")).returns(0)
78
+ @provider.enable
79
+ end
80
+ end
81
+
82
+ describe "when disabling" do
83
+ it "should stop and then remove the symlink between daemon dir and service dir" do
84
+ FileTest.stubs(:directory?).returns(false)
85
+ FileTest.stubs(:symlink?).returns(true)
86
+ File.expects(:unlink).with(File.join(@servicedir,"myservice")).returns(0)
87
+ @provider.stubs(:texecute).returns("")
88
+ @provider.disable
89
+ end
90
+ end
91
+
92
+ describe "when disabling" do
93
+ it "should also call 'svc -dx /etc/service/myservice'" do
94
+ FileTest.stubs(:directory?).returns(false)
95
+ FileTest.stubs(:symlink?).returns(true)
96
+ File.expects(:unlink).with(File.join(@servicedir,"myservice")).returns(0)
97
+ @provider.expects(:texecute).with("stop", [nil, '-dx', File.join(@servicedir,"myservice")]).returns ""
98
+ @provider.disable
99
+ end
100
+ end
101
+
102
+ describe "when checking status" do
103
+ it "should call the external command 'svstat /etc/service/myservice'" do
104
+ @provider.expects(:svstat).with(File.join(@servicedir,"myservice"))
105
+ @provider.status
106
+ end
107
+ end
108
+
109
+ describe "when checking status" do
110
+ it "and svstat fails, properly raise a Puppet::Error" do
111
+ @provider.expects(:svstat).with(File.join(@servicedir,"myservice")).raises(Puppet::ExecutionFailure, "failure")
112
+ lambda { @provider.status }.should raise_error(Puppet::Error, 'Could not get status for service Service[myservice]: failure')
113
+ end
114
+ it "and svstat returns up, then return :running" do
115
+ @provider.expects(:svstat).with(File.join(@servicedir,"myservice")).returns("/etc/service/myservice: up (pid 454) 954326 seconds")
116
+ @provider.status.should == :running
117
+ end
118
+ it "and svstat returns not running, then return :stopped" do
119
+ @provider.expects(:svstat).with(File.join(@servicedir,"myservice")).returns("/etc/service/myservice: supervise not running")
120
+ @provider.status.should == :stopped
121
+ end
122
+ end
123
+
124
+ end
@@ -0,0 +1,134 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Unit testing for the launchd service provider
4
+ #
5
+
6
+ require File.dirname(__FILE__) + '/../../../spec_helper'
7
+
8
+ require 'puppet'
9
+
10
+ provider_class = Puppet::Type.type(:service).provider(:launchd)
11
+
12
+ describe provider_class do
13
+
14
+ before :each do
15
+ # Create a mock resource
16
+ @resource = stub 'resource'
17
+
18
+ @provider = provider_class.new
19
+ @joblabel = "com.foo.food"
20
+ @jobplist = {}
21
+
22
+ # A catch all; no parameters set
23
+ @resource.stubs(:[]).returns(nil)
24
+
25
+ # But set name, ensure and enable
26
+ @resource.stubs(:[]).with(:name).returns @joblabel
27
+ @resource.stubs(:[]).with(:ensure).returns :enabled
28
+ @resource.stubs(:[]).with(:enable).returns :true
29
+ @resource.stubs(:ref).returns "Service[#{@joblabel}]"
30
+
31
+ # stub out the provider methods that actually touch the filesystem
32
+ # or execute commands
33
+ @provider.stubs(:plist_from_label).returns([@joblabel, @jobplist])
34
+ @provider.stubs(:execute).returns("")
35
+ @provider.stubs(:resource).returns @resource
36
+ end
37
+
38
+ it "should have a start method for #{@provider.object_id}" do
39
+ @provider.should respond_to(:start)
40
+ end
41
+
42
+ it "should have a stop method" do
43
+ @provider.should respond_to(:stop)
44
+ end
45
+
46
+ it "should have an enabled? method" do
47
+ @provider.should respond_to(:enabled?)
48
+ end
49
+
50
+ it "should have an enable method" do
51
+ @provider.should respond_to(:enable)
52
+ end
53
+
54
+ it "should have a disable method" do
55
+ @provider.should respond_to(:disable)
56
+ end
57
+
58
+ it "should have a status method" do
59
+ @provider.should respond_to(:status)
60
+ end
61
+
62
+
63
+ describe "when checking status" do
64
+ it "should call the external command 'launchctl list' once" do
65
+ @provider.expects(:launchctl).with(:list, @resource[:name]).returns(:running).once
66
+ @provider.status
67
+ end
68
+ end
69
+
70
+ describe "when starting the service" do
71
+ it "should look for the relevant plist once" do
72
+ @provider.expects(:plist_from_label).once
73
+ @provider.start
74
+ end
75
+ it "should execute 'launchctl load' once without writing to the plist if the job is enabled" do
76
+ @provider.stubs(:enabled?).returns :true
77
+ @provider.expects(:execute).with([:launchctl, :load, @resource[:name]]).once
78
+ @provider.start
79
+ end
80
+ it "should execute 'launchctl load' with writing to the plist once if the job is disabled" do
81
+ @provider.stubs(:enabled?).returns :false
82
+ @provider.expects(:execute).with([:launchctl, :load, "-w", @resource[:name]]).once
83
+ @provider.start
84
+ end
85
+ it "should disable the job once if the job is disabled and should be disabled at boot" do
86
+ @provider.stubs(:enabled?).returns :false
87
+ @resource.stubs(:[]).with(:enable).returns :false
88
+ @provider.expects(:disable).once
89
+ @provider.start
90
+ end
91
+ end
92
+
93
+ describe "when stopping the service" do
94
+ it "should look for the relevant plist once" do
95
+ @provider.expects(:plist_from_label).once
96
+ @provider.stop
97
+ end
98
+ it "should execute 'launchctl unload' once without writing to the plist if the job is disabled" do
99
+ @provider.stubs(:enabled?).returns :false
100
+ @provider.expects(:execute).with([:launchctl, :unload, @resource[:name]]).once
101
+ @provider.stop
102
+ end
103
+ it "should execute 'launchctl unload' with writing to the plist once if the job is enabled" do
104
+ @provider.stubs(:enabled?).returns :true
105
+ @provider.expects(:execute).with([:launchctl, :unload, "-w", @resource[:name]]).once
106
+ @provider.stop
107
+ end
108
+ it "should enable the job once if the job is enabled and should be enabled at boot" do
109
+ @provider.stubs(:enabled?).returns :true
110
+ @resource.stubs(:[]).with(:enable).returns :true
111
+ @provider.expects(:enable).once
112
+ @provider.stop
113
+ end
114
+ end
115
+
116
+ describe "when enabling the service" do
117
+ it "should look for the relevant plist once" do
118
+ @provider.expects(:plist_from_label).once
119
+ @provider.stop
120
+ end
121
+ it "should check if the job is enabled once" do
122
+ @provider.expects(:enabled?).once
123
+ @provider.stop
124
+ end
125
+ end
126
+
127
+ describe "when disabling the service" do
128
+ it "should look for the relevant plist once" do
129
+ @provider.expects(:plist_from_label).once
130
+ @provider.stop
131
+ end
132
+ end
133
+
134
+ end