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
@@ -1,8 +1,11 @@
1
1
  # Manage Red Hat services. Start/stop uses /sbin/service and enable/disable uses chkconfig
2
2
 
3
3
  Puppet::Type.type(:service).provide :redhat, :parent => :init do
4
- desc "Red Hat's (and probably many others) form of ``init``-style service
5
- management; uses ``chkconfig`` for service enabling and disabling."
4
+ desc "Red Hat's (and probably many others) form of ``init``-style service management:
5
+
6
+ Uses ``chkconfig`` for service enabling and disabling.
7
+
8
+ "
6
9
 
7
10
  commands :chkconfig => "/sbin/chkconfig", :service => "/sbin/service"
8
11
 
@@ -2,26 +2,36 @@
2
2
  #
3
3
  # author Brice Figureau <brice-puppet@daysofwonder.com>
4
4
  Puppet::Type.type(:service).provide :runit, :parent => :daemontools do
5
- desc "Runit service management.
6
- This provider manages daemons running supervised by Runit.
7
- It tries to detect the service directory, with by order of preference:
8
- * /service
9
- * /var/service
10
- * /etc/service
11
- The daemon directory should be placed in a directory that can be
12
- by default in:
13
- * /etc/sv
14
- or this can be overriden in the service resource parameters:
15
- service {
16
- \"myservice\":
17
- provider => \"runit\", path => \"/path/to/daemons\";
18
- }
19
-
20
- This provider supports out of the box:
21
- * start/stop
22
- * enable/disable
23
- * restart
24
- * status"
5
+ desc """Runit service management.
6
+
7
+ This provider manages daemons running supervised by Runit.
8
+ It tries to detect the service directory, with by order of preference:
9
+
10
+ * /service
11
+ * /var/service
12
+ * /etc/service
13
+
14
+ The daemon directory should be placed in a directory that can be
15
+ by default in:
16
+
17
+ * /etc/sv
18
+
19
+ or this can be overriden in the service resource parameters::
20
+
21
+ service {
22
+ \"myservice\":
23
+ provider => \"runit\", path => \"/path/to/daemons\";
24
+ }
25
+
26
+ This provider supports out of the box:
27
+
28
+ * start/stop
29
+ * enable/disable
30
+ * restart
31
+ * status
32
+
33
+
34
+ """
25
35
 
26
36
  commands :sv => "/usr/bin/sv"
27
37
 
@@ -1,9 +1,12 @@
1
1
  # Solaris 10 SMF-style services.
2
2
  Puppet::Type.type(:service).provide :smf, :parent => :base do
3
- desc "Support for Sun's new Service Management Framework. Starting a service
4
- is effectively equivalent to enabling it, so there is only support
5
- for starting and stopping services, which also enables and disables them,
6
- respectively."
3
+ desc "Support for Sun's new Service Management Framework.
4
+
5
+ Starting a service is effectively equivalent to enabling it, so there is
6
+ only support for starting and stopping services, which also enables and
7
+ disables them, respectively.
8
+
9
+ "
7
10
 
8
11
  defaultfor :operatingsystem => :solaris
9
12
 
@@ -19,7 +19,7 @@ Puppet::Type.type(:ssh_authorized_key).provide(:parsed,
19
19
  if record[:options].nil?
20
20
  record[:options] = [:absent]
21
21
  else
22
- record[:options] = record[:options].split(',')
22
+ record[:options] = Puppet::Type::Ssh_authorized_key::ProviderParsed.parse_options(record[:options])
23
23
  end
24
24
  },
