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,33 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../spec_helper'
4
+ require 'puppet/indirector/code'
5
+
6
+ describe Puppet::Indirector::Code do
7
+ before do
8
+ Puppet::Indirector::Terminus.stubs(:register_terminus_class)
9
+ @model = mock 'model'
10
+ @indirection = stub 'indirection', :name => :mystuff, :register_terminus_type => nil, :model => @model
11
+ Puppet::Indirector::Indirection.stubs(:instance).returns(@indirection)
12
+
13
+ @code_class = Class.new(Puppet::Indirector::Code) do
14
+ def self.to_s
15
+ "Mystuff::Testing"
16
+ end
17
+ end
18
+
19
+ @searcher = @code_class.new
20
+ end
21
+
22
+ it "should not have a find() method defined" do
23
+ @searcher.should_not respond_to(:find)
24
+ end
25
+
26
+ it "should not have a save() method defined" do
27
+ @searcher.should_not respond_to(:save)
28
+ end
29
+
30
+ it "should not have a destroy() method defined" do
31
+ @searcher.should_not respond_to(:destroy)
32
+ end
33
+ end
@@ -0,0 +1,89 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Created by Luke Kanies on 2007-10-24.
4
+ # Copyright (c) 2007. All rights reserved.
5
+
6
+ require File.dirname(__FILE__) + '/../../spec_helper'
7
+
8
+ require 'puppet/indirector/direct_file_server'
9
+
10
+ describe Puppet::Indirector::DirectFileServer do
11
+ before :each do
12
+ Puppet::Indirector::Terminus.stubs(:register_terminus_class)
13
+ @model = mock 'model'
14
+ @indirection = stub 'indirection', :name => :mystuff, :register_terminus_type => nil, :model => @model
15
+ Puppet::Indirector::Indirection.stubs(:instance).returns(@indirection)
16
+
17
+ @direct_file_class = Class.new(Puppet::Indirector::DirectFileServer) do
18
+ def self.to_s
19
+ "Testing::Mytype"
20
+ end
21
+ end
22
+
23
+ @server = @direct_file_class.new
24
+
25
+ @uri = "file:///my/local"
26
+
27
+ @request = stub 'request', :key => @uri, :options => {}
28
+ end
29
+
30
+ describe Puppet::Indirector::DirectFileServer, "when finding a single file" do
31
+
32
+ it "should return nil if the file does not exist" do
33
+ FileTest.expects(:exists?).with("/my/local").returns false
34
+ @server.find(@request).should be_nil
35
+ end
36
+
37
+ it "should return a Content instance created with the full path to the file if the file exists" do
38
+ FileTest.expects(:exists?).with("/my/local").returns true
39
+ @model.expects(:new).returns(:mycontent)
40
+ @server.find(@request).should == :mycontent
41
+ end
42
+ end
43
+
44
+ describe Puppet::Indirector::DirectFileServer, "when creating the instance for a single found file" do
45
+
46
+ before do
47
+ @data = mock 'content'
48
+ @data.stubs(:collect_attributes)
49
+ FileTest.expects(:exists?).with("/my/local").returns true
50
+ end
51
+
52
+ it "should create the Content instance with the original key as the key" do
53
+ @model.expects(:new).with { |key, options| key == @uri }.returns(@data)
54
+ @server.find(@request)
55
+ end
56
+
57
+ it "should pass the full path to the instance" do
58
+ @model.expects(:new).with { |key, options| options[:path] == "/my/local" }.returns(@data)
59
+ @server.find(@request)
60
+ end
61
+
62
+ it "should pass the :links setting on to the created Content instance if the file exists and there is a value for :links" do
63
+ @model.expects(:new).returns(@data)
64
+ @data.expects(:links=).with(:manage)
65
+
66
+ @request.stubs(:options).returns(:links => :manage)
67
+ @server.find(@request)
68
+ end
69
+ end
70
+
71
+ describe Puppet::Indirector::DirectFileServer, "when searching for multiple files" do
72
+ it "should return nil if the file does not exist" do
73
+ FileTest.expects(:exists?).with("/my/local").returns false
74
+ @server.find(@request).should be_nil
75
+ end
76
+
77
+ it "should use :path2instances from the terminus_helper to return instances if the file exists" do
78
+ FileTest.expects(:exists?).with("/my/local").returns true
79
+ @server.expects(:path2instances)
80
+ @server.search(@request)
81
+ end
82
+
83
+ it "should pass the original request to :path2instances" do
84
+ FileTest.expects(:exists?).with("/my/local").returns true
85
+ @server.expects(:path2instances).with(@request, "/my/local")
86
+ @server.search(@request)
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../spec_helper'
4
+ require 'puppet/indirector/envelope'
5
+
6
+ describe Puppet::Indirector::Envelope do
7
+ before do
8
+ @instance = Object.new
9
+ @instance.extend(Puppet::Indirector::Envelope)
10
+ end
11
+
12
+ it "should have an expiration accessor" do
13
+ @instance.expiration = "testing"
14
+ @instance.expiration.should == "testing"
15
+ end
16
+
17
+ it "should have an expiration setter" do
18
+ @instance.should respond_to(:expiration=)
19
+ end
20
+
21
+ it "should have a means of testing whether it is expired" do
22
+ @instance.should respond_to(:expired?)
23
+ end
24
+
25
+ describe "when testing if it is expired" do
26
+ it "should return false if there is no expiration set" do
27
+ @instance.should_not be_expired
28
+ end
29
+
30
+ it "should return true if the current date is after the expiration date" do
31
+ @instance.expiration = Time.now - 10
32
+ @instance.should be_expired
33
+ end
34
+
35
+ it "should return false if the current date is prior to the expiration date" do
36
+ @instance.expiration = Time.now + 10
37
+ @instance.should_not be_expired
38
+ end
39
+
40
+ it "should return false if the current date is equal to the expiration date" do
41
+ now = Time.now
42
+ Time.stubs(:now).returns(now)
43
+ @instance.expiration = now
44
+ @instance.should_not be_expired
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,51 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../spec_helper'
4
+
5
+ require 'puppet/indirector/exec'
6
+
7
+ describe Puppet::Indirector::Exec do
8
+ before do
9
+ @indirection = stub 'indirection', :name => :testing
10
+ Puppet::Indirector::Indirection.expects(:instance).with(:testing).returns(@indirection)
11
+ @exec_class = Class.new(Puppet::Indirector::Exec) do
12
+ def self.to_s
13
+ "Testing::Mytype"
14
+ end
15
+
16
+ attr_accessor :command
17
+ end
18
+
19
+ @searcher = @exec_class.new
20
+ @searcher.command = ["/echo"]
21
+
22
+ @request = stub 'request', :key => "foo"
23
+ end
24
+
25
+ it "should throw an exception if the command is not an array" do
26
+ @searcher.command = "/usr/bin/echo"
27
+ proc { @searcher.find(@request) }.should raise_error(Puppet::DevError)
28
+ end
29
+
30
+ it "should throw an exception if the command is not fully qualified" do
31
+ @searcher.command = ["mycommand"]
32
+ proc { @searcher.find(@request) }.should raise_error(ArgumentError)
33
+ end
34
+
35
+ it "should execute the command with the object name as the only argument" do
36
+ @searcher.expects(:execute).with(%w{/echo foo})
37
+ @searcher.find(@request)
38
+ end
39
+
40
+ it "should return the output of the script" do
41
+ @searcher.expects(:execute).with(%w{/echo foo}).returns("whatever")
42
+ @searcher.find(@request).should == "whatever"
43
+ end
44
+
45
+ it "should return nil when the command produces no output" do
46
+ @searcher.expects(:execute).with(%w{/echo foo}).returns(nil)
47
+ @searcher.find(@request).should be_nil
48
+ end
49
+
50
+ it "should be able to execute commands with multiple arguments"
51
+ end
@@ -0,0 +1,76 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Created by Luke Kanies on 2007-9-23.
4
+ # Copyright (c) 2007. All rights reserved.
5
+
6
+ require File.dirname(__FILE__) + '/../../../spec_helper'
7
+
8
+ require 'puppet/indirector/facts/facter'
9
+
10
+ describe Puppet::Node::Facts::Facter do
11
+ it "should be a subclass of the Code terminus" do
12
+ Puppet::Node::Facts::Facter.superclass.should equal(Puppet::Indirector::Code)
13
+ end
14
+
15
+ it "should have documentation" do
16
+ Puppet::Node::Facts::Facter.doc.should_not be_nil
17
+ end
18
+
19
+ it "should be registered with the configuration store indirection" do
20
+ indirection = Puppet::Indirector::Indirection.instance(:facts)
21
+ Puppet::Node::Facts::Facter.indirection.should equal(indirection)
22
+ end
23
+
24
+ it "should have its name set to :facter" do
25
+ Puppet::Node::Facts::Facter.name.should == :facter
26
+ end
27
+
28
+ it "should load facts on initialization" do
29
+ Puppet::Node::Facts::Facter.expects(:loadfacts)
30
+ Puppet::Node::Facts::Facter.new
31
+ end
32
+ end
33
+
34
+ describe Puppet::Node::Facts::Facter do
35
+ before :each do
36
+ @facter = Puppet::Node::Facts::Facter.new
37
+ Facter.stubs(:to_hash).returns({})
38
+ @name = "me"
39
+ @request = stub 'request', :key => @name
40
+ end
41
+
42
+ describe Puppet::Node::Facts::Facter, " when finding facts" do
43
+
44
+ it "should return a Facts instance" do
45
+ @facter.find(@request).should be_instance_of(Puppet::Node::Facts)
46
+ end
47
+
48
+ it "should return a Facts instance with the provided key as the name" do
49
+ @facter.find(@request).name.should == @name
50
+ end
51
+
52
+ it "should return the Facter facts as the values in the Facts instance" do
53
+ Facter.expects(:to_hash).returns("one" => "two")
54
+ facts = @facter.find(@request)
55
+ facts.values["one"].should == "two"
56
+ end
57
+ end
58
+
59
+ describe Puppet::Node::Facts::Facter, " when saving facts" do
60
+
61
+ it "should fail" do
62
+ proc { @facter.save(@facts) }.should raise_error(Puppet::DevError)
63
+ end
64
+ end
65
+
66
+ describe Puppet::Node::Facts::Facter, " when destroying facts" do
67
+
68
+ it "should fail" do
69
+ proc { @facter.destroy(@facts) }.should raise_error(Puppet::DevError)
70
+ end
71
+ end
72
+
73
+ describe Puppet::Node::Facts::Facter, " when loading facts from the factpath" do
74
+ it "should load every fact in each factpath directory"
75
+ end
76
+ end
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../../spec_helper'
4
+
5
+ require 'puppet/node/facts'
6
+ require 'puppet/indirector/facts/yaml'
7
+
8
+ describe Puppet::Node::Facts::Yaml do
9
+ it "should be a subclass of the Yaml terminus" do
10
+ Puppet::Node::Facts::Yaml.superclass.should equal(Puppet::Indirector::Yaml)
11
+ end
12
+
13
+
14
+ it "should have documentation" do
15
+ Puppet::Node::Facts::Yaml.doc.should_not be_nil
16
+ end
17
+
18
+ it "should be registered with the facts indirection" do
19
+ indirection = Puppet::Indirector::Indirection.instance(:facts)
20
+ Puppet::Node::Facts::Yaml.indirection.should equal(indirection)
21
+ end
22
+
23
+ it "should have its name set to :facts" do
24
+ Puppet::Node::Facts::Yaml.name.should == :yaml
25
+ end
26
+ end
@@ -0,0 +1,154 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../spec_helper'
4
+ require 'puppet/indirector/file'
5
+
6
+
7
+ describe Puppet::Indirector::File do
8
+ before :each do
9
+ Puppet::Indirector::Terminus.stubs(:register_terminus_class)
10
+ @model = mock 'model'
11
+ @indirection = stub 'indirection', :name => :mystuff, :register_terminus_type => nil, :model => @model
12
+ Puppet::Indirector::Indirection.stubs(:instance).returns(@indirection)
13
+
14
+ @file_class = Class.new(Puppet::Indirector::File) do
15
+ def self.to_s
16
+ "Testing::Mytype"
17
+ end
18
+ end
19
+
20
+ @searcher = @file_class.new
21
+
22
+ @path = "/my/file"
23
+ @dir = "/my"
24
+
25
+ @request = stub 'request', :key => @path
26
+ end
27
+
28
+ describe Puppet::Indirector::File, " when finding files" do
29
+
30
+ it "should provide a method to return file contents at a specified path" do
31
+ @searcher.should respond_to(:find)
32
+ end
33
+
34
+ it "should return file contents as an instance of the model" do
35
+ content = "my content"
36
+
37
+ file = mock 'file'
38
+ @model.expects(:new).with(content).returns(file)
39
+
40
+ File.expects(:exist?).with(@path).returns(true)
41
+ File.expects(:read).with(@path).returns(content)
42
+ @searcher.find(@request)
43
+ end
44
+
45
+ it "should create the model instance with the content as the only argument to initialization" do
46
+ content = "my content"
47
+
48
+ file = mock 'file'
49
+ @model.expects(:new).with(content).returns(file)
50
+
51
+ File.expects(:exist?).with(@path).returns(true)
52
+ File.expects(:read).with(@path).returns(content)
53
+ @searcher.find(@request).should equal(file)
54
+ end
55
+
56
+ it "should return nil if no file is found" do
57
+ File.expects(:exist?).with(@path).returns(false)
58
+ @searcher.find(@request).should be_nil
59
+ end
60
+
61
+ it "should fail intelligently if a found file cannot be read" do
62
+ File.expects(:exist?).with(@path).returns(true)
63
+ File.expects(:read).with(@path).raises(RuntimeError)
64
+ proc { @searcher.find(@request) }.should raise_error(Puppet::Error)
65
+ end
66
+
67
+ it "should use the path() method to calculate the path if it exists" do
68
+ @searcher.meta_def(:path) do |name|
69
+ name.upcase
70
+ end
71
+
72
+ File.expects(:exist?).with(@path.upcase).returns(false)
73
+ @searcher.find(@request)
74
+ end
75
+ end
76
+
77
+ describe Puppet::Indirector::File, " when saving files" do
78
+ before do
79
+ @content = "my content"
80
+ @file = stub 'file', :content => @content, :path => @path, :name => @path
81
+ @request.stubs(:instance).returns @file
82
+ end
83
+
84
+ it "should provide a method to save file contents at a specified path" do
85
+ filehandle = mock 'file'
86
+ File.expects(:directory?).with(@dir).returns(true)
87
+ File.expects(:open).with(@path, "w").yields(filehandle)
88
+ filehandle.expects(:print).with(@content)
89
+
90
+ @searcher.save(@request)
91
+ end
92
+
93
+ it "should fail intelligently if the file's parent directory does not exist" do
94
+ File.expects(:directory?).with(@dir).returns(false)
95
+
96
+ proc { @searcher.save(@request) }.should raise_error(Puppet::Error)
97
+ end
98
+
99
+ it "should fail intelligently if a file cannot be written" do
100
+ filehandle = mock 'file'
101
+ File.expects(:directory?).with(@dir).returns(true)
102
+ File.expects(:open).with(@path, "w").yields(filehandle)
103
+ filehandle.expects(:print).with(@content).raises(ArgumentError)
104
+
105
+ proc { @searcher.save(@request) }.should raise_error(Puppet::Error)
106
+ end
107
+
108
+ it "should use the path() method to calculate the path if it exists" do
109
+ @searcher.meta_def(:path) do |name|
110
+ name.upcase
111
+ end
112
+
113
+ # Reset the key to something without a parent dir, so no checks are necessary
114
+ @request.stubs(:key).returns "/my"
115
+
116
+ File.expects(:open).with("/MY", "w")
117
+ @searcher.save(@request)
118
+ end
119
+ end
120
+
121
+ describe Puppet::Indirector::File, " when removing files" do
122
+
123
+ it "should provide a method to remove files at a specified path" do
124
+ File.expects(:exist?).with(@path).returns(true)
125
+ File.expects(:unlink).with(@path)
126
+
127
+ @searcher.destroy(@request)
128
+ end
129
+
130
+ it "should throw an exception if the file is not found" do
131
+ File.expects(:exist?).with(@path).returns(false)
132
+
133
+ proc { @searcher.destroy(@request) }.should raise_error(Puppet::Error)
134
+ end
135
+
136
+ it "should fail intelligently if the file cannot be removed" do
137
+ File.expects(:exist?).with(@path).returns(true)
138
+ File.expects(:unlink).with(@path).raises(ArgumentError)
139
+
140
+ proc { @searcher.destroy(@request) }.should raise_error(Puppet::Error)
141
+ end
142
+
143
+ it "should use the path() method to calculate the path if it exists" do
144
+ @searcher.meta_def(:path) do |thing|
145
+ thing.to_s.upcase
146
+ end
147
+
148
+ File.expects(:exist?).with("/MY/FILE").returns(true)
149
+ File.expects(:unlink).with("/MY/FILE")
150
+
151
+ @searcher.destroy(@request)
152
+ end
153
+ end
154
+ end