puppet 0.18.4 → 0.22.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (673) hide show
  1. data/CHANGELOG +288 -0
  2. data/README +2 -2
  3. data/Rakefile +78 -5
  4. data/bin/puppet +28 -36
  5. data/bin/puppetca +81 -38
  6. data/bin/puppetd +65 -62
  7. data/bin/puppetdoc +409 -140
  8. data/bin/puppetmasterd +59 -47
  9. data/bin/puppetrun +38 -23
  10. data/conf/freebsd/puppetd +26 -0
  11. data/conf/freebsd/puppetmasterd +26 -0
  12. data/conf/gentoo/conf.d/puppet +5 -0
  13. data/conf/gentoo/conf.d/puppetmaster +12 -0
  14. data/conf/gentoo/init.d/puppet +38 -0
  15. data/conf/gentoo/init.d/puppetmaster +50 -0
  16. data/conf/gentoo/puppet/fileserver.conf +12 -0
  17. data/conf/gentoo/puppet/puppetca.conf +29 -0
  18. data/conf/gentoo/puppet/puppetd.conf +29 -0
  19. data/conf/gentoo/puppet/puppetmasterd.conf +29 -0
  20. data/conf/redhat/client.init +10 -5
  21. data/conf/redhat/client.sysconfig +1 -1
  22. data/conf/redhat/fileserver.conf +2 -2
  23. data/conf/redhat/logrotate +1 -1
  24. data/conf/redhat/no-lockdir.patch +13 -0
  25. data/conf/redhat/puppet.spec +65 -8
  26. data/conf/redhat/puppetd.conf +0 -4
  27. data/conf/redhat/server.init +3 -6
  28. data/conf/solaris/pkginfo +1 -1
  29. data/conf/solaris/smf/svc-puppetd +2 -2
  30. data/conf/suse/client.init +142 -0
  31. data/conf/suse/puppet.spec +221 -0
  32. data/conf/suse/server.init +162 -0
  33. data/examples/code/mac_automount.pp +16 -0
  34. data/examples/root/bin/sleeper +3 -5
  35. data/examples/root/etc/init.d/sleeper +8 -2
  36. data/examples/root/etc/puppet/fileserver.conf +12 -2
  37. data/examples/root/etc/puppet/namespaceauth.conf +20 -0
  38. data/examples/root/etc/puppet/puppetd.conf +4 -0
  39. data/examples/root/etc/puppet/puppetmasterd.conf +6 -9
  40. data/examples/root/etc/puppet/tagmail.conf +1 -0
  41. data/ext/emacs/puppet-mode.el +46 -1
  42. data/ext/logcheck/puppet +15 -0
  43. data/ext/module_puppet +15 -23
  44. data/ext/vim/puppet.vim +4 -2
  45. data/install.rb +2 -1
  46. data/lib/puppet.rb +76 -207
  47. data/lib/puppet/configuration.rb +331 -0
  48. data/lib/puppet/daemon.rb +63 -246
  49. data/lib/puppet/dsl.rb +371 -0
  50. data/lib/puppet/element.rb +8 -26
  51. data/lib/puppet/error.rb +54 -0
  52. data/lib/puppet/event.rb +8 -243
  53. data/lib/puppet/{base64.rb → external/base64.rb} +0 -0
  54. data/lib/puppet/external/event-loop.rb +1 -0
  55. data/lib/puppet/{event-loop → external/event-loop}/better-definers.rb +0 -0
  56. data/lib/puppet/{event-loop → external/event-loop}/event-loop.rb +2 -2
  57. data/lib/puppet/{event-loop → external/event-loop}/signal-system.rb +1 -1
  58. data/lib/puppet/external/gratr.rb +33 -0
  59. data/lib/puppet/external/gratr/adjacency_graph.rb +257 -0
  60. data/lib/puppet/external/gratr/base.rb +34 -0
  61. data/lib/puppet/external/gratr/biconnected.rb +116 -0
  62. data/lib/puppet/external/gratr/chinese_postman.rb +123 -0
  63. data/lib/puppet/external/gratr/common.rb +73 -0
  64. data/lib/puppet/external/gratr/comparability.rb +92 -0
  65. data/lib/puppet/external/gratr/digraph.rb +116 -0
  66. data/lib/puppet/external/gratr/digraph_distance.rb +185 -0
  67. data/lib/puppet/external/gratr/dot.rb +90 -0
  68. data/lib/puppet/external/gratr/edge.rb +145 -0
  69. data/lib/puppet/external/gratr/graph.rb +303 -0
  70. data/lib/puppet/external/gratr/graph_api.rb +83 -0
  71. data/lib/puppet/external/gratr/import.rb +44 -0
  72. data/lib/puppet/external/gratr/labels.rb +90 -0
  73. data/lib/puppet/external/gratr/maximum_flow.rb +64 -0
  74. data/lib/puppet/external/gratr/rdot.rb +327 -0
  75. data/lib/puppet/external/gratr/search.rb +409 -0
  76. data/lib/puppet/external/gratr/strong_components.rb +127 -0
  77. data/lib/puppet/external/gratr/undirected_graph.rb +153 -0
  78. data/lib/puppet/{lock.rb → external/lock.rb} +1 -1
  79. data/lib/puppet/feature/base.rb +20 -0
  80. data/lib/puppet/feature/rails.rb +52 -0
  81. data/lib/puppet/metatype/attributes.rb +719 -0
  82. data/lib/puppet/metatype/closure.rb +111 -0
  83. data/lib/puppet/metatype/container.rb +94 -0
  84. data/lib/puppet/metatype/evaluation.rb +118 -0
  85. data/lib/puppet/metatype/instances.rb +261 -0
  86. data/lib/puppet/metatype/manager.rb +169 -0
  87. data/lib/puppet/metatype/metaparams.rb +409 -0
  88. data/lib/puppet/metatype/providers.rb +260 -0
  89. data/lib/puppet/metatype/relationships.rb +116 -0
  90. data/lib/puppet/metatype/schedules.rb +39 -0
  91. data/lib/puppet/metatype/tags.rb +39 -0
  92. data/lib/puppet/modules.rb +113 -0
  93. data/lib/puppet/network/authconfig.rb +168 -0
  94. data/lib/puppet/network/authorization.rb +84 -0
  95. data/lib/puppet/network/authstore.rb +293 -0
  96. data/lib/puppet/network/client.rb +187 -0
  97. data/lib/puppet/network/client/ca.rb +56 -0
  98. data/lib/puppet/network/client/dipper.rb +81 -0
  99. data/lib/puppet/network/client/file.rb +7 -0
  100. data/lib/puppet/network/client/logger.rb +6 -0
  101. data/lib/puppet/network/client/master.rb +644 -0
  102. data/lib/puppet/{client → network/client}/proxy.rb +3 -3
  103. data/lib/puppet/{client/reporter.rb → network/client/report.rb} +4 -7
  104. data/lib/puppet/{client/pelement.rb → network/client/resource.rb} +6 -19
  105. data/lib/puppet/network/client/runner.rb +13 -0
  106. data/lib/puppet/network/client/status.rb +5 -0
  107. data/lib/puppet/network/client_request.rb +32 -0
  108. data/lib/puppet/network/handler.rb +33 -0
  109. data/lib/puppet/{server → network/handler}/ca.rb +5 -6
  110. data/lib/puppet/network/handler/filebucket.rb +180 -0
  111. data/lib/puppet/{server → network/handler}/fileserver.rb +277 -219
  112. data/lib/puppet/{server → network/handler}/logger.rb +3 -5
  113. data/lib/puppet/{server → network/handler}/master.rb +42 -8
  114. data/lib/puppet/network/handler/report.rb +158 -0
  115. data/lib/puppet/network/handler/resource.rb +190 -0
  116. data/lib/puppet/{server → network/handler}/runner.rb +17 -18
  117. data/lib/puppet/network/handler/status.rb +13 -0
  118. data/lib/puppet/network/rights.rb +74 -0
  119. data/lib/puppet/network/server.rb +5 -0
  120. data/lib/puppet/network/server/mongrel.rb +138 -0
  121. data/lib/puppet/network/server/webrick.rb +153 -0
  122. data/lib/puppet/network/xmlrpc/client.rb +129 -0
  123. data/lib/puppet/network/xmlrpc/processor.rb +91 -0
  124. data/lib/puppet/network/xmlrpc/server.rb +20 -0
  125. data/lib/puppet/network/xmlrpc/webrick_servlet.rb +121 -0
  126. data/lib/puppet/parameter.rb +390 -346
  127. data/lib/puppet/parser/ast.rb +116 -147
  128. data/lib/puppet/parser/ast/astarray.rb +17 -33
  129. data/lib/puppet/parser/ast/branch.rb +2 -0
  130. data/lib/puppet/parser/ast/caseopt.rb +7 -12
  131. data/lib/puppet/parser/ast/casestatement.rb +23 -32
  132. data/lib/puppet/parser/ast/collection.rb +19 -80
  133. data/lib/puppet/parser/ast/collexpr.rb +81 -0
  134. data/lib/puppet/parser/ast/component.rb +160 -89
  135. data/lib/puppet/parser/ast/else.rb +30 -0
  136. data/lib/puppet/parser/ast/function.rb +9 -2
  137. data/lib/puppet/parser/ast/hostclass.rb +47 -131
  138. data/lib/puppet/parser/ast/ifstatement.rb +43 -0
  139. data/lib/puppet/parser/ast/leaf.rb +10 -21
  140. data/lib/puppet/parser/ast/node.rb +32 -79
  141. data/lib/puppet/parser/ast/resourcedef.rb +222 -0
  142. data/lib/puppet/parser/ast/{typedefaults.rb → resourcedefaults.rb} +10 -16
  143. data/lib/puppet/parser/ast/resourceoverride.rb +62 -0
  144. data/lib/puppet/parser/ast/{objectparam.rb → resourceparam.rb} +12 -6
  145. data/lib/puppet/parser/ast/resourceref.rb +44 -0
  146. data/lib/puppet/parser/ast/selector.rb +16 -8
  147. data/lib/puppet/parser/ast/tag.rb +3 -1
  148. data/lib/puppet/parser/ast/vardef.rb +8 -12
  149. data/lib/puppet/parser/collector.rb +181 -0
  150. data/lib/puppet/parser/functions.rb +191 -36
  151. data/lib/puppet/parser/interpreter.rb +802 -380
  152. data/lib/puppet/parser/lexer.rb +86 -19
  153. data/lib/puppet/parser/parser.rb +1123 -960
  154. data/lib/puppet/parser/resource.rb +353 -0
  155. data/lib/puppet/parser/resource/param.rb +57 -0
  156. data/lib/puppet/parser/resource/reference.rb +71 -0
  157. data/lib/puppet/parser/scope.rb +573 -1000
  158. data/lib/puppet/parser/templatewrapper.rb +54 -0
  159. data/lib/puppet/pgraph.rb +208 -0
  160. data/lib/puppet/propertychange.rb +143 -0
  161. data/lib/puppet/provider.rb +302 -0
  162. data/lib/puppet/provider/cron/crontab.rb +187 -0
  163. data/lib/puppet/provider/group/groupadd.rb +29 -0
  164. data/lib/puppet/provider/group/netinfo.rb +12 -0
  165. data/lib/puppet/provider/group/pw.rb +31 -0
  166. data/lib/puppet/provider/host/netinfo.rb +18 -0
  167. data/lib/puppet/provider/host/parsed.rb +73 -0
  168. data/lib/puppet/provider/mount.rb +57 -0
  169. data/lib/puppet/provider/mount/netinfo.rb +38 -0
  170. data/lib/puppet/provider/mount/parsed.rb +37 -0
  171. data/lib/puppet/provider/nameservice.rb +344 -0
  172. data/lib/puppet/provider/nameservice/netinfo.rb +210 -0
  173. data/lib/puppet/provider/nameservice/objectadd.rb +45 -0
  174. data/lib/puppet/provider/nameservice/pw.rb +22 -0
  175. data/lib/puppet/provider/package/apple.rb +53 -0
  176. data/lib/puppet/provider/package/apt.rb +119 -0
  177. data/lib/puppet/provider/package/aptitude.rb +30 -0
  178. data/lib/puppet/provider/package/aptrpm.rb +79 -0
  179. data/lib/puppet/provider/package/blastwave.rb +114 -0
  180. data/lib/puppet/provider/package/darwinport.rb +88 -0
  181. data/lib/puppet/provider/package/dpkg.rb +109 -0
  182. data/lib/puppet/provider/package/freebsd.rb +43 -0
  183. data/lib/puppet/provider/package/gem.rb +104 -0
  184. data/lib/puppet/provider/package/openbsd.rb +93 -0
  185. data/lib/puppet/provider/package/pkgdmg.rb +119 -0
  186. data/lib/puppet/provider/package/portage.rb +112 -0
  187. data/lib/puppet/provider/package/ports.rb +94 -0
  188. data/lib/puppet/provider/package/rpm.rb +125 -0
  189. data/lib/puppet/provider/package/rug.rb +53 -0
  190. data/lib/puppet/provider/package/sun.rb +168 -0
  191. data/lib/puppet/provider/package/sunfreeware.rb +9 -0
  192. data/lib/puppet/provider/package/up2date.rb +45 -0
  193. data/lib/puppet/provider/package/yum.rb +54 -0
  194. data/lib/puppet/provider/parsedfile.rb +342 -0
  195. data/lib/puppet/provider/port/parsed.rb +174 -0
  196. data/lib/puppet/provider/service/base.rb +136 -0
  197. data/lib/puppet/provider/service/debian.rb +32 -0
  198. data/lib/puppet/provider/service/gentoo.rb +49 -0
  199. data/lib/puppet/{type → provider}/service/init.rb +42 -40
  200. data/lib/puppet/provider/service/redhat.rb +59 -0
  201. data/lib/puppet/{type → provider}/service/smf.rb +24 -13
  202. data/lib/puppet/provider/sshkey/parsed.rb +36 -0
  203. data/lib/puppet/provider/user/netinfo.rb +106 -0
  204. data/lib/puppet/provider/user/pw.rb +41 -0
  205. data/lib/puppet/provider/user/useradd.rb +67 -0
  206. data/lib/puppet/provider/zone/solaris.rb +208 -0
  207. data/lib/puppet/rails.rb +102 -66
  208. data/lib/puppet/rails/database/001_add_indexes.rb +38 -0
  209. data/lib/puppet/rails/database/schema.rb +89 -0
  210. data/lib/puppet/rails/external/tagging/acts_as_taggable.rb +62 -0
  211. data/lib/puppet/rails/external/tagging/init.rb +5 -0
  212. data/lib/puppet/rails/external/tagging/tag.rb +50 -0
  213. data/lib/puppet/rails/external/tagging/tagging.rb +12 -0
  214. data/lib/puppet/rails/fact_name.rb +7 -0
  215. data/lib/puppet/rails/fact_value.rb +5 -0
  216. data/lib/puppet/rails/host.rb +95 -46
  217. data/lib/puppet/rails/param_name.rb +28 -0
  218. data/lib/puppet/rails/param_value.rb +5 -0
  219. data/lib/puppet/rails/puppet_class.rb +9 -0
  220. data/lib/puppet/rails/resource.rb +95 -0
  221. data/lib/puppet/rails/source_file.rb +5 -0
  222. data/lib/puppet/relationship.rb +63 -0
  223. data/lib/puppet/reports/log.rb +14 -0
  224. data/lib/puppet/reports/rrdgraph.rb +114 -10
  225. data/lib/puppet/reports/store.rb +64 -0
  226. data/lib/puppet/reports/tagmail.rb +144 -71
  227. data/lib/puppet/sslcertificates.rb +38 -5
  228. data/lib/puppet/sslcertificates/ca.rb +142 -37
  229. data/lib/puppet/sslcertificates/certificate.rb +3 -3
  230. data/lib/puppet/sslcertificates/inventory.rb +53 -0
  231. data/lib/puppet/sslcertificates/support.rb +128 -0
  232. data/lib/puppet/transaction.rb +568 -189
  233. data/lib/puppet/transaction/report.rb +14 -3
  234. data/lib/puppet/transportable.rb +18 -10
  235. data/lib/puppet/type.rb +279 -2299
  236. data/lib/puppet/type/component.rb +63 -63
  237. data/lib/puppet/type/cron.rb +294 -710
  238. data/lib/puppet/type/exec.rb +185 -129
  239. data/lib/puppet/type/group.rb +38 -89
  240. data/lib/puppet/type/host.rb +110 -0
  241. data/lib/puppet/type/mount.rb +189 -0
  242. data/lib/puppet/type/notify.rb +47 -0
  243. data/lib/puppet/type/package.rb +129 -257
  244. data/lib/puppet/type/parsedtype.rb +172 -297
  245. data/lib/puppet/type/pfile.rb +540 -319
  246. data/lib/puppet/type/pfile/checksum.rb +103 -76
  247. data/lib/puppet/type/pfile/content.rb +16 -10
  248. data/lib/puppet/type/pfile/ensure.rb +52 -34
  249. data/lib/puppet/type/pfile/group.rb +25 -18
  250. data/lib/puppet/type/pfile/mode.rb +7 -4
  251. data/lib/puppet/type/pfile/{uid.rb → owner.rb} +21 -17
  252. data/lib/puppet/type/pfile/source.rb +119 -124
  253. data/lib/puppet/type/pfile/target.rb +29 -45
  254. data/lib/puppet/type/pfile/type.rb +2 -2
  255. data/lib/puppet/type/pfilebucket.rb +18 -14
  256. data/lib/puppet/type/port.rb +121 -0
  257. data/lib/puppet/type/property.rb +530 -0
  258. data/lib/puppet/type/resources.rb +150 -0
  259. data/lib/puppet/type/schedule.rb +38 -22
  260. data/lib/puppet/type/service.rb +70 -326
  261. data/lib/puppet/type/sshkey.rb +76 -0
  262. data/lib/puppet/type/tidy.rb +197 -97
  263. data/lib/puppet/type/user.rb +107 -183
  264. data/lib/puppet/type/yumrepo.rb +53 -34
  265. data/lib/puppet/type/zone.rb +55 -208
  266. data/lib/puppet/util.rb +239 -201
  267. data/lib/puppet/util/autoload.rb +107 -0
  268. data/lib/puppet/util/classgen.rb +208 -0
  269. data/lib/puppet/{config.rb → util/config.rb} +102 -54
  270. data/lib/puppet/util/docs.rb +104 -0
  271. data/lib/puppet/util/errors.rb +55 -0
  272. data/lib/puppet/util/execution.rb +22 -0
  273. data/lib/puppet/util/feature.rb +76 -0
  274. data/lib/puppet/util/fileparsing.rb +380 -0
  275. data/lib/puppet/util/filetype.rb +300 -0
  276. data/lib/puppet/util/graph.rb +39 -0
  277. data/lib/puppet/util/inifile.rb +209 -0
  278. data/lib/puppet/util/loadedfile.rb +71 -0
  279. data/lib/puppet/util/log.rb +549 -0
  280. data/lib/puppet/util/logging.rb +20 -0
  281. data/lib/puppet/util/metaid.rb +22 -0
  282. data/lib/puppet/util/methodhelper.rb +37 -0
  283. data/lib/puppet/util/metric.rb +160 -0
  284. data/lib/puppet/util/package.rb +31 -0
  285. data/lib/puppet/util/pidlock.rb +68 -0
  286. data/lib/puppet/util/plist.rb +24 -0
  287. data/lib/puppet/util/plist/generator.rb +226 -0
  288. data/lib/puppet/util/plist/parser.rb +227 -0
  289. data/lib/puppet/util/posix.rb +87 -0
  290. data/lib/puppet/util/provider_features.rb +170 -0
  291. data/lib/puppet/util/rails/collection_merger.rb +42 -0
  292. data/lib/puppet/util/storage.rb +103 -0
  293. data/lib/puppet/util/subclass_loader.rb +83 -0
  294. data/lib/puppet/util/suidmanager.rb +86 -0
  295. data/lib/puppet/util/variables.rb +39 -0
  296. data/lib/puppet/util/warnings.rb +15 -0
  297. data/test/Rakefile +97 -0
  298. data/test/certmgr/ca.rb +81 -0
  299. data/test/certmgr/certmgr.rb +77 -50
  300. data/test/certmgr/inventory.rb +79 -0
  301. data/test/certmgr/support.rb +81 -0
  302. data/test/executables/filebucket.rb +49 -0
  303. data/test/executables/puppetbin.rb +28 -12
  304. data/test/executables/puppetca.rb +75 -54
  305. data/test/executables/puppetd.rb +10 -13
  306. data/test/executables/puppetmasterd.rb +12 -17
  307. data/test/executables/puppetmodule.rb +18 -17
  308. data/test/language/ast.rb +242 -798
  309. data/test/language/ast/casestatement.rb +104 -0
  310. data/test/language/ast/component.rb +133 -0
  311. data/test/language/ast/hostclass.rb +162 -0
  312. data/test/language/ast/selector.rb +62 -0
  313. data/test/language/ast/variable.rb +31 -0
  314. data/test/language/collector.rb +369 -0
  315. data/test/language/functions.rb +305 -18
  316. data/test/language/interpreter.rb +894 -125
  317. data/test/language/lexer.rb +98 -12
  318. data/test/language/node.rb +37 -53
  319. data/test/language/parser.rb +455 -148
  320. data/test/language/resource.rb +535 -0
  321. data/test/language/scope.rb +451 -561
  322. data/test/language/snippets.rb +101 -111
  323. data/test/language/transportable.rb +6 -8
  324. data/test/lib/mocha.rb +19 -0
  325. data/test/lib/mocha/any_instance_method.rb +35 -0
  326. data/test/lib/mocha/auto_verify.rb +113 -0
  327. data/test/lib/mocha/central.rb +35 -0
  328. data/test/lib/mocha/class_method.rb +62 -0
  329. data/test/lib/mocha/expectation.rb +295 -0
  330. data/test/lib/mocha/expectation_error.rb +6 -0
  331. data/test/lib/mocha/infinite_range.rb +27 -0
  332. data/test/lib/mocha/inspect.rb +37 -0
  333. data/test/lib/mocha/instance_method.rb +8 -0
  334. data/test/lib/mocha/metaclass.rb +7 -0
  335. data/test/lib/mocha/mock.rb +20 -0
  336. data/test/lib/mocha/mock_methods.rb +122 -0
  337. data/test/lib/mocha/object.rb +100 -0
  338. data/test/lib/mocha/pretty_parameters.rb +28 -0
  339. data/test/lib/mocha/setup_and_teardown.rb +23 -0
  340. data/test/lib/mocha/standalone.rb +30 -0
  341. data/test/lib/mocha/test_case_adapter.rb +49 -0
  342. data/test/lib/mocha_standalone.rb +2 -0
  343. data/test/lib/puppettest.rb +294 -0
  344. data/test/lib/puppettest/certificates.rb +61 -0
  345. data/test/lib/puppettest/exetest.rb +123 -0
  346. data/test/lib/puppettest/fakes.rb +194 -0
  347. data/test/lib/puppettest/fileparsing.rb +33 -0
  348. data/test/lib/puppettest/filetesting.rb +231 -0
  349. data/test/lib/puppettest/graph.rb +41 -0
  350. data/test/lib/puppettest/parsertesting.rb +392 -0
  351. data/test/lib/puppettest/railstesting.rb +56 -0
  352. data/test/lib/puppettest/reporttesting.rb +19 -0
  353. data/test/lib/puppettest/resourcetesting.rb +73 -0
  354. data/test/lib/puppettest/servertest.rb +72 -0
  355. data/test/lib/puppettest/support.rb +8 -0
  356. data/test/lib/puppettest/support/assertions.rb +101 -0
  357. data/test/lib/puppettest/support/helpers.rb +23 -0
  358. data/test/lib/puppettest/support/resources.rb +37 -0
  359. data/test/lib/puppettest/support/utils.rb +160 -0
  360. data/test/lib/puppettest/testcase.rb +48 -0
  361. data/test/lib/rake/puppet_test_loader.rb +17 -0
  362. data/test/lib/rake/puppet_testtask.rb +17 -0
  363. data/test/lib/spec.rb +8 -0
  364. data/test/lib/spec/callback.rb +11 -0
  365. data/test/lib/spec/callback/callback_container.rb +60 -0
  366. data/test/lib/spec/callback/extensions/module.rb +24 -0
  367. data/test/lib/spec/callback/extensions/object.rb +37 -0
  368. data/test/lib/spec/deprecated.rb +3 -0
  369. data/test/lib/spec/expectations.rb +59 -0
  370. data/test/lib/spec/expectations/differs/default.rb +62 -0
  371. data/test/lib/spec/expectations/errors.rb +6 -0
  372. data/test/lib/spec/expectations/extensions.rb +3 -0
  373. data/test/lib/spec/expectations/extensions/object.rb +109 -0
  374. data/test/lib/spec/expectations/extensions/proc.rb +57 -0
  375. data/test/lib/spec/expectations/extensions/string_and_symbol.rb +17 -0
  376. data/test/lib/spec/expectations/handler.rb +47 -0
  377. data/test/lib/spec/expectations/should.rb +5 -0
  378. data/test/lib/spec/expectations/should/base.rb +64 -0
  379. data/test/lib/spec/expectations/should/change.rb +69 -0
  380. data/test/lib/spec/expectations/should/have.rb +128 -0
  381. data/test/lib/spec/expectations/should/not.rb +74 -0
  382. data/test/lib/spec/expectations/should/should.rb +81 -0
  383. data/test/lib/spec/expectations/sugar.rb +47 -0
  384. data/test/lib/spec/matchers.rb +160 -0
  385. data/test/lib/spec/matchers/be.rb +161 -0
  386. data/test/lib/spec/matchers/be_close.rb +37 -0
  387. data/test/lib/spec/matchers/change.rb +120 -0
  388. data/test/lib/spec/matchers/eql.rb +43 -0
  389. data/test/lib/spec/matchers/equal.rb +43 -0
  390. data/test/lib/spec/matchers/has.rb +44 -0
  391. data/test/lib/spec/matchers/have.rb +140 -0
  392. data/test/lib/spec/matchers/include.rb +50 -0
  393. data/test/lib/spec/matchers/match.rb +41 -0
  394. data/test/lib/spec/matchers/raise_error.rb +100 -0
  395. data/test/lib/spec/matchers/respond_to.rb +35 -0
  396. data/test/lib/spec/matchers/satisfy.rb +47 -0
  397. data/test/lib/spec/matchers/throw_symbol.rb +75 -0
  398. data/test/lib/spec/mocks.rb +232 -0
  399. data/test/lib/spec/mocks/argument_expectation.rb +132 -0
  400. data/test/lib/spec/mocks/error_generator.rb +85 -0
  401. data/test/lib/spec/mocks/errors.rb +10 -0
  402. data/test/lib/spec/mocks/extensions/object.rb +3 -0
  403. data/test/lib/spec/mocks/message_expectation.rb +231 -0
  404. data/test/lib/spec/mocks/methods.rb +40 -0
  405. data/test/lib/spec/mocks/mock.rb +26 -0
  406. data/test/lib/spec/mocks/mock_handler.rb +166 -0
  407. data/test/lib/spec/mocks/order_group.rb +29 -0
  408. data/test/lib/spec/rake/spectask.rb +173 -0
  409. data/test/lib/spec/rake/verify_rcov.rb +47 -0
  410. data/test/lib/spec/runner.rb +132 -0
  411. data/test/lib/spec/runner/backtrace_tweaker.rb +55 -0
  412. data/test/lib/spec/runner/command_line.rb +34 -0
  413. data/test/lib/spec/runner/context.rb +154 -0
  414. data/test/lib/spec/runner/context_eval.rb +142 -0
  415. data/test/lib/spec/runner/context_runner.rb +55 -0
  416. data/test/lib/spec/runner/drb_command_line.rb +21 -0
  417. data/test/lib/spec/runner/execution_context.rb +17 -0
  418. data/test/lib/spec/runner/extensions/kernel.rb +17 -0
  419. data/test/lib/spec/runner/extensions/object.rb +32 -0
  420. data/test/lib/spec/runner/formatter.rb +5 -0
  421. data/test/lib/spec/runner/formatter/base_text_formatter.rb +118 -0
  422. data/test/lib/spec/runner/formatter/html_formatter.rb +219 -0
  423. data/test/lib/spec/runner/formatter/progress_bar_formatter.rb +27 -0
  424. data/test/lib/spec/runner/formatter/rdoc_formatter.rb +22 -0
  425. data/test/lib/spec/runner/formatter/specdoc_formatter.rb +23 -0
  426. data/test/lib/spec/runner/heckle_runner.rb +71 -0
  427. data/test/lib/spec/runner/heckle_runner_win.rb +10 -0
  428. data/test/lib/spec/runner/option_parser.rb +224 -0
  429. data/test/lib/spec/runner/reporter.rb +105 -0
  430. data/test/lib/spec/runner/spec_matcher.rb +25 -0
  431. data/test/lib/spec/runner/spec_parser.rb +41 -0
  432. data/test/lib/spec/runner/spec_should_raise_handler.rb +74 -0
  433. data/test/lib/spec/runner/specification.rb +114 -0
  434. data/test/lib/spec/translator.rb +87 -0
  435. data/test/lib/spec/version.rb +30 -0
  436. data/test/lib/stubba.rb +2 -0
  437. data/test/network/authconfig.rb +72 -0
  438. data/test/network/authorization.rb +138 -0
  439. data/test/network/authstore.rb +450 -0
  440. data/test/network/client/ca.rb +38 -0
  441. data/test/{client → network/client}/client.rb +107 -24
  442. data/test/network/client/dipper.rb +35 -0
  443. data/test/network/client/master.rb +627 -0
  444. data/test/{client/pelement.rb → network/client/resource.rb} +13 -29
  445. data/test/network/client_request.rb +39 -0
  446. data/test/network/daemon.rb +71 -0
  447. data/test/{server → network/handler}/bucket.rb +103 -27
  448. data/test/{server → network/handler}/ca.rb +14 -19
  449. data/test/{server → network/handler}/fileserver.rb +443 -68
  450. data/test/network/handler/handler.rb +64 -0
  451. data/test/{server → network/handler}/logger.rb +26 -26
  452. data/test/network/handler/master.rb +352 -0
  453. data/test/network/handler/report.rb +185 -0
  454. data/test/{server/pelement.rb → network/handler/resource.rb} +25 -38
  455. data/test/{server → network/handler}/runner.rb +17 -16
  456. data/test/network/rights.rb +38 -0
  457. data/test/network/server/webrick.rb +140 -0
  458. data/test/network/xmlrpc/client.rb +68 -0
  459. data/test/network/xmlrpc/processor.rb +80 -0
  460. data/test/network/xmlrpc/server.rb +28 -0
  461. data/test/network/xmlrpc/webrick_servlet.rb +26 -0
  462. data/test/other/dsl.rb +218 -0
  463. data/test/other/events.rb +22 -15
  464. data/test/other/overrides.rb +9 -14
  465. data/test/other/pgraph.rb +289 -0
  466. data/test/other/propertychange.rb +142 -0
  467. data/test/other/provider.rb +162 -0
  468. data/test/other/puppet.rb +63 -10
  469. data/test/other/relationship.rb +74 -0
  470. data/test/other/relationships.rb +199 -123
  471. data/test/other/report.rb +152 -23
  472. data/test/other/transactions.rb +824 -78
  473. data/test/puppet/conffiles.rb +16 -11
  474. data/test/puppet/defaults.rb +7 -10
  475. data/test/puppet/{error.rb → errortest.rb} +5 -8
  476. data/test/puppet/modules.rb +58 -0
  477. data/test/puppet/tc_suidmanager.rb +107 -0
  478. data/test/rails/host.rb +177 -0
  479. data/test/rails/rails.rb +27 -0
  480. data/test/rails/railsparameter.rb +62 -0
  481. data/test/rails/railsresource.rb +100 -0
  482. data/test/ral/manager/attributes.rb +296 -0
  483. data/test/ral/manager/manager.rb +55 -0
  484. data/test/ral/manager/provider.rb +54 -0
  485. data/test/ral/manager/type.rb +837 -0
  486. data/test/ral/providers/cron/crontab.rb +346 -0
  487. data/test/ral/providers/group.rb +252 -0
  488. data/test/ral/providers/host/netinfo.rb +58 -0
  489. data/test/ral/providers/host/parsed.rb +226 -0
  490. data/test/ral/providers/mount/netinfo.rb +80 -0
  491. data/test/ral/providers/mount/parsed.rb +223 -0
  492. data/test/ral/providers/nameservice.rb +33 -0
  493. data/test/ral/providers/package.rb +253 -0
  494. data/test/ral/providers/package/apt.rb +89 -0
  495. data/test/ral/providers/package/aptitude.rb +69 -0
  496. data/test/ral/providers/package/aptrpm.rb +89 -0
  497. data/test/ral/providers/package/dpkg.rb +64 -0
  498. data/test/ral/providers/parsedfile.rb +668 -0
  499. data/test/ral/providers/parsedport.rb +233 -0
  500. data/test/ral/providers/provider.rb +423 -0
  501. data/test/{types → ral/providers}/service.rb +20 -121
  502. data/test/ral/providers/service/base.rb +75 -0
  503. data/test/ral/providers/sshkey/parsed.rb +111 -0
  504. data/test/ral/providers/user.rb +567 -0
  505. data/test/ral/providers/user/useradd.rb +250 -0
  506. data/test/ral/types/basic.rb +90 -0
  507. data/test/ral/types/component.rb +113 -0
  508. data/test/ral/types/cron.rb +480 -0
  509. data/test/{types → ral/types}/exec.rb +278 -82
  510. data/test/ral/types/file.rb +1799 -0
  511. data/test/ral/types/file/target.rb +363 -0
  512. data/test/{types → ral/types}/filebucket.rb +15 -17
  513. data/test/{types → ral/types}/fileignoresource.rb +9 -15
  514. data/test/ral/types/filesources.rb +1046 -0
  515. data/test/ral/types/group.rb +169 -0
  516. data/test/ral/types/host.rb +155 -0
  517. data/test/ral/types/mount.rb +312 -0
  518. data/test/ral/types/package.rb +85 -0
  519. data/test/ral/types/parameter.rb +172 -0
  520. data/test/ral/types/port.rb +148 -0
  521. data/test/ral/types/property.rb +343 -0
  522. data/test/ral/types/resources.rb +221 -0
  523. data/test/{types → ral/types}/schedule.rb +34 -12
  524. data/test/ral/types/service.rb +37 -0
  525. data/test/{types → ral/types}/sshkey.rb +75 -65
  526. data/test/ral/types/tidy.rb +240 -0
  527. data/test/ral/types/user.rb +493 -0
  528. data/test/{types → ral/types}/yumrepo.rb +7 -11
  529. data/test/{types → ral/types}/zone.rb +45 -45
  530. data/test/tagging/tagging.rb +17 -26
  531. data/test/util/autoload.rb +130 -0
  532. data/test/util/classgen.rb +227 -0
  533. data/test/{other → util}/config.rb +373 -113
  534. data/test/util/execution.rb +34 -0
  535. data/test/util/features.rb +94 -0
  536. data/test/util/fileparsing.rb +677 -0
  537. data/test/{other → util}/filetype.rb +9 -12
  538. data/test/util/graph.rb +108 -0
  539. data/test/{other → util}/inifile.rb +24 -11
  540. data/test/util/loadedfile.rb +106 -0
  541. data/test/{other → util}/log.rb +96 -50
  542. data/test/{other → util}/metrics.rb +7 -17
  543. data/test/util/package.rb +27 -0
  544. data/test/util/pidlock.rb +126 -0
  545. data/test/util/posixtest.rb +173 -0
  546. data/test/util/storage.rb +123 -0
  547. data/test/util/subclass_loader.rb +100 -0
  548. data/test/util/utiltest.rb +368 -0
  549. metadata +449 -169
  550. data/examples/code/classing +0 -35
  551. data/examples/code/failers/badclassnoparam +0 -10
  552. data/examples/code/failers/badclassparam +0 -10
  553. data/examples/code/failers/badcompnoparam +0 -9
  554. data/examples/code/failers/badcompparam +0 -9
  555. data/examples/code/failers/badtypeparam +0 -3
  556. data/examples/code/failers/noobjectrvalue +0 -1
  557. data/examples/code/snippets/aliastest.pp +0 -16
  558. data/examples/code/snippets/argumentdefaults +0 -14
  559. data/examples/code/snippets/casestatement.pp +0 -58
  560. data/examples/code/snippets/classheirarchy.pp +0 -15
  561. data/examples/code/snippets/classincludes.pp +0 -17
  562. data/examples/code/snippets/classpathtest +0 -11
  563. data/examples/code/snippets/componentmetaparams.pp +0 -11
  564. data/examples/code/snippets/deepclassheirarchy.pp +0 -23
  565. data/examples/code/snippets/defineoverrides.pp +0 -17
  566. data/examples/code/snippets/dirchmod +0 -19
  567. data/examples/code/snippets/emptyclass.pp +0 -9
  568. data/examples/code/snippets/emptyexec.pp +0 -3
  569. data/examples/code/snippets/failmissingexecpath.pp +0 -13
  570. data/examples/code/snippets/falsevalues.pp +0 -3
  571. data/examples/code/snippets/filecreate +0 -11
  572. data/examples/code/snippets/implicititeration +0 -15
  573. data/examples/code/snippets/multipleinstances +0 -7
  574. data/examples/code/snippets/namevartest +0 -9
  575. data/examples/code/snippets/scopetest +0 -13
  576. data/examples/code/snippets/selectorvalues.pp +0 -42
  577. data/examples/code/snippets/simpledefaults +0 -5
  578. data/examples/code/snippets/simpleselector +0 -38
  579. data/examples/code/snippets/singleary.pp +0 -19
  580. data/examples/code/snippets/singlequote.pp +0 -11
  581. data/examples/code/snippets/singleselector.pp +0 -22
  582. data/examples/code/snippets/tag.pp +0 -9
  583. data/examples/code/snippets/tagged.pp +0 -35
  584. data/lib/puppet/client.rb +0 -177
  585. data/lib/puppet/client/ca.rb +0 -21
  586. data/lib/puppet/client/dipper.rb +0 -76
  587. data/lib/puppet/client/file.rb +0 -20
  588. data/lib/puppet/client/log.rb +0 -17
  589. data/lib/puppet/client/master.rb +0 -531
  590. data/lib/puppet/client/runner.rb +0 -17
  591. data/lib/puppet/client/status.rb +0 -7
  592. data/lib/puppet/event-loop.rb +0 -1
  593. data/lib/puppet/filetype.rb +0 -308
  594. data/lib/puppet/inifile.rb +0 -201
  595. data/lib/puppet/log.rb +0 -524
  596. data/lib/puppet/metric.rb +0 -132
  597. data/lib/puppet/networkclient.rb +0 -175
  598. data/lib/puppet/parsedfile.rb +0 -58
  599. data/lib/puppet/parser/ast/classdef.rb +0 -79
  600. data/lib/puppet/parser/ast/compdef.rb +0 -75
  601. data/lib/puppet/parser/ast/nodedef.rb +0 -73
  602. data/lib/puppet/parser/ast/objectdef.rb +0 -284
  603. data/lib/puppet/parser/ast/objectref.rb +0 -77
  604. data/lib/puppet/rails/database.rb +0 -40
  605. data/lib/puppet/rails/rails_object.rb +0 -42
  606. data/lib/puppet/rails/rails_parameter.rb +0 -5
  607. data/lib/puppet/server.rb +0 -196
  608. data/lib/puppet/server/authconfig.rb +0 -177
  609. data/lib/puppet/server/authstore.rb +0 -226
  610. data/lib/puppet/server/filebucket.rb +0 -155
  611. data/lib/puppet/server/pelement.rb +0 -188
  612. data/lib/puppet/server/report.rb +0 -184
  613. data/lib/puppet/server/rights.rb +0 -78
  614. data/lib/puppet/server/servlet.rb +0 -274
  615. data/lib/puppet/statechange.rb +0 -129
  616. data/lib/puppet/storage.rb +0 -98
  617. data/lib/puppet/type/nameservice.rb +0 -264
  618. data/lib/puppet/type/nameservice/netinfo.rb +0 -232
  619. data/lib/puppet/type/nameservice/objectadd.rb +0 -146
  620. data/lib/puppet/type/nameservice/posix.rb +0 -12
  621. data/lib/puppet/type/nameservice/pw.rb +0 -107
  622. data/lib/puppet/type/package/apple.rb +0 -41
  623. data/lib/puppet/type/package/apt.rb +0 -107
  624. data/lib/puppet/type/package/blastwave.rb +0 -136
  625. data/lib/puppet/type/package/darwinport.rb +0 -97
  626. data/lib/puppet/type/package/dpkg.rb +0 -113
  627. data/lib/puppet/type/package/freebsd.rb +0 -19
  628. data/lib/puppet/type/package/gem.rb +0 -119
  629. data/lib/puppet/type/package/openbsd.rb +0 -112
  630. data/lib/puppet/type/package/ports.rb +0 -103
  631. data/lib/puppet/type/package/rpm.rb +0 -121
  632. data/lib/puppet/type/package/sun.rb +0 -174
  633. data/lib/puppet/type/package/sunfreeware.rb +0 -7
  634. data/lib/puppet/type/package/yum.rb +0 -52
  635. data/lib/puppet/type/parsedtype/host.rb +0 -144
  636. data/lib/puppet/type/parsedtype/mount.rb +0 -271
  637. data/lib/puppet/type/parsedtype/port.rb +0 -261
  638. data/lib/puppet/type/parsedtype/sshkey.rb +0 -123
  639. data/lib/puppet/type/service/base.rb +0 -12
  640. data/lib/puppet/type/service/debian.rb +0 -46
  641. data/lib/puppet/type/service/redhat.rb +0 -38
  642. data/lib/puppet/type/state.rb +0 -393
  643. data/lib/puppet/type/symlink.rb +0 -186
  644. data/test/client/master.rb +0 -207
  645. data/test/language/rails.rb +0 -105
  646. data/test/other/parsedfile.rb +0 -58
  647. data/test/other/storage.rb +0 -100
  648. data/test/puppet/utiltest.rb +0 -299
  649. data/test/puppettest.rb +0 -1170
  650. data/test/server/authconfig.rb +0 -56
  651. data/test/server/authstore.rb +0 -218
  652. data/test/server/master.rb +0 -201
  653. data/test/server/report.rb +0 -93
  654. data/test/server/rights.rb +0 -41
  655. data/test/server/server.rb +0 -152
  656. data/test/test +0 -61
  657. data/test/types/basic.rb +0 -117
  658. data/test/types/component.rb +0 -298
  659. data/test/types/cron.rb +0 -718
  660. data/test/types/file.rb +0 -1314
  661. data/test/types/filesources.rb +0 -590
  662. data/test/types/group.rb +0 -323
  663. data/test/types/host.rb +0 -186
  664. data/test/types/mount.rb +0 -294
  665. data/test/types/package.rb +0 -538
  666. data/test/types/parameter.rb +0 -107
  667. data/test/types/port.rb +0 -201
  668. data/test/types/query.rb +0 -101
  669. data/test/types/state.rb +0 -92
  670. data/test/types/symlink.rb +0 -120
  671. data/test/types/tidy.rb +0 -102
  672. data/test/types/type.rb +0 -469
  673. data/test/types/user.rb +0 -563
