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
@@ -38,18 +38,13 @@ module Puppet
38
38
  return nil
39
39
  end
40
40
  property_default = self.parse_selinux_context(property, context)
41
- self.debug "Found #{property} default '#{property_default}' for #{@resource[:path]}"
41
+ if not property_default.nil?
42
+ self.debug "Found #{property} default '#{property_default}' for #{@resource[:path]}"
43
+ end
42
44
  return property_default
43
45
  end
44
46
 
45
47
  def sync
46
- unless @resource.stat(false)
47
- stat = @resource.stat(true)
48
- unless stat
49
- return nil
50
- end
51
- end
52
-
53
48
  self.set_selinux_context(@resource[:path], @should, name)
54
49
  return :file_changed
55
50
  end
@@ -1,28 +1,22 @@
1
- # Manage Unix groups. This class is annoyingly complicated; There
2
- # is some variety in whether systems use 'groupadd' or 'addgroup', but OS X
3
- # significantly complicates the picture by using NetInfo. Eventually we
4
- # will also need to deal with systems that have their groups hosted elsewhere
5
- # (e.g., in LDAP). That will likely only be a problem for OS X, since it
6
- # currently does not use the POSIX interfaces, since lookupd's cache screws
7
- # things up.
8
1
 
9
2
  require 'etc'
10
3
  require 'facter'
11
4
 
12
5
  module Puppet
13
6
  newtype(:group) do
14
- @doc = "Manage groups. This type can only create groups. Group
15
- membership must be managed on individual users. This resource type
16
- uses the prescribed native tools for creating groups and generally
17
- uses POSIX APIs for retrieving information about them. It does
18
- not directly modify ``/etc/group`` or anything.
7
+ @doc = "Manage groups. On most platforms this can only create groups.
8
+ Group membership must be managed on individual users.
19
9
 
20
- For most platforms, the tools used are ``groupadd`` and its ilk;
21
- for Mac OS X, NetInfo is used. This is currently unconfigurable,
22
- but if you desperately need it to be so, please contact us."
10
+ On some platforms such as OS X, group membership is managed as an
11
+ attribute of the group, not the user record. Providers must have
12
+ the feature 'manages_members' to manage the 'members' property of
13
+ a group record."
14
+
15
+ feature :manages_members,
16
+ "For directories where membership is an attribute of groups not users."
23
17
 
24
- newproperty(:ensure) do
25
- desc "The basic state that the object should be in."
18
+ ensurable do
19
+ desc "Create or remove the group."
26
20
 
27
21
  newvalue(:present) do
28
22
  provider.create
@@ -35,33 +29,6 @@ module Puppet
35
29
 
36
30
  :group_removed
37
31
  end
38
-
39
- # If they're talking about the thing at all, they generally want to
40
- # say it should exist.
41
- defaultto do
42
- if @resource.managed?
43
- :present
44
- else
45
- nil
46
- end
47
- end
48
-
49
- def retrieve
50
- return provider.exists? ? :present : :absent
51
- end
52
-
53
- # The default 'sync' method only selects among a list of registered
54
- # values.
55
- def sync
56
- unless self.class.values
57
- self.devfail "No values defined for %s" %
58
- self.class.name
59
- end
60
-
61
- # Set ourselves to whatever our should value is.
62
- self.set(self.should)
63
- end
64
-
65
32
  end
66
33
 
67
34
  newproperty(:gid) do
@@ -100,13 +67,28 @@ module Puppet
100
67
  return gid
101
68
  end
102
69
  end
70
+
71
+ newproperty(:members, :array_matching => :all, :required_features => :manages_members) do
72
+ desc "The members of the group. For directory services where group
73
+ membership is stored in the group objects, not the users."
74
+
75
+ def change_to_s(currentvalue, newvalue)
76
+ currentvalue = currentvalue.join(",") if currentvalue != :absent
77
+ newvalue = newvalue.join(",")
78
+ super(currentvalue, newvalue)
79
+ end
80
+ end
81
+
82
+ newparam(:auth_membership) do
83
+ desc "whether the provider is authoritative for group membership."
84
+ defaultto true
85
+ end
103
86
 
104
87
  newparam(:name) do
105
88
  desc "The group name. While naming limitations vary by
106
89
  system, it is advisable to keep the name to the degenerate
107
90
  limitations, which is a maximum of 8 characters beginning with
108
91
  a letter."
109
-
110
92
  isnamevar
111
93
  end
112
94
 
@@ -46,7 +46,7 @@ Puppet::Type.newtype(:k5login) do
46
46
  write(@resource.should(:principals))
