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,5 +1,7 @@
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.
3
5
 
4
6
  require 'puppet'
5
7
  require 'puppet/provider/nameservice'
@@ -46,6 +48,7 @@ class NetInfo < Puppet::Provider::NameService
46
48
  end
47
49
 
48
50
  def self.instances
51
+ warnonce "The NetInfo provider is deprecated; use directoryservice instead"
49
52
  report(@resource_type.validproperties).collect do |hash|
50
53
  self.new(hash)
51
54
  end
@@ -131,6 +134,7 @@ class NetInfo < Puppet::Provider::NameService
131
134
  end
132
135
 
133
136
  def ensure=(arg)
137
+ warnonce "The NetInfo provider is deprecated; use directoryservice instead"
134
138
  super
135
139
 
136
140
  # Because our stupid type can't create the whole thing at once,
@@ -202,6 +206,7 @@ class NetInfo < Puppet::Provider::NameService
202
206
 
203
207
  # Get a report for a single resource, not the whole table
204
208
  def single_report(*properties)
209
+ warnonce "The NetInfo provider is deprecated; use directoryservice instead"
205
210
  self.class.report(*properties).find do |hash| hash[:name] == self.name end
206
211
  end
207
212
 
@@ -12,9 +12,6 @@
12
12
  # As a result, we store installed .app.dmg file names
13
13
  # in /var/db/.puppet_appdmg_installed_<name>
14
14
 
15
- # require 'ruby-debug'
16
- # Debugger.start
17
-
18
15
  require 'puppet/provider/package'
19
16
  Puppet::Type.type(:package).provide(:appdmg, :parent => Puppet::Provider::Package) do
20
17
  desc "Package management which copies application bundles to a target."
@@ -99,10 +99,16 @@ Puppet::Type.type(:package).provide :apt, :parent => :dpkg, :source => :dpkg do
99
99
  end
100
100
 
101
101
  def uninstall
102
+ if @resource[:responsefile]
103
+ self.run_preseed
104
+ end
102
105
  aptget "-y", "-q", :remove, @resource[:name]
103
106
  end
104
107
 
105
108
  def purge
109
+ if @resource[:responsefile]
110
+ self.run_preseed
111
+ end
106
112
  aptget '-y', '-q', :remove, '--purge', @resource[:name]
107
113
  # workaround a "bug" in apt, that already removed packages are not purged
108
114
  super
@@ -4,6 +4,8 @@ Puppet::Type.type(:package).provide :rpm, :source => :rpm, :parent => Puppet::Pr
4
4
  desc "RPM packaging support; should work anywhere with a working ``rpm``
5
5
  binary."
6
6
 
7
+ has_feature :versionable
8
+
7
9
  # The query format by which we identify installed packages
8
10
  NEVRAFORMAT = "%{NAME} %|EPOCH?{%{EPOCH}}:{0}| %{VERSION} %{RELEASE} %{ARCH}"
9
11
  NEVRA_FIELDS = [:name, :epoch, :version, :release, :arch]
@@ -100,5 +100,9 @@ Puppet::Type.type(:package).provide :yum, :parent => :rpm, :source => :rpm do
100
100
  # Install in yum can be used for update, too
101
101
  self.install
102
102
  end
103
- end
103
+
104
+ def purge
105
+ yum "-y", :erase, @resource[:name]
106
+ end
107
+ end
104
108
 
@@ -39,6 +39,15 @@ def pkg_lists(my):
39
39
 
40
40
  my.doTsSetup()
41
41
  my.doRpmDBSetup()
42
+
43
+ # Yum 2.2/2.3 python libraries require a couple of extra function calls to setup package sacks.
44
+ # They also don't have a __version__ attribute
45
+ try:
46
+ yumver = yum.__version__
47
+ except AttributeError:
48
+ my.doRepoSetup()
49
+ my.doSackSetup()
50
+
42
51
  return my.doPackageLists('updates')
43
52
 
44
53
  def shell_out():
@@ -1,10 +1,13 @@
1
1
  Puppet::Type.type(:service).provide :base do
2
- desc "The simplest form of service support. You have to specify
3
- enough about your service for this to work; the minimum you can specify
4
- is a binary for starting the process, and this same binary will be
5
- searched for in the process table to stop the service. It is
6
- preferable to specify start, stop, and status commands, akin to how you
7
- would do so using ``init``."
2
+ desc "The simplest form of service support.
3
+
4
+ You have to specify enough about your service for this to work; the
5
+ minimum you can specify is a binary for starting the process, and this
6
+ same binary will be searched for in the process table to stop the
7
+ service. It is preferable to specify start, stop, and status commands,
8
+ akin to how you would do so using ``init``.
9
+
10
+ "
8
11
 
