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
@@ -9,7 +9,7 @@
9
9
  # = Usage
10
10
  #
11
11
  # puppetca [-h|--help] [-V|--version] [-d|--debug] [-v|--verbose]
12
- # [-g|--generate] [-l|--list] [-s|--sign]
12
+ # [-g|--generate] [-l|--list] [-s|--sign] [-r|--revoke]
13
13
  # [-c|--clean] [host]
14
14
  #
15
15
  # = Description
@@ -25,13 +25,20 @@
25
25
  # is also a valid long argument. For example, 'ssldir' is a valid configuration
26
26
  # parameter, so you can specify '--ssldir <directory>' as an argument.
27
27
  #
28
- # See the configuration file for the full list of acceptable parameters.
28
+ # See the configuration file documentation at
29
+ # http://reductivelabs.com/projects/puppet/reference/configref.html for
30
+ # the full list of acceptable parameters. A commented list of all
31
+ # configuration options can also be generated by running puppetca with
32
+ # '--genconfig'.
29
33
  #
30
34
  # all::
31
35
  # Operate on all outstanding requests. Only makes sense with '--sign'.
32
36
  #
33
37
  # clean::
34
- # Remove all traces of a host. This is useful when rebuilding hosts.
38
+ # Remove all files related to a host from puppetca's storage. This is
39
+ # useful when rebuilding hosts, since new certificate signing requests
40
+ # will only be honored if puppetca does not have a copy of a signed
41
+ # certificate for that host. The certificate of the host remains valid.
35
42
  #
36
43
  # debug::
37
44
  # Enable full debugging.
@@ -46,6 +53,14 @@
46
53
  # list::
47
54
  # List outstanding certificate requests.
48
55
  #
56
+ # revoke::
57
+ # Revoke the certificate of a client. The certificate can be specified
58
+ # either by its serial number, given as a decimal number or a hexadecimal
59
+ # number prefixed by '0x', or by its hostname. The certificate is revoked
60
+ # by adding it to the Certificate Revocation List given by the 'cacrl'
61
+ # config parameter. Note that the puppetmasterd needs to be restarted
62
+ # after revoking certificates.
63
+ #
49
64
  # sign::
50
65
  # Sign an outstanding certificate request. Unless '--all' is specified,
51
66
  # hosts must be listed after all flags.
@@ -53,6 +68,9 @@
53
68
  # verbose::
54
69
  # Enable verbosity.
55
70
  #
71
+ # version::
72
+ # Print the puppet version number and exit.
73
+ #
56
74
  # = Example
57
75
  #
58
76
  # $ puppetca -l
@@ -72,23 +90,17 @@ require 'puppet'
72
90
  require 'puppet/sslcertificates'
73
91
  require 'getoptlong'
74
92
 
75
- $haveusage = true
76
-
77
- begin
78
- require 'rdoc/usage'
79
- rescue LoadError
80
- $haveusage = false
81
- end
82
-
83
93
  options = [
84
- [ "--all", "-a", GetoptLong::NO_ARGUMENT ],
85
- [ "--clean", "-c", GetoptLong::NO_ARGUMENT ],
86
- [ "--debug", "-d", GetoptLong::NO_ARGUMENT ],
87
- [ "--generate", "-g", GetoptLong::NO_ARGUMENT ],
88
- [ "--help", "-h", GetoptLong::NO_ARGUMENT ],
89
- [ "--list", "-l", GetoptLong::NO_ARGUMENT ],
90
- [ "--sign", "-s", GetoptLong::NO_ARGUMENT ],
91
- [ "--verbose", "-v", GetoptLong::NO_ARGUMENT ]
94
+ [ "--all", "-a", GetoptLong::NO_ARGUMENT ],
95
+ [ "--clean", "-c", GetoptLong::NO_ARGUMENT ],
96
+ [ "--debug", "-d", GetoptLong::NO_ARGUMENT ],
97
+ [ "--generate", "-g", GetoptLong::NO_ARGUMENT ],
98
+ [ "--help", "-h", GetoptLong::NO_ARGUMENT ],
99
+ [ "--list", "-l", GetoptLong::NO_ARGUMENT ],
100
+ [ "--revoke", "-r", GetoptLong::NO_ARGUMENT ],
101
+ [ "--sign", "-s", GetoptLong::NO_ARGUMENT ],
102
+ [ "--version", "-V", GetoptLong::NO_ARGUMENT ],
103
+ [ "--verbose", "-v", GetoptLong::NO_ARGUMENT ]
92
104
  ]
93
105
 
94
106
  # Add all of the config parameters as valid options.