@@ -0,0 +1,20 @@
1
+ # This file is only necessary if your clients listen.
2
+ # Note that it affects all puppet daemons, including puppetmasterd,
3
+ # which is why puppetmaster is in there.
4
+ [fileserver]
5
+ allow *.madstop.com
6
+
7
+ [puppetmaster]
8
+ allow *.madstop.com
9
+
10
+ [pelementserver]
11
+ allow puppet.madstop.com
12
+
13
+ [puppetrunner]
14
+ allow culain.madstop.com
15
+
16
+ [puppetbucket]
17
+ allow *.madstop.com
18
+
19
+ [puppetreports]
20
+ allow *.madstop.com
@@ -0,0 +1,4 @@
1
+ [puppet]
2
+ report = true
3
+ factsync = true
4
+ pluginsync = true
@@ -1,10 +1,7 @@
1
- [server]
2
- port = 8139
3
- handlers = master, ca
1
+ [puppetmasterd]
2
+ reports = store,rrdgraph,tagmail,log
4
3
 
5
- [global]
6
- config = /etc/puppet
7
- var = /var/puppet
8
-
9
- [master]
10
- File = $config/manifest.pp
4
+ [ldap]
5
+ ldapnodes = true
6
+ ldapserver = culain.madstop.com
7
+ ldapbase = dc=madstop,dc=com
@@ -0,0 +1 @@
1
+ all: user@domain.com
@@ -89,6 +89,48 @@
89
89
  (make-local-variable 'paragraph-ignore-fill-prefix)
90
90
  (setq paragraph-ignore-fill-prefix t))