9
12
  commands :kill => "kill"
10
13
 
@@ -2,27 +2,37 @@
2
2
  #
3
3
  # author Brice Figureau <brice-puppet@daysofwonder.com>
4
4
  Puppet::Type.type(:service).provide :daemontools, :parent => :base do
5
- desc "Daemontools service management.
5
+ desc """Daemontools service management.
6
+
6
7
  This provider manages daemons running supervised by D.J.Bernstein daemontools.
7
8
  It tries to detect the service directory, with by order of preference:
8
- * /service
9
- * /etc/service
10
- * /var/lib/svscan
9
+
10
+ * /service
11
+ * /etc/service
12
+ * /var/lib/svscan
13
+
11
14
  The daemon directory should be placed in a directory that can be
12
15
  by default in:
13
- * /var/lib/service
14
- * /etc
15
- or this can be overriden in the service resource parameters:
16
- service {
17
- \"myservice\":
18
- provider => \"daemontools\", path => \"/path/to/daemons\";
19
- }
16
+
17
+ * /var/lib/service
18
+ * /etc
19
+
20
+ or this can be overriden in the service resource parameters::
21
+
22
+ service {
23
+ \"myservice\":
24
+ provider => \"daemontools\", path => \"/path/to/daemons\";
25
+ }
20
26
 
21
27
  This provider supports out of the box:
22
- * start/stop (mapped to enable/disable)
23
- * enable/disable
24
- * restart
25
- * status"
28
+
29
+ * start/stop (mapped to enable/disable)
30
+ * enable/disable
31
+ * restart
32
+ * status
33
+
34
+
35
+ """
26
36
 
27
37
  commands :svc => "/usr/bin/svc"
28
38
  commands :svstat => "/usr/bin/svstat"
@@ -1,8 +1,12 @@
1
1
  # Manage debian services. Start/stop is the same as InitSvc, but enable/disable
2
2
  # is special.
3
3
  Puppet::Type.type(:service).provide :debian, :parent => :init do
4
- desc "Debian's form of ``init``-style management. The only difference
5
- is that this supports service enabling and disabling via ``update-rc.d``."
4
+ desc "Debian's form of ``init``-style management.
5
+
6
+ The only difference is that this supports service enabling and disabling
7
+ via ``update-rc.d``.
8
+
9
+ "
6
10
 
7
11
  commands :update => "/usr/sbin/update-rc.d"
8
12
  defaultfor :operatingsystem => [:debian, :ubuntu]
@@ -1,7 +1,10 @@
1
1
  # Manage FreeBSD services.
2
2
  Puppet::Type.type(:service).provide :freebsd, :parent => :init do
3
- desc "FreeBSD's (and probably NetBSD?) form of ``init``-style service
4
- management; uses ``rc.conf.d`` for service enabling and disabling."
3
+ desc "FreeBSD's (and probably NetBSD?) form of ``init``-style service management.
4
+
5
+ Uses ``rc.conf.d`` for service enabling and disabling.
6
+
7
+ "
5
8
 
6
9
  confine :operatingsystem => [:freebsd, :netbsd, :openbsd]
7
10
 
@@ -1,8 +1,11 @@
1
1
  # Manage gentoo services. Start/stop is the same as InitSvc, but enable/disable
2
2
  # is special.
3
3
  Puppet::Type.type(:service).provide :gentoo, :parent => :init do
4
- desc "Gentoo's form of ``init``-style service
5
- management; uses ``rc-update`` for service enabling and disabling."
4
+ desc "Gentoo's form of ``init``-style service management.
5
+
6
+ Uses ``rc-update`` for service enabling and disabling.
7
+
8
+ "
6
9
 
7
10
  commands :update => "/sbin/rc-update"
8
11
 
@@ -35,7 +38,7 @@ Puppet::Type.type(:service).provide :gentoo, :parent => :init do
35
38
  return :false unless line
36
39
 
37
40
  # If it's enabled then it will print output showing service | runlevel
38
- if output =~ /#{@resource[:name]}\s*|\s*default/
41
+ if output =~ /#{@resource[:name]}\s*\|\s*default/
39
42
  return :true
40
43
  else
41
44
  return :false
@@ -1,10 +1,14 @@
1
1
  # The standard init-based service type. Many other service types are
2
2
  # customizations of this module.
3
3
  Puppet::Type.type(:service).provide :init, :parent => :base do
