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,15 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../../spec_helper'
4
+
5
+ require 'puppet/indirector/node/ldap'
6
+
7
+ describe Puppet::Node::Ldap do
8
+ it "should use a restrictive filter when searching for nodes in a class" do
9
+ ldap = Puppet::Node.indirection.terminus(:ldap)
10
+ Puppet::Node.indirection.stubs(:terminus).returns ldap
11
+ ldap.expects(:ldapsearch).with("(&(objectclass=puppetClient)(puppetclass=foo))")
12
+
13
+ Puppet::Node.search "eh", :class => "foo"
14
+ end
15
+ end
@@ -0,0 +1,464 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../spec_helper'
4
+ require 'puppet/network/server'
5
+ require 'puppet/indirector'
6
+ require 'puppet/indirector/rest'
7
+
8
+ # a fake class that will be indirected via REST
9
+ class Puppet::TestIndirectedFoo
10
+ extend Puppet::Indirector
11
+ indirects :test_indirected_foo, :terminus_setting => :test_indirected_foo_terminus
12
+
13
+ attr_reader :value
14
+
15
+ def initialize(value = 0)
16
+ @value = value
17
+ end
18
+
19
+ def self.from_yaml(yaml)
20
+ YAML.load(yaml)
21
+ end
22
+
23
+ def name
24
+ "bob"
25
+ end
26
+ end
27
+
28
+ # empty Terminus class -- this would normally have to be in a directory findable by the autoloader, but we short-circuit that below
29
+ class Puppet::TestIndirectedFoo::Rest < Puppet::Indirector::REST
30
+ end
31
+
32
+
33
+ describe Puppet::Indirector::REST do
34
+ describe "when using webrick" do
35
+ before :each do
36
+ Puppet[:servertype] = 'webrick'
37
+ @params = { :address => "127.0.0.1", :port => 34343, :handlers => [ :test_indirected_foo ] }
38
+ @server = Puppet::Network::Server.new(@params)
39
+ @server.listen
40
+
41
+ # the autoloader was clearly not written test-first. We subvert the integration test to get around its bullshit.
42
+ Puppet::Indirector::Terminus.stubs(:terminus_class).returns(Puppet::TestIndirectedFoo::Rest)
43
+ Puppet::TestIndirectedFoo.indirection.stubs(:terminus_class).returns :rest
44
+
45
+ # Stub the connection information.
46
+ Puppet::TestIndirectedFoo.indirection.terminus(:rest).stubs(:rest_connection_details).returns(:host => "localhost", :port => 34343)
47
+ end
48
+
49
+ describe "when finding a model instance over REST" do
50
+ describe "when a matching model instance can be found" do
51
+ before :each do
52
+ @model_instance = Puppet::TestIndirectedFoo.new(23)
53
+ @mock_model = stub('faked model', :find => @model_instance)
54
+ Puppet::Network::HTTP::WEBrickREST.any_instance.stubs(:model).returns(@mock_model)
55
+ end
56
+
57
+ it "should not fail" do
58
+ lambda { Puppet::TestIndirectedFoo.find('bar') }.should_not raise_error
59
+ end
60
+
61
+ it 'should return an instance of the model class' do
62
+ Puppet::TestIndirectedFoo.find('bar').class.should == Puppet::TestIndirectedFoo
63
+ end
64
+
65
+ it 'should return the instance of the model class associated with the provided lookup key' do
66
+ Puppet::TestIndirectedFoo.find('bar').value.should == @model_instance.value
67
+ end
68
+
69
+ it 'should set an expiration on model instance' do
70
+ Puppet::TestIndirectedFoo.find('bar').expiration.should_not be_nil
71
+ end
72
+ end
73
+
74
+ describe "when no matching model instance can be found" do
75
+ before :each do
76
+ @mock_model = stub('faked model', :find => nil)
77
+ Puppet::Network::HTTP::WEBrickREST.any_instance.stubs(:model).returns(@mock_model)
78
+ end
79
+
80
+ it "should return nil" do
81
+ Puppet::TestIndirectedFoo.find('bar').should be_nil
82
+ end
83
+ end
84
+
85
+ describe "when an exception is encountered in looking up a model instance" do
86
+ before :each do
87
+ @mock_model = stub('faked model')
88
+ @mock_model.stubs(:find).raises(RuntimeError)
89
+ Puppet::Network::HTTP::WEBrickREST.any_instance.stubs(:model).returns(@mock_model)
90
+ end
91
+
92
+ it "should raise an exception" do
93
+ lambda { Puppet::TestIndirectedFoo.find('bar') }.should raise_error(RuntimeError)
94
+ end
95
+ end
96
+ end
97
+
98
+ describe "when searching for model instances over REST" do
99
+ describe "when matching model instances can be found" do
100
+ before :each do
101
+ @model_instances = [ Puppet::TestIndirectedFoo.new(23), Puppet::TestIndirectedFoo.new(24) ]
102
+ @mock_model = stub('faked model', :search => @model_instances)
103
+ Puppet::Network::HTTP::WEBrickREST.any_instance.stubs(:model).returns(@mock_model)
104
+ end
105
+
106
+ it "should not fail" do
107
+ lambda { Puppet::TestIndirectedFoo.search('bar') }.should_not raise_error
108
+ end
109
+
110
+ it 'should return all matching results' do
111
+ Puppet::TestIndirectedFoo.search('bar').length.should == @model_instances.length
112
+ end
113
+
114
+ it 'should return model instances' do
115
+ Puppet::TestIndirectedFoo.search('bar').each do |result|
116
+ result.class.should == Puppet::TestIndirectedFoo
117
+ end
118
+ end
119
+
120
+ it 'should return the instance of the model class associated with the provided lookup key' do
121
+ Puppet::TestIndirectedFoo.search('bar').collect { |i| i.value }.should == @model_instances.collect { |i| i.value }
122
+ end
123
+
124
+ it 'should set a version timestamp on model instances' do
125
+ pending("Luke looking at why this version magic might not be working") do
126
+ Puppet::TestIndirectedFoo.search('bar').each do |result|
127
+ result.version.should_not be_nil
128
+ end
129
+ end
130
+ end
131
+ end
132
+
133
+ describe "when no matching model instance can be found" do
134
+ before :each do
135
+ @mock_model = stub('faked model', :find => nil)
136
+ Puppet::Network::HTTP::WEBrickREST.any_instance.stubs(:model).returns(@mock_model)
137
+ end
138
+
139
+ it "should return nil" do
140
+ Puppet::TestIndirectedFoo.find('bar').should be_nil
141
+ end
142
+ end
143
+
144
+ describe "when an exception is encountered in looking up a model instance" do
145
+ before :each do
146
+ @mock_model = stub('faked model')
147
+ @mock_model.stubs(:find).raises(RuntimeError)
148
+ Puppet::Network::HTTP::WEBrickREST.any_instance.stubs(:model).returns(@mock_model)
149
+ end
150
+
151
+ it "should raise an exception" do
152
+ lambda { Puppet::TestIndirectedFoo.find('bar') }.should raise_error(RuntimeError)
153
+ end
154
+ end
155
+ end
156
+
157
+ describe "when destroying a model instance over REST" do
158
+ describe "when a matching model instance can be found" do
159
+ before :each do
160
+ @mock_model = stub('faked model', :destroy => true)
161
+ Puppet::Network::HTTP::WEBrickREST.any_instance.stubs(:model).returns(@mock_model)
162
+ end
163
+
164
+ it "should not fail" do
165
+ lambda { Puppet::TestIndirectedFoo.destroy('bar') }.should_not raise_error
166
+ end
167
+
168
+ it 'should return success' do
169
+ Puppet::TestIndirectedFoo.destroy('bar').should == true
170
+ end
171
+ end
172
+
173
+ describe "when no matching model instance can be found" do
174
+ before :each do
175
+ @mock_model = stub('faked model', :destroy => false)
176
+ Puppet::Network::HTTP::WEBrickREST.any_instance.stubs(:model).returns(@mock_model)
177
+ end
178
+
179
+ it "should return failure" do
180
+ Puppet::TestIndirectedFoo.destroy('bar').should == false
181
+ end
182
+ end
183
+
184
+ describe "when an exception is encountered in destroying a model instance" do
185
+ before :each do
186
+ @mock_model = stub('faked model')
187
+ @mock_model.stubs(:destroy).raises(RuntimeError)
188
+ Puppet::Network::HTTP::WEBrickREST.any_instance.stubs(:model).returns(@mock_model)
189
+ end
190
+
191
+ it "should raise an exception" do
192
+ lambda { Puppet::TestIndirectedFoo.destroy('bar') }.should raise_error(RuntimeError)
193
+ end
194
+ end
195
+ end
196
+
197
+ describe "when saving a model instance over REST" do
198
+ before :each do
199
+ @instance = Puppet::TestIndirectedFoo.new(42)
200
+ @mock_model = stub('faked model', :from_yaml => @instance)
201
+ Puppet::Network::HTTP::WEBrickREST.any_instance.stubs(:model).returns(@mock_model)
202
+ Puppet::Network::HTTP::WEBrickREST.any_instance.stubs(:save_object).returns(@instance)
203
+ end
204
+
205
+ describe "when a successful save can be performed" do
206
+ before :each do
207
+ end
208
+
209
+ it "should not fail" do
210
+ lambda { @instance.save }.should_not raise_error
211
+ end
212
+
213
+ it 'should return an instance of the model class' do
214
+ @instance.save.class.should == Puppet::TestIndirectedFoo
215
+ end
216
+
217
+ it 'should return a matching instance of the model class' do
218
+ @instance.save.value.should == @instance.value
219
+ end
220
+ end
221
+
222
+ describe "when a save cannot be completed" do
223
+ before :each do
224
+ Puppet::Network::HTTP::WEBrickREST.any_instance.stubs(:save_object).returns(false)
225
+ end
226
+
227
+ it "should return failure" do
228
+ @instance.save.should == false
229
+ end
230
+ end
231
+
232
+ describe "when an exception is encountered in performing a save" do
233
+ before :each do
234
+ Puppet::Network::HTTP::WEBrickREST.any_instance.stubs(:save_object).raises(RuntimeError)
235
+ end
236
+
237
+ it "should raise an exception" do
238
+ lambda { @instance.save }.should raise_error(RuntimeError)
239
+ end
240
+ end
241
+ end
242
+
243
+ after :each do
244
+ @server.unlisten
245
+ end
246
+ end
247
+
248
+ describe "when using mongrel" do
249
+ confine "Mongrel is not available" => Puppet.features.mongrel?
250
+
251
+ before :each do
252
+ Puppet[:servertype] = 'mongrel'
253
+ @params = { :address => "127.0.0.1", :port => 34343, :handlers => [ :test_indirected_foo ] }
254
+ @server = Puppet::Network::Server.new(@params)
255
+ @server.listen
256
+
257
+ # the autoloader was clearly not written test-first. We subvert the integration test to get around its bullshit.
258
+ Puppet::Indirector::Terminus.stubs(:terminus_class).returns(Puppet::TestIndirectedFoo::Rest)
259
+ Puppet::TestIndirectedFoo.indirection.stubs(:terminus_class).returns :rest
260
+
261
+ # Stub the connection information.
262
+ Puppet::TestIndirectedFoo.indirection.terminus(:rest).stubs(:rest_connection_details).returns(:host => "localhost", :port => 34343)
263
+ end
264
+
265
+ describe "when finding a model instance over REST" do
266
+ describe "when a matching model instance can be found" do
267
+ before :each do
268
+ @model_instance = Puppet::TestIndirectedFoo.new(23)
269
+ @mock_model = stub('faked model', :find => @model_instance)
270
+ Puppet::Network::HTTP::MongrelREST.any_instance.stubs(:model).returns(@mock_model)
271
+ end
272
+
273
+ it "should not fail" do
274
+ lambda { Puppet::TestIndirectedFoo.find('bar') }.should_not raise_error
275
+ end
276
+
277
+ it 'should return an instance of the model class' do
278
+ Puppet::TestIndirectedFoo.find('bar').class.should == Puppet::TestIndirectedFoo
279
+ end
280
+
281
+ it 'should return the instance of the model class associated with the provided lookup key' do
282
+ Puppet::TestIndirectedFoo.find('bar').value.should == @model_instance.value
283
+ end
284
+
285
+ it 'should set an expiration on model instance' do
286
+ Puppet::TestIndirectedFoo.find('bar').expiration.should_not be_nil
287
+ end
288
+ end
289
+
290
+ describe "when no matching model instance can be found" do
291
+ before :each do
292
+ @mock_model = stub('faked model', :find => nil)
293
+ Puppet::Network::HTTP::MongrelREST.any_instance.stubs(:model).returns(@mock_model)
294
+ end
295
+
296
+ it "should return nil" do
297
+ Puppet::TestIndirectedFoo.find('bar').should be_nil
298
+ end
299
+ end
300
+
301
+ describe "when an exception is encountered in looking up a model instance" do
302
+ before :each do
303
+ @mock_model = stub('faked model')
304
+ @mock_model.stubs(:find).raises(RuntimeError)
305
+ Puppet::Network::HTTP::MongrelREST.any_instance.stubs(:model).returns(@mock_model)
306
+ end
307
+
308
+ it "should raise an exception" do
309
+ lambda { Puppet::TestIndirectedFoo.find('bar') }.should raise_error(RuntimeError)
310
+ end
311
+ end
312
+ end
313
+
314
+ describe "when searching for model instances over REST" do
315
+ describe "when matching model instances can be found" do
316
+ before :each do
317
+ @model_instances = [ Puppet::TestIndirectedFoo.new(23), Puppet::TestIndirectedFoo.new(24) ]
318
+ @mock_model = stub('faked model', :search => @model_instances)
319
+ Puppet::Network::HTTP::MongrelREST.any_instance.stubs(:model).returns(@mock_model)
320
+ end
321
+
322
+ it "should not fail" do
323
+ lambda { Puppet::TestIndirectedFoo.search('bar') }.should_not raise_error
324
+ end
325
+
326
+ it 'should return all matching results' do
327
+ Puppet::TestIndirectedFoo.search('bar').length.should == @model_instances.length
328
+ end
329
+
330
+ it 'should return model instances' do
331
+ Puppet::TestIndirectedFoo.search('bar').each do |result|
332
+ result.class.should == Puppet::TestIndirectedFoo
333
+ end
334
+ end
335
+
336
+ it 'should return the instance of the model class associated with the provided lookup key' do
337
+ Puppet::TestIndirectedFoo.search('bar').collect { |i| i.value }.should == @model_instances.collect { |i| i.value }
338
+ end
339
+
340
+ it 'should set an expiration on model instances' do
341
+ Puppet::TestIndirectedFoo.search('bar').each do |result|
342
+ result.expiration.should_not be_nil
343
+ end
344
+ end
345
+ end
346
+
347
+ describe "when no matching model instance can be found" do
348
+ before :each do
349
+ @mock_model = stub('faked model', :find => nil)
350
+ Puppet::Network::HTTP::MongrelREST.any_instance.stubs(:model).returns(@mock_model)
351
+ end
352
+
353
+ it "should return nil" do
354
+ Puppet::TestIndirectedFoo.find('bar').should be_nil
355
+ end
356
+ end
357
+
358
+ describe "when an exception is encountered in looking up a model instance" do
359
+ before :each do
360
+ @mock_model = stub('faked model')
361
+ @mock_model.stubs(:find).raises(RuntimeError)
362
+ Puppet::Network::HTTP::MongrelREST.any_instance.stubs(:model).returns(@mock_model)
363
+ end
364
+
365
+ it "should raise an exception" do
366
+ lambda { Puppet::TestIndirectedFoo.find('bar') }.should raise_error(RuntimeError)
367
+ end
368
+ end
369
+ end
370
+
371
+ describe "when destroying a model instance over REST" do
372
+ describe "when a matching model instance can be found" do
373
+ before :each do
374
+ @mock_model = stub('faked model', :destroy => true)
375
+ Puppet::Network::HTTP::MongrelREST.any_instance.stubs(:model).returns(@mock_model)
376
+ end
377
+
378
+ it "should not fail" do
379
+ lambda { Puppet::TestIndirectedFoo.destroy('bar') }.should_not raise_error
380
+ end
381
+
382
+ it 'should return success' do
383
+ Puppet::TestIndirectedFoo.destroy('bar').should == true
384
+ end
385
+ end
386
+
387
+ describe "when no matching model instance can be found" do
388
+ before :each do
389
+ @mock_model = stub('faked model', :destroy => false)
390
+ Puppet::Network::HTTP::MongrelREST.any_instance.stubs(:model).returns(@mock_model)
391
+ end
392
+
393
+ it "should return failure" do
394
+ Puppet::TestIndirectedFoo.destroy('bar').should == false
395
+ end
396
+ end
397
+
398
+ describe "when an exception is encountered in destroying a model instance" do
399
+ before :each do
400
+ @mock_model = stub('faked model')
401
+ @mock_model.stubs(:destroy).raises(RuntimeError)
402
+ Puppet::Network::HTTP::MongrelREST.any_instance.stubs(:model).returns(@mock_model)
403
+ end
404
+
405
+ it "should raise an exception" do
406
+ lambda { Puppet::TestIndirectedFoo.destroy('bar') }.should raise_error(RuntimeError)
407
+ end
408
+ end
409
+ end
410
+
411
+ describe "when saving a model instance over REST" do
412
+ before :each do
413
+ @instance = Puppet::TestIndirectedFoo.new(42)
414
+ @mock_model = stub('faked model', :from_yaml => @instance)
415
+ Puppet::Network::HTTP::MongrelREST.any_instance.stubs(:model).returns(@mock_model)
416
+
417
+ # LAK:NOTE This stub is necessary to prevent the REST call from calling
418
+ # REST.save again, thus producing painful infinite recursion.
419
+ Puppet::Network::HTTP::MongrelREST.any_instance.stubs(:save_object).returns(@instance)
420
+ end
421
+
422
+ describe "when a successful save can be performed" do
423
+ before :each do
424
+ end
425
+
426
+ it "should not fail" do
427
+ lambda { @instance.save }.should_not raise_error
428
+ end
429
+
430
+ it 'should return an instance of the model class' do
431
+ @instance.save.class.should == Puppet::TestIndirectedFoo
432
+ end
433
+
434
+ it 'should return a matching instance of the model class' do
435
+ @instance.save.value.should == @instance.value
436
+ end
437
+ end
438
+
439
+ describe "when a save cannot be completed" do
440
+ before :each do
441
+ Puppet::Network::HTTP::MongrelREST.any_instance.stubs(:save_object).returns(false)
442
+ end
443
+
444
+ it "should return failure" do
445
+ @instance.save.should == false
446
+ end
447
+ end
448
+
449
+ describe "when an exception is encountered in performing a save" do
450
+ before :each do
451
+ Puppet::Network::HTTP::MongrelREST.any_instance.stubs(:save_object).raises(RuntimeError)
452
+ end
453
+
454
+ it "should raise an exception" do
455
+ lambda { @instance.save }.should raise_error(RuntimeError)
456
+ end
457
+ end
458
+ end
459
+
460
+ after :each do
461
+ @server.unlisten
462
+ end
463
+ end
464
+ end