puppet 0.24.6 → 0.24.7

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of puppet might be problematic. Click here for more details.

Files changed (383) hide show
  1. data/CHANGELOG +115 -0
  2. data/Rakefile +43 -14
  3. data/bin/puppetca +6 -5
  4. data/bin/puppetdoc +109 -15
  5. data/bin/ralsh +3 -1
  6. data/conf/redhat/puppet.spec +74 -48
  7. data/examples/mcx_dock_absent.pp +4 -0
  8. data/examples/mcx_dock_default.pp +118 -0
  9. data/examples/mcx_dock_full.pp +125 -0
  10. data/examples/mcx_dock_invalid.pp +9 -0
  11. data/examples/mcx_nogroup.pp +118 -0
  12. data/examples/mcx_notexists_absent.pp +4 -0
  13. data/ext/emacs/puppet-mode.el +1 -1
  14. data/lib/puppet.rb +1 -1
  15. data/lib/puppet/external/nagios/base.rb +114 -71
  16. data/lib/puppet/feature/base.rb +6 -0
  17. data/lib/puppet/indirector/yaml.rb +12 -3
  18. data/lib/puppet/module.rb +1 -1
  19. data/lib/puppet/network/client/master.rb +1 -1
  20. data/lib/puppet/network/xmlrpc/client.rb +3 -1
  21. data/lib/puppet/parameter.rb +1 -1
  22. data/lib/puppet/parser/ast.rb +15 -0
  23. data/lib/puppet/parser/ast/astarray.rb +1 -2
  24. data/lib/puppet/parser/ast/casestatement.rb +2 -0
  25. data/lib/puppet/parser/ast/collection.rb +2 -0
  26. data/lib/puppet/parser/ast/comparison_operator.rb +4 -0
  27. data/lib/puppet/parser/ast/definition.rb +2 -0
  28. data/lib/puppet/parser/ast/else.rb +3 -0
  29. data/lib/puppet/parser/ast/function.rb +19 -12
  30. data/lib/puppet/parser/ast/hostclass.rb +9 -1
  31. data/lib/puppet/parser/ast/ifstatement.rb +3 -0
  32. data/lib/puppet/parser/ast/node.rb +3 -0
  33. data/lib/puppet/parser/ast/resource.rb +3 -0
  34. data/lib/puppet/parser/ast/resource_defaults.rb +2 -0
  35. data/lib/puppet/parser/ast/resource_override.rb +3 -0
  36. data/lib/puppet/parser/ast/vardef.rb +3 -0
  37. data/lib/puppet/parser/functions.rb +14 -0
  38. data/lib/puppet/parser/functions/inline_template.rb +21 -0
  39. data/lib/puppet/parser/functions/template.rb +3 -2
  40. data/lib/puppet/parser/lexer.rb +56 -7
  41. data/lib/puppet/parser/parser.rb +114 -98
  42. data/lib/puppet/parser/parser_support.rb +24 -4
  43. data/lib/puppet/parser/resource/reference.rb +4 -3
  44. data/lib/puppet/parser/templatewrapper.rb +30 -22
  45. data/lib/puppet/property.rb +1 -1
  46. data/lib/puppet/property/list.rb +7 -2
  47. data/lib/puppet/property/ordered_list.rb +22 -0
  48. data/lib/puppet/provider/augeas/augeas.rb +189 -0
  49. data/lib/puppet/provider/computer/computer.rb +22 -0
  50. data/lib/puppet/provider/confine.rb +4 -1
  51. data/lib/puppet/provider/confine/variable.rb +13 -2
  52. data/lib/puppet/provider/confine_collection.rb +4 -1
  53. data/lib/puppet/provider/confiner.rb +1 -1
  54. data/lib/puppet/provider/group/directoryservice.rb +6 -3
  55. data/lib/puppet/provider/group/groupadd.rb +5 -2
  56. data/lib/puppet/provider/group/ldap.rb +11 -9
  57. data/lib/puppet/provider/group/netinfo.rb +8 -4
  58. data/lib/puppet/provider/group/pw.rb +5 -1
  59. data/lib/puppet/provider/host/netinfo.rb +5 -2
  60. data/lib/puppet/provider/macauthorization/macauthorization.rb +315 -0
  61. data/lib/puppet/provider/mcx/mcxcontent.rb +201 -0
  62. data/lib/puppet/provider/nameservice/directoryservice.rb +210 -107
  63. data/lib/puppet/provider/nameservice/netinfo.rb +7 -2
  64. data/lib/puppet/provider/package/appdmg.rb +0 -3
  65. data/lib/puppet/provider/package/apt.rb +6 -0
  66. data/lib/puppet/provider/package/rpm.rb +2 -0
  67. data/lib/puppet/provider/package/yum.rb +5 -1
  68. data/lib/puppet/provider/package/yumhelper.py +9 -0
  69. data/lib/puppet/provider/service/base.rb +9 -6
  70. data/lib/puppet/provider/service/daemontools.rb +25 -15
  71. data/lib/puppet/provider/service/debian.rb +6 -2
  72. data/lib/puppet/provider/service/freebsd.rb +5 -2
  73. data/lib/puppet/provider/service/gentoo.rb +6 -3
  74. data/lib/puppet/provider/service/init.rb +31 -21
  75. data/lib/puppet/provider/service/launchd.rb +195 -0
  76. data/lib/puppet/provider/service/redhat.rb +5 -2
  77. data/lib/puppet/provider/service/runit.rb +30 -20
  78. data/lib/puppet/provider/service/smf.rb +7 -4
  79. data/lib/puppet/provider/ssh_authorized_key/parsed.rb +21 -1
  80. data/lib/puppet/provider/user/directoryservice.rb +1 -0
  81. data/lib/puppet/provider/user/netinfo.rb +9 -3
  82. data/lib/puppet/provider/user/user_role_add.rb +43 -6
  83. data/lib/puppet/provider/zfs/solaris.rb +45 -0
  84. data/lib/puppet/provider/zone/solaris.rb +8 -4
  85. data/lib/puppet/provider/zpool/solaris.rb +116 -0
  86. data/lib/puppet/rails/database/003_add_environment_to_host.rb +9 -0
  87. data/lib/puppet/rails/database/schema.rb +1 -0
  88. data/lib/puppet/rails/host.rb +4 -0
  89. data/lib/puppet/reference/configuration.rb +1 -1
  90. data/lib/puppet/reports/tagmail.rb +15 -6
  91. data/lib/puppet/transaction/change.rb +3 -5
  92. data/lib/puppet/transportable.rb +1 -0
  93. data/lib/puppet/type/augeas.rb +155 -0
  94. data/lib/puppet/type/computer.rb +62 -0
  95. data/lib/puppet/type/exec.rb +2 -1
  96. data/lib/puppet/type/file.rb +1 -1
  97. data/lib/puppet/type/file/ensure.rb +8 -5
  98. data/lib/puppet/type/file/mode.rb +0 -14
  99. data/lib/puppet/type/file/owner.rb +32 -64
  100. data/lib/puppet/type/file/selcontext.rb +3 -8
  101. data/lib/puppet/type/group.rb +27 -45
  102. data/lib/puppet/type/k5login.rb +1 -1
  103. data/lib/puppet/type/macauthorization.rb +141 -0
  104. data/lib/puppet/type/mcx.rb +115 -0
  105. data/lib/puppet/type/mount.rb +1 -1
  106. data/lib/puppet/type/nagios_hostdependency.rb +3 -0
  107. data/lib/puppet/type/ssh_authorized_key.rb +16 -0
  108. data/lib/puppet/type/tidy.rb +43 -14
  109. data/lib/puppet/type/user.rb +25 -1
  110. data/lib/puppet/type/zfs.rb +51 -0
  111. data/lib/puppet/type/zone.rb +8 -0
  112. data/lib/puppet/type/zpool.rb +93 -0
  113. data/lib/puppet/util.rb +17 -38
  114. data/lib/puppet/util/file_locking.rb +44 -0
  115. data/lib/puppet/util/filetype.rb +3 -3
  116. data/lib/puppet/util/log.rb +1 -16
  117. data/lib/puppet/util/metric.rb +0 -5
  118. data/lib/puppet/util/rdoc.rb +85 -0
  119. data/lib/puppet/util/rdoc/code_objects.rb +219 -0
  120. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +829 -0
  121. data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +1051 -0
  122. data/lib/puppet/util/rdoc/parser.rb +437 -0
  123. data/lib/puppet/util/selinux.rb +135 -63
  124. data/lib/puppet/util/settings.rb +136 -126
  125. data/lib/puppet/util/storage.rb +4 -2
  126. data/spec/Rakefile +91 -0
  127. data/spec/integration/checksum.rb +47 -0
  128. data/spec/integration/defaults.rb +47 -0
  129. data/spec/integration/file_serving/configuration.rb +43 -0
  130. data/spec/integration/file_serving/content.rb +18 -0
  131. data/spec/integration/file_serving/metadata.rb +18 -0
  132. data/spec/integration/indirector/direct_file_server.rb +80 -0
  133. data/spec/integration/indirector/file_content/file_server.rb +18 -0
  134. data/spec/integration/indirector/file_metadata/file_server.rb +18 -0
  135. data/spec/integration/indirector/module_files.rb +57 -0
  136. data/spec/integration/indirector/node/ldap.rb +15 -0
  137. data/spec/integration/indirector/rest.rb +464 -0
  138. data/spec/integration/network/server/mongrel.rb +48 -0
  139. data/spec/integration/network/server/webrick.rb +48 -0
  140. data/spec/integration/node.rb +93 -0
  141. data/spec/integration/node/catalog.rb +54 -0
  142. data/spec/integration/node/facts.rb +45 -0
  143. data/spec/integration/provider/package.rb +26 -0
  144. data/spec/integration/provider/service/init.rb +32 -0
  145. data/spec/integration/reference/providers.rb +17 -0
  146. data/spec/integration/reports.rb +14 -0
  147. data/spec/integration/transaction/report.rb +26 -0
  148. data/spec/integration/type/package.rb +22 -0
  149. data/spec/integration/util/file_locking.rb +36 -0
  150. data/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb +46 -0
  151. data/spec/monkey_patches/alias_should_to_must.rb +5 -0
  152. data/spec/shared_behaviours/file_server_terminus.rb +42 -0
  153. data/spec/shared_behaviours/file_serving.rb +64 -0
  154. data/spec/shared_behaviours/memory_terminus.rb +32 -0
  155. data/spec/spec.opts +5 -0
  156. data/spec/spec_helper.rb +36 -0
  157. data/spec/unit/executables/client/certhandler.rb +122 -0
  158. data/spec/unit/file_serving/configuration.rb +224 -0
  159. data/spec/unit/file_serving/configuration/parser.rb +135 -0
  160. data/spec/unit/file_serving/content.rb +71 -0
  161. data/spec/unit/file_serving/file_base.rb +124 -0
  162. data/spec/unit/file_serving/fileset.rb +239 -0
  163. data/spec/unit/file_serving/indirection_hooks.rb +124 -0
  164. data/spec/unit/file_serving/metadata.rb +187 -0
  165. data/spec/unit/file_serving/mount.rb +143 -0
  166. data/spec/unit/file_serving/terminus_helper.rb +76 -0
  167. data/spec/unit/indirector.rb +152 -0
  168. data/spec/unit/indirector/catalog/compiler.rb +156 -0
  169. data/spec/unit/indirector/catalog/yaml.rb +25 -0
  170. data/spec/unit/indirector/checksum/file.rb +139 -0
  171. data/spec/unit/indirector/code.rb +33 -0
  172. data/spec/unit/indirector/direct_file_server.rb +89 -0
  173. data/spec/unit/indirector/envelope.rb +47 -0
  174. data/spec/unit/indirector/exec.rb +51 -0
  175. data/spec/unit/indirector/facts/facter.rb +76 -0
  176. data/spec/unit/indirector/facts/yaml.rb +26 -0
  177. data/spec/unit/indirector/file.rb +154 -0
  178. data/spec/unit/indirector/file_content/file.rb +18 -0
  179. data/spec/unit/indirector/file_content/file_server.rb +18 -0
  180. data/spec/unit/indirector/file_content/modules.rb +18 -0
  181. data/spec/unit/indirector/file_content/rest.rb +11 -0
  182. data/spec/unit/indirector/file_metadata/file.rb +52 -0
  183. data/spec/unit/indirector/file_metadata/file_server.rb +18 -0
  184. data/spec/unit/indirector/file_metadata/modules.rb +42 -0
  185. data/spec/unit/indirector/file_metadata/rest.rb +9 -0
  186. data/spec/unit/indirector/file_server.rb +184 -0
  187. data/spec/unit/indirector/indirection.rb +731 -0
  188. data/spec/unit/indirector/ldap.rb +143 -0
  189. data/spec/unit/indirector/memory.rb +29 -0
  190. data/spec/unit/indirector/module_files.rb +259 -0
  191. data/spec/unit/indirector/node/exec.rb +69 -0
  192. data/spec/unit/indirector/node/ldap.rb +424 -0
  193. data/spec/unit/indirector/node/memory.rb +19 -0
  194. data/spec/unit/indirector/node/plain.rb +19 -0
  195. data/spec/unit/indirector/node/rest.rb +13 -0
  196. data/spec/unit/indirector/node/yaml.rb +25 -0
  197. data/spec/unit/indirector/plain.rb +29 -0
  198. data/spec/unit/indirector/report/processor.rb +81 -0
  199. data/spec/unit/indirector/request.rb +87 -0
  200. data/spec/unit/indirector/rest.rb +372 -0
  201. data/spec/unit/indirector/ssl_rsa/file.rb +116 -0
  202. data/spec/unit/indirector/terminus.rb +245 -0
  203. data/spec/unit/indirector/yaml.rb +145 -0
  204. data/spec/unit/module.rb +247 -0
  205. data/spec/unit/network/client.rb +45 -0
  206. data/spec/unit/network/client/master.rb +442 -0
  207. data/spec/unit/network/handler/fileserver.rb +179 -0
  208. data/spec/unit/network/http.rb +35 -0
  209. data/spec/unit/network/http/mongrel.rb +117 -0
  210. data/spec/unit/network/http/mongrel/rest.rb +377 -0
  211. data/spec/unit/network/http/mongrel/xmlrpc.rb +0 -0
  212. data/spec/unit/network/http/webrick.rb +127 -0
  213. data/spec/unit/network/http/webrick/rest.rb +323 -0
  214. data/spec/unit/network/http/webrick/xmlrpc.rb +0 -0
  215. data/spec/unit/network/http_pool.rb +238 -0
  216. data/spec/unit/network/server.rb +316 -0
  217. data/spec/unit/network/xmlrpc/client.rb +13 -0
  218. data/spec/unit/node.rb +167 -0
  219. data/spec/unit/node/catalog.rb +864 -0
  220. data/spec/unit/node/environment.rb +37 -0
  221. data/spec/unit/node/facts.rb +44 -0
  222. data/spec/unit/other/checksum.rb +92 -0
  223. data/spec/unit/other/pgraph.rb +210 -0
  224. data/spec/unit/other/transaction.rb +33 -0
  225. data/spec/unit/other/transbucket.rb +172 -0
  226. data/spec/unit/other/transobject.rb +92 -0
  227. data/spec/unit/parameter.rb +24 -0
  228. data/spec/unit/parser/ast.rb +37 -0
  229. data/spec/unit/parser/ast/arithmetic_operator.rb +73 -0
  230. data/spec/unit/parser/ast/astarray.rb +66 -0
  231. data/spec/unit/parser/ast/boolean_operator.rb +53 -0
  232. data/spec/unit/parser/ast/collexpr.rb +92 -0
  233. data/spec/unit/parser/ast/comparison_operator.rb +92 -0
  234. data/spec/unit/parser/ast/definition.rb +195 -0
  235. data/spec/unit/parser/ast/function.rb +77 -0
  236. data/spec/unit/parser/ast/hostclass.rb +148 -0
  237. data/spec/unit/parser/ast/minus.rb +36 -0
  238. data/spec/unit/parser/ast/node.rb +125 -0
  239. data/spec/unit/parser/ast/nop.rb +20 -0
  240. data/spec/unit/parser/ast/not.rb +30 -0
  241. data/spec/unit/parser/ast/resource_override.rb +51 -0
  242. data/spec/unit/parser/ast/resource_reference.rb +63 -0
  243. data/spec/unit/parser/ast/vardef.rb +47 -0
  244. data/spec/unit/parser/collector.rb +426 -0
  245. data/spec/unit/parser/compiler.rb +561 -0
  246. data/spec/unit/parser/functions.rb +83 -0
  247. data/spec/unit/parser/functions/inline_template.rb +59 -0
  248. data/spec/unit/parser/functions/template.rb +62 -0
  249. data/spec/unit/parser/interpreter.rb +138 -0
  250. data/spec/unit/parser/lexer.rb +646 -0
  251. data/spec/unit/parser/parser.rb +228 -0
  252. data/spec/unit/parser/resource.rb +336 -0
  253. data/spec/unit/parser/resource/reference.rb +95 -0
  254. data/spec/unit/parser/scope.rb +87 -0
  255. data/spec/unit/parser/templatewrapper.rb +129 -0
  256. data/spec/unit/property.rb +35 -0
  257. data/spec/unit/property/keyvalue.rb +168 -0
  258. data/spec/unit/property/list.rb +156 -0
  259. data/spec/unit/property/ordered_list.rb +64 -0
  260. data/spec/unit/provider/augeas/augeas.rb +238 -0
  261. data/spec/unit/provider/confine.rb +78 -0
  262. data/spec/unit/provider/confine/exists.rb +81 -0
  263. data/spec/unit/provider/confine/false.rb +53 -0
  264. data/spec/unit/provider/confine/feature.rb +60 -0
  265. data/spec/unit/provider/confine/true.rb +53 -0
  266. data/spec/unit/provider/confine/variable.rb +107 -0
  267. data/spec/unit/provider/confine_collection.rb +134 -0
  268. data/spec/unit/provider/confiner.rb +63 -0
  269. data/spec/unit/provider/group/groupadd.rb +31 -0
  270. data/spec/unit/provider/group/ldap.rb +105 -0
  271. data/spec/unit/provider/ldap.rb +248 -0
  272. data/spec/unit/provider/macauthorization.rb +147 -0
  273. data/spec/unit/provider/mcx/mcxcontent.rb +175 -0
  274. data/spec/unit/provider/mount.rb +130 -0
  275. data/spec/unit/provider/mount/parsed.rb +185 -0
  276. data/spec/unit/provider/package/apt.rb +138 -0
  277. data/spec/unit/provider/package/dpkg.rb +163 -0
  278. data/spec/unit/provider/package/gem.rb +87 -0
  279. data/spec/unit/provider/package/hpux.rb +52 -0
  280. data/spec/unit/provider/selboolean.rb +37 -0
  281. data/spec/unit/provider/selmodule-example.pp +0 -0
  282. data/spec/unit/provider/selmodule.rb +66 -0
  283. data/spec/unit/provider/service/daemontools.rb +124 -0
  284. data/spec/unit/provider/service/launchd.rb +134 -0
  285. data/spec/unit/provider/service/runit.rb +117 -0
  286. data/spec/unit/provider/ssh_authorized_key/parsed.rb +102 -0
  287. data/spec/unit/provider/user/hpux.rb +25 -0
  288. data/spec/unit/provider/user/ldap.rb +279 -0
  289. data/spec/unit/provider/user/user_role_add.rb +249 -0
  290. data/spec/unit/provider/user/useradd.rb +115 -0
  291. data/spec/unit/provider/zfs/solaris.rb +87 -0
  292. data/spec/unit/provider/zone/solaris.rb +42 -0
  293. data/spec/unit/provider/zpool/solaris.rb +179 -0
  294. data/spec/unit/rails.rb +125 -0
  295. data/spec/unit/relationship.rb +149 -0
  296. data/spec/unit/reports.rb +61 -0
  297. data/spec/unit/resource_reference.rb +73 -0
  298. data/spec/unit/simple_graph.rb +280 -0
  299. data/spec/unit/transaction/change.rb +187 -0
  300. data/spec/unit/transaction/event.rb +25 -0
  301. data/spec/unit/transaction/report.rb +40 -0
  302. data/spec/unit/type.rb +64 -0
  303. data/spec/unit/type/augeas.rb +113 -0
  304. data/spec/unit/type/computer.rb +82 -0
  305. data/spec/unit/type/exec.rb +91 -0
  306. data/spec/unit/type/file.rb +155 -0
  307. data/spec/unit/type/file/ensure.rb +21 -0
  308. data/spec/unit/type/file/group.rb +118 -0
  309. data/spec/unit/type/file/owner.rb +132 -0
  310. data/spec/unit/type/file/selinux.rb +82 -0
  311. data/spec/unit/type/group.rb +40 -0
  312. data/spec/unit/type/macauthorization.rb +78 -0
  313. data/spec/unit/type/mcx.rb +108 -0
  314. data/spec/unit/type/mount.rb +219 -0
  315. data/spec/unit/type/nagios.rb +63 -0
  316. data/spec/unit/type/noop_metaparam.rb +38 -0
  317. data/spec/unit/type/package.rb +246 -0
  318. data/spec/unit/type/resources.rb +27 -0
  319. data/spec/unit/type/schedule.rb +339 -0
  320. data/spec/unit/type/selboolean.rb +47 -0
  321. data/spec/unit/type/selmodule.rb +18 -0
  322. data/spec/unit/type/service.rb +254 -0
  323. data/spec/unit/type/ssh_authorized_key.rb +106 -0
  324. data/spec/unit/type/tidy.rb +68 -0
  325. data/spec/unit/type/user.rb +260 -0
  326. data/spec/unit/type/zfs.rb +45 -0
  327. data/spec/unit/type/zone.rb +20 -0
  328. data/spec/unit/type/zpool.rb +110 -0
  329. data/spec/unit/util/checksums.rb +99 -0
  330. data/spec/unit/util/constant_inflector.rb +70 -0
  331. data/spec/unit/util/file_locking.rb +115 -0
  332. data/spec/unit/util/ldap/connection.rb +169 -0
  333. data/spec/unit/util/ldap/generator.rb +54 -0
  334. data/spec/unit/util/ldap/manager.rb +654 -0
  335. data/spec/unit/util/loadedfile.rb +65 -0
  336. data/spec/unit/util/log.rb +107 -0
  337. data/spec/unit/util/metric.rb +95 -0
  338. data/spec/unit/util/nagios_maker.rb +128 -0
  339. data/spec/unit/util/posix.rb +256 -0
  340. data/spec/unit/util/resource_template.rb +58 -0
  341. data/spec/unit/util/selinux.rb +219 -0
  342. data/spec/unit/util/settings.rb +847 -0
  343. data/spec/unit/util/storage.rb +248 -0
  344. data/spec/unit/util/tagging.rb +92 -0
  345. data/spec/unit/util/uri_helper.rb +41 -0
  346. data/spec/unit/util/user_attr.rb +47 -0
  347. data/spec/unit/util/warnings.rb +35 -0
  348. data/test/certmgr/support.rb +0 -6
  349. data/test/data/providers/ssh_authorized_key/parsed/authorized_keys +1 -0
  350. data/test/data/snippets/multilinecomments.pp +6 -0
  351. data/test/data/snippets/multipleclass.pp +9 -0
  352. data/test/language/functions.rb +11 -1
  353. data/test/language/snippets.rb +16 -0
  354. data/test/lib/puppettest/runnable_test.rb +1 -1
  355. data/test/network/handler/fileserver.rb +5 -0
  356. data/test/other/report.rb +0 -4
  357. data/test/ral/type/resources.rb +2 -19
  358. data/test/util/settings.rb +4 -4
  359. data/test/util/storage.rb +0 -24
  360. data/test/util/utiltest.rb +0 -33
  361. metadata +319 -26
  362. data/conf/debian/README.source +0 -2
  363. data/conf/debian/TODO.Debian +0 -1
  364. data/conf/debian/changelog +0 -257
  365. data/conf/debian/compat +0 -1
  366. data/conf/debian/control +0 -45
  367. data/conf/debian/copyright +0 -17
  368. data/conf/debian/docs +0 -1
  369. data/conf/debian/fileserver.conf +0 -12
  370. data/conf/debian/puppet.NEWS +0 -63
  371. data/conf/debian/puppet.conf +0 -8
  372. data/conf/debian/puppet.dirs +0 -7
  373. data/conf/debian/puppet.files +0 -6
  374. data/conf/debian/puppet.init +0 -64
  375. data/conf/debian/puppet.logrotate +0 -11
  376. data/conf/debian/puppet.postinst +0 -9
  377. data/conf/debian/puppet.postrm +0 -21
  378. data/conf/debian/puppet.preinst +0 -25
  379. data/conf/debian/puppetmaster.files +0 -4
  380. data/conf/debian/puppetmaster.init +0 -58
  381. data/conf/debian/rules +0 -115
  382. data/conf/debian/watch +0 -2
  383. data/lib/puppet/type/nagios_hostgroupescalation.rb +0 -3