4
- desc "Standard init service management. This provider assumes that the
5
- init script has no ``status`` command, because so few scripts do,
6
- so you need to either provide a status command or specify via
7
- ``hasstatus`` that one already exists in the init script."
4
+ desc "Standard init service management.
5
+
6
+ This provider assumes that the init script has no ``status`` command,
7
+ because so few scripts do, so you need to either provide a status
8
+ command or specify via ``hasstatus`` that one already exists in the
9
+ init script.
10
+
11
+ "
8
12
 
9
13
  class << self
10
14
  attr_accessor :defpath
@@ -24,24 +28,30 @@ Puppet::Type.type(:service).provide :init, :parent => :base do
24
28
 
25
29
  # List all services of this type.
26
30
  def self.instances
27
- path = self.defpath
28
- unless FileTest.directory?(path)
29
- Puppet.notice "Service path %s does not exist" % path
30
- next
31
- end
32
-
33
- check = [:ensure]
34
-
35
- if public_method_defined? :enabled?
36
- check << :enable
37
- end
38
-
39
- Dir.entries(path).reject { |e|
40
- fullpath = File.join(path, e)
41
- e =~ /^\./ or ! FileTest.executable?(fullpath)
42
- }.collect do |name|
43
- new(:name => name, :path => path)
31
+ self.defpath = [self.defpath] unless self.defpath.is_a? Array
32
+
33
+ instances = []
34
+
35
+ self.defpath.each do |path|
36
+ unless FileTest.directory?(path)
37
+ Puppet.debug "Service path %s does not exist" % path
38
+ next
39
+ end
40
+
41
+ check = [:ensure]
42
+
43
+ if public_method_defined? :enabled?
44
+ check << :enable
45
+ end
46
+
47
+ Dir.entries(path).each do |name|
48
+ fullpath = File.join(path, name)
49
+ next if name =~ /^\./
50
+ next if not FileTest.executable?(fullpath)
51
+ instances << new(:name => name, :path => path)
52
+ end
44
53
  end
54
+ instances
45
55
  end
46
56
 
47
57
  # Mark that our init script supports 'status' commands.
