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,48 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../../spec_helper'
4
+ require 'puppet/network/server'
5
+ require 'socket'
6
+
7
+ describe Puppet::Network::Server do
8
+ describe "when using mongrel" do
9
+ confine "Mongrel is not available" => Puppet.features.mongrel?
10
+
11
+ before :each do
12
+ Puppet[:servertype] = 'mongrel'
13
+ @params = { :address => "127.0.0.1", :port => 34346, :handlers => [ :node ] }
14
+ @server = Puppet::Network::Server.new(@params)
15
+ end
16
+
17
+ describe "before listening" do
18
+ it "should not be reachable at the specified address and port" do
19
+ lambda { TCPSocket.new('127.0.0.1', 34346) }.should raise_error(Errno::ECONNREFUSED)
20
+ end
21
+ end
22
+
23
+ describe "when listening" do
24
+ it "should be reachable on the specified address and port" do
25
+ @server.listen
26
+ lambda { TCPSocket.new('127.0.0.1', 34346) }.should_not raise_error
27
+ end
28
+
29
+ it "should not allow multiple servers to listen on the same address and port" do
30
+ @server.listen
31
+ @server2 = Puppet::Network::Server.new(@params)
32
+ lambda { @server2.listen }.should raise_error
33
+ end
34
+ end
35
+
36
+ describe "after unlistening" do
37
+ it "should not be reachable on the port and address assigned" do
38
+ @server.listen
39
+ @server.unlisten
40
+ lambda { TCPSocket.new('127.0.0.1', 34346) }.should raise_error(Errno::ECONNREFUSED)
41
+ end
42
+ end
43
+
44
+ after :each do
45
+ @server.unlisten if @server.listening?
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,48 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../../spec_helper'
4
+ require 'puppet/network/server'
5
+ require 'socket'
6
+
7
+ describe Puppet::Network::Server do
8
+ describe "when using webrick" do
9
+ before :each do
10
+ Puppet[:servertype] = 'webrick'
11
+ @params = { :address => "127.0.0.1", :port => 34343, :handlers => [ :node ] }
12
+ end
13
+
14
+ describe "before listening" do
15
+ it "should not be reachable at the specified address and port" do
16
+ lambda { TCPSocket.new('127.0.0.1', 34343) }.should raise_error
17
+ end
18
+ end
19
+
20
+ describe "when listening" do
21
+ it "should be reachable on the specified address and port" do
22
+ @server = Puppet::Network::Server.new(@params.merge(:port => 34343))
23
+ @server.listen
24
+ lambda { TCPSocket.new('127.0.0.1', 34343) }.should_not raise_error
25
+ end
26
+
27
+ it "should not allow multiple servers to listen on the same address and port" do
28
+ @server = Puppet::Network::Server.new(@params.merge(:port => 34343))
29
+ @server.listen
30
+ @server2 = Puppet::Network::Server.new(@params.merge(:port => 34343))
31
+ lambda { @server2.listen }.should raise_error
32
+ end
33
+
34
+ after :each do
35
+ @server.unlisten if @server.listening?
36
+ end
37
+ end
38
+
39
+ describe "after unlistening" do
40
+ it "should not be reachable on the port and address assigned" do
41
+ @server = Puppet::Network::Server.new(@params.merge(:port => 34343))
42
+ @server.listen
43
+ @server.unlisten
44
+ lambda { TCPSocket.new('127.0.0.1', 34343) }.should raise_error(Errno::ECONNREFUSED)
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,93 @@
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/node'
9
+
10
+ describe Puppet::Node do
11
+ describe "when delegating indirection calls" do
12
+ before do
13
+ @name = "me"
14
+ @node = Puppet::Node.new(@name)
15
+ end
16
+
17
+ it "should be able to use the exec terminus" do
18
+ Puppet::Node.indirection.stubs(:terminus_class).returns :exec
19
+
20
+ # Load now so we can stub
21
+ terminus = Puppet::Node.indirection.terminus(:exec)
22
+
23
+ terminus.expects(:query).with(@name).returns "myresults"
24
+ terminus.expects(:translate).with(@name, "myresults").returns "translated_results"
25
+ terminus.expects(:create_node).with(@name, "translated_results").returns @node
26
+
27
+ Puppet::Node.find(@name).should equal(@node)
28
+ end
29
+
30
+ it "should be able to use the yaml terminus" do
31
+ Puppet::Node.indirection.stubs(:terminus_class).returns :yaml
32
+
33
+ # Load now, before we stub the exists? method.
34
+ terminus = Puppet::Node.indirection.terminus(:yaml)
35
+
36
+ terminus.expects(:path).with(@name).returns "/my/yaml/file"
37
+
38
+ FileTest.expects(:exist?).with("/my/yaml/file").returns false
39
+ Puppet::Node.find(@name).should be_nil
40
+ end
41
+
42
+ it "should have an ldap terminus" do
43
+ Puppet::Node.indirection.terminus(:ldap).should_not be_nil
44
+ end
45
+
46
+ it "should be able to use the plain terminus" do
47
+ Puppet::Node.indirection.stubs(:terminus_class).returns :plain
48
+
49
+ # Load now, before we stub the exists? method.
50
+ Puppet::Node.indirection.terminus(:plain)
51
+
52
+ Puppet::Node.expects(:new).with(@name).returns @node
53
+
54
+ Puppet::Node.find(@name).should equal(@node)
55
+ end
56
+
57
+ describe "and using the memory terminus" do
58
+ before do
59
+ @name = "me"
60
+ @old_terminus = Puppet::Node.indirection.terminus_class
61
+ @terminus = Puppet::Node.indirection.terminus(:memory)
62
+ Puppet::Node.indirection.stubs(:terminus).returns @terminus
63
+ @node = Puppet::Node.new(@name)
64
+ end
65
+
66
+ it "should find no nodes by default" do
67
+ Puppet::Node.find(@name).should be_nil
68
+ end
69
+
70
+ it "should be able to find nodes that were previously saved" do
71
+ @node.save
72
+ Puppet::Node.find(@name).should equal(@node)
73
+ end
74
+
75
+ it "should replace existing saved nodes when a new node with the same name is saved" do
76
+ @node.save
77
+ two = Puppet::Node.new(@name)
78
+ two.save
79
+ Puppet::Node.find(@name).should equal(two)
80
+ end
81
+
82
+ it "should be able to remove previously saved nodes" do
83
+ @node.save
84
+ Puppet::Node.destroy(@node.name)
85
+ Puppet::Node.find(@name).should be_nil
86
+ end
87
+
88
+ it "should fail when asked to destroy a node that does not exist" do
89
+ proc { Puppet::Node.destroy(@node) }.should raise_error(ArgumentError)
90
+ end
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,54 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Created by Luke Kanies on 2007-4-8.
4
+ # Copyright (c) 2008. All rights reserved.
5
+
6
+ require File.dirname(__FILE__) + '/../../spec_helper'
7
+
8
+ describe Puppet::Node::Catalog do
9
+ describe "when using the indirector" do
10
+ before do
11
+ # This is so the tests work w/out networking.
12
+ Facter.stubs(:to_hash).returns({"hostname" => "foo.domain.com"})
13
+ Facter.stubs(:value).returns("eh")
14
+ end
15
+
16
+ after { Puppet::Node::Catalog.indirection.clear_cache }
17
+
18
+ it "should be able to delegate to the :yaml terminus" do
19
+ Puppet::Node::Catalog.indirection.stubs(:terminus_class).returns :yaml
20
+
21
+ # Load now, before we stub the exists? method.
22
+ terminus = Puppet::Node::Catalog.indirection.terminus(:yaml)
23
+ terminus.expects(:path).with("me").returns "/my/yaml/file"
24
+
25
+ FileTest.expects(:exist?).with("/my/yaml/file").returns false
26
+ Puppet::Node::Catalog.find("me").should be_nil
27
+ end
28
+
29
+ it "should be able to delegate to the :compiler terminus" do
30
+ Puppet::Node::Catalog.indirection.stubs(:terminus_class).returns :compiler
31
+
32
+ # Load now, before we stub the exists? method.
33
+ compiler = Puppet::Node::Catalog.indirection.terminus(:compiler)
34
+
35
+ node = mock 'node'
36
+ node.stub_everything
37
+
38
+ Puppet::Node.expects(:find).returns(node)
39
+ compiler.expects(:compile).with(node).returns nil
40
+
41
+ Puppet::Node::Catalog.find("me").should be_nil
42
+ end
43
+
44
+ it "should pass provided node information directly to the terminus" do
45
+ terminus = mock 'terminus'
46
+
47
+ Puppet::Node::Catalog.indirection.stubs(:terminus).returns terminus
48
+
49
+ node = mock 'node'
50
+ terminus.expects(:find).with { |request| request.options[:use_node] == node }
51
+ Puppet::Node::Catalog.find("me", :use_node => node)
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,45 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Created by Luke Kanies on 2008-4-8.
4
+ # Copyright (c) 2008. All rights reserved.
5
+
6
+ require File.dirname(__FILE__) + '/../../spec_helper'
7
+
8
+ describe Puppet::Node::Facts do
9
+ describe "when using the indirector" do
10
+ after { Puppet::Node::Facts.indirection.clear_cache }
11
+
12
+ it "should expire any cached node instances when it is saved" do
13
+ Puppet::Node::Facts.indirection.stubs(:terminus_class).returns :yaml
14
+ terminus = Puppet::Node::Facts.indirection.terminus(:yaml)
15
+
16
+ terminus.expects(:save)
17
+ Puppet::Node.expects(:expire).with("me")
18
+
19
+ facts = Puppet::Node::Facts.new("me")
20
+ facts.save
21
+ end
22
+
23
+ it "should be able to delegate to the :yaml terminus" do
24
+ Puppet::Node::Facts.indirection.stubs(:terminus_class).returns :yaml
25
+
26
+ # Load now, before we stub the exists? method.
27
+ terminus = Puppet::Node::Facts.indirection.terminus(:yaml)
28
+
29
+ terminus.expects(:path).with("me").returns "/my/yaml/file"
30
+ FileTest.expects(:exist?).with("/my/yaml/file").returns false
31
+
32
+ Puppet::Node::Facts.find("me").should be_nil
33
+ end
34
+
35
+ it "should be able to delegate to the :facter terminus" do
36
+ Puppet::Node::Facts.indirection.stubs(:terminus_class).returns :facter
37
+
38
+ Facter.expects(:to_hash).returns "facter_hash"
39
+ facts = Puppet::Node::Facts.new("me")
40
+ Puppet::Node::Facts.expects(:new).with("me", "facter_hash").returns facts
41
+
42
+ Puppet::Node::Facts.find("me").should equal(facts)
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,26 @@
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
+ describe "Package Provider" do
6
+ Puppet::Type.type(:package).providers.each do |name|
7
+ provider = Puppet::Type.type(:package).provider(name)
8
+
9
+ describe name do
10
+ confine "Provider %s is not suitable" % name => provider.suitable?
11
+
12
+ it "should fail when asked to install an invalid package" do
13
+ pending("This test hangs forever with recent versions of RubyGems") if provider.name == :gem
14
+ pkg = Puppet::Type.newpackage :name => "nosuch%s" % provider.name.to_s, :provider => provider.name
15
+ lambda { pkg.provider.install }.should raise_error
16
+ end
17
+
18
+ it "should be able to get a list of existing packages" do
19
+ provider.instances.each do |package|
20
+ package.should be_instance_of(provider)
21
+ package.properties[:provider].should == provider.name
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # Find and load the spec file.
4
+ Dir.chdir(File.dirname(__FILE__)) { (s = lambda { |f| File.exist?(f) ? require(f) : Dir.chdir("..") { s.call(f) } }).call("spec/spec_helper.rb") }
5
+
6
+ provider = Puppet::Type.type(:service).provider(:init)
7
+
8
+ describe provider do
9
+ describe "when running on FreeBSD" do
10
+ confine "Not running on FreeBSD" => (Facter.value(:operatingsystem) == "FreeBSD")
11
+
12
+ it "should set its default path to include /etc/init.d and /usr/local/etc/init.d" do
13
+ provider.defpath.should == ["/etc/rc.d", "/usr/local/etc/rc.d"]
14
+ end
15
+ end
16
+
17
+ describe "when running on HP-UX" do
18
+ confine "Not running on HP-UX" => (Facter.value(:operatingsystem) == "HP-UX")
19
+
20
+ it "should set its default path to include /sbin/init.d" do
21
+ provider.defpath.should == "/sbin/init.d"
22
+ end
23
+ end
24
+
25
+ describe "when not running on FreeBSD or HP-UX" do
26
+ confine "Running on HP-UX or FreeBSD" => (! %w{HP-UX FreeBSD}.include?(Facter.value(:operatingsystem)))
27
+
28
+ it "should set its default path to include /etc/init.d" do
29
+ provider.defpath.should == "/etc/init.d"
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,17 @@
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/reference'
6
+
7
+ reference = Puppet::Util::Reference.reference(:providers)
8
+
9
+ describe reference do
10
+ it "should exist" do
11
+ reference.should_not be_nil
12
+ end
13
+
14
+ it "should be able to be rendered as text" do
15
+ lambda { reference.to_text }.should_not raise_error
16
+ end
17
+ end
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Created by Luke Kanies on 2007-10-12.
4
+ # Copyright (c) 2007. All rights reserved.
5
+
6
+ require File.dirname(__FILE__) + '/../spec_helper'
7
+
8
+ require 'puppet/reports'
9
+
10
+ describe Puppet::Reports, " when using report types" do
11
+ it "should load report types as modules" do
12
+ Puppet::Reports.report(:store).should be_instance_of(Module)
13
+ end
14
+ end
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Created by Luke Kanies on 2008-4-8.
4
+ # Copyright (c) 2008. All rights reserved.
5
+
6
+ require File.dirname(__FILE__) + '/../../spec_helper'
7
+
8
+ describe Puppet::Transaction::Report do
9
+ describe "when using the indirector" do
10
+ after { Puppet::Transaction::Report.indirection.clear_cache }
11
+
12
+ it "should be able to delegate to the :processor terminus" do
13
+ Puppet::Transaction::Report.indirection.stubs(:terminus_class).returns :processor
14
+
15
+ terminus = Puppet::Transaction::Report.indirection.terminus(:processor)
16
+
17
+ Facter.stubs(:value).returns "host.domain.com"
18
+
19
+ report = Puppet::Transaction::Report.new
20
+
21
+ terminus.expects(:process).with(report)
22
+
23
+ report.save
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../../spec_helper'
4
+
5
+ describe Puppet::Type.type(:package), "when choosing a default package provider" do
6
+ before do
7
+ # the default provider is cached.
8
+ Puppet::Type.type(:package).defaultprovider = nil
9
+ end
10
+
11
+ def provider_name(os)
12
+ {"Debian" => :apt, "Darwin" => :apple, "RedHat" => :up2date, "Fedora" => :yum, "FreeBSD" => :ports, "OpenBSD" => :openbsd, "Solaris" => :sun}[os]
13
+ end
14
+
15
+ it "should have a default provider" do
16
+ Puppet::Type.type(:package).defaultprovider.should_not be_nil
17
+ end
18
+
19
+ it "should choose the correct provider each platform" do
20
+ Puppet::Type.type(:package).defaultprovider.name.should == provider_name(Facter.value(:operatingsystem))
21
+ end
22
+ end
@@ -0,0 +1,36 @@
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/file_locking'
6
+
7
+ describe Puppet::Util::FileLocking do
8
+ it "should be able to keep file corruption from happening when there are multiple writers" do
9
+ file = Tempfile.new("puppetspec")
10
+ file.close!()
11
+ file = file.path
12
+ data = {:a => :b, :c => "A string", :d => "another string", :e => %w{an array of strings}}
13
+ File.open(file, "w") { |f| f.puts YAML.dump(data) }
14
+
15
+ threads = []
16
+ sync = Sync.new
17
+ 9.times { |a|
18
+ threads << Thread.new {
19
+ 9.times { |b|
20
+ sync.synchronize(Sync::SH) {
21
+ Puppet::Util::FileLocking.readlock(file) { |f|
22
+ YAML.load(f.read).should == data
23
+ }
24
+ }
25
+ sleep 0.01
26
+ sync.synchronize(Sync::EX) {
27
+ Puppet::Util::FileLocking.writelock(file) { |f|
28
+ f.puts YAML.dump(data)
29
+ }
30
+ }
31
+ }
32
+ }
33
+ }
34
+ threads.each { |th| th.join }
35
+ end
36
+ end