@@ -108,12 +120,12 @@ begin
108
120
  when "--clean"
109
121
  mode = :clean
110
122
  when "--debug"
111
- Puppet::Log.level = :debug
123
+ Puppet::Util::Log.level = :debug
112
124
  when "--generate"
113
125
  generate = arg
114
126
  mode = :generate
115
127
  when "--help"
116
- if $haveusage
128
+ if Puppet.features.usage?
117
129
  RDoc::usage && exit
118
130
  else
119
131
  puts "No help available unless you have RDoc::usage installed"
@@ -121,19 +133,21 @@ begin
121
133
  end
122
134
  when "--list"
123
135
  mode = :list
136
+ when "--revoke"
137
+ mode = :revoke
124
138
  when "--sign"
125
139
  mode = :sign
140
+ when "--version"
141
+ puts "%s" % Puppet.version
142
+ exit
126
143
  when "--verbose"
127
- Puppet::Log.level = :info
144
+ Puppet::Util::Log.level = :info
128
145
  else
129
146
  Puppet.config.handlearg(opt, arg)
130
147
  end
131
148
  }
132
149
  rescue GetoptLong::InvalidOption => detail
133
150
  $stderr.puts "Try '#{$0} --help'"
134
- #if $haveusage
135
- # RDoc::usage_no_exit('usage')
136
- #end
137
151
  exit(1)
138
152
  end
139
153
 
@@ -160,25 +174,34 @@ unless mode
160
174
  exit(12)
161
175
  end
162
176
 
163
- if mode == :generate or mode == :clean
164
- hosts = ARGV
177
+ if [:generate, :clean, :revoke].include?(mode)
178
+ hosts = ARGV.collect { |h| h.downcase }
165
179
  else
166
- hosts = ca.list
167
- unless hosts.length > 0
180
+ waiting = ca.list
181
+ unless waiting.length > 0
168
182
  puts "No certificates to sign"
169
- exit(0)
183
+ if ARGV.length > 0
184
+ exit(17)
185
+ else
186
+ exit(0)
187
+ end
170
188
  end
189
+ to_sign = ARGV.collect { |h| h.downcase }
171
190
  end
172
191
 
173
192
  case mode
174
193
  when :list
175
- puts hosts.join("\n")
194
+ puts waiting.join("\n")
176
195
  when :clean
196
+ if hosts.empty?
197
+ $stderr.puts "You must specify one or more hosts to clean"
198
+ exit(24)
199
+ end
177
200
  hosts.each do |host|
178
201
  ca.clean(host)
179
202
  end
180
203
  when :sign
181
- unless ARGV.length > 0 or all
204
+ unless to_sign.length > 0 or all
182
205
  $stderr.puts(
183
206
  "You must specify to sign all certificates or you must specify hostnames"
184
207
  )
@@ -186,17 +209,17 @@ when :sign
186
209
  end
187
210
 
188
211
  unless all