25
25
  :pre_gen => proc { |record|
@@ -71,5 +71,25 @@ Puppet::Type.type(:ssh_authorized_key).provide(:parsed,
71
71
  File.chown(Puppet::Util.uid(user), nil, @property_hash[:target])
72
72
  end
73
73
  end
74
+
75
+ # parse sshv2 option strings, wich is a comma separated list of
76
+ # either key="values" elements or bare-word elements
77
+ def self.parse_options(options)
78
+ result = []
79
+ scanner = StringScanner.new(options)
80
+ while !scanner.eos?
81
+ scanner.skip(/[ \t]*/)
82
+ # scan a long option
83
+ if out = scanner.scan(/[-a-z0-9A-Z_]+=\".*?\"/) or out = scanner.scan(/[-a-z0-9A-Z_]+/)
84
+ result << out
85
+ else
86
+ # found an unscannable token, let's abort
87
+ break
88
+ end
89
+ # eat a comma
90
+ scanner.skip(/[ \t]*,[ \t]*/)
91
+ end
92
+ result
93
+ end
74
94
  end
75
95
 
@@ -19,6 +19,7 @@ Puppet::Type.type(:user).provide :directoryservice, :parent => Puppet::Provider:
19
19
 
20
20
  commands :dscl => "/usr/bin/dscl"
21
21
  confine :operatingsystem => :darwin
22
+ defaultfor :operatingsystem => :darwin
22
23
 
23
24
  # JJM: DirectoryService can manage passwords.
24
25
  # This needs to be a special option to dscl though (-passwd)
@@ -1,5 +1,8 @@
1
- # Manage NetInfo POSIX objects. Probably only used on OS X, but I suppose
2
- # it could be used elsewhere.
1
+ # Manage NetInfo POSIX objects.
2
+ #
3
+ # This provider has been deprecated. You should be using the directoryservice
4
+ # nameservice provider instead.
5
+
3
6
  require 'puppet/provider/nameservice/netinfo'
4
7
 
5
8
  Puppet::Type.type(:user).provide :netinfo, :parent => Puppet::Provider::NameService::NetInfo do
@@ -15,7 +18,6 @@ Puppet::Type.type(:user).provide :netinfo, :parent => Puppet::Provider::NameServ
15
18
  options :comment, :key => "realname"
16
19
  options :password, :key => "passwd"
17
20
 
18
- defaultfor :operatingsystem => :darwin
19
21
 
20
22
  autogen_defaults :home => "/var/empty", :shell => "/usr/bin/false", :password => '********'
21
23
 
@@ -36,6 +38,8 @@ Puppet::Type.type(:user).provide :netinfo, :parent => Puppet::Provider::NameServ
36
38
  # The list of all groups the user is a member of. Different
37
39
  # user mgmt systems will need to override this method.
38
40
  def groups
41
+ warnonce "The NetInfo provider is deprecated; use directoryservice instead"
42
+
39
43
  groups = []
40
44
 
41
45
  user = @resource[:name]
@@ -59,6 +63,8 @@ Puppet::Type.type(:user).provide :netinfo, :parent => Puppet::Provider::NameServ
59
63
  # This is really lame. We have to iterate over each
60
64
  # of the groups and add us to them.
61
65
  def groups=(groups)
66
+ warnonce "The NetInfo provider is deprecated; use directoryservice instead"
67
+
62
68
  case groups
63
69
  when Fixnum:
64
70
  groups = [groups.to_s]
@@ -22,17 +22,15 @@ Puppet::Type.type(:user).provide :user_role_add, :parent => :useradd do
22
22
  value !~ /\s/
23
23
  end
24
24
 
25
- has_features :manages_homedir, :allows_duplicates, :manages_solaris_rbac
26
-
27
- if Puppet.features.libshadow?
28
- has_feature :manages_passwords
29
- end
25
+ has_features :manages_homedir, :allows_duplicates, :manages_solaris_rbac, :manages_passwords
30
26
 
31
27
  #must override this to hand the keyvalue pairs
32
28
  def add_properties
33
29
  cmd = []
34
30
  Puppet::Type.type(:user).validproperties.each do |property|
35
- next if property == :ensure
31
+ #skip the password because we can't create it with the solaris useradd
32
+ next if [:ensure, :password].include?(property)
33
+ # 1680 Now you can set the hashed passwords on solaris:lib/puppet/provider/user/user_role_add.rb
36
34
  # the value needs to be quoted, mostly because -c might
37
35
  # have spaces in it
38
36
  if value = @resource.should(property) and value != ""
@@ -87,6 +85,10 @@ Puppet::Type.type(:user).provide :user_role_add, :parent => :useradd do
87
85
  else
88
86
  run(addcmd, "create")
89
87
  end
88
+ # added to handle case when password is specified
89
+ if @resource[:password]
90
+ self.password = @resource[:password]
91
+ end
90
92
  end
91
93
 
92
94
  def destroy
@@ -152,5 +154,40 @@ Puppet::Type.type(:user).provide :user_role_add, :parent => :useradd do
152
154
  def keys=(keys_hash)
153
155
  run([command(:modify)] + build_keys_cmd(keys_hash) << @resource[:name], "modify attribute key pairs")
154
156
  end
157
+
158
+ #Read in /etc/shadow, find the line for this user (skipping comments, because who knows) and return the hashed pw (the second entry)
159
+ #No abstraction, all esoteric knowledge of file formats, yay
160
+ def password
161
+ #got perl?
162
+ if ary = File.readlines("/etc/shadow").reject { |r| r =~ /^[^\w]/}.collect { |l| l.split(':')[0..1] }.find { |user, passwd| user == @resource[:name] }
163
+ pass = ary[1]
164
+ end
165
+ pass
166
+ end
167
+
168
+ #Read in /etc/shadow, find the line for our used and rewrite it with the new pw
169
+ #Smooth like 80 grit
170
+ def password=(cryptopw)
171
+ begin
172
+ File.open("/etc/shadow", "r") do |shadow|
173
+ File.open("/etc/shadow_tmp", "w", 0600) do |shadow_tmp|
174
+ while line = shadow.gets do
175
+ line_arr = line.split(':')
176
+ if line_arr[0] == @resource[:name]
177
+ line_arr[1] = cryptopw
178
+ line = line_arr.join(':')
179
+ end
180
+ shadow_tmp.print line
181
+ end
182
+ end
183
+ end
184
+ File.rename("/etc/shadow_tmp", "/etc/shadow")
185
+ rescue => detail
186
+ fail "Could not write temporary shadow file: %s" % detail
187
+ ensure
188
+ # Make sure this *always* gets deleted
189
+ File.unlink("/etc/shadow_tmp") if File.exist?("/etc/shadow_tmp")
190
+ end
191
+ end
155
192
  end
156
193
 
@@ -0,0 +1,45 @@
1
+ Puppet::Type.type(:zfs).provide(:solaris) do
2
+ desc "Provider for Solaris zfs."
3
+
4
+ commands :zfs => "/usr/sbin/zfs"
5
+ defaultfor :operatingsystem => :solaris
6
+
7
+ def add_properties
8
+ properties = []
9
+ Puppet::Type.type(:zfs).validproperties.each do |property|
10
+ next if property == :ensure
11
+ if value = @resource[property] and value != ""
12
+ properties << "-o" << "#{property}=#{value}"
13
+ end
14
+ end
15
+ properties
16
+ end
17
+
18
+ def create
19
+ zfs *([:create] + add_properties + [@resource[:name]])
20
+ end
21
+
22
+ def delete
23
+ zfs(:destroy, @resource[:name])
24
+ end
25
+
26
+ def exists?
27
+ if zfs(:list).split("\n").detect { |line| line.split("\s")[0] == @resource[:name] }
28
+ true
29
+ else
30
+ false
31
+ end
32
+ end
33
+
34
+ [:mountpoint, :compression, :copies, :quota, :reservation, :sharenfs, :snapdir].each do |field|
35
+ define_method(field) do
36
+ zfs(:get, "-H", "-o", "value", field, @resource[:name]).strip
37
+ end
38
+
39
+ define_method(field.to_s + "=") do |should|
40
+ zfs(:set, "#{field}=#{should}", @resource[:name])
41
+ end
42
+ end
43
+
44
+ end
45
+
@@ -12,6 +12,7 @@ Puppet::Type.type(:zone).provide(:solaris) do
12
12
 
13
13
  properties = {}
14
14
  line.split(":").each_with_index { |value, index|
15
+ next unless fields[index]
15
16
  properties[fields[index]] = value
16
17
  }
17
18
 
@@ -35,9 +36,8 @@ Puppet::Type.type(:zone).provide(:solaris) do
35
36
  # Perform all of our configuration steps.
36
37
  def configure
37
38
  # If the thing is entirely absent, then we need to create the config.
38
- str = %{create -b
39
- set zonepath=%s
40
- } % @resource[:path]
39
+ # Is there someway to get this on one line?
40
+ str = "create -b #{@resource[:create_args]}\nset zonepath=%s\n" % @resource[:path]
41
41
 
42
42
  # Then perform all of our configuration steps. It's annoying
43
43
  # that we need this much internal info on the resource.
@@ -65,7 +65,11 @@ set zonepath=%s
65
65
  end
66
66
 
67
67
  def install
68
- zoneadm :install
68
+ if @resource[:install_args]
69
+ zoneadm :install, @resource[:install_args].split(" ")
70
+ else
71
+ zoneadm :install
72
+ end
69
73
  end
70
74
 
71
75
  # Look up the current status.
@@ -0,0 +1,116 @@
1
+ Puppet::Type.type(:zpool).provide(:solaris) do
2
+ desc "Provider for Solaris zpool."
3
+
4
+ commands :zpool => "/usr/sbin/zpool"
5
+ defaultfor :operatingsystem => :solaris
6
+
7
+ def process_zpool_data(pool_array)
8
+ if pool_array == []
9
+ return Hash.new(:absent)
10
+ end
11
+ #get the name and get rid of it
12
+ pool = Hash.new
13
+ pool[:pool] = pool_array[0]
14
+ pool_array.shift
15
+
16
+ tmp = []
17
+
18
+ #order matters here :(
19
+ pool_array.reverse.each do |value|
20
+ sym = nil
21
+ case value
22
+ when "spares": sym = :spare
23
+ when "logs": sym = :log
24
+ when "mirror", "raidz1", "raidz2":
25
+ sym = value == "mirror" ? :mirror : :raidz
26
+ pool[:raid_parity] = "raidz2" if value == "raidz2"
27
+ else
28
+ tmp << value
29
+ sym = :disk if value == pool_array.first
30
+ end
31
+
32
+ if sym
33
+ pool[sym] = pool[sym] ? pool[sym].unshift(tmp.reverse.join(' ')) : [tmp.reverse.join(' ')]
34
+ tmp.clear
35
+ end
36
+ end
37
+
38
+ pool
39
+ end
40
+
41
+ def get_pool_data
42
+ #this is all voodoo dependent on the output from zpool
43
+ zpool_data = %x{ zpool status #{@resource[:pool]}}.split("\n").select { |line| line.index("\t") == 0 }.collect { |l| l.strip.split("\s")[0] }
44
+ zpool_data.shift
45
+ zpool_data
46
+ end
47
+
48
+ def current_pool
49
+ unless (defined?(@current_pool) and @current_pool)
50
+ @current_pool = process_zpool_data(get_pool_data)
51
+ end
52
+ @current_pool
53
+ end
54
+
55
+ def flush
56
+ @current_pool= nil
57
+ end
58
+
59
+ #Adds log and spare
60
+ def build_named(name)
61
+ if prop = @resource[name.intern]
62
+ [name] + prop.collect { |p| p.split(' ') }.flatten
63
+ else
64
+ []
65
+ end
66
+ end
67
+
68
+ #query for parity and set the right string
69
+ def raidzarity
70
+ @resource[:raid_parity] ? @resource[:raid_parity] : "raidz1"
71
+ end
72
+
73
+ #handle mirror or raid
74
+ def handle_multi_arrays(prefix, array)
75
+ array.collect{ |a| [prefix] + a.split(' ') }.flatten
76
+ end
77
+
78
+ #builds up the vdevs for create command
79
+ def build_vdevs
80
+ if disk = @resource[:disk]
81
+ disk.collect { |d| d.split(' ') }.flatten
82
+ elsif mirror = @resource[:mirror]
83
+ handle_multi_arrays("mirror", mirror)
84
+ elsif raidz = @resource[:raidz]
85
+ handle_multi_arrays(raidzarity, raidz)
86
+ end
87
+ end
88
+
89
+ def create
90
+ zpool(*([:create, @resource[:pool]] + build_vdevs + build_named("spare") + build_named("log")))
91
+ end
92
+
93
+ def delete
94
+ zpool :destroy, @resource[:pool]
95
+ end
96
+
97
+ def exists?
98
+ if current_pool[:pool] == :absent
99
+ false
100
+ else
101
+ true
102
+ end
103
+ end
104
+
105
+ [:disk, :mirror, :raidz, :log, :spare].each do |field|
106
+ define_method(field) do
107
+ current_pool[field]
108
+ end
109
+
110
+ define_method(field.to_s + "=") do |should|
111
+ Puppet.warning "NO CHANGES BEING MADE: zpool %s does not match, should be '%s' currently is '%s'" % [field, should, current_pool[field]]
112
+ end
113
+ end
114
+
115
+ end
116
+
@@ -0,0 +1,9 @@
1
+ class AddEnvironmentToHost < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :hosts, :environment, :string
4
+ end
5
+
6
+ def self.down
7
+ remove_column :hosts, :environment
8
+ end
9
+ end