@@ -0,0 +1,195 @@
1
+ require 'facter/util/plist'
2
+
3
+ Puppet::Type.type(:service).provide :launchd, :parent => :base do
4
+ desc "launchd service management framework.
5
+
6
+ This provider manages launchd jobs, the default service framework for
7
+ Mac OS X, that has also been open sourced by Apple for possible use on
8
+ other platforms.
9
+
10
+ See:
11
+ * http://developer.apple.com/macosx/launchd.html
12
+ * http://launchd.macosforge.org/
13
+
14
+ This provider reads plists out of the following directories:
15
+ * /System/Library/LaunchDaemons
16
+ * /System/Library/LaunchAgents
17
+ * /Library/LaunchDaemons
18
+ * /Library/LaunchAgents
19
+
20
+ and builds up a list of services based upon each plists \"Label\" entry.
21
+
22
+ This provider supports:
23
+ * ensure => running/stopped,
24
+ * enable => true/false
25
+ * status
26
+ * restart
27
+
28
+ Here is how the Puppet states correspond to launchd states:
29
+ * stopped => job unloaded
30
+ * started => job loaded
31
+ * enabled => 'Disable' removed from job plist file
32
+ * disabled => 'Disable' added to job plist file
33
+
34
+ Note that this allows you to do something launchctl can't do, which is to
35
+ be in a state of \"stopped/enabled\ or \"running/disabled\".
36
+
37
+ "
38
+
39
+ commands :launchctl => "/bin/launchctl"
40
+
41
+ defaultfor :operatingsystem => :darwin
42
+ confine :operatingsystem => :darwin
43
+
44
+ has_feature :enableable
45
+
46
+ Launchd_Paths = ["/Library/LaunchAgents",
47
+ "/Library/LaunchDaemons",
48
+ "/System/Library/LaunchAgents",
49
+ "/System/Library/LaunchDaemons",]
50
+
51
+
52
+ # returns a label => path map for either all jobs, or just a single
53
+ # job if the label is specified
54
+ def self.jobsearch(label=nil)
55
+ label_to_path_map = {}
56
+ Launchd_Paths.each do |path|
57
+ if FileTest.exists?(path)
58
+ Dir.entries(path).each do |f|
59
+ next if f =~ /^\..*$/
60
+ next if FileTest.directory?(f)
61
+ fullpath = File.join(path, f)
62
+ job = Plist::parse_xml(fullpath)
63
+ if job and job.has_key?("Label")
64
+ if job["Label"] == label
65
+ return { label => fullpath }
66
+ else
67
+ label_to_path_map[job["Label"]] = fullpath
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
73
+
74
+ # if we didn't find the job above and we should have, error.
75
+ if label
76
+ raise Puppet::Error.new("Unable to find launchd plist for job: #{label}")
77
+ end
78
+ # if returning all jobs
79
+ label_to_path_map
80
+ end
81
+
82
+
83
+ def self.instances
84
+ jobs = self.jobsearch
85
+ jobs.keys.collect do |job|
86
+ new(:name => job, :provider => :launchd, :path => jobs[job])
87
+ end
88
+ end
89
+
90
+
91
+ # finds the path for a given label and returns the path and parsed plist
92
+ # as an array of [path, plist]. Note plist is really a Hash here.
93
+ def plist_from_label(label)
94
+ job = self.class.jobsearch(label)
95
+ job_path = job[label]
96
+ job_plist = Plist::parse_xml(job_path)
97
+ if not job_plist
98
+ raise Puppet::Error.new("Unable to parse launchd plist at path: #{job_path}")
99
+ end
100
+ [job_path, job_plist]
101
+ end
102
+
103
+
104
+ def status
105
+ # launchctl list <jobname> exits zero if the job is loaded
106
+ # and non-zero if it isn't. Simple way to check...
107
+ begin
108
+ launchctl :list, resource[:name]
109
+ return :running
110
+ rescue Puppet::ExecutionFailure
111
+ return :stopped
112
+ end
113
+ end
114
+
115
+
116
+ # start the service. To get to a state of running/enabled, we need to
117
+ # conditionally enable at load, then disable by modifying the plist file
118
+ # directly.
119
+ def start
120
+ job_path, job_plist = plist_from_label(resource[:name])
121
+ did_enable_job = false
122
+ cmds = []
123
+ cmds << :launchctl << :load
124
+ if self.enabled? == :false # launchctl won't load disabled jobs
125
+ cmds << "-w"
126
+ did_enable_job = true
127
+ end
128
+ cmds << job_path
129
+ begin
130
+ execute(cmds)
131
+ rescue Puppet::ExecutionFailure
132
+ raise Puppet::Error.new("Unable to start service: %s at path: %s" % [resource[:name], job_path])
133
+ end
134
+ # As load -w clears the Disabled flag, we need to add it in after
135
+ if did_enable_job and resource[:enable] == :false
136
+ self.disable
137
+ end
138
+ end
139
+
140
+
141
+ def stop
142
+ job_path, job_plist = plist_from_label(resource[:name])
143
+ did_disable_job = false
144
+ cmds = []
145
+ cmds << :launchctl << :unload
146
+ if self.enabled? == :true # keepalive jobs can't be stopped without disabling
147
+ cmds << "-w"
148
+ did_disable_job = true
149
+ end
150
+ cmds << job_path
151
+ begin
152
+ execute(cmds)
153
+ rescue Puppet::ExecutionFailure
154
+ raise Puppet::Error.new("Unable to stop service: %s at path: %s" % [resource[:name], job_path])
155
+ end
156
+ # As unload -w sets the Disabled flag, we need to add it in after
157
+ if did_disable_job and resource[:enable] == :true
158
+ self.enable
159
+ end
160
+ end
161
+
162
+
163
+ # launchd jobs are enabled by default. They are only disabled if the key
164
+ # "Disabled" is set to true, but it can also be set to false to enable it.
165
+ def enabled?
166
+ job_path, job_plist = plist_from_label(resource[:name])
167
+ if job_plist.has_key?("Disabled")
168
+ if job_plist["Disabled"] # inverse of disabled is enabled
169
+ return :false
170
+ end
171
+ end
172
+ return :true
173
+ end
174
+
175
+
176
+ # enable and disable are a bit hacky. We write out the plist with the appropriate value
177
+ # rather than dealing with launchctl as it is unable to change the Disabled flag
178
+ # without actually loading/unloading the job.
179
+ def enable
180
+ job_path, job_plist = plist_from_label(resource[:name])
181
+ if self.enabled? == :false
182
+ job_plist.delete("Disabled")
183
+ Plist::Emit.save_plist(job_plist, job_path)
184
+ end
185
+ end
186
+
187
+
188
+ def disable
189
+ job_path, job_plist = plist_from_label(resource[:name])
190
+ job_plist["Disabled"] = true
191
+ Plist::Emit.save_plist(job_plist, job_path)
192
+ end
193
+
194
+
195
+ end