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,61 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../spec_helper'
4
+
5
+ require 'puppet/reports'
6
+
7
+ describe Puppet::Reports do
8
+ it "should instance-load report types" do
9
+ Puppet::Reports.instance_loader(:report).should be_instance_of(Puppet::Util::Autoload)
10
+ end
11
+
12
+ it "should have a method for registering report types" do
13
+ Puppet::Reports.should respond_to(:register_report)
14
+ end
15
+
16
+ it "should have a method for retrieving report types by name" do
17
+ Puppet::Reports.should respond_to(:report)
18
+ end
19
+
20
+ it "should provide a method for returning documentation for all reports" do
21
+ Puppet::Reports.expects(:loaded_instances).with(:report).returns([:one, :two])
22
+ one = mock 'one', :doc => "onedoc"
23
+ two = mock 'two', :doc => "twodoc"
24
+ Puppet::Reports.expects(:report).with(:one).returns(one)
25
+ Puppet::Reports.expects(:report).with(:two).returns(two)
26
+
27
+ doc = Puppet::Reports.reportdocs
28
+ doc.include?("onedoc").should be_true
29
+ doc.include?("twodoc").should be_true
30
+ end
31
+ end
32
+
33
+
34
+ describe Puppet::Reports, " when loading report types" do
35
+ it "should use the instance loader to retrieve report types" do
36
+ Puppet::Reports.expects(:loaded_instance).with(:report, :myreporttype)
37
+ Puppet::Reports.report(:myreporttype)
38
+ end
39
+ end
40
+
41
+ describe Puppet::Reports, " when registering report types" do
42
+ it "should evaluate the supplied block as code for a module" do
43
+ Puppet::Reports.expects(:genmodule).returns(Module.new)
44
+ Puppet::Reports.register_report(:testing) { }
45
+ end
46
+
47
+ it "should extend the report type with the Puppet::Util::Docs module" do
48
+ mod = stub 'module', :define_method => true
49
+
50
+ Puppet::Reports.expects(:genmodule).with { |name, options, block| options[:extend] == Puppet::Util::Docs }.returns(mod)
51
+ Puppet::Reports.register_report(:testing) { }
52
+ end
53
+
54
+ it "should define a :report_name method in the module that returns the name of the report" do
55
+ mod = mock 'module'
56
+ mod.expects(:define_method).with(:report_name)
57
+
58
+ Puppet::Reports.expects(:genmodule).returns(mod)
59
+ Puppet::Reports.register_report(:testing) { }
60
+ end
61
+ end
@@ -0,0 +1,73 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../spec_helper'
4
+
5
+ require 'puppet/resource_reference'
6
+
7
+ describe Puppet::ResourceReference do
8
+ it "should have a :title attribute" do
9
+ Puppet::ResourceReference.new(:file, "foo").title.should == "foo"
10
+ end
11
+
12
+ it "should canonize types to capitalized strings" do
13
+ Puppet::ResourceReference.new(:file, "foo").type.should == "File"
14
+ end
15
+
16
+ it "should canonize qualified types so all strings are capitalized" do
17
+ Puppet::ResourceReference.new("foo::bar", "foo").type.should == "Foo::Bar"
18
+ end
19
+
20
+ it "should set its type to 'Class' and its title to the passed title if the passed type is :component and the title has no square brackets in it" do
21
+ ref = Puppet::ResourceReference.new(:component, "foo")
22
+ ref.type.should == "Class"
23
+ ref.title.should == "foo"
24
+ end
25
+
26
+ it "should interpret the title as a reference and assign appropriately if the type is :component and the title contains square brackets" do
27
+ ref = Puppet::ResourceReference.new(:component, "foo::bar[yay]")
28
+ ref.type.should == "Foo::Bar"
29
+ ref.title.should == "yay"
30
+ end
31
+
32
+ it "should set the type to 'Class' if it is nil and the title contains no square brackets" do
33
+ ref = Puppet::ResourceReference.new(nil, "yay")
34
+ ref.type.should == "Class"
35
+ ref.title.should == "yay"
36
+ end
37
+
38
+ it "should interpret the title as a reference and assign appropriately if the type is nil and the title contains square brackets" do
39
+ ref = Puppet::ResourceReference.new(nil, "foo::bar[yay]")
40
+ ref.type.should == "Foo::Bar"
41
+ ref.title.should == "yay"
42
+ end
43
+
44
+ it "should interpret the title as a reference and assign appropriately if the type is nil and the title contains nested square brackets" do
45
+ ref = Puppet::ResourceReference.new(nil, "foo::bar[baz[yay]]")
46
+ ref.type.should == "Foo::Bar"
47
+ ref.title.should =="baz[yay]"
48
+ end
49
+ end
50
+
51
+ describe Puppet::ResourceReference, "when resolving resources without a catalog" do
52
+ it "should be able to resolve builtin resources from their types" do
53
+ Puppet::Type.type(:file).expects(:[]).with("myfile").returns(:myfile)
54
+ Puppet::ResourceReference.new(:file, "myfile").resolve.should == :myfile
55
+ end
56
+
57
+ it "should be able to resolve defined resources from Components" do
58
+ Puppet::Type.type(:component).expects(:[]).with("Foo::Bar[yay]").returns(:mything)
59
+ Puppet::ResourceReference.new("foo::bar", "yay").resolve.should == :mything
60
+ end
61
+ end
62
+
63
+ describe Puppet::ResourceReference, "when resolving resources with a catalog" do
64
+ it "should resolve all resources using the catalog" do
65
+ config = mock 'catalog'
66
+ ref = Puppet::ResourceReference.new("foo::bar", "yay")
67
+ ref.catalog = config
68
+
69
+ config.expects(:resource).with("Foo::Bar[yay]").returns(:myresource)
70
+
71
+ ref.resolve.should == :myresource
72
+ end
73
+ end
@@ -0,0 +1,280 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Created by Luke Kanies on 2007-11-1.
4
+ # Copyright (c) 2006. All rights reserved.
5
+
6
+ require File.dirname(__FILE__) + '/../spec_helper'
7
+ require 'puppet/simple_graph'
8
+
9
+ describe Puppet::SimpleGraph do
10
+ it "should return the number of its vertices as its length" do
11
+ @graph = Puppet::SimpleGraph.new
12
+ @graph.add_vertex("one")
13
+ @graph.add_vertex("two")
14
+ @graph.size.should == 2
15
+ end
16
+
17
+ it "should consider itself a directed graph" do
18
+ Puppet::SimpleGraph.new.directed?.should be_true
19
+ end
20
+
21
+ it "should provide a method for reversing the graph" do
22
+ @graph = Puppet::SimpleGraph.new
23
+ @graph.add_edge(:one, :two)
24
+ @graph.reversal.edge?(:two, :one).should be_true
25
+ end
26
+
27
+ it "should be able to produce a dot graph" do
28
+ @graph = Puppet::SimpleGraph.new
29
+ @graph.add_edge(:one, :two)
30
+
31
+ proc { @graph.to_dot_graph }.should_not raise_error
32
+ end
33
+ end
34
+
35
+ describe Puppet::SimpleGraph, " when managing vertices" do
36
+ before do
37
+ @graph = Puppet::SimpleGraph.new
38
+ end
39
+
40
+ it "should provide a method to add a vertex" do
41
+ @graph.add_vertex(:test)
42
+ @graph.vertex?(:test).should be_true
43
+ end
44
+
45
+ it "should ignore already-present vertices when asked to add a vertex" do
46
+ @graph.add_vertex(:test)
47
+ proc { @graph.add_vertex(:test) }.should_not raise_error
48
+ end
49
+
50
+ it "should return true when asked if a vertex is present" do
51
+ @graph.add_vertex(:test)
52
+ @graph.vertex?(:test).should be_true
53
+ end
54
+
55
+ it "should return false when asked if a non-vertex is present" do
56
+ @graph.vertex?(:test).should be_false
57
+ end
58
+
59
+ it "should return all set vertices when asked" do
60
+ @graph.add_vertex(:one)
61
+ @graph.add_vertex(:two)
62
+ @graph.vertices.length.should == 2
63
+ @graph.vertices.should include(:one)
64
+ @graph.vertices.should include(:two)
65
+ end
66
+
67
+ it "should remove a given vertex when asked" do
68
+ @graph.add_vertex(:one)
69
+ @graph.remove_vertex!(:one)
70
+ @graph.vertex?(:one).should be_false
71
+ end
72
+
73
+ it "should do nothing when a non-vertex is asked to be removed" do
74
+ proc { @graph.remove_vertex!(:one) }.should_not raise_error
75
+ end
76
+ end
77
+
78
+ describe Puppet::SimpleGraph, " when managing edges" do
79
+ before do
80
+ @graph = Puppet::SimpleGraph.new
81
+ end
82
+
83
+ it "should provide a method to test whether a given vertex pair is an edge" do
84
+ @graph.should respond_to(:edge?)
85
+ end
86
+
87
+ it "should provide a method to add an edge as an instance of the edge class" do
88
+ edge = Puppet::Relationship.new(:one, :two)
89
+ @graph.add_edge(edge)
90
+ @graph.edge?(:one, :two).should be_true
91
+ end
92
+
93
+ it "should provide a method to add an edge by specifying the two vertices" do
94
+ @graph.add_edge(:one, :two)
95
+ @graph.edge?(:one, :two).should be_true
96
+ end
97
+
98
+ it "should provide a method to add an edge by specifying the two vertices and a label" do
99
+ @graph.add_edge(:one, :two, :stuff => :awesome)
100
+ @graph.edge?(:one, :two).should be_true
101
+ end
102
+
103
+ it "should provide a method for retrieving an edge label" do
104
+ edge = Puppet::Relationship.new(:one, :two, :stuff => :awesome)
105
+ @graph.add_edge(edge)
106
+ @graph.edge_label(:one, :two).should == {:stuff => :awesome}
107
+ end
108
+
109
+ it "should provide a method for retrieving an edge" do
110
+ edge = Puppet::Relationship.new(:one, :two)
111
+ @graph.add_edge(edge)
112
+ @graph.edge(:one, :two).should equal(edge)
113
+ end
114
+
115
+ it "should add the edge source as a vertex if it is not already" do
116
+ edge = Puppet::Relationship.new(:one, :two)
117
+ @graph.add_edge(edge)
118
+ @graph.vertex?(:one).should be_true
119
+ end
120
+
121
+ it "should add the edge target as a vertex if it is not already" do
122
+ edge = Puppet::Relationship.new(:one, :two)
123
+ @graph.add_edge(edge)
124
+ @graph.vertex?(:two).should be_true
125
+ end
126
+
127
+ it "should return all edges as edge instances when asked" do
128
+ one = Puppet::Relationship.new(:one, :two)
129
+ two = Puppet::Relationship.new(:two, :three)
130
+ @graph.add_edge(one)
131
+ @graph.add_edge(two)
132
+ edges = @graph.edges
133
+ edges.length.should == 2
134
+ edges.should include(one)
135
+ edges.should include(two)
136
+ end
137
+
138
+ it "should remove an edge when asked" do
139
+ edge = Puppet::Relationship.new(:one, :two)
140
+ @graph.add_edge(edge)
141
+ @graph.remove_edge!(edge)
142
+ @graph.edge?(edge.source, edge.target).should be_false
143
+ end
144
+
145
+ it "should remove all related edges when a vertex is removed" do
146
+ one = Puppet::Relationship.new(:one, :two)
147
+ two = Puppet::Relationship.new(:two, :three)
148
+ @graph.add_edge(one)
149
+ @graph.add_edge(two)
150
+ @graph.remove_vertex!(:two)
151
+ @graph.edge?(:one, :two).should be_false
152
+ @graph.edge?(:two, :three).should be_false
153
+ @graph.edges.length.should == 0
154
+ end
155
+ end
156
+
157
+ describe Puppet::SimpleGraph, " when finding adjacent vertices" do
158
+ before do
159
+ @graph = Puppet::SimpleGraph.new
160
+ @one_two = Puppet::Relationship.new(:one, :two)
161
+ @two_three = Puppet::Relationship.new(:two, :three)
162
+ @one_three = Puppet::Relationship.new(:one, :three)
163
+ @graph.add_edge(@one_two)
164
+ @graph.add_edge(@one_three)
165
+ @graph.add_edge(@two_three)
166
+ end
167
+
168
+ it "should return adjacent vertices" do
169
+ adj = @graph.adjacent(:one)
170
+ adj.should be_include(:three)
171
+ adj.should be_include(:two)
172
+ end
173
+
174
+ it "should default to finding :out vertices" do
175
+ @graph.adjacent(:two).should == [:three]
176
+ end
177
+
178
+ it "should support selecting :in vertices" do
179
+ @graph.adjacent(:two, :direction => :in).should == [:one]
180
+ end
181
+
182
+ it "should default to returning the matching vertices as an array of vertices" do
183
+ @graph.adjacent(:two).should == [:three]
184
+ end
185
+
186
+ it "should support returning an array of matching edges" do
187
+ @graph.adjacent(:two, :type => :edges).should == [@two_three]
188
+ end
189
+ end
190
+
191
+ describe Puppet::SimpleGraph, " when clearing" do
192
+ before do
193
+ @graph = Puppet::SimpleGraph.new
194
+ one = Puppet::Relationship.new(:one, :two)
195
+ two = Puppet::Relationship.new(:two, :three)
196
+ @graph.add_edge(one)
197
+ @graph.add_edge(two)
198
+
199
+ @graph.clear
200
+ end
201
+
202
+ it "should remove all vertices" do
203
+ @graph.vertices.should be_empty
204
+ end
205
+
206
+ it "should remove all edges" do
207
+ @graph.edges.should be_empty
208
+ end
209
+ end
210
+
211
+ describe Puppet::SimpleGraph, " when reversing graphs" do
212
+ before do
213
+ @graph = Puppet::SimpleGraph.new
214
+ end
215
+
216
+ it "should provide a method for reversing the graph" do
217
+ @graph.add_edge(:one, :two)
218
+ @graph.reversal.edge?(:two, :one).should be_true
219
+ end
220
+
221
+ it "should add all vertices to the reversed graph" do
222
+ @graph.add_edge(:one, :two)
223
+ @graph.vertex?(:one).should be_true
224
+ @graph.vertex?(:two).should be_true
225
+ end
226
+
227
+ it "should retain labels on edges" do
228
+ @graph.add_edge(:one, :two, :stuff => :awesome)
229
+ edge = @graph.reversal.edge(:two, :one)
230
+ edge.label.should == {:stuff => :awesome}
231
+ end
232
+ end
233
+
234
+ describe Puppet::SimpleGraph, " when sorting the graph" do
235
+ before do
236
+ @graph = Puppet::SimpleGraph.new
237
+ end
238
+
239
+ def add_edges(hash)
240
+ hash.each do |a,b|
241
+ @graph.add_edge(a, b)
242
+ end
243
+ end
244
+
245
+ it "should sort the graph topologically" do
246
+ add_edges :a => :b, :b => :c
247
+ @graph.topsort.should == [:a, :b, :c]
248
+ end
249
+
250
+ it "should fail on two-vertex loops" do
251
+ add_edges :a => :b, :b => :a
252
+ proc { @graph.topsort }.should raise_error(Puppet::Error)
253
+ end
254
+
255
+ it "should fail on multi-vertex loops" do
256
+ add_edges :a => :b, :b => :c, :c => :a
257
+ proc { @graph.topsort }.should raise_error(Puppet::Error)
258
+ end
259
+
260
+ it "should fail when a larger tree contains a small cycle" do
261
+ add_edges :a => :b, :b => :a, :c => :a, :d => :c
262
+ proc { @graph.topsort }.should raise_error(Puppet::Error)
263
+ end
264
+
265
+ it "should succeed on trees with no cycles" do
266
+ add_edges :a => :b, :b => :e, :c => :a, :d => :c
267
+ proc { @graph.topsort }.should_not raise_error
268
+ end
269
+
270
+ # Our graph's add_edge method is smart enough not to add
271
+ # duplicate edges, so we use the objects, which it doesn't
272
+ # check.
273
+ it "should be able to sort graphs with duplicate edges" do
274
+ one = Puppet::Relationship.new(:a, :b)
275
+ @graph.add_edge(one)
276
+ two = Puppet::Relationship.new(:a, :b)
277
+ @graph.add_edge(two)
278
+ proc { @graph.topsort }.should_not raise_error
279
+ end
280
+ end
@@ -0,0 +1,187 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../spec_helper'
4
+
5
+ require 'puppet/transaction/change'
6
+
7
+ describe Puppet::Transaction::Change do
8
+ Change = Puppet::Transaction::Change
9
+
10
+ describe "when initializing" do
11
+ before do
12
+ @property = stub 'property', :path => "/property/path", :should => "shouldval"
13
+ end
14
+
15
+ it "should require the property and current value" do
16
+ lambda { Change.new() }.should raise_error
17
+ end
18
+
19
+ it "should set its property to the provided property" do
20
+ Change.new(@property, "value").property.should == :property
21
+ end
22
+
23
+ it "should set its 'is' value to the provided value" do
24
+ Change.new(@property, "value").is.should == "value"
25
+ end
26
+
27
+ it "should retrieve the 'should' value from the property" do
28
+ # Yay rspec :)
29
+ Change.new(@property, "value").should.should == @property.should
30
+ end
31
+
32
+ it "should set its path to the path of the property plus 'change'" do
33
+ Change.new(@property, "value").path.should == [@property.path, "change"]
34
+ end
35
+ end
36
+
37
+ describe "when an instance" do
38
+ before do
39
+ @property = stub 'property', :path => "/property/path", :should => "shouldval"
40
+ @change = Change.new(@property, "value")
41
+ end
42
+
43
+ it "should be noop if the property is noop" do
44
+ @property.expects(:noop).returns true
45
+ @change.noop?.should be_true
46
+ end
47
+
48
+ it "should set its resource to the proxy if it has one" do
49
+ @change.proxy = :myresource
50
+ @change.resource.should == :myresource
51
+ end
52
+
53
+ it "should set its resource to the property's resource if no proxy is set" do
54
+ @property.expects(:resource).returns :myresource
55
+ @change.resource.should == :myresource
56
+ end
57
+
58
+ it "should have a method for marking that it's been execution" do
59
+ @change.changed = true
60
+ @change.changed?.should be_true
61
+ end
62
+
63
+ describe "and creating an event" do
64
+ before do
65
+ @property.stubs(:resource).returns "myresource"
66
+ end
67
+
68
+ it "should produce a warning if the event name is not a symbol" do
69
+ @property.expects(:warning)
70
+ @property.stubs(:event).returns :myevent
71
+ @change.event("a string")
72
+ end
73
+
74
+ it "should use the property to generate the event name if the provided name is not a symbol" do
75
+ @property.stubs(:warning)
76
+ @property.expects(:event).with(@change.should).returns :myevent
77
+
78
+ Puppet::Transaction::Event.expects(:new).with { |name, source| name == :myevent }
79
+
80
+ @change.event("a string")
81
+ end
82
+ end
83
+
84
+ describe "and executing" do
85
+ describe "in noop mode" do
86
+ before { @change.stubs(:noop?).returns true }
87
+
88
+ it "should log that it is in noop" do
89
+ @property.expects(:is_to_s)
90
+ @property.expects(:should_to_s)
91
+ @property.expects(:log)
92
+
93
+ @change.stubs :event
94
+ @change.forward
95
+ end
96
+
97
+ it "should produce a :noop event and return" do
98
+ @property.stub_everything
99
+
100
+ @change.expects(:event).with(:noop).returns :noop_event
101
+
102
+ @change.forward.should == [:noop_event]
103
+ end
104
+ end
105
+
106
+ describe "without noop" do
107
+ before do
108
+ @change.stubs(:noop?).returns false
109
+ @property.stub_everything
110
+ @property.stubs(:resource).returns "myresource"
111
+ @property.stubs(:name).returns :myprop
112
+ end
113
+
114
+ it "should sync the property" do
115
+ @property.expects(:sync)
116
+
117
+ @change.forward
118
+ end
119
+
120
+ it "should return the default event if syncing the property returns nil" do
121
+ @property.stubs(:sync).returns nil
122
+
123
+ @change.expects(:event).with(:myprop_changed).returns :myevent
124
+
125
+ @change.forward.should == [:myevent]
126
+ end
127
+
128
+ it "should return the default event if syncing the property returns an empty array" do
129
+ @property.stubs(:sync).returns []
130
+
131
+ @change.expects(:event).with(:myprop_changed).returns :myevent
132
+
133
+ @change.forward.should == [:myevent]
134
+ end
135
+
136
+ it "should log the change" do
137
+ @property.expects(:sync).returns [:one]
138
+
139
+ @property.expects(:log)
140
+ @property.expects(:change_to_s)
141
+
142
+ @change.forward
143
+ end
144
+
145
+ it "should return an array of events" do
146
+ @property.expects(:sync).returns [:one, :two]
147
+
148
+ @change.expects(:event).with(:one).returns :uno
149
+ @change.expects(:event).with(:two).returns :dos
150
+
151
+ @change.forward.should == [:uno, :dos]
152
+ end
153
+ end
154
+
155
+ describe "backward" do
156
+ before do
157
+ @property = stub 'property'
158
+ @property.stub_everything
159
+ @property.stubs(:should).returns "shouldval"
160
+ @change = Change.new(@property, "value")
161
+ @change.stubs :go
162
+ end
163
+
164
+ it "should swap the 'is' and 'should' values" do
165
+ @change.backward
166
+ @change.is.should == "shouldval"
167
+ @change.should.should == "value"
168
+ end
169
+
170
+ it "should set the 'should' value on the property to the previous 'is' value" do
171
+ @property.expects(:should=).with "value"
172
+ @change.backward
173
+ end
174
+
175
+ it "should log that it's reversing the change" do
176
+ @property.expects(:info)
177
+ @change.backward
178
+ end
179
+
180
+ it "should execute" do
181
+ @change.expects(:go)
182
+ @change.backward
183
+ end
184
+ end
185
+ end
186
+ end
187
+ end