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
@@ -1,6 +1,8 @@
1
1
  require 'yaml'
2
2
  require 'sync'
3
3
 
4
+ require 'puppet/util/file_locking'
5
+
4
6
  # a class for storing state
5
7
  class Puppet::Util::Storage
6
8
  include Singleton
@@ -59,7 +61,7 @@ class Puppet::Util::Storage
59
61
  return
60
62
  end
61
63
  Puppet::Util.benchmark(:debug, "Loaded state") do
62
- Puppet::Util.readlock(Puppet[:statefile]) do |file|
64
+ Puppet::Util::FileLocking.readlock(Puppet[:statefile]) do |file|
63
65
  begin
64
66
  @@state = YAML.load(file)
65
67
  rescue => detail
@@ -97,7 +99,7 @@ class Puppet::Util::Storage
97
99
  end
98
100
 
99
101
  Puppet::Util.benchmark(:debug, "Stored state") do
100
- Puppet::Util.writelock(Puppet[:statefile], 0660) do |file|
102
+ Puppet::Util::FileLocking.writelock(Puppet[:statefile], 0660) do |file|
101
103
  file.print YAML.dump(@@state)
102
104
  end
103
105
  end
@@ -0,0 +1,91 @@
1
+ require File.join(File.dirname(__FILE__), "spec_helper.rb")
2
+ require 'rake'
3
+ require 'spec/rake/spectask'
4
+
5
+ basedir = File.dirname(__FILE__)
6
+ puppetlibdir = File.join(basedir, "../lib")
7
+ puppettestlibdir = File.join(basedir, "../test/lib")
8
+ speclibdir = File.join(basedir, "lib")
9
+
10
+ require 'find'
11
+
12
+ include Find
13
+ include FileTest
14
+
15
+ $exclusions = %W(lib)
16
+
17
+ filemap = Hash.new { |hash, key| hash[key] = [] }
18
+
19
+ allfiles = []
20
+
21
+ # First collect the entire file list.
22
+ find(".") do |f|
23
+ # Get rid of the leading ./
24
+ f = f.sub(/^\.\//, '')
25
+
26
+ file = File.basename(f)
27
+ dir = File.dirname(f)
28
+
29
+ # Prune . directories and excluded dirs
30
+ if (file =~ /^\./ and f != ".") or $exclusions.include?(File.basename(file))
31
+ prune
32
+ next
33
+ end
34
+ next if f == "."
35
+ next if dir == "."
36
+
37
+ # If we're a ruby script, then add it to the list of files for that dir
38
+ if file =~ /\.rb$/
39
+ allfiles << f
40
+ # Add it to all of the parent dirs, not just our own
41
+ parts = File.split(dir)
42
+ if parts[0] == "."
43
+ parts.shift
44
+ end
45
+ parts.each_with_index { |part, i|
46
+ path = File.join(parts[0..i])
47
+ filemap[path] << f
48
+ }
49
+ end
50
+ end
51
+
52
+
53
+ libs = [puppetlibdir, puppettestlibdir, speclibdir]
54
+ desc "Run all specs"
55
+ Spec::Rake::SpecTask.new('all') do |t|
56
+ t.spec_files = FileList['integration/**/*.rb', 'unit/**/*.rb']
57
+ t.libs = libs
58
+ t.spec_opts = ['--options', 'spec.opts']
59
+ end
60
+
61
+ task :default => [:all]
62
+
63
+ # Now create a task for every directory
64
+ filemap.each do |dir, files|
65
+ ns = dir.gsub "/", ":"
66
+
67
+ # First create a separate task for each file in the namespace.
68
+ namespace ns do
69
+ files.each do |file|
70
+ Spec::Rake::SpecTask.new(file) do |t|
71
+ t.spec_files = File.basename(file, '.rb')
72
+ t.libs = libs
73
+ t.spec_opts = ['--options', 'spec.opts']
74
+ end
75
+ end
76
+ end
77
+
78
+ # Then create a task that matches the directory itself.
79
+ Spec::Rake::SpecTask.new(dir) do |t|
80
+ if ENV["TESTFILES"]
81
+ t.spec_files = ENV["TESTFILES"].split(/\s+/)
82
+ else
83
+ t.spec_files = files.sort
84
+ end
85
+ t.libs = libs
86
+ t.spec_opts = ['--options', 'spec.opts']
87
+ end
88
+
89
+ # And alias it with a slash on the end
90
+ task(dir + "/" => dir)
91
+ end
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Created by Luke Kanies on 2007-9-22.
4
+ # Copyright (c) 2007. All rights reserved.
5
+
6
+ require File.dirname(__FILE__) + '/../spec_helper'
7
+
8
+ require 'puppet/checksum'
9
+
10
+ describe Puppet::Checksum, " when using the file terminus" do
11
+ before do
12
+ Puppet::Checksum.terminus_class = :file
13
+ @content = "this is some content"
14
+ @sum = Puppet::Checksum.new(@content)
15
+
16
+ @file = Puppet::Checksum.indirection.terminus.path(@sum.checksum)
17
+ end
18
+
19
+ it "should store content at a path determined by its checksum" do
20
+ File.stubs(:directory?).returns(true)
21
+ filehandle = mock 'filehandle'
22
+ filehandle.expects(:print).with(@content)
23
+ File.expects(:open).with(@file, "w").yields(filehandle)
24
+
25
+ @sum.save
26
+ end
27
+
28
+ it "should retrieve stored content when the checksum is provided as the key" do
29
+ File.stubs(:exist?).returns(true)
30
+ File.expects(:read).with(@file).returns(@content)
31
+
32
+ newsum = Puppet::Checksum.find(@sum.checksum)
33
+
34
+ newsum.content.should == @content
35
+ end
36
+
37
+ it "should remove specified files when asked" do
38
+ File.stubs(:exist?).returns(true)
39
+ File.expects(:unlink).with(@file)
40
+
41
+ Puppet::Checksum.destroy(@sum.name)
42
+ end
43
+
44
+ after do
45
+ Puppet.settings.clear
46
+ end
47
+ end
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.dirname(__FILE__) + '/../spec_helper'
4
+
5
+ require 'puppet/defaults'
6
+
7
+ describe "Puppet defaults" do
8
+ after { Puppet.settings.clear }
9
+
10
+ describe "when setting the :factpath" do
11
+
12
+ it "should add the :factpath to Facter's search paths" do
13
+ Facter.expects(:search).with("/my/fact/path")
14
+
15
+ Puppet.settings[:factpath] = "/my/fact/path"
16
+ end
17
+ end
18
+ describe "when setting the :certname" do
19
+ it "should fail if the certname is not downcased" do
20
+ lambda { Puppet.settings[:certname] = "Host.Domain.Com" }.should raise_error(ArgumentError)
21
+ end
22
+ end
23
+
24
+ it "should have a clientyamldir setting" do
25
+ Puppet.settings[:clientyamldir].should_not be_nil
26
+ end
27
+
28
+ it "should have different values for the yamldir and clientyamldir" do
29
+ Puppet.settings[:yamldir].should_not == Puppet.settings[:clientyamldir]
30
+ end
31
+
32
+ # See #1232
33
+ it "should not specify a user or group for the clientyamldir" do
34
+ Puppet.settings.element(:clientyamldir).owner.should be_nil
35
+ Puppet.settings.element(:clientyamldir).group.should be_nil
36
+ end
37
+
38
+ # See #1232
39
+ it "should not specify a user or group for the rundir" do
40
+ Puppet.settings.element(:rundir).owner.should be_nil
41
+ Puppet.settings.element(:rundir).group.should be_nil
42
+ end
43
+
44
+ it "should default to yaml as the catalog format" do
45
+ Puppet.settings[:catalog_format].should == "yaml"
46
+ end
47
+ end
@@ -0,0 +1,43 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Created by Luke Kanies on 2007-10-18.
4
+ # Copyright (c) 2007. All rights reserved.
5
+
6
+ require File.dirname(__FILE__) + '/../../spec_helper'
7
+
8
+ require 'puppet/file_serving/configuration'
9
+
10
+ describe Puppet::FileServing::Configuration, " when finding files with Puppet::FileServing::Mount" do
11
+ before do
12
+ # Just in case it already exists.
13
+ Puppet::FileServing::Configuration.clear_cache
14
+
15
+ @mount = Puppet::FileServing::Mount.new("mymount")
16
+ FileTest.stubs(:exists?).with("/my/path").returns(true)
17
+ FileTest.stubs(:readable?).with("/my/path").returns(true)
18
+ FileTest.stubs(:directory?).with("/my/path").returns(true)
19
+ @mount.path = "/my/path"
20
+
21
+ FileTest.stubs(:exists?).with(Puppet[:fileserverconfig]).returns(true)
22
+ @parser = mock 'parser'
23
+ @parser.stubs(:parse).returns("mymount" => @mount)
24
+ @parser.stubs(:changed?).returns(true)
25
+ Puppet::FileServing::Configuration::Parser.stubs(:new).returns(@parser)
26
+
27
+ @config = Puppet::FileServing::Configuration.create
28
+ end
29
+
30
+ it "should return nil if the file does not exist" do
31
+ FileTest.expects(:exists?).with("/my/path/my/file").returns(false)
32
+ @config.file_path("/mymount/my/file").should be_nil
33
+ end
34
+
35
+ it "should return the full file path if the file exists" do
36
+ FileTest.expects(:exists?).with("/my/path/my/file").returns(true)
37
+ @config.file_path("/mymount/my/file").should == "/my/path/my/file"
38
+ end
39
+
40
+ after do
41
+ Puppet::FileServing::Configuration.clear_cache
42
+ end
43
+ end
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Created by Luke Kanies on 2007-10-18.
4
+ # Copyright (c) 2007. All rights reserved.
5
+
6
+ require File.dirname(__FILE__) + '/../../spec_helper'
7
+
8
+ require 'puppet/file_serving/content'
9
+ require 'shared_behaviours/file_serving'
10
+
11
+ describe Puppet::FileServing::Content, " when finding files" do
12
+ it_should_behave_like "Puppet::FileServing::Files"
13
+
14
+ before do
15
+ @test_class = Puppet::FileServing::Content
16
+ @indirection = Puppet::FileServing::Content.indirection
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Created by Luke Kanies on 2007-10-18.
4
+ # Copyright (c) 2007. All rights reserved.
5
+
6
+ require File.dirname(__FILE__) + '/../../spec_helper'
7
+
8
+ require 'puppet/file_serving/metadata'
9
+ require 'shared_behaviours/file_serving'
10
+
11
+ describe Puppet::FileServing::Metadata, " when finding files" do
12
+ it_should_behave_like "Puppet::FileServing::Files"
13
+
14
+ before do
15
+ @test_class = Puppet::FileServing::Metadata
16
+ @indirection = Puppet::FileServing::Metadata.indirection
17
+ end
18
+ end
@@ -0,0 +1,80 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Created by Luke Kanies on 2007-10-19.
4
+ # Copyright (c) 2007. All rights reserved.
5
+
6
+ require File.dirname(__FILE__) + '/../../spec_helper'
7
+
8
+ require 'puppet/indirector/file_content/file'
9
+ require 'puppet/indirector/module_files'
10
+
11
+ describe Puppet::Indirector::DirectFileServer, " when interacting with the filesystem and the model" do
12
+ before do
13
+ # We just test a subclass, since it's close enough.
14
+ @terminus = Puppet::Indirector::FileContent::File.new
15
+
16
+ @filepath = "/path/to/my/file"
17
+ end
18
+
19
+ it "should return an instance of the model" do
20
+ FileTest.expects(:exists?).with(@filepath).returns(true)
21
+
22
+ @terminus.find(@terminus.indirection.request(:find, "file://host#{@filepath}")).should be_instance_of(Puppet::FileServing::Content)
23
+ end
24
+
25
+ it "should return an instance capable of returning its content" do
26
+ FileTest.expects(:exists?).with(@filepath).returns(true)
27
+ File.stubs(:lstat).with(@filepath).returns(stub("stat", :ftype => "file"))
28
+ File.expects(:read).with(@filepath).returns("my content")
29
+
30
+ instance = @terminus.find(@terminus.indirection.request(:find, "file://host#{@filepath}"))
31
+
32
+ instance.content.should == "my content"
33
+ end
34
+ end
35
+
36
+ describe Puppet::Indirector::DirectFileServer, " when interacting with FileServing::Fileset and the model" do
37
+ before do
38
+ @terminus = Puppet::Indirector::FileContent::File.new
39
+
40
+ @filepath = "/my/file"
41
+ FileTest.stubs(:exists?).with(@filepath).returns(true)
42
+
43
+ stat = stub 'stat', :directory? => true
44
+ File.stubs(:lstat).with(@filepath).returns(stat)
45
+
46
+ @subfiles = %w{one two}
47
+ @subfiles.each do |f|
48
+ path = File.join(@filepath, f)
49
+ FileTest.stubs(:exists?).with(@path).returns(true)
50
+ end
51
+
52
+ Dir.expects(:entries).with(@filepath).returns @subfiles
53
+
54
+ @request = @terminus.indirection.request(:search, "file:///my/file", :recurse => true)
55
+ end
56
+
57
+ it "should return an instance for every file in the fileset" do
58
+ result = @terminus.search(@request)
59
+ result.should be_instance_of(Array)
60
+ result.length.should == 3
61
+ result.each { |r| r.should be_instance_of(Puppet::FileServing::Content) }
62
+ end
63
+
64
+ it "should return instances capable of returning their content" do
65
+ @subfiles.each do |name|
66
+ File.stubs(:lstat).with(File.join(@filepath, name)).returns stub("#{name} stat", :ftype => "file", :directory? => false)
67
+ File.expects(:read).with(File.join(@filepath, name)).returns("#{name} content")
68
+ end
69
+
70
+ @terminus.search(@request).each do |instance|
71
+ case instance.key
72
+ when /one/: instance.content.should == "one content"
73
+ when /two/: instance.content.should == "two content"
74
+ when /\.$/:
75
+ else
76
+ raise "No valid key for %s" % instance.key.inspect
77
+ end
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Created by Luke Kanies on 2007-10-18.
4
+ # Copyright (c) 2007. All rights reserved.
5
+
6
+ require File.dirname(__FILE__) + '/../../../spec_helper'
7
+
8
+ require 'puppet/indirector/file_content/file_server'
9
+ require 'shared_behaviours/file_server_terminus'
10
+
11
+ describe Puppet::Indirector::FileContent::FileServer, " when finding files" do
12
+ it_should_behave_like "Puppet::Indirector::FileServerTerminus"
13
+
14
+ before do
15
+ @terminus = Puppet::Indirector::FileContent::FileServer.new
16
+ @test_class = Puppet::FileServing::Content
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Created by Luke Kanies on 2007-10-18.
4
+ # Copyright (c) 2007. All rights reserved.
5
+
6
+ require File.dirname(__FILE__) + '/../../../spec_helper'
7
+
8
+ require 'puppet/indirector/file_metadata/file_server'
9
+ require 'shared_behaviours/file_server_terminus'
10
+
11
+ describe Puppet::Indirector::FileMetadata::FileServer, " when finding files" do
12
+ it_should_behave_like "Puppet::Indirector::FileServerTerminus"
13
+
14
+ before do
15
+ @terminus = Puppet::Indirector::FileMetadata::FileServer.new
16
+ @test_class = Puppet::FileServing::Metadata
17
+ end
18
+ end
@@ -0,0 +1,57 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Created by Luke Kanies on 2007-10-19.
4
+ # Copyright (c) 2007. All rights reserved.
5
+
6
+ require File.dirname(__FILE__) + '/../../spec_helper'
7
+
8
+ require 'puppet/indirector/file_content/modules'
9
+ require 'puppet/indirector/module_files'
10
+
11
+ describe Puppet::Indirector::ModuleFiles, " when interacting with Puppet::Module and FileServing::Content" do
12
+ it "should look for files in the module's 'files' directory" do
13
+ Puppet::Node::Environment.stubs(:new).returns(stub('env', :name => "myenv"))
14
+ # We just test a subclass, since it's close enough.
15
+ @terminus = Puppet::Indirector::FileContent::Modules.new
16
+ @module = Puppet::Module.new("mymod", "/some/path/mymod")
17
+ Puppet::Module.expects(:find).with("mymod", "myenv").returns(@module)
18
+
19
+ filepath = "/some/path/mymod/files/myfile"
20
+
21
+ FileTest.expects(:exists?).with(filepath).returns(true)
22
+
23
+ @request = Puppet::Indirector::Request.new(:content, :find, "puppetmounts://host/modules/mymod/myfile")
24
+
25
+ @terminus.find(@request).should be_instance_of(Puppet::FileServing::Content)
26
+ end
27
+ end
28
+
29
+ describe Puppet::Indirector::ModuleFiles, " when interacting with FileServing::Fileset and FileServing::Content" do
30
+ it "should return an instance for every file in the fileset" do
31
+ Puppet::Node::Environment.stubs(:new).returns(stub('env', :name => "myenv"))
32
+ @terminus = Puppet::Indirector::FileContent::Modules.new
33
+ @module = Puppet::Module.new("mymod", "/some/path/mymod")
34
+ Puppet::Module.expects(:find).with("mymod", "myenv").returns(@module)
35
+
36
+ filepath = "/some/path/mymod/files/myfile"
37
+ FileTest.stubs(:exists?).with(filepath).returns(true)
38
+
39
+ stat = stub 'stat', :directory? => true
40
+ File.stubs(:lstat).with(filepath).returns(stat)
41
+
42
+ subfiles = %w{one two}
43
+ subfiles.each do |f|
44
+ path = File.join(filepath, f)
45
+ FileTest.stubs(:exists?).with(path).returns(true)
46
+ end
47
+
48
+ Dir.expects(:entries).with(filepath).returns(%w{one two})
49
+
50
+ @request = Puppet::Indirector::Request.new(:content, :search, "puppetmounts://host/modules/mymod/myfile", :recurse => true)
51
+
52
+ result = @terminus.search(@request)
53
+ result.should be_instance_of(Array)
54
+ result.length.should == 3
55
+ result.each { |r| r.should be_instance_of(Puppet::FileServing::Content) }
56
+ end
57
+ end