91
91
 
92
+ (defun puppet-indent-line ()
93
+ "Indent current line as puppet code."
94
+ (interactive)
95
+ (beginning-of-line)
96
+ (if (bobp)
97
+ (indent-line-to 0) ; First line is always non-indented
98
+ (let ((not-indented t) cur-indent)
99
+ (if (looking-at "^.*}") ; If the line we are looking at is the end of
100
+ ; a block, then decrease the indentation
101
+ (progn
102
+ (save-excursion
103
+ (forward-line -1)
104
+
105
+ (if (looking-at "^.*}")
106
+ (progn
107
+ (setq cur-indent (- (current-indentation) 2))
108
+ (setq not-indented nil))
109
+ (setq cur-indent (- (current-indentation) 2))))
110
+ (if (< cur-indent 0) ; We can't indent past the left margin
111
+ (setq cur-indent 0)))
112
+ (save-excursion
113
+ (while not-indented ; Iterate backwards until we find an
114
+ ; indentation hint
115
+ (forward-line -1)
116
+ (if (looking-at "^.*}") ; This hint indicates that we need to
117
+ ; indent at the level of the END_ token
118
+ (progn
119
+ (setq cur-indent (current-indentation))
120
+ (setq not-indented nil))
121
+ (if (looking-at "^.*{") ; This hint indicates that we need to
122
+ ; indent an extra level
123
+ (progn
124
+ ; Do the actual indenting
125
+ (setq cur-indent (+ (current-indentation) 2))
126
+ (setq not-indented nil))
127
+ (if (bobp)
128
+ (setq not-indented nil)))))))
129
+ (if cur-indent
130
+ (indent-line-to cur-indent)
131
+ (indent-line-to 0)))))
132
+
133
+
92
134
  ;;;###autoload