47
47
  should_mode = @resource.should(:mode)
48
48
  unless self.mode == should_mode
49
- self.mode should_mode
49
+ self.mode = should_mode
50
50
  end
51
51
  end
52
52
 
@@ -0,0 +1,141 @@
1
+ Puppet::Type.newtype(:macauthorization) do
2
+
3
+ @doc = "Manage the Mac OS X authorization database.
4
+ See:
5
+ http://developer.apple.com/documentation/Security/Conceptual/Security_Overview/Security_Services/chapter_4_section_5.html for more information."
6
+
7
+ ensurable
8
+
9
+ autorequire(:file) do
10
+ ["/etc/authorization"]
11
+ end
12
+
13
+ def munge_boolean(value)
14
+ case value
15
+ when true, "true", :true:
16
+ :true
17
+ when false, "false", :false
18
+ :false
19
+ else
20
+ raise Puppet::Error("munge_boolean only takes booleans")
21
+ end
22
+ end
23
+
24
+ newparam(:name) do
25
+ desc "The name of the right or rule to be managed.
26
+ Corresponds to 'key' in Authorization Services. The key is the name
27
+ of a rule. A key uses the same naming conventions as a right. The
28
+ Security Server uses a rule’s key to match the rule with a right.
29
+ Wildcard keys end with a ‘.’. The generic rule has an empty key value.
30
+ Any rights that do not match a specific rule use the generic rule."
31
+
32
+ isnamevar
33
+ end
34
+
35
+ newproperty(:auth_type) do
36
+ desc "type - can be a 'right' or a 'rule'. 'comment' has not yet been
37
+ implemented."
38
+
39
+ newvalue(:right)
40
+ newvalue(:rule)
41
+ # newvalue(:comment) # not yet implemented.
42
+ end
43
+
44
+ newproperty(:allow_root, :boolean => true) do
45
+ desc "Corresponds to 'allow-root' in the authorization store, renamed
46
+ due to hyphens being problematic. Specifies whether a right should be
47
+ allowed automatically if the requesting process is running with
48
+ uid == 0. AuthorizationServices defaults this attribute to false if
49
+ not specified"
50
+
51
+ newvalue(:true)
52
+ newvalue(:false)
53
+
54
+ munge do |value|
55
+ @resource.munge_boolean(value)
56
+ end
57
+ end
58
+
59
+ newproperty(:authenticate_user, :boolean => true) do
60
+ desc "Corresponds to 'authenticate-user' in the authorization store,
61
+ renamed due to hyphens being problematic."
62
+
63
+ newvalue(:true)
64
+ newvalue(:false)
65
+
66
+ munge do |value|
67
+ @resource.munge_boolean(value)
68
+ end
69
+ end
70
+
71
+ newproperty(:auth_class) do
72
+ desc "Corresponds to 'class' in the authorization store, renamed due
73
+ to 'class' being a reserved word."
74
+
75
+ newvalue(:user)
76
+ newvalue(:'evaluate-mechanisms')
77
+ end
78
+
79
+ newproperty(:comment) do
80
+ desc "The 'comment' attribute for authorization resources."
81
+ end
82
+
83
+ newproperty(:group) do
84
+ desc "The user must authenticate as a member of this group. This
85
+ attribute can be set to any one group."
86
+ end
87
+
88
+ newproperty(:k_of_n) do
89
+ desc "k-of-n. Built-in rights only show a value of '1' or absent,
90
+ other values may be acceptable. Undocumented."
91
+ end
92
+
93
+ newproperty(:mechanisms, :array_matching => :all) do
94
+ desc "an array of suitable mechanisms."
95
+ end
96
+
97
+ newproperty(:rule, :array_match => :all) do
98
+ desc "The rule(s) that this right refers to."
99
+ end
100
+
101
+ newproperty(:session_owner, :boolean => true) do
102
+ desc "Corresponds to 'session-owner' in the authorization store,
103
+ renamed due to hyphens being problematic. Whether the session owner
104
+ automatically matches this rule or right."
105
+
106
+ newvalue(:true)
107
+ newvalue(:false)
108
+
109
+ munge do |value|
110
+ @resource.munge_boolean(value)
111
+ end
112
+ end
113
+
114
+ newproperty(:shared, :boolean => true) do
115
+ desc "If this is set to true, then the Security Server marks the
116
+ credentials used to gain this right as shared. The Security Server
117
+ may use any shared credentials to authorize this right. For maximum
118
+ security, set sharing to false so credentials stored by the Security
119
+ Server for one application may not be used by another application."
120
+
121
+ newvalue(:true)
122
+ newvalue(:false)
123
+
124
+ munge do |value|
125
+ @resource.munge_boolean(value)
126
+ end
127
+ end
128
+
129
+ newproperty(:timeout) do
130
+ desc "The credential used by this rule expires in the specified
131
+ number of seconds. For maximum security where the user must
132
+ authenticate every time, set the timeout to 0. For minimum security,
133
+ remove the timeout attribute so the user authenticates only once per
134
+ session."
135
+ end
136
+
137
+ newproperty(:tries) do
138
+ desc "The number of tries allowed."
139
+ end
140
+
141
+ end
@@ -0,0 +1,115 @@
1
+ #--
2
+ # Copyright (C) 2008 Jeffrey J McCune.
3
+
4
+ # This program and entire repository is free software; you can
5
+ # redistribute it and/or modify it under the terms of the GNU
6
+ # General Public License as published by the Free Software
7
+ # Foundation; either version 2 of the License, or any later version.
8
+
9
+ # This program is distributed in the hope that it will be useful,
10
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ # GNU General Public License for more details.
13
+
14
+ # You should have received a copy of the GNU General Public License
15
+ # along with this program; if not, write to the Free Software
16
+ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17
+
18
+ # Author: Jeff McCune <mccune.jeff@gmail.com>
19
+
20
+ Puppet::Type.newtype(:mcx) do
21
+
22
+ @doc = "MCX object management using DirectoryService on OS X.
23
+
24
+ Original Author: Jeff McCune <mccune.jeff@gmail.com>
25
+
26
+ The default provider of this type merely manages the XML plist as
27
+ reported by the dscl -mcxexport command. This is similar to the
28
+ content property of the file type in Puppet.
29
+
30
+ The recommended method of using this type is to use Work Group Manager
31
+ to manage users and groups on the local computer, record the resulting
32
+ puppet manifest using the command 'ralsh mcx' then deploying this
33
+ to other machines.
34
+ "
35
+ feature :manages_content, \
36
+ "The provider can manage MCXSettings as a string.",
37
+ :methods => [:content, :content=]
38
+
39
+ ensurable do
40
+ desc "Create or remove the MCX setting."
41
+
42
+ newvalue(:present) do
43
+ provider.create
44
+ end
45
+
46
+ newvalue(:absent) do
47
+ provider.destroy
48
+ end
49
+
50
+ end
51
+
52
+ newparam(:name) do
53
+ desc "The name of the resource being managed.
54
+ The default naming convention follows Directory Service paths::
55
+
56
+ /Computers/localhost
57
+ /Groups/admin
58
+ /Users/localadmin
59
+
60
+ The ds_type and ds_name type parameters are not necessary if the
61
+ default naming convention is followed."
62
+ isnamevar
63
+ end
64
+
65
+ newparam(:ds_type) do
66
+
67
+ desc "The DirectoryService type this MCX setting attaches to."
68
+
69
+ newvalues(:user, :group, :computer, :computerlist)
70
+
71
+ end
72
+
73
+ newparam(:ds_name) do
74
+ desc "The name to attach the MCX Setting to.
75
+ e.g. 'localhost' when ds_type => computer. This setting is not
76
+ required, as it may be parsed so long as the resource name is
77
+ parseable. e.g. /Groups/admin where 'group' is the dstype."
78
+ end
79
+
80
+ newproperty(:content, :required_features => :manages_content) do
81
+ desc "The XML Plist. The value of MCXSettings in DirectoryService.
82
+ This is the standard output from the system command:
83
+ dscl localhost -mcxexport /Local/Default/<ds_type>/<ds_name>
84
+ Note that ds_type is capitalized and plural in the dscl command."
85
+ end
86
+
87
+ # JJM Yes, this is not DRY at all. Because of the code blocks
88
+ # autorequire must be done this way. I think.
89
+
90
+ def setup_autorequire(type)
91
+ # value returns a Symbol
92
+ name = value(:name)
93
+ ds_type = value(:ds_type)
94
+ ds_name = value(:ds_name)
95
+ if ds_type == type
96
+ rval = [ ds_name.to_s ]
97
+ else
98
+ rval = [ ]
99
+ end
100
+ rval
101
+ end
102
+
103
+ autorequire(:user) do
104
+ setup_autorequire(:user)
105
+ end
106
+
107
+ autorequire(:group) do
108
+ setup_autorequire(:group)
109
+ end
110
+
111
+ autorequire(:computer) do
112
+ setup_autorequire(:computer)
113
+ end
114
+
115
+ end
@@ -143,7 +143,7 @@ module Puppet
143
143
  desc "Whether to dump the mount. Not all platforms