189
- ARGV.each { |host|
190
- unless hosts.include?(host)
212
+ to_sign.each { |host|
213
+ unless waiting.include?(host)
191
214
  $stderr.puts "No waiting request for %s" % host
192
215
  end
193
216
  }
194
- hosts = hosts.find_all { |host|
195
- ARGV.include?(host)
217
+ waiting = waiting.find_all { |host|
218
+ to_sign.include?(host)
196
219
  }
197
220
  end
198
221
 
199
- hosts.each { |host|
222
+ waiting.each { |host|
200
223
  begin
201
224
  csr = ca.getclientcsr(host)
202
225
  rescue => detail
@@ -230,9 +253,29 @@ when :generate
230
253
  cert.cacert = cacert
231
254
  cert.write
232
255
  }
256
+ when :revoke
257
+ hosts.each { |h|
258
+ serial = nil
259
+ if h =~ /^0x[0-9a-f]+$/
260
+ serial = h.to_i(16)
261
+ elsif h =~ /^[0-9]+$/
262
+ serial = h.to_i
263
+ else
264
+ cert = ca.getclientcert(h)[0]
265
+ if cert.nil?
266
+ $stderr.puts "Could not find client certificate for %s" % h
267
+ else
268
+ serial = cert.serial
269
+ end
270
+ end
271
+ unless serial.nil?
272
+ ca.revoke(serial)
273
+ puts "Revoked certificate with serial #{serial}"
274
+ end
275
+ }
233
276
  else
234
277
  $stderr.puts "Invalid mode %s" % mode
235
278
  exit(42)
236
279
  end
237
280
 
238
- # $Id: puppetca 1338 2006-06-29 19:29:05Z luke $
281
+ # $Id: puppetca 2391 2007-04-17 18:54:52Z luke $
@@ -34,19 +34,19 @@
34
34
  # configuration every 30 minutes.
35
35
  #
36
36
  # Some flags are meant specifically for interactive use -- in particular,
37
- # +test+ and +tag+ are useful. +test+ enables verobse logging, causes
37
+ # +test+ and +tags+ are useful. +test+ enables verobse logging, causes
38
38
  # the daemon to stay in the foreground, exits if the server's configuration is
39
39
  # invalid (this happens if, for instance, you've left a syntax error on the
40
40
  # server), and exits after running the configuration once (rather than hanging
41
41
  # around as a long-running process).
42
42
  #
43
- # +tag+ allows you to specify what portions of a configuration you want to apply.
43
+ # +tags+ allows you to specify what portions of a configuration you want to apply.
44
44
  # Puppet elements are tagged with all of the class or definition names that
45
- # contain them, and you can use the +tag+ flag to specify one of these names,
45
+ # contain them, and you can use the +tags+ flag to specify one of these names,
46
46
  # causing only configuration elements contained within that class or definition
47
47
  # to be applied. This is very useful when you are testing new configurations --
48
48
  # for instance, if you are just starting to manage +ntpd+, you would put all of
49
- # the new elements into an +ntpd+ class, and call puppet with +--tag ntpd+,
49
+ # the new elements into an +ntpd+ class, and call puppet with +--tags ntpd+,
50
50
  # which would only apply that small portion of the configuration during your
51
51
  # testing, rather than applying the whole thing.
52
52
  #
@@ -57,8 +57,10 @@
57
57
  # parameter, so you can specify '--server <servername>' as an argument.
58
58
  #
59
59
  # See the configuration file documentation at
60
- # http://reductivelabs.com/projects/puppet/documentation/puppet-executable-reference
61
- # for the full list of acceptable parameters.
60
+ # http://reductivelabs.com/projects/puppet/reference/configref.html for
61
+ # the full list of acceptable parameters. A commented list of all
62
+ # configuration options can also be generated by running puppetd with
63
+ # '--genconfig'.
62
64
  #
63
65
  # daemonize::
64
66
  # Send the process into the background. This is the default unless
@@ -99,6 +101,11 @@
99
101
  # Defaults to sending messages to syslog, or the console if debugging or
100
102
  # verbosity is enabled.
101
103
  #
104
+ # no-client::
105
+ # Do not create a config client. This will cause the daemon to run
106
+ # without ever checking for its configuration automatically, and only
107
+ # makes sense when used in conjunction with --listen.
108
+ #
102
109
  # onetime::
103
110
  # Run the configuration once, rather than as a long-running daemon. This is
104
111
  # useful for interactively running puppetd.
@@ -112,7 +119,7 @@
112
119
  #
113
120
  # test::
114
121
  # Enable the most common options used for testing. These are +onetime+,
115
- # +verbose+, and +no-usecacheonfailure+.
122
+ # +verbose+, +ignorecache, and +no-usecacheonfailure+.
116
123
  #
117
124
  # verbose::
118
125
  # Turn on verbose reporting.
@@ -148,17 +155,9 @@ trap(:INT) do
148
155
  end
149
156
 
150
157
  require 'puppet'
151
- require 'puppet/server'
152
- require 'puppet/client'
158
+ require 'puppet/network/client'
153
159
  require 'getoptlong'
154
160
 
155
- $haveusage = true
156
- begin
157
- require 'rdoc/usage'
158
- rescue LoadError
159
- $haveusage = false
160
- end
161
-
162
161
  options = [
163
162
  [ "--centrallogging", GetoptLong::NO_ARGUMENT ],
164
163
  [ "--daemonize", "-D", GetoptLong::NO_ARGUMENT ],
@@ -196,6 +195,7 @@ options = {
196
195
  }
197
196
 
198
197
  begin
198
+ explicit_waitforcert = false
199
199
  result.each { |opt,arg|
200
200
  case opt
201
201
  # First check to see if the argument is a valid configuration parameter;
@@ -205,23 +205,25 @@ begin
205
205
  when "--disable"
206
206
  options[:disable] = true
207
207
  when "--serve"
208
- if klass = Puppet::Server::Handler.handler(arg)
208
+ if klass = Puppet::Network::Server::Handler.handler(arg)
209
209
  options[:serve][klass.name] = klass
210
210
  end
211
211
  when "--enable"
212
212
  options[:enable] = true
213
213
  when "--test"
214
214
  # Enable all of the most common test options.
215
+ Puppet.config.handlearg("--ignorecache")
215
216
  Puppet.config.handlearg("--no-usecacheonfailure")
216
217
  options[:onetime] = true
217
- unless Puppet::Log.level == :debug
218
- Puppet::Log.level = :info
218
+ options[:waitforcert] = 0
219
+ unless Puppet::Util::Log.level == :debug
220
+ Puppet::Util::Log.level = :info
219
221
  end
220
- Puppet::Log.newdestination(:console)
222
+ Puppet::Util::Log.newdestination(:console)
221
223
  when "--centrallogging"
222
224
  options[:centrallogs] = true
223
225
  when "--help"
224
- if $haveusage
226
+ if Puppet.features.usage?
225
227
  RDoc::usage && exit
226
228
  else
227
229
  puts "No help available unless you have RDoc::usage installed"
@@ -231,28 +233,30 @@ begin
231
233
  puts "%s" % Puppet.version
232
234
  exit
233
235
  when "--verbose"
234
- Puppet::Log.level = :info
235
- Puppet::Log.newdestination(:console)
236
+ Puppet::Util::Log.level = :info
237
+ Puppet::Util::Log.newdestination(:console)
236
238
  when "--debug"
237
- Puppet::Log.level = :debug
238
- Puppet::Log.newdestination(:console)
239
+ Puppet::Util::Log.level = :debug
240
+ Puppet::Util::Log.newdestination(:console)
239
241
  when "--fqdn"
240
242
  options[:fqdn] = arg
241
243
  when "--no-client"
242
244
  options[:client] = false
243
245
  when "--onetime"
244
246
  options[:onetime] = true
247
+ options[:waitforcert] = 0 unless explicit_waitforcert
245
248
  when "--port"
246
249
  args[:Port] = arg
247
250
  when "--logdest"
248
251
  begin
249
- Puppet::Log.newdestination(arg)
252
+ Puppet::Util::Log.newdestination(arg)
250
253
  options[:setdest] = true
251
254
  rescue => detail
252
255
  $stderr.puts detail.to_s
253
256
  end
254
257
  when "--waitforcert"
255
258
  options[:waitforcert] = arg.to_i
259
+ explicit_waitforcert = true
256
260
  else
257
261
  Puppet.config.handlearg(opt, arg)
258
262
  end
@@ -260,25 +264,21 @@ begin
260
264
  rescue GetoptLong::InvalidOption => detail
261
265
  $stderr.puts detail
262
266
  $stderr.puts "Try '#{$0} --help'"
263
- # FIXME RDoc::usage doesn't seem to work
264
- #if $haveusage
265
- # RDoc::usage(1,'usage')
266
- #end
267
267
  exit(1)
268
268
  end
269
269
 
270
- Puppet.genconfig
271
- Puppet.genmanifest
272
-
273
270
  # Now parse the config
274
271
  if Puppet[:config] and File.exists? Puppet[:config]
275
272
  Puppet.config.parse(Puppet[:config])
276
273
  end
277
274
 
275
+ Puppet.genconfig
276
+ Puppet.genmanifest
277
+
278
278
  # Default to daemonizing, but if verbose or debug is specified,
279
279
  # default to staying in the foreground.
280
280
  unless options.include?(:daemonize)
281
- if Puppet::Log.level == :debug or Puppet::Log.level == :info
281
+ if Puppet::Util::Log.level == :debug or Puppet::Util::Log.level == :info
282
282
  options[:daemonize] = false
283
283
  else
284
284
  options[:daemonize] = true
@@ -286,12 +286,12 @@ unless options.include?(:daemonize)
286
286
  end
287
287
 
288
288
  unless options[:setdest]
289
- Puppet::Log.newdestination(:syslog)
289
+ Puppet::Util::Log.newdestination(:syslog)
290
290
  end
291
291
 
292
292
  args[:Server] = Puppet[:server]
293
293
  if options[:fqdn]
294
- args[:FQDN] = fqdn
294
+ args[:FQDN] = options[:fqdn]
295
295
  end
296
296
 
297
297
  if options[:centrallogs]
@@ -300,16 +300,12 @@ if options[:centrallogs]
300
300
  if args.include?(:Port)
301
301
  logdest += ":" + args[:Port]
302
302
  end
303
- Puppet::Log.newdestination(logdest)
304
- end
305
-
306
- if options[:onetime]
307
- Puppet[:setpidfile] = false
303
+ Puppet::Util::Log.newdestination(logdest)
308
304
  end
309
305
 
310
306
  # We need tomake the client either way, we just don't start it
311
307
  # if --no-client is set.
312
- client = Puppet::Client::MasterClient.new(args)
308
+ client = Puppet::Network::Client.master.new(args)
313
309
  if options[:enable]
314
310
  client.enable
315
311
  elsif options[:disable]
@@ -328,13 +324,13 @@ if options[:daemonize]
328
324
  client.daemonize
329
325
  end
330
326
 
331
- unless client.readcert
327
+ unless client.read_cert
332
328
  # If we don't already have the certificate, then create a client to
333
- # request one.
334
- caclient = Puppet::Client::CA.new(args)
329
+ # request one. Use the special ca stuff, don't use the normal server and port.
330
+ caclient = Puppet::Network::Client.ca.new()
335
331
  if options[:waitforcert] > 0
336
332
  begin
337
- while ! caclient.requestcert do
333
+ while ! caclient.request_cert do
338
334
  Puppet.notice "Did not receive certificate"
339
335
  sleep options[:waitforcert]
340
336
  end
@@ -343,14 +339,16 @@ unless client.readcert
343
339
  exit(23)
344
340
  end
345
341
  else
346
- unless caclient.requestcert
342
+ unless caclient.request_cert
347
343
  Puppet.notice "No certificates; exiting"
348
344
  exit(1)
349
345
  end
350
346
  end
351
347
 
352
348
  # Now read the new cert in.
353
- unless client.readcert
349
+ if client.read_cert
350
+ Puppet.notice "Got signed certificate"
351
+ else
354
352
  Puppet.err "Could not read certificates after retrieving them"
355
353
  exit(34)
356
354
  end
@@ -359,13 +357,20 @@ end
359
357
  objects = []
360
358
 
361
359
  # This has to go after the certs are dealt with.
362
- if Puppet[:listen]
360
+ if Puppet[:listen] and ! options[:onetime]
363
361
  unless FileTest.exists?(Puppet[:authconfig])
364
- $stderr.puts "Will not start without authorization file %s" %
362
+ Puppet.err "Will not start without authorization file %s" %
365
363
  Puppet[:authconfig]
366
364
  exit(14)
367
365
  end
368
366
 
367
+ # FIXME: we should really figure out how to distribute the CRL
368
+ # to clients. In the meantime, we just disable CRL checking if
369
+ # the CRL file doesn't exist
370
+ unless File::exist?(Puppet[:cacrl])
371
+ Puppet[:cacrl] = 'none'
372
+ end
373
+
369
374
  handlers = nil
370
375
 
371
376
  if options[:serve].empty?
@@ -383,8 +388,10 @@ if Puppet[:listen]
383
388
  args[:Handlers] = handlers
384
389
  args[:Port] = Puppet[:puppetport]
385
390
 
391
+ require 'puppet/network/server/webrick'
392
+
386
393
  begin
387
- server = Puppet::Server.new(args)
394
+ server = Puppet::Network::Server::WEBrick.new(args)
388
395
  rescue => detail
389
396
  $stderr.puts detail
390
397
  puts detail.backtrace
@@ -392,11 +399,10 @@ if Puppet[:listen]
392
399
  end
393
400
 
394
401
  objects << server
402
+ elsif options[:onetime] and Puppet[:listen]
403
+ Puppet.notice "Ignoring --listen on onetime run"
395
404
  end
396
405
 
397
- # now set up the network client with the certs, now that we have them
398
- client.setcerts
399
-
400
406
  if options[:client]
401
407
  objects << client
402
408
  end
@@ -404,26 +410,24 @@ end
404
410
  # Set traps for INT and TERM
405
411
  Puppet.settraps
406
412
 
413
+ # If --onetime is specified, we don't run 'start', which means we don't
414
+ # create a pidfile.
407
415
  if options[:onetime]
408
416
  unless options[:client]
409
417
  $stderr.puts "onetime is specified but there is no client"
410
418
  exit(43)
411
419
  end
412
420
 
413
- if server
414
- Puppet.notice "Ignoring --listen on onetime run"
415
- end
416
-
417
421
  # Add the service, so the traps work correctly.
418
422
  Puppet.newservice(client)
419
423
 
420
424
  begin
421
425
  client.run
422
426
  rescue => detail
423
- Puppet.err detail.to_s
424
- if Puppet[:debug]
427
+ if Puppet[:trace]
425
428
  puts detail.backtrace
426
429
  end
430
+ Puppet.err detail.to_s
427
431
  end
428
432
  exit(0)
429
433
  else
@@ -441,5 +445,4 @@ else
441
445
  Puppet.start
442
446
  end
443
447
 
444
-
445
- # $Id: puppetd 1415 2006-07-21 15:37:15Z luke $
448
+ # $Id: puppetd 2375 2007-03-30 23:17:40Z luke $