93
135
  (defun puppet-mode ()
94
136
  "Major mode for editing puppet manifests.
@@ -101,9 +143,12 @@ The variable puppet-indent-level controls the amount of indentation.
101
143
  (setq mode-name "Puppet")
102
144
  (setq major-mode 'puppet-mode)
103
145
  (puppet-mode-variables)
104
-
146
+ ;; Register our indentation function
147
+ (set (make-local-variable 'indent-line-function) 'puppet-indent-line)
105
148
  (run-hooks 'puppet-mode-hook))
106
149
 
150
+
151
+
107
152
  (cond
108
153
  ((featurep 'font-lock)
109
154
  (or (boundp 'font-lock-variable-name-face)
@@ -0,0 +1,15 @@
1
+ ^\w{3} [ :0-9]{11} [._[:alnum:]-]+ puppetmasterd\[[0-9]+\]: Starting Puppet server version [.0-9]+$
2
+ ^\w{3} [ :0-9]{11} [._[:alnum:]-]+ puppetmasterd\[[0-9]+\]: Compiled configuration for [._[:alnum:]-]+ in [.0-9]+ seconds$
3
+ ^\w{3} [ :0-9]{11} [._[:alnum:]-]+ puppetmasterd\[[0-9]+\]: Caught TERM; shutting down$
4
+ ^\w{3} [ :0-9]{11} [._[:alnum:]-]+ puppetmasterd\[[0-9]+\]: Shutting down$
5
+ ^\w{3} [ :0-9]{11} [._[:alnum:]-]+ puppetd\[[0-9]+\]: Starting Puppet client version [.0-9]+$
6
+ ^\w{3} [ :0-9]{11} [._[:alnum:]-]+ puppetd\[[0-9]+\]: getting config$
7
+ ^\w{3} [ :0-9]{11} [._[:alnum:]-]+ puppetd\[[0-9]+\]: Caching configuration at [\/._[:alnum:]-]+$
8
+ ^\w{3} [ :0-9]{11} [._[:alnum:]-]+ puppetd\[[0-9]+\]: Loaded state in [.0-9]+ seconds$
9
+ ^\w{3} [ :0-9]{11} [._[:alnum:]-]+ puppetd\[[0-9]+\]: Calling puppetmaster.getconfig$
10
+ ^\w{3} [ :0-9]{11} [._[:alnum:]-]+ puppetd\[[0-9]+\]: Retrieved configuration in [.0-9]+ seconds$
11
+ ^\w{3} [ :0-9]{11} [._[:alnum:]-]+ puppetd\[[0-9]+\]: Starting configuration run$
12
+ ^\w{3} [ :0-9]{11} [._[:alnum:]-]+ puppetd\[[0-9]+\]: Finished configuration run in [.0-9]+ seconds$
13
+ ^\w{3} [ :0-9]{11} [._[:alnum:]-]+ puppetd\[[0-9]+\]: Caught (TERM|INT); shutting down$
14
+ ^\w{3} [ :0-9]{11} [._[:alnum:]-]+ puppetd\[[0-9]+\]: Shutting down$
15
+ ^\w{3} [ :0-9]{11} [._[:alnum:]-]+ puppetd\[[0-9]+\]: Restarting with .*$
@@ -1,4 +1,4 @@
1
- #!/usr/bin/ruby
1
+ #!/usr/bin/env ruby
2
2
 
3
3
  #
4
4
  # = Synopsis
@@ -47,18 +47,10 @@
47
47
  # Licensed under the GNU Public License
48
48
 
49
49
  require 'puppet'
50
- require 'puppet/server'
51
- require 'puppet/client'
50
+ require 'puppet/network/handler'
51
+ require 'puppet/network/client'
52
52
  require 'getoptlong'
53
53
 
54
- $haveusage = true
55
-
56
- begin
57
- require 'rdoc/usage'
58
- rescue LoadError
59
- $haveusage = false
60
- end
61
-
62
54
  options = [
63
55
  [ "--debug", "-d", GetoptLong::NO_ARGUMENT ],
64
56
  [ "--help", "-h", GetoptLong::NO_ARGUMENT ],
@@ -92,7 +84,7 @@ begin
92
84
  puts "%s" % Puppet.version
93
85
  exit
94
86
  when "--help"
95
- if $haveusage
87
+ if Puppet.features.usage?
96
88
  RDoc::usage && exit
97
89
  else
98
90
  puts "No help available unless you have RDoc::usage installed"
@@ -101,16 +93,16 @@ begin
101
93
  when "--use-nodes"
102
94
  master[:UseNodes] = true
103
95
  when "--verbose"
104
- Puppet::Log.level = :info
105
- Puppet::Log.newdestination(:console)
96
+ Puppet::Util::Log.level = :info
97
+ Puppet::Util::Log.newdestination(:console)
106
98
  verbose = true
107
99
  when "--debug"
108
- Puppet::Log.level = :debug
109
- Puppet::Log.newdestination(:console)
100
+ Puppet::Util::Log.level = :debug
101
+ Puppet::Util::Log.newdestination(:console)
110
102
  debug = true
111
103
  when "--logdest"
112
104
  begin
113
- Puppet::Log.newdestination arg
105
+ Puppet::Util::Log.newdestination arg
114
106
  setdest=true
115
107
  rescue => detail
116
108
  $stderr.puts detail.to_s
@@ -121,9 +113,9 @@ begin
121
113
  }
122
114
  rescue GetoptLong::InvalidOption => detail
123
115
  $stderr.puts "Try '#{$0} --help'"
124
- #if $haveusage
125
- # RDoc::usage(1,'usage')
126
- #end
116
+ if Puppet.features.usage?
117
+ RDoc::usage(1,'usage')
118
+ end
127
119
  exit(1)
128
120
  end
129
121
 
@@ -155,7 +147,7 @@ unless ARGV.length > 0
155
147
  end
156
148
 
157
149
  unless setdest
158
- Puppet::Log.newdestination(:syslog)
150
+ Puppet::Util::Log.newdestination(:syslog)
159
151
  end
160
152
 
161
153
  master[:Manifest] = ARGV.shift
@@ -177,14 +169,14 @@ end
177
169
  master[:Classes] = classes
178
170
 
179
171
  begin
180
- server = Puppet::Server::Master.new(master)
172
+ server = Puppet::Network::Handler.master.new(master)
181
173
  rescue => detail
182
174
  $stderr.puts detail
183
175
  exit(1)
184
176
  end
185
177
 
186
178
  begin
187
- client = Puppet::Client::MasterClient.new(
179
+ client = Puppet::Network::Client.master.new(
188
180
  :Master => server,
189
181
  :Cache => false
190
182
  )
@@ -2,11 +2,10 @@
2
2
  " Filename: puppet.vim
3
3
  " Language: puppet configuration file
4
4
  " Maintainer: Luke Kanies <luke@madstop.com>
5
- " URL: http://reductivelabs.com/svn/puppet/trunk/ext/vim/puppet.vim
5
+ " URL:
6
6
  " Last Change:
7
7
  " Version:
8
8
  "
9
- " $Id: puppet.vim 875 2006-02-07 23:56:16Z luke $
10
9
 
11
10
  " Copied from the cfengine, ruby, and perl syntax files
12
11
  " For version 5.x: Clear all syntax items
@@ -22,6 +21,9 @@ syn keyword puppetDefType class define site node inherits contained
22
21
  syn keyword puppetInherits inherits contained
23
22
  syn region puppetDefArguments start="(" end=")" contains=puppetArgument
24
23
  syn match puppetArgument "\w\+" contained
24
+ syn match puppetArgument "\$\w\+" contained
25
+ syn match puppetArgument "'[^']+'" contained
26
+ syn match puppetArgument '"[^"]+"' contained
25
27
  syn match puppetDefName "\w\+" contained
26
28
 
27
29
  syn match puppetInstance "\w\+\s*{" contains=puppetTypeBrace,puppetTypeName,puppetTypeDefault
data/install.rb CHANGED
@@ -30,7 +30,7 @@
30
30
  # 5) Install all library files ending in .rb from lib/ into Ruby's
31
31
  # site_lib/version directory.
32
32
  #
33
- # $Id: install.rb 1266 2006-06-13 23:07:18Z luke $
33
+ # $Id: install.rb 1479 2006-08-21 23:04:32Z luke $
34
34
  #++
35
35
 
36
36
  require 'rbconfig'
@@ -91,6 +91,7 @@ def check_prereqs
91
91
  require pre
92
92
  rescue LoadError
93
93
  puts "Could not load %s; cannot install" % pre
94
+ exit -1
94
95
  end
95
96
  }
96
97
  end
@@ -1,10 +1,14 @@
1
+ # see the bottom of the file for further inclusions
1
2
  require 'singleton'
2
- require 'puppet/event-loop'
3
+ require 'facter'
4
+ require 'puppet/error'
5
+ require 'puppet/external/event-loop'
3
6
  require 'puppet/util'
4
- require 'puppet/log'
5
- require 'puppet/config'
6
-
7
- # see the bottom of the file for further inclusions
7
+ require 'puppet/util/log'
8
+ require 'puppet/util/autoload'
9
+ require 'puppet/util/config'
10
+ require 'puppet/util/feature'
11
+ require 'puppet/util/suidmanager'
8
12
 
9
13
  #------------------------------------------------------------
10
14
  # the top-level module
@@ -13,8 +17,9 @@ require 'puppet/config'
13
17
  # preferences for things like debugging
14
18
  #
15
19
  # it's also a place to find top-level commands like 'debug'
20
+
16
21
  module Puppet
17
- PUPPETVERSION = '0.18.4'
22
+ PUPPETVERSION = '0.22.4'
18
23
 
19
24
  def Puppet.version
20
25
  return PUPPETVERSION
@@ -29,63 +34,23 @@ module Puppet
29
34
  # To keep a copy of arguments. Set within Config#addargs, because I'm
30
35
  # lazy.
31
36
  attr_accessor :args
32
- end
33
-
34
- class Error < RuntimeError
35
- attr_accessor :stack, :line, :file
36
- attr_writer :backtrace
37
-
38
- def backtrace
39
- if defined? @backtrace
40
- return @backtrace
41
- else
42
- return super
43
- end
44
- end
45
-
46
- def initialize(message)
47
- @message = message
48
- end
49
-
50
- def to_s
51
- str = nil
52
- if defined? @file and defined? @line and @file and @line
53
- str = "%s in file %s at line %s" %
54
- [@message.to_s, @file, @line]
55
- elsif defined? @line and @line
56
- str = "%s at line %s" %
57
- [@message.to_s, @line]
58
- else
59
- str = @message.to_s
60
- end
61
-
62
- return str
63
- end
64
- end
65
-
66
- class DevError < Error; end
67
-
68
- def self.name
69
- unless defined? @name
70
- @name = $0.gsub(/.+#{File::SEPARATOR}/,'').sub(/\.rb$/, '')
71
- end
72
-
73
- return @name
37
+ attr_reader :features
38
+ attr_writer :name
74
39
  end
75
40
 
76
41
  # the hash that determines how our system behaves
77
- @@config = Puppet::Config.new
42
+ @@config = Puppet::Util::Config.new
78
43
 
79
44
  # The services running in this process.
80
45
  @services ||= []
81
46
 
82
47
  # define helper messages for each of the message levels
83
- Puppet::Log.eachlevel { |level|
48
+ Puppet::Util::Log.eachlevel { |level|
84
49
  define_method(level,proc { |args|
85
50
  if args.is_a?(Array)
86
51
  args = args.join(" ")
87
52
  end
88
- Puppet::Log.create(
53
+ Puppet::Util::Log.create(
89
54
  :level => level,
90
55
  :message => args
91
56
  )
@@ -96,157 +61,23 @@ module Puppet
96
61
  # I keep wanting to use Puppet.error
97
62
  # XXX this isn't actually working right now
98
63
  alias :error :err
64
+
65
+ # The feature collection
66
+ @features = Puppet::Util::Feature.new('puppet/feature')
67
+
68
+ # Load the base features.
69
+ require 'puppet/feature/base'
99
70
 
100
71
  # Store a new default value.
101
72
  def self.setdefaults(section, hash)
102
73
  @@config.setdefaults(section, hash)
103
74
  end
104
75
 
105
- # If we're running the standalone puppet process as a non-root user,
106
- # use basedirs that are in the user's home directory.
107
- conf = nil
108
- var = nil
109
- if self.name == "puppet" and Process.uid != 0
110
- conf = File.expand_path("~/.puppet")
111
- var = File.expand_path("~/.puppet/var")
112
- else
113
- # Else, use system-wide directories.
114
- conf = "/etc/puppet"
115
- var = "/var/puppet"
116
- end
117
-
118
- self.setdefaults(:puppet,
119
- :confdir => [conf, "The main Puppet configuration directory."],
120
- :vardir => [var, "Where Puppet stores dynamic and growing data."]
121
- )
122
-
123
- if self.name == "puppetmasterd"
124
- self.setdefaults(:puppetmasterd,
125
- :logdir => {:default => "$vardir/log",
126
- :mode => 0750,
127
- :owner => "$user",
128
- :group => "$group",
129
- :desc => "The Puppet log directory."
130
- }
131
- )
132
- else
133
- self.setdefaults(:puppet,
134
- :logdir => ["$vardir/log", "The Puppet log directory."]
135
- )
136
- end
137
-
138
- self.setdefaults(:puppet,
139
- :statedir => { :default => "$vardir/state",
140
- :mode => 01777,
141
- :desc => "The directory where Puppet state is stored. Generally,
142
- this directory can be removed without causing harm (although it
143
- might result in spurious service restarts)."
144
- },
145
- :rundir => { :default => "$vardir/run",
146
- :mode => 01777,
147
- :desc => "Where Puppet PID files are kept."
148
- },
149
- :lockdir => { :default => "$vardir/locks",
150
- :mode => 01777,
151
- :desc => "Where lock files are kept."
152
- },
153
- :statefile => { :default => "$statedir/state.yaml",
154
- :mode => 0660,
155
- :desc => "Where puppetd and puppetmasterd store state associated
156
- with the running configuration. In the case of puppetmasterd,
157
- this file reflects the state discovered through interacting
158
- with clients."
159
- },
160
- :ssldir => {
161
- :default => "$confdir/ssl",
162
- :mode => 0771,
163
- :owner => "root",
164
- :desc => "Where SSL certificates are kept."
165
- },
166
- :genconfig => [false,
167
- "Whether to just print a configuration to stdout and exit. Only makes
168
- sense when used interactively. Takes into account arguments specified
169
- on the CLI."],
170
- :genmanifest => [false,
171
- "Whether to just print a manifest to stdout and exit. Only makes
172
- sense when used interactively. Takes into account arguments specified
173
- on the CLI."],
174
- :color => [true, "Whether to use ANSI colors when logging to the console."],
175
- :mkusers => [false,
176
- "Whether to create the necessary user and group that puppetd will
177
- run as."]
178
- )
179
-
180
- # Define the config default.
181
- self.setdefaults(self.name,
182
- :config => ["$confdir/#{self.name}.conf",
183
- "The configuration file for #{self.name}."]
184
- )
185
-
186
- self.setdefaults("puppetmasterd",
187
- :user => ["puppet", "The user puppetmasterd should run as."],
188
- :group => ["puppet", "The group puppetmasterd should run as."],
189
- :manifestdir => ["$confdir/manifests",
190
- "Where puppetmasterd looks for its manifests."],
191
- :manifest => ["$manifestdir/site.pp",
192
- "The entry-point manifest for puppetmasterd."],
193
- :masterlog => { :default => "$logdir/puppetmaster.log",
194
- :owner => "$user",
195
- :group => "$group",
196
- :mode => 0660,
197
- :desc => "Where puppetmasterd logs. This is generally not used,
198
- since syslog is the default log destination."
199
- },
200
- :masterhttplog => { :default => "$logdir/masterhttp.log",
201
- :owner => "$user",
202
- :group => "$group",
203
- :mode => 0660,
204
- :create => true,
205
- :desc => "Where the puppetmasterd web server logs."
206
- },
207
- :masterport => [8140, "Which port puppetmasterd listens on."],
208
- :parseonly => [false, "Just check the syntax of the manifests."]
209
- )
210
-
211
- self.setdefaults("puppetd",
212
- :localconfig => { :default => "$confdir/localconfig",
213
- :owner => "root",
214
- :mode => 0660,
215
- :desc => "Where puppetd caches the local configuration. An
216
- extension indicating the cache format is added automatically."},
217
- :classfile => { :default => "$confdir/classes.txt",
218
- :owner => "root",
219
- :mode => 0644,
220
- :desc => "The file in which puppetd stores a list of the classes
221
- associated with the retrieved configuratiion. Can be loaded in
222
- the separate ``puppet`` executable using the ``--loadclasses``
223
- option."},
224
- :puppetdlog => { :default => "$logdir/puppetd.log",
225
- :owner => "root",
226
- :mode => 0640,
227
- :desc => "The log file for puppetd. This is generally not used."
228
- },
229
- :httplog => { :default => "$logdir/http.log",
230
- :owner => "root",
231
- :mode => 0640,
232
- :desc => "Where the puppetd web server logs."
233
- },
234
- :server => ["puppet",
235
- "The server to which server puppetd should connect"],
236
- :ignoreschedules => [false,
237
- "Boolean; whether puppetd should ignore schedules. This is useful
238
- for initial puppetd runs."],
239
- :puppetport => [8139, "Which port puppetd listens on."],
240
- :noop => [false, "Whether puppetd should be run in noop mode."],
241
- :runinterval => [1800, # 30 minutes
242
- "How often puppetd applies the client configuration; in seconds"]
243
- )
244
-
245
76
  # configuration parameter access and stuff
246
77
  def self.[](param)
247
78
  case param
248
79
  when :debug:
249
- if Puppet::Log.level == :debug
80
+ if Puppet::Util::Log.level == :debug
250
81
  return true
251
82
  else
252
83
  return false
@@ -267,9 +98,9 @@ module Puppet
267
98
 
268
99
  def self.debug=(value)
269
100
  if value
270
- Puppet::Log.level=(:debug)
101
+ Puppet::Util::Log.level=(:debug)
271
102
  else
272
- Puppet::Log.level=(:notice)
103
+ Puppet::Util::Log.level=(:notice)
273
104
  end
274
105
  end
275
106
 
@@ -277,7 +108,33 @@ module Puppet
277
108
  @@config
278
109
  end
279
110
 
111
+ # Load all of the configuration parameters.
112
+ require 'puppet/configuration'
113
+
280
114
  def self.genconfig
115
+ if Puppet[:configprint] != ""
116
+ val = Puppet[:configprint]
117
+ if val == "all"
118
+ hash = {}
119
+ Puppet.config.each do |name, obj|
120
+ val = obj.value
121
+ case val
122
+ when true, false, "": val = val.inspect
123
+ end
124
+ hash[name] = val
125
+ end
126
+ hash.sort { |a,b| a[0].to_s <=> b[0].to_s }.each do |name, val|
127
+ puts "%s = %s" % [name, val]
128
+ end
129
+ elsif val =~ /,/
130
+ val.split(/\s*,\s*/).sort.each do |v|
131
+ puts "%s = %s" % [v, Puppet[v]]
132
+ end
133
+ else
134
+ puts Puppet[val]
135
+ end
136
+ exit(0)
137
+ end
281
138
  if Puppet[:genconfig]
282
139
  puts Puppet.config.to_config
283
140
  exit(0)
@@ -332,6 +189,7 @@ module Puppet
332
189
  command = $0 + " " + self.args.join(" ")
333
190
  Puppet.notice "Restarting with '%s'" % command
334
191
  Puppet.shutdown(false)
192
+ Puppet::Util::Log.reopen
335
193
  exec(command)
336
194
  end
337
195
 
@@ -341,13 +199,15 @@ module Puppet
341
199
  [:INT, :TERM].each do |signal|
342
200
  trap(signal) do
343
201
  Puppet.notice "Caught #{signal}; shutting down"
202
+ Puppet.debug "Signal caught here:"
203
+ caller.each { |l| Puppet.debug l }
344
204
  Puppet.shutdown
345
205
  end
346
206
  end
347
207
 
348
208
  # Handle restarting.
349
209
  trap(:HUP) do
350
- if client = @services.find { |s| s.is_a? Puppet::Client::MasterClient } and client.running?
210
+ if client = @services.find { |s| s.is_a? Puppet::Network::Client::Master } and client.running?
351
211
  client.restart
352
212
  else
353
213
  Puppet.restart
@@ -358,7 +218,7 @@ module Puppet
358
218
  trap(:USR1) do
359
219
  done = 0
360
220
  Puppet.notice "Caught USR1; triggering client run"
361
- @services.find_all { |s| s.is_a? Puppet::Client }.each do |client|
221
+ @services.find_all { |s| s.is_a? Puppet::Network::Client }.each do |client|
362
222
  if client.respond_to? :running?
363
223
  if client.running?
364
224
  Puppet.info "Ignoring running %s" % client.class
@@ -380,6 +240,10 @@ module Puppet
380
240
  Puppet.notice "No clients were run"
381
241
  end
382
242
  end
243
+
244
+ trap(:USR2) do
245
+ Puppet::Util::Log.reopen
246
+ end
383
247
  end
384
248
 
385
249
  # Shutdown our server process, meaning stop all services and all threads.
@@ -399,6 +263,7 @@ module Puppet
399
263
 
400
264
  # Stop our services
401
265
  defined? @services and @services.each do |svc|
266
+ next unless svc.respond_to?(:shutdown)
402
267
  begin
403
268
  timeout(20) do
404
269
  svc.shutdown
@@ -428,12 +293,12 @@ module Puppet
428
293
  # waiting for someone, somewhere, to generate events of some kind.
429
294
  def self.start(block = true)
430
295
  # Starting everything in its own thread, fwiw
431
- defined? @services and @services.each do |svc|
296
+ defined? @services and @services.dup.each do |svc|
432
297
  newthread do
433
298
  begin
434
299
  svc.start
435
300
  rescue => detail
436
- if Puppet[:debug]
301
+ if Puppet[:trace]
437
302
  puts detail.backtrace
438
303
  end
439
304
  @services.delete svc
@@ -442,15 +307,15 @@ module Puppet
442
307
  end
443
308
  end
444
309
 
310
+ # We need to give the services a chance to register their timers before
311
+ # we try to start monitoring them.
312
+ sleep 0.5
313
+
445
314
  unless @services.length > 0
446
315
  Puppet.notice "No remaining services; exiting"
447
316
  exit(1)
448
317
  end
449
318
 
450
- # We need to give the services a chance to register their timers before
451
- # we try to start monitoring them.
452
- sleep 0.5
453
-
454
319
  if defined? @timers and ! @timers.empty?
455
320
  @timers.each do |timer|
456
321
  EventLoop.current.monitor_timer timer
@@ -510,8 +375,8 @@ module Puppet
510
375
  end
511
376
 
512
377
  # Create a new type. Just proxy to the Type class.
513
- def self.newtype(name, parent = nil, &block)
514
- Puppet::Type.newtype(name, parent, &block)
378
+ def self.newtype(name, options = {}, &block)
379
+ Puppet::Type.newtype(name, options, &block)
515
380
  end
516
381
 
517
382
  # Retrieve a type by name. Just proxy to the Type class.
@@ -520,8 +385,12 @@ module Puppet
520
385
  end
521
386
  end
522
387
 
523
- require 'puppet/server'
524
388
  require 'puppet/type'
525
- require 'puppet/storage'
389
+ require 'puppet/modules'
390
+ require 'puppet/util/storage'
391
+ require 'puppet/parser/interpreter'
392
+ if Puppet[:storeconfigs]
393
+ require 'puppet/rails'
394
+ end
526
395
 
527
- # $Id: puppet.rb 1426 2006-07-22 21:10:47Z luke $
396
+ # $Id: puppet.rb 2446 2007-05-01 03:52:33Z luke $