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,106 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../spec_helper'
4
+
5
+ ssh_authorized_key = Puppet::Type.type(:ssh_authorized_key)
6
+
7
+ describe ssh_authorized_key do
8
+ before do
9
+ @class = Puppet::Type.type(:ssh_authorized_key)
10
+
11
+ @provider_class = stub 'provider_class', :name => "fake", :suitable? => true, :supports_parameter? => true
12
+ @class.stubs(:defaultprovider).returns(@provider_class)
13
+ @class.stubs(:provider).returns(@provider_class)
14
+
15
+ @provider = stub 'provider', :class => @provider_class, :file_path => "/tmp/whatever", :clear => nil
16
+ @provider_class.stubs(:new).returns(@provider)
17
+ @catalog = Puppet::Node::Catalog.new
18
+ end
19
+
20
+ it "should have a name parameter" do
21
+ @class.attrtype(:name).should == :param
22
+ end
23
+
24
+ it "should have :name be its namevar" do
25
+ @class.namevar.should == :name
26
+ end
27
+
28
+ it "should have a :provider parameter" do
29
+ @class.attrtype(:provider).should == :param
30
+ end
31
+
32
+ it "should have an ensure property" do
33
+ @class.attrtype(:ensure).should == :property
34
+ end
35
+
36
+ it "should support :present as a value for :ensure" do
37
+ proc { @class.create(:name => "whev", :ensure => :present, :user => "nobody") }.should_not raise_error
38
+ end
39
+
40
+ it "should support :absent as a value for :ensure" do
41
+ proc { @class.create(:name => "whev", :ensure => :absent, :user => "nobody") }.should_not raise_error
42
+ end
43
+
44
+ it "should have an type property" do
45
+ @class.attrtype(:type).should == :property
46
+ end
47
+ it "should support ssh-dss as an type value" do
48
+ proc { @class.create(:name => "whev", :type => "ssh-dss", :user => "nobody") }.should_not raise_error
49
+ end
50
+ it "should support ssh-rsa as an type value" do
51
+ proc { @class.create(:name => "whev", :type => "ssh-rsa", :user => "nobody") }.should_not raise_error
52
+ end
53
+ it "should support :dsa as an type value" do
54
+ proc { @class.create(:name => "whev", :type => :dsa, :user => "nobody") }.should_not raise_error
55
+ end
56
+ it "should support :rsa as an type value" do
57
+ proc { @class.create(:name => "whev", :type => :rsa, :user => "nobody") }.should_not raise_error
58
+ end
59
+
60
+ it "should not support values other than ssh-dss, ssh-rsa, dsa, rsa in the ssh_authorized_key_type" do
61
+ proc { @class.create(:name => "whev", :type => :something) }.should raise_error(Puppet::Error)
62
+ end
63
+
64
+ it "should have an key property" do
65
+ @class.attrtype(:key).should == :property
66
+ end
67
+
68
+ it "should have an user property" do
69
+ @class.attrtype(:user).should == :property
70
+ end
71
+
72
+ it "should have an options property" do
73
+ @class.attrtype(:options).should == :property
74
+ end
75
+
76
+ it "'s options property should return well formed string of arrays from is_to_s" do
77
+ resource = @class.create(:name => "whev", :type => :rsa, :user => "nobody", :options => ["a","b","c"])
78
+
79
+ resource.property(:options).is_to_s(["a","b","c"]).should == "a,b,c"
80
+ end
81
+
82
+ it "'s options property should return well formed string of arrays from is_to_s" do
83
+ resource = @class.create(:name => "whev", :type => :rsa, :user => "nobody", :options => ["a","b","c"])
84
+
85
+ resource.property(:options).should_to_s(["a","b","c"]).should == "a,b,c"
86
+ end
87
+
88
+ it "should have a target property" do
89
+ @class.attrtype(:target).should == :property
90
+ end
91
+
92
+ it "should raise an error when neither user nor target is given" do
93
+ proc do
94
+ @class.create(
95
+ :name => "Test",
96
+ :key => "AAA",
97
+ :type => "ssh-rsa",
98
+ :ensure => :present)
99
+ end.should raise_error(Puppet::Error)
100
+ end
101
+
102
+ after do
103
+ @class.clear
104
+ @catalog.clear
105
+ end
106
+ end
@@ -0,0 +1,68 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../spec_helper'
4
+
5
+ tidy = Puppet::Type.type(:tidy)
6
+
7
+ describe tidy do
8
+ after { tidy.clear }
9
+
10
+ it "should be in sync if the targeted file does not exist" do
11
+ File.expects(:lstat).with("/tmp/foonesslaters").raises Errno::ENOENT
12
+ @tidy = tidy.create :path => "/tmp/foonesslaters", :age => "100d"
13
+
14
+ @tidy.property(:ensure).must be_insync({})
15
+ end
16
+
17
+ [:ensure, :age, :size].each do |property|
18
+ it "should have a %s property" % property do
19
+ tidy.attrclass(property).ancestors.should be_include(Puppet::Property)
20
+ end
21
+
22
+ it "should have documentation for its %s property" % property do
23
+ tidy.attrclass(property).doc.should be_instance_of(String)
24
+ end
25
+ end
26
+
27
+ [:path, :matches, :type, :recurse, :rmdirs].each do |param|
28
+ it "should have a %s parameter" % param do
29
+ tidy.attrclass(param).ancestors.should be_include(Puppet::Parameter)
30
+ end
31
+
32
+ it "should have documentation for its %s param" % param do
33
+ tidy.attrclass(param).doc.should be_instance_of(String)
34
+ end
35
+ end
36
+
37
+ describe "when validating parameter values" do
38
+ describe "for 'recurse'" do
39
+ before do
40
+ @tidy = tidy.create :path => "/tmp", :age => "100d"
41
+ end
42
+
43
+ it "should allow 'true'" do
44
+ lambda { @tidy[:recurse] = true }.should_not raise_error
45
+ end
46
+
47
+ it "should allow 'false'" do
48
+ lambda { @tidy[:recurse] = false }.should_not raise_error
49
+ end
50
+
51
+ it "should allow integers" do
52
+ lambda { @tidy[:recurse] = 10 }.should_not raise_error
53
+ end
54
+
55
+ it "should allow string representations of integers" do
56
+ lambda { @tidy[:recurse] = "10" }.should_not raise_error
57
+ end
58
+
59
+ it "should allow 'inf'" do
60
+ lambda { @tidy[:recurse] = "inf" }.should_not raise_error
61
+ end
62
+
63
+ it "should not allow arbitrary values" do
64
+ lambda { @tidy[:recurse] = "whatever" }.should raise_error
65
+ end
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,260 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../spec_helper'
4
+
5
+ user = Puppet::Type.type(:user)
6
+
7
+ describe user do
8
+ before do
9
+ @provider = stub 'provider'
10
+ @resource = stub 'resource', :resource => nil, :provider => @provider, :line => nil, :file => nil
11
+ end
12
+
13
+ after { user.clear }
14
+
15
+ it "should have a default provider inheriting from Puppet::Provider" do
16
+ user.defaultprovider.ancestors.should be_include(Puppet::Provider)
17
+ end
18
+
19
+ it "should be able to create a instance" do
20
+ user.create(:name => "foo").should_not be_nil
21
+ end
22
+
23
+ it "should have an allows_duplicates feature" do
24
+ user.provider_feature(:allows_duplicates).should_not be_nil
25
+ end
26
+
27
+ it "should have an manages_homedir feature" do
28
+ user.provider_feature(:manages_homedir).should_not be_nil
29
+ end
30
+
31
+ it "should have an manages_passwords feature" do
32
+ user.provider_feature(:manages_passwords).should_not be_nil
33
+ end
34
+
35
+ it "should have a manages_solaris_rbac feature" do
36
+ user.provider_feature(:manages_solaris_rbac).should_not be_nil
37
+ end
38
+
39
+ describe "instances" do
40
+ it "should have a valid provider" do
41
+ user.create(:name => "foo").provider.class.ancestors.should be_include(Puppet::Provider)
42
+ end
43
+ end
44
+
45
+ properties = [:ensure, :uid, :gid, :home, :comment, :shell, :password, :groups, :roles, :auths, :profiles, :project, :keys]
46
+
47
+ properties.each do |property|
48
+ it "should have a %s property" % property do
49
+ user.attrclass(property).ancestors.should be_include(Puppet::Property)
50
+ end
51
+
52
+ it "should have documentation for its %s property" % property do
53
+ user.attrclass(property).doc.should be_instance_of(String)
54
+ end
55
+ end
56
+
57
+ list_properties = [:groups, :roles, :auths]
58
+
59
+ list_properties.each do |property|
60
+ it "should have a list '%s'" % property do
61
+ user.attrclass(property).ancestors.should be_include(Puppet::Property::List)
62
+ end
63
+ end
64
+
65
+ it "should have an ordered list 'profiles'" do
66
+ user.attrclass(:profiles).ancestors.should be_include(Puppet::Property::OrderedList)
67
+ end
68
+
69
+ it "should have key values 'keys'" do
70
+ user.attrclass(:keys).ancestors.should be_include(Puppet::Property::KeyValue)
71
+ end
72
+
73
+ describe "when retrieving all current values" do
74
+ before do
75
+ @user = user.create(:name => "foo", :uid => 10, :gid => 10)
76
+ @properties = {}
77
+ end
78
+
79
+ it "should return a hash containing values for all set properties" do
80
+ values = @user.retrieve
81
+ [@user.property(:uid), @user.property(:gid)].each { |property| values.should be_include(property) }
82
+ end
83
+
84
+ it "should set all values to :absent if the user is absent" do
85
+ @user.property(:ensure).expects(:retrieve).returns :absent
86
+ @user.property(:uid).expects(:retrieve).never
87
+ @user.retrieve[@user.property(:uid)].should == :absent
88
+ end
89
+
90
+ it "should include the result of retrieving each property's current value if the user is present" do
91
+ @user.property(:ensure).expects(:retrieve).returns :present
92
+ @user.property(:uid).expects(:retrieve).returns 15
93
+ @user.retrieve[@user.property(:uid)].should == 15
94
+ end
95
+ end
96
+
97
+ describe "when managing the ensure property" do
98
+ before do
99
+ @ensure = user.attrclass(:ensure).new(:resource => @resource)
100
+ end
101
+
102
+ it "should support a :present value" do
103
+ lambda { @ensure.should = :present }.should_not raise_error
104
+ end
105
+
106
+ it "should support an :absent value" do
107
+ lambda { @ensure.should = :absent }.should_not raise_error
108
+ end
109
+
110
+ it "should call :create on the provider when asked to sync to the :present state" do
111
+ @provider.expects(:create)
112
+ @ensure.should = :present
113
+ @ensure.sync
114
+ end
115
+
116
+ it "should call :delete on the provider when asked to sync to the :absent state" do
117
+ @provider.expects(:delete)
118
+ @ensure.should = :absent
119
+ @ensure.sync
120
+ end
121
+
122
+ describe "and determining the current state" do
123
+ it "should return :present when the provider indicates the user exists" do
124
+ @provider.expects(:exists?).returns true
125
+ @ensure.retrieve.should == :present
126
+ end
127
+
128
+ it "should return :absent when the provider indicates the user does not exist" do
129
+ @provider.expects(:exists?).returns false
130
+ @ensure.retrieve.should == :absent
131
+ end
132
+ end
133
+ end
134
+
135
+ describe "when managing the uid property" do
136
+ it "should convert number-looking strings into actual numbers" do
137
+ uid = user.attrclass(:uid).new(:resource => @resource)
138
+ uid.should = "50"
139
+ uid.should.must == 50
140
+ end
141
+
142
+ it "should support UIDs as numbers" do
143
+ uid = user.attrclass(:uid).new(:resource => @resource)
144
+ uid.should = 50
145
+ uid.should.must == 50
146
+ end
147
+
148
+ it "should :absent as a value" do
149
+ uid = user.attrclass(:uid).new(:resource => @resource)
150
+ uid.should = :absent
151
+ uid.should.must == :absent
152
+ end
153
+ end
154
+
155
+ describe "when managing the gid" do
156
+ it "should :absent as a value" do
157
+ gid = user.attrclass(:gid).new(:resource => @resource)
158
+ gid.should = :absent
159
+ gid.should.must == :absent
160
+ end
161
+
162
+ it "should convert number-looking strings into actual numbers" do
163
+ gid = user.attrclass(:gid).new(:resource => @resource)
164
+ gid.should = "50"
165
+ gid.should.must == 50
166
+ end
167
+
168
+ it "should support GIDs specified as integers" do
169
+ gid = user.attrclass(:gid).new(:resource => @resource)
170
+ gid.should = 50
171
+ gid.should.must == 50
172
+ end
173
+
174
+ it "should support groups specified by name" do
175
+ gid = user.attrclass(:gid).new(:resource => @resource)
176
+ gid.should = "foo"
177
+ gid.should.must == "foo"
178
+ end
179
+
180
+ describe "when testing whether in sync" do
181
+ before do
182
+ @gid = user.attrclass(:gid).new(:resource => @resource, :should => %w{foo bar})
183
+ end
184
+
185
+ it "should return true if any of the specified groups are equal to the current integer" do
186
+ Puppet::Util.expects(:gid).with("foo").returns 300
187
+ Puppet::Util.expects(:gid).with("bar").returns 500
188
+
189
+ @gid.must be_insync(500)
190
+ end
191
+
192
+ it "should return false if none of the specified groups are equal to the current integer" do
193
+ Puppet::Util.expects(:gid).with("foo").returns 300
194
+ Puppet::Util.expects(:gid).with("bar").returns 500
195
+
196
+ @gid.should_not be_insync(700)
197
+ end
198
+ end
199
+
200
+ describe "when syncing" do
201
+ before do
202
+ @gid = user.attrclass(:gid).new(:resource => @resource, :should => %w{foo bar})
203
+ end
204
+
205
+ it "should use the first found, specified group as the desired value and send it to the provider" do
206
+ Puppet::Util.expects(:gid).with("foo").returns nil
207
+ Puppet::Util.expects(:gid).with("bar").returns 500
208
+
209
+ @provider.expects(:gid=).with 500
210
+
211
+ @gid.sync
212
+ end
213
+ end
214
+ end
215
+
216
+ describe "when managing passwords" do
217
+ before do
218
+ @password = user.attrclass(:password).new(:resource => @resource, :should => "mypass")
219
+ end
220
+
221
+ it "should not include the password in the change log when adding the password" do
222
+ @password.change_to_s(:absent, "mypass").should_not be_include("mypass")
223
+ end
224
+
225
+ it "should not include the password in the change log when changing the password" do
226
+ @password.change_to_s("other", "mypass").should_not be_include("mypass")
227
+ end
228
+ end
229
+
230
+ describe "when manages_solaris_rbac is enabled" do
231
+ before do
232
+ @provider.stubs(:satisfies?).returns(false)
233
+ @provider.expects(:satisfies?).with(:manages_solaris_rbac).returns(true)
234
+ end
235
+
236
+ it "should support a :role value for ensure" do
237
+ @ensure = user.attrclass(:ensure).new(:resource => @resource)
238
+ lambda { @ensure.should = :role }.should_not raise_error
239
+ end
240
+ end
241
+
242
+ describe "when user has roles" do
243
+ it "should autorequire roles" do
244
+ #this is a little funky because the autorequire depends on a property with a feature
245
+ testuser = Puppet.type(:user).create(:name => "testuser")
246
+ testuser.provider.class.expects(:feature?).with(:manages_solaris_rbac).returns(true)
247
+ testuser[:roles] = "testrole"
248
+
249
+ testrole = Puppet.type(:user).create(:name => "testrole")
250
+
251
+ config = Puppet::Node::Catalog.new :testing do |conf|
252
+ [testuser, testrole].each { |resource| conf.add_resource resource }
253
+ end
254
+
255
+ rel = testuser.autorequire[0]
256
+ rel.source.ref.should == testrole.ref
257
+ rel.target.ref.should == testuser.ref
258
+ end
259
+ end
260
+ end
@@ -0,0 +1,45 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ Dir.chdir(File.dirname(__FILE__)) { (s = lambda { |f| File.exist?(f) ? require(f) : Dir.chdir("..") { s.call(f) } }).call("spec/spec_helper.rb") }
4
+
5
+ zfs = Puppet::Type.type(:zfs)
6
+
7
+ describe zfs do
8
+ properties = [:ensure, :mountpoint, :compression, :copies, :quota, :reservation, :sharenfs, :snapdir]
9
+
10
+ properties.each do |property|
11
+ it "should have a %s property" % property do
12
+ zfs.attrclass(property).ancestors.should be_include(Puppet::Property)
13
+ end
14
+ end
15
+
16
+ parameters = [:name]
17
+
18
+ parameters.each do |parameter|
19
+ it "should have a %s parameter" % parameter do
20
+ zfs.attrclass(parameter).ancestors.should be_include(Puppet::Parameter)
21
+ end
22
+ end
23
+
24
+ it "should autorequire the containing zfss and the zpool" do
25
+ provider = mock "provider"
26
+ provider.stubs(:name).returns(:solaris)
27
+ zfs.stubs(:defaultprovider).returns(provider)
28
+ Puppet.type(:zpool).stubs(:defaultprovider).returns(provider)
29
+
30
+
31
+ foo_pool = Puppet.type(:zpool).create(:name => "foo")
32
+
33
+ foo_bar_zfs = Puppet.type(:zfs).create(:name => "foo/bar")
34
+ foo_bar_baz_zfs = Puppet.type(:zfs).create(:name => "foo/bar/baz")
35
+ foo_bar_baz_buz_zfs = Puppet.type(:zfs).create(:name => "foo/bar/baz/buz")
36
+
37
+ config = Puppet::Node::Catalog.new :testing do |conf|
38
+ [foo_pool, foo_bar_zfs, foo_bar_baz_zfs, foo_bar_baz_buz_zfs].each { |resource| conf.add_resource resource }
39
+ end
40
+
41
+ req = foo_bar_baz_buz_zfs.autorequire.collect { |edge| edge.source.ref }
42
+
43
+ [foo_pool.ref, foo_bar_zfs.ref, foo_bar_baz_zfs.ref].each { |ref| req.include?(ref).should == true }
44
+ end
45
+ end