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,78 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../spec_helper'
4
+
5
+ require 'puppet/provider/confine'
6
+
7
+ describe Puppet::Provider::Confine do
8
+ it "should require a value" do
9
+ lambda { Puppet::Provider::Confine.new() }.should raise_error(ArgumentError)
10
+ end
11
+
12
+ it "should always convert values to an array" do
13
+ Puppet::Provider::Confine.new("/some/file").values.should be_instance_of(Array)
14
+ end
15
+
16
+ it "should have a 'true' test" do
17
+ Puppet::Provider::Confine.test(:true).should be_instance_of(Class)
18
+ end
19
+
20
+ it "should have a 'false' test" do
21
+ Puppet::Provider::Confine.test(:false).should be_instance_of(Class)
22
+ end
23
+
24
+ it "should have a 'feature' test" do
25
+ Puppet::Provider::Confine.test(:feature).should be_instance_of(Class)
26
+ end
27
+
28
+ it "should have an 'exists' test" do
29
+ Puppet::Provider::Confine.test(:exists).should be_instance_of(Class)
30
+ end
31
+
32
+ it "should have a 'variable' test" do
33
+ Puppet::Provider::Confine.test(:variable).should be_instance_of(Class)
34
+ end
35
+
36
+ describe "when testing all values" do
37
+ before do
38
+ @confine = Puppet::Provider::Confine.new(%w{a b c})
39
+ @confine.label = "foo"
40
+ end
41
+
42
+ it "should be invalid if any values fail" do
43
+ @confine.stubs(:pass?).returns true
44
+ @confine.expects(:pass?).with("b").returns false
45
+ @confine.should_not be_valid
46
+ end
47
+
48
+ it "should be valid if all values pass" do
49
+ @confine.stubs(:pass?).returns true
50
+ @confine.should be_valid
51
+ end
52
+
53
+ it "should short-cut at the first failing value" do
54
+ @confine.expects(:pass?).once.returns false
55
+ @confine.valid?
56
+ end
57
+
58
+ it "should log failing confines with the label and message" do
59
+ @confine.stubs(:pass?).returns false
60
+ @confine.expects(:message).returns "My message"
61
+ @confine.expects(:label).returns "Mylabel"
62
+ Puppet.expects(:debug).with("Mylabel: My message")
63
+ @confine.valid?
64
+ end
65
+ end
66
+
67
+ describe "when testing the result of the values" do
68
+ before { @confine = Puppet::Provider::Confine.new(%w{a b c d}) }
69
+
70
+ it "should return an array with the result of the test for each value" do
71
+ @confine.stubs(:pass?).returns true
72
+ @confine.expects(:pass?).with("b").returns false
73
+ @confine.expects(:pass?).with("d").returns false
74
+
75
+ @confine.result.should == [true, false, true, false]
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,81 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../../spec_helper'
4
+
5
+ require 'puppet/provider/confine/exists'
6
+
7
+ describe Puppet::Provider::Confine::Exists do
8
+ before do
9
+ @confine = Puppet::Provider::Confine::Exists.new("/my/file")
10
+ @confine.label = "eh"
11
+ end
12
+
13
+ it "should be named :exists" do
14
+ Puppet::Provider::Confine::Exists.name.should == :exists
15
+ end
16
+
17
+ it "should use the 'pass?' method to test validity" do
18
+ @confine.expects(:pass?).with("/my/file")
19
+ @confine.valid?
20
+ end
21
+
22
+ it "should return false if the value is false" do
23
+ @confine.pass?(false).should be_false
24
+ end
25
+
26
+ it "should return false if the value does not point to a file" do
27
+ FileTest.expects(:exist?).with("/my/file").returns false
28
+ @confine.pass?("/my/file").should be_false
29
+ end
30
+
31
+ it "should return true if the value points to a file" do
32
+ FileTest.expects(:exist?).with("/my/file").returns true
33
+ @confine.pass?("/my/file").should be_true
34
+ end
35
+
36
+ it "should produce a message saying that a file is missing" do
37
+ @confine.message("/my/file").should be_include("does not exist")
38
+ end
39
+
40
+ describe "and the confine is for binaries" do
41
+ before { @confine.stubs(:for_binary).returns true }
42
+ it "should use its 'binary' method to look up the full path of the file" do
43
+ @confine.expects(:binary).returns nil
44
+ @confine.pass?("/my/file")
45
+ end
46
+
47
+ it "should return false if no binary can be found" do
48
+ @confine.expects(:binary).with("/my/file").returns nil
49
+ @confine.pass?("/my/file").should be_false
50
+ end
51
+
52
+ it "should return true if the binary can be found and the file exists" do
53
+ @confine.expects(:binary).with("/my/file").returns "/my/file"
54
+ FileTest.expects(:exist?).with("/my/file").returns true
55
+ @confine.pass?("/my/file").should be_true
56
+ end
57
+
58
+ it "should return false if the binary can be found but the file does not exist" do
59
+ @confine.expects(:binary).with("/my/file").returns "/my/file"
60
+ FileTest.expects(:exist?).with("/my/file").returns true
61
+ @confine.pass?("/my/file").should be_true
62
+ end
63
+ end
64
+
65
+ it "should produce a summary containing all missing files" do
66
+ FileTest.stubs(:exist?).returns true
67
+ FileTest.expects(:exist?).with("/two").returns false
68
+ FileTest.expects(:exist?).with("/four").returns false
69
+
70
+ confine = Puppet::Provider::Confine::Exists.new %w{/one /two /three /four}
71
+ confine.summary.should == %w{/two /four}
72
+ end
73
+
74
+ it "should summarize multiple instances by returning a flattened array of their summaries" do
75
+ c1 = mock '1', :summary => %w{one}
76
+ c2 = mock '2', :summary => %w{two}
77
+ c3 = mock '3', :summary => %w{three}
78
+
79
+ Puppet::Provider::Confine::Exists.summarize([c1, c2, c3]).should == %w{one two three}
80
+ end
81
+ end
@@ -0,0 +1,53 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../../spec_helper'
4
+
5
+ require 'puppet/provider/confine/false'
6
+
7
+ describe Puppet::Provider::Confine::False do
8
+ it "should be named :false" do
9
+ Puppet::Provider::Confine::False.name.should == :false
10
+ end
11
+
12
+ it "should require a value" do
13
+ lambda { Puppet::Provider::Confine.new() }.should raise_error(ArgumentError)
14
+ end
15
+
16
+ describe "when testing values" do
17
+ before { @confine = Puppet::Provider::Confine::False.new("foo") }
18
+
19
+ it "should use the 'pass?' method to test validity" do
20
+ @confine = Puppet::Provider::Confine::False.new("foo")
21
+ @confine.label = "eh"
22
+ @confine.expects(:pass?).with("foo")
23
+ @confine.valid?
24
+ end
25
+
26
+ it "should return true if the value is false" do
27
+ @confine.pass?(false).should be_true
28
+ end
29
+
30
+ it "should return false if the value is not false" do
31
+ @confine.pass?("else").should be_false
32
+ end
33
+
34
+ it "should produce a message that a value is true" do
35
+ @confine = Puppet::Provider::Confine::False.new("foo")
36
+ @confine.message("eh").should be_include("true")
37
+ end
38
+ end
39
+
40
+ it "should be able to produce a summary with the number of incorrectly true values" do
41
+ confine = Puppet::Provider::Confine::False.new %w{one two three four}
42
+ confine.expects(:pass?).times(4).returns(true).returns(false).returns(true).returns(false)
43
+ confine.summary.should == 2
44
+ end
45
+
46
+ it "should summarize multiple instances by summing their summaries" do
47
+ c1 = mock '1', :summary => 1
48
+ c2 = mock '2', :summary => 2
49
+ c3 = mock '3', :summary => 3
50
+
51
+ Puppet::Provider::Confine::False.summarize([c1, c2, c3]).should == 6
52
+ end
53
+ end
@@ -0,0 +1,60 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../../spec_helper'
4
+
5
+ require 'puppet/provider/confine/feature'
6
+
7
+ describe Puppet::Provider::Confine::Feature do
8
+ it "should be named :feature" do
9
+ Puppet::Provider::Confine::Feature.name.should == :feature
10
+ end
11
+
12
+ it "should require a value" do
13
+ lambda { Puppet::Provider::Confine::Feature.new() }.should raise_error(ArgumentError)
14
+ end
15
+
16
+ it "should always convert values to an array" do
17
+ Puppet::Provider::Confine::Feature.new("/some/file").values.should be_instance_of(Array)
18
+ end
19
+
20
+ describe "when testing values" do
21
+ before do
22
+ @features = mock 'features'
23
+ Puppet.stubs(:features).returns @features
24
+ @confine = Puppet::Provider::Confine::Feature.new("myfeature")
25
+ @confine.label = "eh"
26
+ end
27
+
28
+ it "should use the Puppet features instance to test validity" do
29
+ @features.expects(:myfeature?)
30
+ @confine.valid?
31
+ end
32
+
33
+ it "should return true if the feature is present" do
34
+ @features.expects(:myfeature?).returns true
35
+ @confine.pass?("myfeature").should be_true
36
+ end
37
+
38
+ it "should return false if the value is false" do
39
+ @features.expects(:myfeature?).returns false
40
+ @confine.pass?("myfeature").should be_false
41
+ end
42
+
43
+ it "should log that a feature is missing" do
44
+ @confine.message("myfeat").should be_include("missing")
45
+ end
46
+ end
47
+
48
+ it "should summarize multiple instances by returning a flattened array of all missing features" do
49
+ confines = []
50
+ confines << Puppet::Provider::Confine::Feature.new(%w{one two})
51
+ confines << Puppet::Provider::Confine::Feature.new(%w{two})
52
+ confines << Puppet::Provider::Confine::Feature.new(%w{three four})
53
+
54
+ features = mock 'feature'
55
+ features.stub_everything
56
+ Puppet.stubs(:features).returns features
57
+
58
+ Puppet::Provider::Confine::Feature.summarize(confines).sort.should == %w{one two three four}.sort
59
+ end
60
+ end
@@ -0,0 +1,53 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../../spec_helper'
4
+
5
+ require 'puppet/provider/confine/true'
6
+
7
+ describe Puppet::Provider::Confine::True do
8
+ it "should be named :true" do
9
+ Puppet::Provider::Confine::True.name.should == :true
10
+ end
11
+
12
+ it "should require a value" do
13
+ lambda { Puppet::Provider::Confine::True.new() }.should raise_error(ArgumentError)
14
+ end
15
+
16
+ describe "when testing values" do
17
+ before do
18
+ @confine = Puppet::Provider::Confine::True.new("foo")
19
+ @confine.label = "eh"
20
+ end
21
+
22
+ it "should use the 'pass?' method to test validity" do
23
+ @confine.expects(:pass?).with("foo")
24
+ @confine.valid?
25
+ end
26
+
27
+ it "should return true if the value is not false" do
28
+ @confine.pass?("else").should be_true
29
+ end
30
+
31
+ it "should return false if the value is false" do
32
+ @confine.pass?(nil).should be_false
33
+ end
34
+
35
+ it "should produce the message that a value is false" do
36
+ @confine.message("eh").should be_include("false")
37
+ end
38
+ end
39
+
40
+ it "should produce the number of false values when asked for a summary" do
41
+ @confine = Puppet::Provider::Confine::True.new %w{one two three four}
42
+ @confine.expects(:pass?).times(4).returns(true).returns(false).returns(true).returns(false)
43
+ @confine.summary.should == 2
44
+ end
45
+
46
+ it "should summarize multiple instances by summing their summaries" do
47
+ c1 = mock '1', :summary => 1
48
+ c2 = mock '2', :summary => 2
49
+ c3 = mock '3', :summary => 3
50
+
51
+ Puppet::Provider::Confine::True.summarize([c1, c2, c3]).should == 6
52
+ end
53
+ end
@@ -0,0 +1,107 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../../spec_helper'
4
+
5
+ require 'puppet/provider/confine/variable'
6
+
7
+ describe Puppet::Provider::Confine::Variable do
8
+ it "should be named :variable" do
9
+ Puppet::Provider::Confine::Variable.name.should == :variable
10
+ end
11
+
12
+ it "should require a value" do
13
+ lambda { Puppet::Provider::Confine::Variable.new() }.should raise_error(ArgumentError)
14
+ end
15
+
16
+ it "should always convert values to an array" do
17
+ Puppet::Provider::Confine::Variable.new("/some/file").values.should be_instance_of(Array)
18
+ end
19
+
20
+ it "should have an accessor for its name" do
21
+ Puppet::Provider::Confine::Variable.new(:bar).should respond_to(:name)
22
+ end
23
+
24
+ describe "when testing values" do
25
+ before do
26
+ @confine = Puppet::Provider::Confine::Variable.new("foo")
27
+ @confine.name = :myvar
28
+ end
29
+
30
+ it "should use settings if the variable name is a valid setting" do
31
+ Puppet.settings.expects(:valid?).with(:myvar).returns true
32
+ Puppet.settings.expects(:value).with(:myvar).returns "foo"
33
+ @confine.valid?
34
+ end
35
+
36
+ it "should use Facter if the variable name is not a valid setting" do
37
+ Puppet.settings.expects(:valid?).with(:myvar).returns false
38
+ Facter.expects(:value).with(:myvar).returns "foo"
39
+ @confine.valid?
40
+ end
41
+
42
+ it "should be valid if the value matches the facter value" do
43
+ @confine.expects(:test_value).returns "foo"
44
+
45
+ @confine.should be_valid
46
+ end
47
+
48
+ it "should return false if the value does not match the facter value" do
49
+ @confine.expects(:test_value).returns "fee"
50
+
51
+ @confine.should_not be_valid
52
+ end
53
+
54
+ it "should be case insensitive" do
55
+ @confine.expects(:test_value).returns "FOO"
56
+
57
+ @confine.should be_valid
58
+ end
59
+
60
+ it "should not care whether the value is a string or symbol" do
61
+ @confine.expects(:test_value).returns "FOO"
62
+
63
+ @confine.should be_valid
64
+ end
65
+
66
+ it "should produce a message that the fact value is not correct" do
67
+ @confine = Puppet::Provider::Confine::Variable.new(%w{bar bee})
68
+ @confine.name = "eh"
69
+ message = @confine.message("value")
70
+ message.should be_include("facter")
71
+ message.should be_include("bar,bee")
72
+ end
73
+
74
+ it "should be valid if the test value matches any of the provided values" do
75
+ @confine = Puppet::Provider::Confine::Variable.new(%w{bar bee})
76
+ @confine.expects(:test_value).returns "bee"
77
+ @confine.should be_valid
78
+ end
79
+ end
80
+
81
+ describe "when summarizing multiple instances" do
82
+ it "should return a hash of failing variables and their values" do
83
+ c1 = Puppet::Provider::Confine::Variable.new("one")
84
+ c1.name = "uno"
85
+ c1.expects(:valid?).returns false
86
+ c2 = Puppet::Provider::Confine::Variable.new("two")
87
+ c2.name = "dos"
88
+ c2.expects(:valid?).returns true
89
+ c3 = Puppet::Provider::Confine::Variable.new("three")
90
+ c3.name = "tres"
91
+ c3.expects(:valid?).returns false
92
+
93
+ Puppet::Provider::Confine::Variable.summarize([c1, c2, c3]).should == {"uno" => %w{one}, "tres" => %w{three}}
94
+ end
95
+
96
+ it "should combine the values of multiple confines with the same fact" do
97
+ c1 = Puppet::Provider::Confine::Variable.new("one")
98
+ c1.name = "uno"
99
+ c1.expects(:valid?).returns false
100
+ c2 = Puppet::Provider::Confine::Variable.new("two")
101
+ c2.name = "uno"
102
+ c2.expects(:valid?).returns false
103
+
104
+ Puppet::Provider::Confine::Variable.summarize([c1, c2]).should == {"uno" => %w{one two}}
105
+ end
106
+ end
107
+ end
@@ -0,0 +1,134 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../spec_helper'
4
+
5
+ require 'puppet/provider/confine_collection'
6
+
7
+ describe Puppet::Provider::ConfineCollection do
8
+ it "should be able to add confines" do
9
+ Puppet::Provider::ConfineCollection.new("label").should respond_to(:confine)
10
+ end
11
+
12
+ it "should require a label at initialization" do
13
+ lambda { Puppet::Provider::ConfineCollection.new }.should raise_error(ArgumentError)
14
+ end
15
+
16
+ it "should make its label available" do
17
+ Puppet::Provider::ConfineCollection.new("mylabel").label.should == "mylabel"
18
+ end
19
+
20
+ describe "when creating confine instances" do
21
+ it "should create an instance of the named test with the provided values" do
22
+ test_class = mock 'test_class'
23
+ test_class.expects(:new).with(%w{my values}).returns(stub('confine', :label= => nil))
24
+ Puppet::Provider::Confine.expects(:test).with(:foo).returns test_class
25
+
26
+ Puppet::Provider::ConfineCollection.new("label").confine :foo => %w{my values}
27
+ end
28
+
29
+ it "should copy its label to the confine instance" do
30
+ confine = mock 'confine'
31
+ test_class = mock 'test_class'
32
+ test_class.expects(:new).returns confine
33
+ Puppet::Provider::Confine.expects(:test).returns test_class
34
+
35
+ confine.expects(:label=).with("label")
36
+
37
+ Puppet::Provider::ConfineCollection.new("label").confine :foo => %w{my values}
38
+ end
39
+
40
+ describe "and the test cannot be found" do
41
+ it "should create a Facter test with the provided values and set the name to the test name" do
42
+ confine = Puppet::Provider::Confine.test(:variable).new(%w{my values})
43
+ confine.expects(:name=).with(:foo)
44
+ confine.class.expects(:new).with(%w{my values}).returns confine
45
+ Puppet::Provider::ConfineCollection.new("label").confine(:foo => %w{my values})
46
+ end
47
+ end
48
+
49
+ describe "and the 'for_binary' option was provided" do
50
+ it "should mark the test as a binary confine" do
51
+ confine = Puppet::Provider::Confine.test(:exists).new(:bar)
52
+ confine.expects(:for_binary=).with true
53
+ Puppet::Provider::Confine.test(:exists).expects(:new).with(:bar).returns confine
54
+ Puppet::Provider::ConfineCollection.new("label").confine :exists => :bar, :for_binary => true
55
+ end
56
+ end
57
+ end
58
+
59
+ it "should be valid if no confines are present" do
60
+ Puppet::Provider::ConfineCollection.new("label").should be_valid
61
+ end
62
+
63
+ it "should be valid if all confines pass" do
64
+ c1 = stub 'c1', :valid? => true, :label= => nil
65
+ c2 = stub 'c2', :valid? => true, :label= => nil
66
+
67
+ Puppet::Provider::Confine.test(:true).expects(:new).returns(c1)
68
+ Puppet::Provider::Confine.test(:false).expects(:new).returns(c2)
69
+
70
+ confiner = Puppet::Provider::ConfineCollection.new("label")
71
+ confiner.confine :true => :bar, :false => :bee
72
+
73
+ confiner.should be_valid
74
+ end
75
+
76
+ it "should not be valid if any confines fail" do
77
+ c1 = stub 'c1', :valid? => true, :label= => nil
78
+ c2 = stub 'c2', :valid? => false, :label= => nil
79
+
80
+ Puppet::Provider::Confine.test(:true).expects(:new).returns(c1)
81
+ Puppet::Provider::Confine.test(:false).expects(:new).returns(c2)
82
+
83
+ confiner = Puppet::Provider::ConfineCollection.new("label")
84
+ confiner.confine :true => :bar, :false => :bee
85
+
86
+ confiner.should_not be_valid
87
+ end
88
+
89
+ describe "when providing a summary" do
90
+ before do
91
+ @confiner = Puppet::Provider::ConfineCollection.new("label")
92
+ end
93
+
94
+ it "should return a hash" do
95
+ @confiner.summary.should be_instance_of(Hash)
96
+ end
97
+
98
+ it "should return an empty hash if the confiner is valid" do
99
+ @confiner.summary.should == {}
100
+ end
101
+
102
+ it "should add each test type's summary to the hash" do
103
+ @confiner.confine :true => :bar, :false => :bee
104
+ Puppet::Provider::Confine.test(:true).expects(:summarize).returns :tsumm
105
+ Puppet::Provider::Confine.test(:false).expects(:summarize).returns :fsumm
106
+
107
+ @confiner.summary.should == {:true => :tsumm, :false => :fsumm}
108
+ end
109
+
110
+ it "should not include tests that return 0" do
111
+ @confiner.confine :true => :bar, :false => :bee
112
+ Puppet::Provider::Confine.test(:true).expects(:summarize).returns 0
113
+ Puppet::Provider::Confine.test(:false).expects(:summarize).returns :fsumm
114
+
115
+ @confiner.summary.should == {:false => :fsumm}
116
+ end
117
+
118
+ it "should not include tests that return empty arrays" do
119
+ @confiner.confine :true => :bar, :false => :bee
120
+ Puppet::Provider::Confine.test(:true).expects(:summarize).returns []
121
+ Puppet::Provider::Confine.test(:false).expects(:summarize).returns :fsumm
122
+
123
+ @confiner.summary.should == {:false => :fsumm}
124
+ end
125
+
126
+ it "should not include tests that return empty hashes" do
127
+ @confiner.confine :true => :bar, :false => :bee
128
+ Puppet::Provider::Confine.test(:true).expects(:summarize).returns({})
129
+ Puppet::Provider::Confine.test(:false).expects(:summarize).returns :fsumm
130
+
131
+ @confiner.summary.should == {:false => :fsumm}
132
+ end
133
+ end
134
+ end