144
144
  support this. Valid values are ``1`` or ``0``. Default is ``0``."
145
145
 
146
- newvalue(%r{(0|1)}) { }
146
+ newvalue(%r{(0|1)})
147
147
 
148
148
  defaultto {
149
149
  if @resource.managed?
@@ -0,0 +1,3 @@
1
+ require 'puppet/util/nagios_maker'
2
+
3
+ Puppet::Util::NagiosMaker.create_nagios_type :hostdependency
@@ -38,6 +38,22 @@ module Puppet
38
38
  should be specified as an array."
39
39
 
40
40
  defaultto do :absent end
41
+
42
+ def is_to_s(value)
43
+ if value == :absent or value.include?(:absent)
44
+ super
45
+ else
46
+ value.join(",")
47
+ end
48
+ end
49
+
50
+ def should_to_s(value)
51
+ if value == :absent or value.include?(:absent)
52
+ super
53
+ else
54
+ value.join(",")
55
+ end
56
+ end
41
57
  end
42
58
 
43
59
  autorequire(:user) do
@@ -2,7 +2,10 @@ module Puppet
2
2
  newtype(:tidy, :parent => Puppet.type(:file)) do
3
3
  @doc = "Remove unwanted files based on specific criteria. Multiple
4
4
  criteria are OR'd together, so a file that is too large but is not
5
- old enough will still get tidied."
5
+ old enough will still get tidied.
6
+
7
+ You must specify either the size or age of the file (or both) for
8
+ files to be tidied."
6
9
 
7
10
  newparam(:path) do
8
11
  desc "The path to the file or directory to manage. Must be fully
@@ -41,6 +44,18 @@ module Puppet
41
44
  end
42
45
 
43
46
  def insync?(is)
47
+ begin
48
+ stat = File.lstat(resource[:path])
49
+ rescue Errno::ENOENT
50
+ info "Tidy target does not exist; ignoring"
51
+ return true
52
+ end
53
+
54
+ if stat.ftype == "directory" and ! @resource[:rmdirs]
55
+ self.debug "Not tidying directories"
56
+ return true
57
+ end
58
+
44
59
  if is.is_a?(Symbol)
45
60
  if [:absent, :notidy].include?(is)
46
61
  return true
@@ -97,20 +112,17 @@ module Puppet
97
112
  file = @resource[:path]
98
113
  case File.lstat(file).ftype
99
114
  when "directory":
100
- if @resource[:rmdirs]
101
- subs = Dir.entries(@resource[:path]).reject { |d|
102
- d == "." or d == ".."
103
- }.length
104
- if subs > 0
105
- self.info "%s has %s children; not tidying" %
106
- [@resource[:path], subs]
107
- self.info Dir.entries(@resource[:path]).inspect
108
- else
109
- Dir.rmdir(@resource[:path])
110
- end
115
+ # If 'rmdirs' is disabled, then we would have never
116
+ # gotten to this method.
117
+ subs = Dir.entries(@resource[:path]).reject { |d|
118
+ d == "." or d == ".."
119
+ }.length
120
+ if subs > 0
121
+ self.info "%s has %s children; not tidying" %
122
+ [@resource[:path], subs]
123
+ self.info Dir.entries(@resource[:path]).inspect
111
124
  else
112
- self.debug "Not tidying directories"
113
- return nil
125
+ Dir.rmdir(@resource[:path])
114
126
  end
115
127
  when "file":
116
128
  @resource.handlebackup(file)
@@ -249,6 +261,23 @@ module Puppet
249
261
  newparam(:recurse) do
250
262
  desc "If target is a directory, recursively descend
251
263
  into the directory looking for files to tidy."
264
+
265
+ newvalues(:true, :false, :inf, /^[0-9]+$/)
266
+
267
+ # Replace the validation so that we allow numbers in
268
+ # addition to string representations of them.
269
+ validate { |arg| }
270
+ munge do |value|
271
+ newval = super(value)
272
+ case newval
273
+ when :true, :inf: true
274
+ when :false: false
275
+ when Integer, Fixnum, Bignum: value
276
+ when /^\d+$/: Integer(value)
277
+ else
278
+ raise ArgumentError, "Invalid recurse value %s" % value.inspect
279
+ end
280
+ end
252
281
  end
253
282
 
254
283
  newparam(:rmdirs) do