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,248 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../spec_helper'
4
+
5
+ require 'yaml'
6
+ require 'tempfile'
7
+
8
+ require 'puppet/util/storage'
9
+
10
+ describe Puppet::Util::Storage do
11
+ before(:all) do
12
+ Puppet[:statedir] = Dir.tmpdir()
13
+ end
14
+
15
+ before(:each) do
16
+ Puppet::Util::Storage.clear()
17
+ end
18
+
19
+ after do
20
+ Puppet::Type.type(:file).clear
21
+ end
22
+
23
+ describe "when caching a symbol" do
24
+ it "should return an empty hash" do
25
+ Puppet::Util::Storage.cache(:yayness).should == {}
26
+ Puppet::Util::Storage.cache(:more_yayness).should == {}
27
+ end
28
+
29
+ it "should add the symbol to its internal state" do
30
+ Puppet::Util::Storage.cache(:yayness)
31
+ Puppet::Util::Storage.state().should == {:yayness=>{}}
32
+ end
33
+
34
+ it "should not clobber existing state when caching additional objects" do
35
+ Puppet::Util::Storage.cache(:yayness)
36
+ Puppet::Util::Storage.state().should == {:yayness=>{}}
37
+ Puppet::Util::Storage.cache(:bubblyness)
38
+ Puppet::Util::Storage.state().should == {:yayness=>{},:bubblyness=>{}}
39
+ end
40
+ end
41
+
42
+ describe "when caching a Puppet::Type" do
43
+ before(:all) do
44
+ @file_test = Puppet.type(:file).create(:name => "/yayness", :check => %w{checksum type})
45
+ @exec_test = Puppet.type(:exec).create(:name => "/bin/ls /yayness")
46
+ end
47
+
48
+ it "should return an empty hash" do
49
+ Puppet::Util::Storage.cache(@file_test).should == {}
50
+ Puppet::Util::Storage.cache(@exec_test).should == {}
51
+ end
52
+
53
+ it "should add the resource ref to its internal state" do
54
+ Puppet::Util::Storage.state().should == {}
55
+ Puppet::Util::Storage.cache(@file_test)
56
+ Puppet::Util::Storage.state().should == {"File[/yayness]"=>{}}
57
+ Puppet::Util::Storage.cache(@exec_test)
58
+ Puppet::Util::Storage.state().should == {"File[/yayness]"=>{}, "Exec[/bin/ls /yayness]"=>{}}
59
+ end
60
+ end
61
+
62
+ describe "when caching invalid objects" do
63
+ before(:all) do
64
+ @bogus_objects = [ {}, [], "foo", 42, nil, Tempfile.new('storage_test') ]
65
+ end
66
+
67
+ it "should raise an ArgumentError" do
68
+ @bogus_objects.each do |object|
69
+ proc { Puppet::Util::Storage.cache(object) }.should raise_error()
70
+ end
71
+ end
72
+
73
+ it "should not add anything to its internal state" do
74
+ @bogus_objects.each do |object|
75
+ begin
76
+ Puppet::Util::Storage.cache(object)
77
+ rescue
78
+ Puppet::Util::Storage.state().should == {}
79
+ end
80
+ end
81
+ end
82
+ end
83
+
84
+ it "should clear its internal state when clear() is called" do
85
+ Puppet::Util::Storage.cache(:yayness)
86
+ Puppet::Util::Storage.state().should == {:yayness=>{}}
87
+ Puppet::Util::Storage.clear()
88
+ Puppet::Util::Storage.state().should == {}
89
+ end
90
+
91
+ describe "when loading from the state file" do
92
+ before do
93
+ Puppet.settings.stubs(:use).returns(true)
94
+ end
95
+
96
+ describe "when the state file/directory does not exist" do
97
+ before(:each) do
98
+ transient = Tempfile.new('storage_test')
99
+ @path = transient.path()
100
+ transient.close!()
101
+ end
102
+
103
+ it "should not fail to load()" do
104
+ FileTest.exists?(@path).should be_false()
105
+ Puppet[:statedir] = @path
106
+ proc { Puppet::Util::Storage.load() }.should_not raise_error()
107
+ Puppet[:statefile] = @path
108
+ proc { Puppet::Util::Storage.load() }.should_not raise_error()
109
+ end
110
+
111
+ it "should not lose its internal state when load() is called" do
112
+ FileTest.exists?(@path).should be_false()
113
+
114
+ Puppet::Util::Storage.cache(:yayness)
115
+ Puppet::Util::Storage.state().should == {:yayness=>{}}
116
+
117
+ Puppet[:statefile] = @path
118
+ proc { Puppet::Util::Storage.load() }.should_not raise_error()
119
+
120
+ Puppet::Util::Storage.state().should == {:yayness=>{}}
121
+ end
122
+ end
123
+
124
+ describe "when the state file/directory exists" do
125
+ before(:each) do
126
+ @state_file = Tempfile.new('storage_test')
127
+ @saved_statefile = Puppet[:statefile]
128
+ Puppet[:statefile] = @state_file.path()
129
+ end
130
+
131
+ it "should overwrite its internal state if load() is called" do
132
+ # Should the state be overwritten even if Puppet[:statefile] is not valid YAML?
133
+ Puppet::Util::Storage.cache(:yayness)
134
+ Puppet::Util::Storage.state().should == {:yayness=>{}}
135
+
136
+ proc { Puppet::Util::Storage.load() }.should_not raise_error()
137
+ Puppet::Util::Storage.state().should == {}
138
+ end
139
+
140
+ it "should restore its internal state if the state file contains valid YAML" do
141
+ test_yaml = {'File["/yayness"]'=>{"name"=>{:a=>:b,:c=>:d}}}
142
+ YAML.expects(:load).returns(test_yaml)
143
+
144
+ proc { Puppet::Util::Storage.load() }.should_not raise_error()
145
+ Puppet::Util::Storage.state().should == test_yaml
146
+ end
147
+
148
+ it "should initialize with a clear internal state if the state file does not contain valid YAML" do
149
+ @state_file.write(:booness)
150
+ @state_file.flush()
151
+
152
+ proc { Puppet::Util::Storage.load() }.should_not raise_error()
153
+ Puppet::Util::Storage.state().should == {}
154
+ end
155
+
156
+ it "should raise an error if the state file does not contain valid YAML and cannot be renamed" do
157
+ @state_file.write(:booness)
158
+ @state_file.flush()
159
+ YAML.expects(:load).raises(Puppet::Error)
160
+ File.expects(:rename).raises(SystemCallError)
161
+
162
+ proc { Puppet::Util::Storage.load() }.should raise_error()
163
+ end
164
+
165
+ it "should attempt to rename the state file if the file is corrupted" do
166
+ # We fake corruption by causing YAML.load to raise an exception
167
+ YAML.expects(:load).raises(Puppet::Error)
168
+ File.expects(:rename).at_least_once
169
+
170
+ proc { Puppet::Util::Storage.load() }.should_not raise_error()
171
+ end
172
+
173
+ it "should fail gracefully on load() if the state file is not a regular file" do
174
+ @state_file.close!()
175
+ Dir.mkdir(Puppet[:statefile])
176
+ File.expects(:rename).returns(0)
177
+
178
+ proc { Puppet::Util::Storage.load() }.should_not raise_error()
179
+
180
+ Dir.rmdir(Puppet[:statefile])
181
+ end
182
+
183
+ it "should fail gracefully on load() if it cannot get a read lock on the state file" do
184
+ Puppet::Util::FileLocking.expects(:readlock).yields(false)
185
+ test_yaml = {'File["/yayness"]'=>{"name"=>{:a=>:b,:c=>:d}}}
186
+ YAML.expects(:load).returns(test_yaml)
187
+
188
+ proc { Puppet::Util::Storage.load() }.should_not raise_error()
189
+ Puppet::Util::Storage.state().should == test_yaml
190
+ end
191
+
192
+ after(:each) do
193
+ @state_file.close!()
194
+ Puppet[:statefile] = @saved_statefile
195
+ end
196
+ end
197
+ end
198
+
199
+ describe "when storing to the state file" do
200
+ before(:each) do
201
+ @state_file = Tempfile.new('storage_test')
202
+ @saved_statefile = Puppet[:statefile]
203
+ Puppet[:statefile] = @state_file.path()
204
+ end
205
+
206
+ it "should create the state file if it does not exist" do
207
+ @state_file.close!()
208
+ FileTest.exists?(Puppet[:statefile]).should be_false()
209
+ Puppet::Util::Storage.cache(:yayness)
210
+
211
+ proc { Puppet::Util::Storage.store() }.should_not raise_error()
212
+ FileTest.exists?(Puppet[:statefile]).should be_true()
213
+ end
214
+
215
+ it "should raise an exception if the state file is not a regular file" do
216
+ @state_file.close!()
217
+ Dir.mkdir(Puppet[:statefile])
218
+ Puppet::Util::Storage.cache(:yayness)
219
+
220
+ proc { Puppet::Util::Storage.store() }.should raise_error()
221
+
222
+ Dir.rmdir(Puppet[:statefile])
223
+ end
224
+
225
+ it "should raise an exception if it cannot get a write lock on the state file" do
226
+ Puppet::Util::FileLocking.expects(:writelock).yields(false)
227
+ Puppet::Util::Storage.cache(:yayness)
228
+
229
+ proc { Puppet::Util::Storage.store() }.should raise_error()
230
+ end
231
+
232
+ it "should load() the same information that it store()s" do
233
+ Puppet::Util::Storage.cache(:yayness)
234
+
235
+ Puppet::Util::Storage.state().should == {:yayness=>{}}
236
+ proc { Puppet::Util::Storage.store() }.should_not raise_error()
237
+ Puppet::Util::Storage.clear()
238
+ Puppet::Util::Storage.state().should == {}
239
+ proc { Puppet::Util::Storage.load() }.should_not raise_error()
240
+ Puppet::Util::Storage.state().should == {:yayness=>{}}
241
+ end
242
+
243
+ after(:each) do
244
+ @state_file.close!()
245
+ Puppet[:statefile] = @saved_statefile
246
+ end
247
+ end
248
+ end
@@ -0,0 +1,92 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Created by Luke Kanies on 2008-01-19.
4
+ # Copyright (c) 2007. All rights reserved.
5
+
6
+ require File.dirname(__FILE__) + '/../../spec_helper'
7
+
8
+ require 'puppet/util/tagging'
9
+
10
+ describe Puppet::Util::Tagging, "when adding tags" do
11
+ before do
12
+ @tagger = Object.new
13
+ @tagger.extend(Puppet::Util::Tagging)
14
+ end
15
+
16
+ it "should have a method for adding tags" do
17
+ @tagger.should be_respond_to(:tag)
18
+ end
19
+
20
+ it "should have a method for returning all tags" do
21
+ @tagger.should be_respond_to(:tags)
22
+ end
23
+
24
+ it "should add tags to the returned tag list" do
25
+ @tagger.tag("one")
26
+ @tagger.tags.should be_include("one")
27
+ end
28
+
29
+ it "should not add duplicate tags to the returned tag list" do
30
+ @tagger.tag("one")
31
+ @tagger.tag("one")
32
+ @tagger.tags.should == ["one"]
33
+ end
34
+
35
+ it "should return a duplicate of the tag list, rather than the original" do
36
+ @tagger.tag("one")
37
+ tags = @tagger.tags
38
+ tags << "two"
39
+ @tagger.tags.should_not be_include("two")
40
+ end
41
+
42
+ it "should add all provided tags to the tag list" do
43
+ @tagger.tag("one", "two")
44
+ @tagger.tags.should be_include("one")
45
+ @tagger.tags.should be_include("two")
46
+ end
47
+
48
+ it "should fail on tags containing '*' characters" do
49
+ lambda { @tagger.tag("bad*tag") }.should raise_error(Puppet::ParseError)
50
+ end
51
+
52
+ it "should fail on tags starting with '-' characters" do
53
+ lambda { @tagger.tag("-badtag") }.should raise_error(Puppet::ParseError)
54
+ end
55
+
56
+ it "should fail on tags containing ' ' characters" do
57
+ lambda { @tagger.tag("bad tag") }.should raise_error(Puppet::ParseError)
58
+ end
59
+
60
+ it "should allow alpha tags" do
61
+ lambda { @tagger.tag("good_tag") }.should_not raise_error(Puppet::ParseError)
62
+ end
63
+
64
+ it "should allow tags containing '.' characters" do
65
+ lambda { @tagger.tag("good.tag") }.should_not raise_error(Puppet::ParseError)
66
+ end
67
+
68
+ it "should provide a method for testing tag validity" do
69
+ @tagger.metaclass.publicize_methods(:valid_tag?) { @tagger.should be_respond_to(:valid_tag?) }
70
+ end
71
+
72
+ it "should add qualified classes as tags" do
73
+ @tagger.tag("one::two")
74
+ @tagger.tags.should be_include("one::two")
75
+ end
76
+
77
+ it "should add each part of qualified classes as tags" do
78
+ @tagger.tag("one::two::three")
79
+ @tagger.tags.should be_include("one")
80
+ @tagger.tags.should be_include("two")
81
+ @tagger.tags.should be_include("three")
82
+ end
83
+
84
+ it "should indicate when the object is tagged with a provided tag" do
85
+ @tagger.tag("one")
86
+ @tagger.should be_tagged("one")
87
+ end
88
+
89
+ it "should indicate when the object is not tagged with a provided tag" do
90
+ @tagger.should_not be_tagged("one")
91
+ end
92
+ end
@@ -0,0 +1,41 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Created by Luke Kanies on 2007-10-18.
4
+ # Copyright (c) 2007. All rights reserved.
5
+
6
+ require File.dirname(__FILE__) + '/../../spec_helper'
7
+
8
+ require 'puppet/util/uri_helper'
9
+
10
+ describe Puppet::Util::URIHelper, " when converting a key to a URI" do
11
+ before do
12
+ @helper = Object.new
13
+ @helper.extend(Puppet::Util::URIHelper)
14
+ end
15
+
16
+ it "should return the URI instance" do
17
+ URI.expects(:parse).with("file:///myhost/blah").returns(:myuri)
18
+ @helper.key2uri("/myhost/blah").should == :myuri
19
+ end
20
+
21
+ it "should escape the key before parsing" do
22
+ URI.expects(:escape).with("mykey").returns("http://myhost/blah")
23
+ URI.expects(:parse).with("http://myhost/blah").returns(:myuri)
24
+ @helper.key2uri("mykey").should == :myuri
25
+ end
26
+
27
+ it "should use the URI class to parse the key" do
28
+ URI.expects(:parse).with("http://myhost/blah").returns(:myuri)
29
+ @helper.key2uri("http://myhost/blah").should == :myuri
30
+ end
31
+
32
+ it "should set the scheme to 'file' if the key is a fully qualified path" do
33
+ URI.expects(:parse).with("file:///myhost/blah").returns(:myuri)
34
+ @helper.key2uri("/myhost/blah").should == :myuri
35
+ end
36
+
37
+ it "should set the host to 'nil' if the key is a fully qualified path" do
38
+ URI.expects(:parse).with("file:///myhost/blah").returns(:myuri)
39
+ @helper.key2uri("/myhost/blah").should == :myuri
40
+ end
41
+ end
@@ -0,0 +1,47 @@
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/util/user_attr'
6
+
7
+ describe UserAttr do
8
+ before do
9
+ user_attr = ["foo::::type=role", "bar::::type=normal;profile=foobar"]
10
+ File.stubs(:readlines).returns(user_attr)
11
+ end
12
+
13
+ describe "when getting attributes by name" do
14
+ it "should return nil if there is no entry for that name" do
15
+ UserAttr.get_attributes_by_name('baz').should == nil
16
+ end
17
+
18
+ it "should return a hash if there is an entry in /etc/user_attr" do
19
+ UserAttr.get_attributes_by_name('foo').class.should == Hash
20
+ end
21
+
22
+ it "should return a hash with the name value from /etc/user_attr" do
23
+ UserAttr.get_attributes_by_name('foo')[:name].should == 'foo'
24
+ end
25
+
26
+ #this test is contrived
27
+ #there are a bunch of possible parameters that could be in the hash
28
+ #the role/normal is just a the convention of the file
29
+ describe "when the name is a role" do
30
+ it "should contain :type = role" do
31
+ UserAttr.get_attributes_by_name('foo')[:type].should == 'role'
32
+ end
33
+ end
34
+
35
+ describe "when the name is not a role" do
36
+ it "should contain :type = normal" do
37
+ UserAttr.get_attributes_by_name('bar')[:type].should == 'normal'
38
+ end
39
+ end
40
+
41
+ describe "when the name has more attributes" do
42
+ it "should contain all the attributes" do
43
+ UserAttr.get_attributes_by_name('bar')[:profile].should == 'foobar'
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../spec_helper'
4
+
5
+ describe Puppet::Util::Warnings, " when registering a warning message" do
6
+ before(:all) do
7
+ @msg1 = "booness"
8
+ @msg2 = "more booness"
9
+ end
10
+
11
+ it "should always return nil" do
12
+ Puppet::Util::Warnings.warnonce(@msg1).should be(nil)
13
+ end
14
+
15
+ it "should issue a warning" do
16
+ Puppet.expects(:warning).with(@msg1)
17
+ Puppet::Util::Warnings.warnonce(@msg1)
18
+ end
19
+
20
+ it "should issue a warning exactly once per unique message" do
21
+ Puppet.expects(:warning).with(@msg1).once
22
+ Puppet::Util::Warnings.warnonce(@msg1)
23
+ Puppet::Util::Warnings.warnonce(@msg1)
24
+ end
25
+
26
+ it "should issue multiple warnings for multiple unique messages" do
27
+ Puppet.expects(:warning).times(2)
28
+ Puppet::Util::Warnings.warnonce(@msg1)
29
+ Puppet::Util::Warnings.warnonce(@msg2)
30
+ end
31
+
32
+ after(:each) do
33
+ Puppet::Util::Warnings.clear_warnings()
34
+ end
35
+ end