@@ -0,0 +1,63 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../spec_helper'
4
+
5
+ require 'puppet/provider/confiner'
6
+
7
+ describe Puppet::Provider::Confiner do
8
+ before do
9
+ @object = Object.new
10
+ @object.extend(Puppet::Provider::Confiner)
11
+ end
12
+
13
+ it "should have a method for defining confines" do
14
+ @object.should respond_to(:confine)
15
+ end
16
+
17
+ it "should have a method for returning its confine collection" do
18
+ @object.should respond_to(:confine_collection)
19
+ end
20
+
21
+ it "should have a method for testing suitability" do
22
+ @object.should respond_to(:suitable?)
23
+ end
24
+
25
+ it "should delegate its confine method to its confine collection" do
26
+ coll = mock 'collection'
27
+ @object.stubs(:confine_collection).returns coll
28
+ coll.expects(:confine).with(:foo => :bar, :bee => :baz)
29
+ @object.confine(:foo => :bar, :bee => :baz)
30
+ end
31
+
32
+ it "should create a new confine collection if one does not exist" do
33
+ Puppet::Provider::ConfineCollection.expects(:new).with("mylabel").returns "mycoll"
34
+ @object.expects(:to_s).returns "mylabel"
35
+ @object.confine_collection.should == "mycoll"
36
+ end
37
+
38
+ it "should reuse the confine collection" do
39
+ @object.confine_collection.should equal(@object.confine_collection)
40
+ end
41
+
42
+ describe "when testing suitability" do
43
+ before do
44
+ @coll = mock 'collection'
45
+ @object.stubs(:confine_collection).returns @coll
46
+ end
47
+
48
+ it "should return true if the confine collection is valid" do
49
+ @coll.expects(:valid?).returns true
50
+ @object.should be_suitable
51
+ end
52
+
53
+ it "should return false if the confine collection is invalid" do
54
+ @coll.expects(:valid?).returns false
55
+ @object.should_not be_suitable
56
+ end
57
+
58
+ it "should return the summary of the confine collection if a long result is asked for" do
59
+ @coll.expects(:summary).returns "myresult"
60
+ @object.suitable?(false).should == "myresult"
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../../spec_helper'
4
+
5
+ provider_class = Puppet::Type.type(:group).provider(:groupadd)
6
+
7
+ describe provider_class do
8
+ before do
9
+ @resource = stub("resource", :name => "mygroup")
10
+ @provider = provider_class.new(@resource)
11
+ end
12
+
13
+ # #1360
14
+ it "should add -o when allowdupe is enabled and the group is being created" do
15
+ @resource.stubs(:should).returns "fakeval"
16
+ @resource.stubs(:[]).returns "fakeval"
17
+ @resource.expects(:allowdupe?).returns true
18
+ @provider.expects(:execute).with { |args| args.include?("-o") }
19
+
20
+ @provider.create
21
+ end
22
+
23
+ it "should add -o when allowdupe is enabled and the gid is being modified" do
24
+ @resource.stubs(:should).returns "fakeval"
25
+ @resource.stubs(:[]).returns "fakeval"
26
+ @resource.expects(:allowdupe?).returns true
27
+ @provider.expects(:execute).with { |args| args.include?("-o") }
28
+
29
+ @provider.gid = 150
30
+ end
31
+ end
@@ -0,0 +1,105 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Created by Luke Kanies on 2008-3-10.
4
+ # Copyright (c) 2006. All rights reserved.
5
+
6
+ require File.dirname(__FILE__) + '/../../../spec_helper'
7
+
8
+ provider_class = Puppet::Type.type(:group).provider(:ldap)
9
+
10
+ describe provider_class do
11
+ it "should have the Ldap provider class as its baseclass" do
12
+ provider_class.superclass.should equal(Puppet::Provider::Ldap)
13
+ end
14
+
15
+ it "should manage :posixGroup objectclass" do
16
+ provider_class.manager.objectclasses.should == [:posixGroup]
17
+ end
18
+
19
+ it "should use 'ou=Groups' as its relative base" do
20
+ provider_class.manager.location.should == "ou=Groups"
21
+ end
22
+
23
+ it "should use :cn as its rdn" do
24
+ provider_class.manager.rdn.should == :cn
25
+ end
26
+
27
+ it "should map :name to 'cn'" do
28
+ provider_class.manager.ldap_name(:name).should == 'cn'
29
+ end
30
+
31
+ it "should map :gid to 'gidNumber'" do
32
+ provider_class.manager.ldap_name(:gid).should == 'gidNumber'
33
+ end
34
+
35
+ it "should map :members to 'memberUid', to be used by the user ldap provider" do
36
+ provider_class.manager.ldap_name(:members).should == 'memberUid'
37
+ end
38
+
39
+ describe "when being created" do
40
+ before do
41
+ # So we don't try to actually talk to ldap
42
+ @connection = mock 'connection'
43
+ provider_class.manager.stubs(:connect).yields @connection
44
+ end
45
+
46
+ describe "with no gid specified" do
47
+ it "should pick the first available GID after the largest existing GID" do
48
+ low = {:name=>["luke"], :gid=>["600"]}
49
+ high = {:name=>["testing"], :gid=>["640"]}
50
+ provider_class.manager.expects(:search).returns([low, high])
51
+
52
+ resource = stub 'resource', :should => %w{whatever}
53
+ resource.stubs(:should).with(:gid).returns nil
54
+ resource.stubs(:should).with(:ensure).returns :present
55
+ instance = provider_class.new(:name => "luke", :ensure => :absent)
56
+ instance.stubs(:resource).returns resource
57
+
58
+ @connection.expects(:add).with { |dn, attrs| attrs["gidNumber"] == ["641"] }
59
+
60
+ instance.create
61
+ instance.flush
62
+ end
63
+
64
+ it "should pick '501' as its GID if no groups are found" do
65
+ provider_class.manager.expects(:search).returns nil
66
+
67
+ resource = stub 'resource', :should => %w{whatever}
68
+ resource.stubs(:should).with(:gid).returns nil
69
+ resource.stubs(:should).with(:ensure).returns :present
70
+ instance = provider_class.new(:name => "luke", :ensure => :absent)
71
+ instance.stubs(:resource).returns resource
72
+
73
+ @connection.expects(:add).with { |dn, attrs| attrs["gidNumber"] == ["501"] }
74
+
75
+ instance.create
76
+ instance.flush
77
+ end
78
+ end
79
+ end
80
+
81
+ it "should have a method for converting group names to GIDs" do
82
+ provider_class.should respond_to(:name2id)
83
+ end
84
+
85
+ describe "when converting from a group name to GID" do
86
+ it "should use the ldap manager to look up the GID" do
87
+ provider_class.manager.expects(:search).with("cn=foo")
88
+ provider_class.name2id("foo")
89
+ end
90
+
91
+ it "should return nil if no group is found" do
92
+ provider_class.manager.expects(:search).with("cn=foo").returns nil
93
+ provider_class.name2id("foo").should be_nil
94
+ provider_class.manager.expects(:search).with("cn=bar").returns []
95
+ provider_class.name2id("bar").should be_nil
96
+ end
97
+
98
+ # We shouldn't ever actually have more than one gid, but it doesn't hurt
99
+ # to test for the possibility.
100
+ it "should return the first gid from the first returned group" do
101
+ provider_class.manager.expects(:search).with("cn=foo").returns [{:name => "foo", :gid => [10, 11]}, {:name => :bar, :gid => [20, 21]}]
102
+ provider_class.name2id("foo").should == 10
103
+ end
104
+ end
105
+ end
@@ -0,0 +1,248 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Created by Luke Kanies on 2008-3-21.
4
+ # Copyright (c) 2006. All rights reserved.
5
+
6
+ require File.dirname(__FILE__) + '/../../spec_helper'
7
+
8
+ require 'puppet/provider/ldap'
9
+
10
+ describe Puppet::Provider::Ldap do
11
+ before do
12
+ @class = Class.new(Puppet::Provider::Ldap)
13
+ end
14
+
15
+ it "should be able to define its manager" do
16
+ manager = mock 'manager'
17
+ Puppet::Util::Ldap::Manager.expects(:new).returns manager
18
+ @class.stubs :mk_resource_methods
19
+ manager.expects(:manages).with(:one)
20
+ @class.manages(:one).should equal(manager)
21
+ @class.manager.should equal(manager)
22
+ end
23
+
24
+ it "should be able to prefetch instances from ldap" do
25
+ @class.should respond_to(:prefetch)
26
+ end
27
+
28
+ it "should create its resource getter/setter methods when the manager is defined" do
29
+ manager = mock 'manager'
30
+ Puppet::Util::Ldap::Manager.expects(:new).returns manager
31
+ @class.expects :mk_resource_methods
32
+ manager.stubs(:manages)
33
+ @class.manages(:one).should equal(manager)
34
+ end
35
+
36
+ it "should have an instances method" do
37
+ @class.should respond_to(:instances)
38
+ end
39
+
40
+ describe "when providing a list of instances" do
41
+ it "should convert all results returned from the manager's :search method into provider instances" do
42
+ manager = mock 'manager'
43
+ @class.stubs(:manager).returns manager
44
+
45
+ manager.expects(:search).returns %w{one two three}
46
+
47
+ @class.expects(:new).with("one").returns(1)
48
+ @class.expects(:new).with("two").returns(2)
49
+ @class.expects(:new).with("three").returns(3)
50
+
51
+ @class.instances.should == [1,2,3]
52
+ end
53
+ end
54
+
55
+ it "should have a prefetch method" do
56
+ @class.should respond_to(:prefetch)
57
+ end
58
+
59
+ describe "when prefetching" do
60
+ before do
61
+ @manager = mock 'manager'
62
+ @class.stubs(:manager).returns @manager
63
+
64
+ @resource = mock 'resource'
65
+
66
+ @resources = {"one" => @resource}
67
+ end
68
+
69
+ it "should find an entry for each passed resource" do
70
+ @manager.expects(:find).with("one").returns nil
71
+
72
+ @class.stubs(:new)
73
+ @resource.stubs(:provider=)
74
+ @class.prefetch(@resources)
75
+ end
76
+
77
+ describe "resources that do not exist" do
78
+ it "should create a provider with :ensure => :absent" do
79
+ result = mock 'result'
80
+ @manager.expects(:find).with("one").returns nil
81
+
82
+ @class.expects(:new).with(:ensure => :absent).returns "myprovider"
83
+
84
+ @resource.expects(:provider=).with("myprovider")
85
+
86
+ @class.prefetch(@resources)
87
+ end
88
+ end
89
+
90
+ describe "resources that exist" do
91
+ it "should create a provider with the results of the find" do
92
+ @manager.expects(:find).with("one").returns("one" => "two")
93
+
94
+ @class.expects(:new).with("one" => "two", :ensure => :present).returns "myprovider"
95
+
96
+ @resource.expects(:provider=).with("myprovider")
97
+
98
+ @class.prefetch(@resources)
99
+ end
100
+
101
+ it "should set :ensure to :present in the returned values" do
102
+ @manager.expects(:find).with("one").returns("one" => "two")
103
+
104
+ @class.expects(:new).with("one" => "two", :ensure => :present).returns "myprovider"
105
+
106
+ @resource.expects(:provider=).with("myprovider")
107
+
108
+ @class.prefetch(@resources)
109
+ end
110
+ end
111
+ end
112
+
113
+ describe "when being initialized" do
114
+ it "should fail if no manager has been defined" do
115
+ lambda { @class.new }.should raise_error(Puppet::DevError)
116
+ end
117
+
118
+ it "should fail if the manager is invalid" do
119
+ manager = stub "manager", :valid? => false
120
+ @class.stubs(:manager).returns manager
121
+ lambda { @class.new }.should raise_error(Puppet::DevError)
122
+ end
123
+
124
+ describe "with a hash" do
125
+ before do
126
+ @manager = stub "manager", :valid? => true
127
+ @class.stubs(:manager).returns @manager
128
+
129
+ @resource_class = mock 'resource_class'
130
+ @class.stubs(:resource_type).returns @resource_class
131
+
132
+ @property_class = stub 'property_class', :array_matching => :all, :superclass => Puppet::Property
133
+ @resource_class.stubs(:attrclass).with(:one).returns(@property_class)
134
+ @resource_class.stubs(:validattr?).returns true
135
+ end
136
+
137
+ it "should store a copy of the hash as its ldap_properties" do
138
+ instance = @class.new(:one => :two)
139
+ instance.ldap_properties.should == {:one => :two}
140
+ end
141
+
142
+ it "should only store the first value of each value array for those attributes that do not match all values" do
143
+ @property_class.expects(:array_matching).returns :first
144
+ instance = @class.new(:one => %w{two three})
145
+ instance.properties.should == {:one => "two"}
146
+ end
147
+
148
+ it "should store the whole value array for those attributes that match all values" do
149
+ @property_class.expects(:array_matching).returns :all
150
+ instance = @class.new(:one => %w{two three})
151
+ instance.properties.should == {:one => %w{two three}}
152
+ end
153
+
154
+ it "should only use the first value for attributes that are not properties" do
155
+ # Yay. hackish, but easier than mocking everything.
156
+ @resource_class.expects(:attrclass).with(:a).returns Puppet::Type.type(:user).attrclass(:name)
157
+ @property_class.stubs(:array_matching).returns :all
158
+
159
+ instance = @class.new(:one => %w{two three}, :a => %w{b c})
160
+ instance.properties.should == {:one => %w{two three}, :a => "b"}
161
+ end
162
+
163
+ it "should discard any properties not valid in the resource class" do
164
+ @resource_class.expects(:validattr?).with(:a).returns false
165
+ @property_class.stubs(:array_matching).returns :all
166
+
167
+ instance = @class.new(:one => %w{two three}, :a => %w{b})
168
+ instance.properties.should == {:one => %w{two three}}
169
+ end
170
+ end
171
+ end
172
+
173
+ describe "when an instance" do
174
+ before do
175
+ @manager = stub "manager", :valid? => true
176
+ @class.stubs(:manager).returns @manager
177
+ @instance = @class.new
178
+
179
+ @property_class = stub 'property_class', :array_matching => :all, :superclass => Puppet::Property
180
+ @resource_class = stub 'resource_class', :attrclass => @property_class, :validattr? => true, :validproperties => [:one, :two]
181
+ @class.stubs(:resource_type).returns @resource_class
182
+ end
183
+
184
+ it "should have a method for creating the ldap entry" do
185
+ @instance.should respond_to(:create)
186
+ end
187
+
188
+ it "should have a method for removing the ldap entry" do
189
+ @instance.should respond_to(:delete)
190
+ end
191
+
192
+ it "should have a method for returning the class's manager" do
193
+ @instance.manager.should equal(@manager)
194
+ end
195
+
196
+ it "should indicate when the ldap entry already exists" do
197
+ @instance = @class.new(:ensure => :present)
198
+ @instance.exists?.should be_true
199
+ end
200
+
201
+ it "should indicate when the ldap entry does not exist" do
202
+ @instance = @class.new(:ensure => :absent)
203
+ @instance.exists?.should be_false
204
+ end
205
+
206
+ describe "is being flushed" do
207
+ it "should call the manager's :update method with its name, current attributes, and desired attributes" do
208
+ @instance.stubs(:name).returns "myname"
209
+ @instance.stubs(:ldap_properties).returns(:one => :two)
210
+ @instance.stubs(:properties).returns(:three => :four)
211
+ @manager.expects(:update).with(@instance.name, {:one => :two}, {:three => :four})
212
+ @instance.flush
213
+ end
214
+ end
215
+
216
+ describe "is being created" do
217
+ before do
218
+ @rclass = mock 'resource_class'
219
+ @rclass.stubs(:validproperties).returns([:one, :two])
220
+ @resource = mock 'resource'
221
+ @resource.stubs(:class).returns @rclass
222
+ @resource.stubs(:should).returns nil
223
+ @instance.stubs(:resource).returns @resource
224
+ end
225
+
226
+ it "should set its :ensure value to :present" do
227
+ @instance.create
228
+ @instance.properties[:ensure].should == :present
229
+ end
230
+
231
+ it "should set all of the other attributes from the resource" do
232
+ @resource.expects(:should).with(:one).returns "oneval"
233
+ @resource.expects(:should).with(:two).returns "twoval"
234
+
235
+ @instance.create
236
+ @instance.properties[:one].should == "oneval"
237
+ @instance.properties[:two].should == "twoval"
238
+ end
239
+ end
240
+
241
+ describe "is being deleted" do
242
+ it "should set its :ensure value to :absent" do
243
+ @instance.delete
244
+ @instance.properties[:ensure].should == :absent
245
+ end
246
+ end
247
+ end
248
+ end