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,156 @@
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
+ require 'puppet/property/list'
6
+
7
+ list_class = Puppet::Property::List
8
+
9
+ describe list_class do
10
+
11
+ it "should be a subclass of Property" do
12
+ list_class.superclass.must == Puppet::Property
13
+ end
14
+
15
+ describe "as an instance" do
16
+ before do
17
+ # Wow that's a messy interface to the resource.
18
+ list_class.initvars
19
+ @resource = stub 'resource', :[]= => nil, :property => nil
20
+ @property = list_class.new(:resource => @resource)
21
+ end
22
+
23
+ it "should have a , as default delimiter" do
24
+ @property.delimiter.should == ","
25
+ end
26
+
27
+ it "should have a :membership as default membership" do
28
+ @property.membership.should == :membership
29
+ end
30
+
31
+ it "should return the same value passed into should_to_s" do
32
+ @property.should_to_s("foo") == "foo"
33
+ end
34
+
35
+ it "should return the passed in array values joined with the delimiter from is_to_s" do
36
+ @property.is_to_s(["foo","bar"]).should == "foo,bar"
37
+ end
38
+
39
+ describe "when adding should to current" do
40
+ it "should add the arrays when current is an array" do
41
+ @property.add_should_with_current(["foo"], ["bar"]).should == ["foo", "bar"]
42
+ end
43
+
44
+ it "should return should if current is not a array" do
45
+ @property.add_should_with_current(["foo"], :absent).should == ["foo"]
46
+ end
47
+
48
+ it "should return only the uniq elements" do
49
+ @property.add_should_with_current(["foo", "bar"], ["foo", "baz"]).should == ["foo", "bar", "baz"]
50
+ end
51
+ end
52
+
53
+ describe "when calling inclusive?" do
54
+ it "should use the membership method to look up on the @resource" do
55
+ @property.expects(:membership).returns(:membership)
56
+ @resource.expects(:[]).with(:membership)
57
+ @property.inclusive?
58
+ end
59
+
60
+ it "should return true when @resource[membership] == inclusive" do
61
+ @property.stubs(:membership).returns(:membership)
62
+ @resource.stubs(:[]).with(:membership).returns(:inclusive)
63
+ @property.inclusive?.must == true
64
+ end
65
+
66
+ it "should return false when @resource[membership] != inclusive" do
67
+ @property.stubs(:membership).returns(:membership)
68
+ @resource.stubs(:[]).with(:membership).returns(:minimum)
69
+ @property.inclusive?.must == false
70
+ end
71
+ end
72
+
73
+ describe "when calling should" do
74
+ it "should return nil if @should is nil" do
75
+ @property.should.must == nil
76
+ end
77
+
78
+ it "should return the sorted values of @should as a string if inclusive" do
79
+ @property.should = ["foo", "bar"]
80
+ @property.expects(:inclusive?).returns(true)
81
+ @property.should.must == "bar,foo"
82
+ end
83
+
84
+ it "should return the uniq sorted values of @should + retrieve as a string if !inclusive" do
85
+ @property.should = ["foo", "bar"]
86
+ @property.expects(:inclusive?).returns(false)
87
+ @property.expects(:retrieve).returns(["foo","baz"])
88
+ @property.should.must == "bar,baz,foo"
89
+ end
90
+ end
91
+
92
+ describe "when calling retrieve" do
93
+ before do
94
+ @provider = mock("provider")
95
+ @property.stubs(:provider).returns(@provider)
96
+ end
97
+
98
+ it "should send 'name' to the provider" do
99
+ @provider.expects(:send).with(:group)
100
+ @property.expects(:name).returns(:group)
101
+ @property.retrieve
102
+ end
103
+
104
+ it "should return an array with the provider returned info" do
105
+ @provider.stubs(:send).with(:group).returns("foo,bar,baz")
106
+ @property.stubs(:name).returns(:group)
107
+ @property.retrieve == ["foo", "bar", "baz"]
108
+ end
109
+
110
+ it "should return :absent when the provider returns :absent" do
111
+ @provider.stubs(:send).with(:group).returns(:absent)
112
+ @property.stubs(:name).returns(:group)
113
+ @property.retrieve == :absent
114
+ end
115
+ end
116
+
117
+ describe "when calling insync?" do
118
+ it "should return true unless @should is defined and not nil" do
119
+ @property.insync?("foo") == true
120
+ end
121
+
122
+ it "should return true unless the passed in values is not nil" do
123
+ @property.should = "foo"
124
+ @property.insync?(nil) == true
125
+ end
126
+
127
+ it "should call prepare_is_for_comparison with value passed in and should" do
128
+ @property.should = "foo"
129
+ @property.expects(:prepare_is_for_comparison).with("bar")
130
+ @property.expects(:should)
131
+ @property.insync?("bar")
132
+ end
133
+
134
+ it "should return true if prepared value == should value" do
135
+ @property.should = "bar,foo"
136
+ @property.expects(:inclusive?).returns(true)
137
+ @property.insync?(["bar","foo"]).must == true
138
+ end
139
+
140
+ it "should return false if prepared value != should value" do
141
+ @property.should = "bar,baz,foo"
142
+ @property.expects(:inclusive?).returns(true)
143
+ @property.insync?(["bar","foo"]).must == false
144
+ end
145
+ end
146
+
147
+ describe "when calling dearrayify" do
148
+ it "should sort and join the array with 'delimiter'" do
149
+ array = mock "array"
150
+ array.expects(:sort).returns(array)
151
+ array.expects(:join).with(@property.delimiter)
152
+ @property.dearrayify(array)
153
+ end
154
+ end
155
+ end
156
+ end
@@ -0,0 +1,64 @@
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
+ require 'puppet/property/ordered_list'
6
+
7
+ ordered_list_class = Puppet::Property::OrderedList
8
+
9
+ describe ordered_list_class do
10
+
11
+ it "should be a subclass of List" do
12
+ ordered_list_class.superclass.must == Puppet::Property::List
13
+ end
14
+
15
+ describe "as an instance" do
16
+ before do
17
+ # Wow that's a messy interface to the resource.
18
+ ordered_list_class.initvars
19
+ @resource = stub 'resource', :[]= => nil, :property => nil
20
+ @property = ordered_list_class.new(:resource => @resource)
21
+ end
22
+
23
+ describe "when adding should to current" do
24
+ it "should add the arrays when current is an array" do
25
+ @property.add_should_with_current(["should"], ["current"]).should == ["should", "current"]
26
+ end
27
+
28
+ it "should return 'should' if current is not a array" do
29
+ @property.add_should_with_current(["should"], :absent).should == ["should"]
30
+ end
31
+
32
+ it "should return only the uniq elements leading with the order of 'should'" do
33
+ @property.add_should_with_current(["this", "is", "should"], ["is", "this", "current"]).should == ["this", "is", "should", "current"]
34
+ end
35
+ end
36
+
37
+ describe "when calling should" do
38
+ it "should return nil if @should is nil" do
39
+ @property.should.must == nil
40
+ end
41
+
42
+ it "should return the values of @should (without sorting) as a string if inclusive" do
43
+ @property.should = ["foo", "bar"]
44
+ @property.expects(:inclusive?).returns(true)
45
+ @property.should.must == "foo,bar"
46
+ end
47
+
48
+ it "should return the uniq values of @should + retrieve as a string if !inclusive with the @ values leading" do
49
+ @property.should = ["foo", "bar"]
50
+ @property.expects(:inclusive?).returns(false)
51
+ @property.expects(:retrieve).returns(["foo","baz"])
52
+ @property.should.must == "foo,bar,baz"
53
+ end
54
+ end
55
+
56
+ describe "when calling dearrayify" do
57
+ it "should join the array with the delimiter" do
58
+ array = mock "array"
59
+ array.expects(:join).with(@property.delimiter)
60
+ @property.dearrayify(array)
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,238 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../../spec_helper'
4
+
5
+ provider_class = Puppet::Type.type(:augeas).provider(:augeas)
6
+
7
+ describe provider_class do
8
+ describe "command parsing" do
9
+ it "should break apart a single line into three tokens" do
10
+ provider = provider_class.new()
11
+ tokens = provider.parse_commands("set /Jar/Jar Binks")
12
+ tokens.size.should == 1
13
+ tokens[0].size.should == 3
14
+ tokens[0][0].should == "set"
15
+ tokens[0][1].should == "/Jar/Jar"
16
+ tokens[0][2].should == "Binks"
17
+ end
18
+
19
+ it "should break apart a multiple line into six tokens" do
20
+ provider = provider_class.new()
21
+ tokens = provider.parse_commands("set /Jar/Jar Binks\nrm anakin skywalker")
22
+ tokens.size.should == 2
23
+ tokens[0].size.should == 3
24
+ tokens[1].size.should == 3
25
+ tokens[0][0].should == "set"
26
+ tokens[0][1].should == "/Jar/Jar"
27
+ tokens[0][2].should == "Binks"
28
+ tokens[1][0].should == "rm"
29
+ tokens[1][1].should == "anakin"
30
+ tokens[1][2].should == "skywalker"
31
+ end
32
+
33
+ it "should handle arrays" do
34
+ provider = provider_class.new()
35
+ commands = ["set /Jar/Jar Binks", "rm anakin skywalker"]
36
+ tokens = provider.parse_commands(commands)
37
+ tokens.size.should == 2
38
+ tokens[0].size.should == 3
39
+ tokens[1].size.should == 3
40
+ tokens[0][0].should == "set"
41
+ tokens[0][1].should == "/Jar/Jar"
42
+ tokens[0][2].should == "Binks"
43
+ tokens[1][0].should == "rm"
44
+ tokens[1][1].should == "anakin"
45
+ tokens[1][2].should == "skywalker"
46
+ end
47
+
48
+ it "should concat the last values" do
49
+ provider = provider_class.new()
50
+ tokens = provider.parse_commands("set /Jar/Jar Binks is my copilot")
51
+ tokens.size.should == 1
52
+ tokens[0].size.should == 3
53
+ tokens[0][0].should == "set"
54
+ tokens[0][1].should == "/Jar/Jar"
55
+ tokens[0][2].should == "Binks is my copilot"
56
+ end
57
+ end
58
+
59
+ describe "get filters" do
60
+ before do
61
+ augeas_stub = stub("augeas", :get => "value")
62
+ @provider = provider_class.new()
63
+ @provider.stubs(:open_augeas).returns(augeas_stub)
64
+ end
65
+
66
+ it "should return false for a = nonmatch" do
67
+ command = ["get", "fake value", "==", "value"]
68
+ @provider.process_get(command).should == true
69
+ end
70
+
71
+ it "should return true for a != match" do
72
+ command = ["get", "fake value", "!=", "value"]
73
+ @provider.process_get(command).should == false
74
+ end
75
+
76
+ it "should return true for a =~ match" do
77
+ command = ["get", "fake value", "=~", "val*"]
78
+ @provider.process_get(command).should == true
79
+ end
80
+
81
+ it "should return false for a == nonmatch" do
82
+ command = ["get", "fake value", "=~", "num*"]
83
+ @provider.process_get(command).should == false
84
+ end
85
+ end
86
+
87
+ describe "match filters" do
88
+ before do
89
+ augeas_stub = stub("augeas", :match => ["set", "of", "values"])
90
+ @provider = provider_class.new()
91
+ @provider.stubs(:open_augeas).returns(augeas_stub)
92
+ end
93
+
94
+ it "should return true for size match" do
95
+ command = ["match", "fake value", "size", "==", "3"]
96
+ @provider.process_match(command).should == true
97
+ end
98
+
99
+ it "should return false for a size non match" do
100
+ command = ["match", "fake value", "size", "<", "3"]
101
+ @provider.process_match(command).should == false
102
+ end
103
+
104
+ it "should return true for includes match" do
105
+ command = ["get", "fake value", "include", "values"]
106
+ @provider.process_match(command).should == true
107
+ end
108
+
109
+ it "should return false for includes non match" do
110
+ command = ["get", "fake value", "include", "JarJar"]
111
+ @provider.process_match(command).should == false
112
+ end
113
+
114
+ it "should return true for an array match" do
115
+ command = ["get", "fake value", "==", "['set', 'of', 'values']"]
116
+ @provider.process_match(command).should == true
117
+ end
118
+
119
+ it "should return false for an array non match" do
120
+ command = ["get", "fake value", "==", "['this', 'should', 'not', 'match']"]
121
+ @provider.process_match(command).should == false
122
+ end
123
+ end
124
+
125
+ describe "need_to_run" do
126
+ it "should handle no filters" do
127
+ resource = stub("resource", :[] => "")
128
+ provider = provider_class.new(resource)
129
+ provider.need_to_run?.should == true
130
+ end
131
+
132
+ it "should return true when a get filter matches" do
133
+ resource = stub("resource", :[] => "get path == value")
134
+ provider = provider_class.new(resource)
135
+ augeas_stub = stub("augeas", :get => "value")
136
+ provider.stubs(:open_augeas).returns(augeas_stub)
137
+ provider.need_to_run?.should == true
138
+ end
139
+
140
+ it "should return false when a get filter does not match" do
141
+ resource = stub("resource", :[] => "get path == another value")
142
+ provider = provider_class.new(resource)
143
+ augeas_stub = stub("augeas", :get => "value")
144
+ provider.stubs(:open_augeas).returns(augeas_stub)
145
+ provider.need_to_run?.should == false
146
+ end
147
+
148
+ it "should return true when a match filter matches" do
149
+ resource = stub("resource", :[] => "match path size == 3")
150
+ provider = provider_class.new(resource)
151
+ augeas_stub = stub("augeas", :match => ["set", "of", "values"])
152
+ provider.stubs(:open_augeas).returns(augeas_stub)
153
+ provider.need_to_run?.should == true
154
+ end
155
+
156
+ it "should return false when a match filter does not match" do
157
+ resource = stub("resource", :[] => "match path size == 2")
158
+ provider = provider_class.new(resource)
159
+ augeas_stub = stub("augeas", :match => ["set", "of", "values"])
160
+ provider.stubs(:open_augeas).returns(augeas_stub)
161
+ provider.need_to_run?.should == false
162
+ end
163
+ end
164
+
165
+ describe "augeas integration" do
166
+
167
+ before do
168
+ @resource = stub("resource")
169
+ @provider = provider_class.new(@resource)
170
+ @augeas = stub("augeas")
171
+ @provider.stubs(:open_augeas).returns(@augeas)
172
+ end
173
+
174
+ it "should handle set commands" do
175
+ command = [["set", "/Jar/Jar", "Binks"]]
176
+ context = "/some/path"
177
+ @resource.expects(:[]).times(2).returns(command).then.returns(context)
178
+ @augeas.expects(:set).with("/some/path/Jar/Jar", "Binks")
179
+ @augeas.expects(:save).returns(true)
180
+ @provider.execute_changes.should == :executed
181
+ end
182
+
183
+ it "should handle rm commands" do
184
+ command = [["rm", "/Jar/Jar"]]
185
+ context = ""
186
+ @resource.expects(:[]).times(2).returns(command).then.returns(context)
187
+ @augeas.expects(:rm).with("/Jar/Jar")
188
+ @augeas.expects(:save).returns(true)
189
+ @provider.execute_changes.should == :executed
190
+ end
191
+
192
+ it "should handle remove commands" do
193
+ command = [["remove", "Jar/Jar"]]
194
+ context = ""
195
+ @resource.expects(:[]).times(2).returns(command).then.returns(context)
196
+ @augeas.expects(:rm).with("/Jar/Jar")
197
+ @augeas.expects(:save).returns(true)
198
+ @provider.execute_changes.should == :executed
199
+ end
200
+
201
+ it "should handle clear commands" do
202
+ command = [["clear", "/Jar/Jar"]]
203
+ context = "/foo"
204
+ @resource.expects(:[]).times(2).returns(command).then.returns(context)
205
+ @augeas.expects(:clear).with("/foo/Jar/Jar")
206
+ @augeas.expects(:save).returns(true)
207
+ @provider.execute_changes.should == :executed
208
+ end
209
+
210
+ it "should handle insert commands" do
211
+ command = [["insert", "/Jar/Jar"]]
212
+ context = "/foo"
213
+ @resource.expects(:[]).times(2).returns(command).then.returns(context)
214
+ @augeas.expects(:insert).with("/foo/Jar/Jar")
215
+ @augeas.expects(:save).returns(true)
216
+ @provider.execute_changes.should == :executed
217
+ end
218
+
219
+ it "should handle ins commands" do
220
+ command = [["ins", "/Jar/Jar"]]
221
+ context = "/foo"
222
+ @resource.expects(:[]).times(2).returns(command).then.returns(context)
223
+ @augeas.expects(:insert).with("/foo/Jar/Jar")
224
+ @augeas.expects(:save).returns(true)
225
+ @provider.execute_changes.should == :executed
226
+ end
227
+
228
+ it "should handle multiple commands" do
229
+ command = [["ins", "/Jar/Jar"], ["clear", "/Jar/Jar"]]
230
+ context = "/foo"
231
+ @resource.expects(:[]).times(2).returns(command).then.returns(context)
232
+ @augeas.expects(:insert).with("/foo/Jar/Jar")
233
+ @augeas.expects(:clear).with("/foo/Jar/Jar")
234
+ @augeas.expects(:save).returns(true)
235
+ @provider.execute_changes.should == :executed
236
+ end
237
+ end
238
+ end