puppet 0.18.4 → 0.22.4

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of puppet might be problematic. Click here for more details.

Files changed (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
data/CHANGELOG CHANGED
@@ -1,3 +1,291 @@
1
+ Execs now autorequire the user they run as, as long as the user
2
+ is specified by name. (#430)
3
+
4
+ Files on the local machine but not on the remote server during
5
+ a source copy are now purged if purge => true. (#594)
6
+
7
+ Providers can now specify that some commands are optional (#585).
8
+ Also, the 'command' method returns nil on missing commands,
9
+ rather than throwing an error, so the presence of commands
10
+ be tested.
11
+
12
+ The 'useradd' provider for Users can now manage passwords.
13
+ No other providers can, at this point.
14
+
15
+ Parameters can now declare a dependency on specific
16
+ features, and parameters that require missing features
17
+ will not be instantiated. This is most useful for
18
+ properties.
19
+
20
+ FileParsing classes can now use instance_eval to add
21
+ many methods at once to a record type.
22
+
23
+ Modules no longer return directories in the list of found
24
+ manifests (#588).
25
+
26
+ The crontab provider now defaults to root when there is no
27
+ USER set in the environment.
28
+
29
+ Puppetd once again correctly responds to HUP.
30
+
31
+ Added a syntax for referring to variables defined in
32
+ other classes (e.g., $puppet::server).
33
+
34
+ STDIN, STDOUT, STDERR are now redirected to /dev/null in
35
+ service providers descending from base.
36
+
37
+ Certificates are now valid starting one day before they are
38
+ created, to help handle small amounts of clock skew.
39
+
40
+ Files are no longer considered out of sync if some properties
41
+ are out of sync but they have no properties that can create
42
+ the file.
43
+
44
+ 0.22.3
45
+ Fixed backward compatibility for logs and metrics from older clients.
46
+
47
+ Fixed the location of the authconfig parameters so there aren't
48
+ loading order issues.
49
+
50
+ Enabling attribute validation on the providers that subclass
51
+ 'nameservice', so we can verify that an integer is passed to
52
+ UID and GID.
53
+
54
+ Added a stand-alone filebucket client, named 'filebucket'.
55
+
56
+ Fixed the new nested paths for filebuckets; the entire md5 sum was
57
+ not being stored.
58
+
59
+ Fixing #553; -M is no longer added when home directories are being
60
+ managed on Red Hat.
61
+
62
+ 0.22.2 (grover)
63
+ Users can now manage their home directories, using the managehome
64
+ parameter, partially using patches provided by Tim Stoop and
65
+ Matt Palmer. (#432)
66
+
67
+ Added 'ralsh' (formerly x2puppet) to the svn tree. When possible it
68
+ should be added to the packages.
69
+
70
+ The 'notify' type now defaults to its message being the same as its name.
71
+
72
+ Reopening $stdin to read from /dev/null during execution, in hopes that
73
+ init scripts will stop hanging.
74
+
75
+ Changed the 'servername' fact set on the server to use the server's fqdn,
76
+ instead of the short-name.
77
+
78
+ Changing the location of the configuration cache. It now defaults to being
79
+ in the state directory, rather than in the configuration directory.
80
+
81
+ All parameter instances are stored in a single @parameters instance variable
82
+ hash within resource type instances. We used to use separate hashes for
83
+ each parameter type.
84
+
85
+ Added the concept of provider features. Eventually these should be able
86
+ to express the full range of provider functionality, but for now they can
87
+ test a provider to see what methods it has set and determine what features it
88
+ provides as a result. These features are integrated into the doc generation
89
+ system so that you get feature documentation automatically.
90
+
91
+ Switched apt/aptitide to using "apt-cache policy" instead of "apt-cache showpkg"
92
+ for determining the latest available version. (#487)
93
+
94
+ FileBuckets now use a deeply nested structure for storing files, so
95
+ you do not end up with hundreds or thousands of files in the same
96
+ directory. (#447)
97
+
98
+ Facts are now cached in the state file, and when they change the configuration
99
+ is always recompiled. (#519)
100
+
101
+ Added 'ignoreimport' setting for use in commit hooks. This causes the
102
+ parser to ignore import statements so a single file can be parse-checked. (#544)
103
+
104
+ Import statements can now specify multiple comma-separated arguments.
105
+
106
+ Definitions now support both 'name' and 'title', just like any other
107
+ resource type. (#539)
108
+
109
+ Added a generate() command, which sets values to the result of an external
110
+ command. (#541)
111
+
112
+ Added a file() command to read in files with no interpolation. The first
113
+ found file has its content returned.
114
+
115
+ puppetd now exits if no cert is present in onetime mode. (#533)
116
+
117
+ The client configuration cache can be safely removed and the client
118
+ will correctly realize the client is not in sync.
119
+
120
+ Resources can now be freely deleted, thus fixing many problems introduced
121
+ when deletion of required resources was forbidden when purging was introduced.
122
+ Only resources being purged will not be deleted.
123
+
124
+ Facts and plugins now download even in noop mode (#540).
125
+
126
+ Resources in noop mode now log when they would have responded to an event (#542).
127
+
128
+ Refactored cron support entirely. Cron now uses providers, and there
129
+ is a single 'crontab' provider that handles user crontabs. While this
130
+ refactor does not include providers for /etc/crontab or cron.d, it should
131
+ now be straightforward to write those providers.
132
+
133
+ Changed the parameter sorting so that the provider parameter comes
134
+ right after name, so the provider is available when the other parameters
135
+ and properties are being created.
136
+
137
+ Redid some of the internals of the ParsedFile provider base class.
138
+ It now passes a FileRecord around instead of a hash.
139
+
140
+ Fixing a bug related to link recursion that caused link directories
141
+ to always be considered out of sync.
142
+
143
+ The bind address for puppetmasterd can now be specified with
144
+ --bindaddress.
145
+
146
+ Added (probably experimental) mongrel support. At this point you're
147
+ still responsible for starting each individual process, and you have to
148
+ set up a proxy in front of it.
149
+
150
+ Redesigned the 'network' tree to support multiple web servers, including
151
+ refactoring most of the structural code so it's much clearer and more
152
+ reusable now.
153
+
154
+ Set up the CA client to default to ca_server and ca_port, so you can
155
+ easily run a separate CA.
156
+
157
+ Supporting hosts with no domain name, thanks to a patch from
158
+ Dennis Jacobfeuerborn.
159
+
160
+ Added an 'ignorecache' option to tell puppetd to force a recompile, thanks to
161
+ a patch by Chris McEniry.
162
+
163
+ Made up2date the default for RHEL < 4 and yum the default for the rest.
164
+
165
+ The yum provider now supports versions.
166
+
167
+ Case statements correctly match when multiple values are provided,
168
+ thanks to a patch by David Schmitt.
169
+
170
+ Functions can now be called with no arguments.
171
+
172
+ String escapes parse correctly in all cases now, thanks to a patch by
173
+ cstorey.
174
+
175
+ Subclasses again search parent classes for defaults.
176
+
177
+ You can now purge apt and dpkg packages.
178
+
179
+ When doing file recursion, 'ensure' only affects the top-level directory.
180
+
181
+ States have been renamed to Properties.
182
+
183
+ 0.22.1 (kermit) -- Mostly a bugfix release
184
+ Compile times now persist between restarts of puppetd.
185
+
186
+ Timeouts have been added to many parts of Puppet, reducing the likelihood
187
+ if it hanging forever on broken scripts or servers.
188
+
189
+ All of the documentation and recipes have been moved to the wiki by Peter
190
+ Abrahamsen and Ben Kite has moved the FAQ to the wiki.
191
+
192
+ Explicit relationships now override automatic relationships, allowing you
193
+ to manually specify deletion order when removing resources.
194
+
195
+ Resources with dependencies can now be deleted as long as all of their
196
+ dependencies are also being deleted.
197
+
198
+ Namespaces for both classes and definitions now work much more consistently.
199
+ You should now be able to specify a class or definition with a namespace
200
+ everywhere you would normally expect to be able to specify one without.
201
+
202
+ Downcasing of facts can be selectively disabled.
203
+
204
+ Cyclic dependency graphs are now checked for and forbidden.
205
+
206
+ The netinfo mounts provider was commented out, because it really doesn't
207
+ work at all. Stupid NetInfo stores mount information with the device as
208
+ the key, which doesn't work with my current NetInfo code.
209
+
210
+ Otherwise, lots and lots of bugfixes. Check the tickets associated with the
211
+ 'kermit' milestone.
212
+
213
+ 0.22.0
214
+ Integrated the GRATR graph library into Puppet, for handling resource
215
+ relationships.
216
+
217
+ Lots of bug-fixes (see bugs tickets associated with the 'minor' milestone).
218
+
219
+ Added new 'resources' metatype, which currently only includes the ability
220
+ to purge unmanaged resources.
221
+
222
+ Added better ability to generate new resource objects during transactions
223
+ (using 'generate' and 'eval_generate' methods).
224
+
225
+ Rewrote all Rails support with a much better database design. Export/collect
226
+ now works, although the database is incompatible with previous versions.
227
+
228
+ Removed downcasing of facts and made most of the language case-insensitive.
229
+
230
+ Added support for printing the graphs built during transactions.
231
+
232
+ Reworked how paths are built for logging.
233
+
234
+ Switched all providers to directly executing commands instead of going through
235
+ a subshell, which removes the need to quote or escape arguments.
236
+
237
+ 0.20.1
238
+ Mostly a bug-fix release, with the most important fix being the
239
+ multiple-definition error.
240
+
241
+ Completely rewrote the ParsedFile system; each provider is now much
242
+ shorter and much more maintainable. However, fundamental problems
243
+ were found with the 'port' type, so it was disabled. Also, added
244
+ a NetInfo provider for 'host' and an experimental NetInfo provider
245
+ for 'mount'.
246
+
247
+ Made the RRDGraph report *much* better and added reference
248
+ generation for reports and functions.
249
+
250
+ 0.20.0
251
+ Significantly refactored the parser. Resource overrides now consistently
252
+ work anywhere in a class hierarchy.
253
+
254
+ The language was also modified somewhat. The previous export/collect syntax
255
+ is now used for handling virtual objects, and export/collect (which is still
256
+ experimental) now uses double sigils (@@ and <<| |>>).
257
+
258
+ Resource references (e.g., File["/etc/passwd"]) now have to be capitalized,
259
+ in fitting in with capitalizing type operations.
260
+
261
+ As usual, lots of other smaller fixes, but most of the work was in the language.
262
+
263
+ 0.19.3
264
+ Fixing a bug in server/master.rb that causes the hostname
265
+ not to be available in locally-executed manifests.
266
+
267
+ 0.19.2
268
+ Fixing a few smaller bugs, notably in the reports system.
269
+
270
+ Refreshed objects now generate an event, which can result in further
271
+ refreshes of other objects.
272
+
273
+ 0.19.1
274
+ Fixing two critical bugs: User management works again and cron jobs are
275
+ no longer added to all user accounts.
276
+
277
+ 0.19.0
278
+ Added provider support.
279
+
280
+ Added support for %h, %H, and %d expansion in fileserver.conf.
281
+
282
+ Added Certificate Revocation support.
283
+
284
+ Made dynamic loading pervasive -- nearly every aspect of Puppet will now
285
+ automatically load new instances (e.g., types, providers, and reports).
286
+
287
+ Added support for automatic distribution of facts and plugins (custom types).
288
+
1
289
  0.18.4
2
290
  Another bug-fix release. The most import bug fixed is that
3
291
  cronjobs again work even with initially empty crontabs.
data/README CHANGED
@@ -1,5 +1,5 @@
1
1
  Documentation (and detailed install instructions) can be found
2
- online at http://reductivelabs.com/projects/puppet/documentation.
2
+ online at http://reductivelabs.com/trac/puppet/wiki/DocumentationStart .
3
3
 
4
4
  Generally, you need the following things installed:
5
5
 
@@ -24,4 +24,4 @@ Generally, you need the following things installed:
24
24
  * Facter => 1.1.1
25
25
  You can get this from http://reductivelabs.com/projects/facter
26
26
 
27
- $Id: README 815 2006-01-12 19:01:41Z luke $
27
+ $Id: README 2113 2007-01-29 18:32:46Z ajax $
data/Rakefile CHANGED
@@ -1,4 +1,6 @@
1
- # Rakefile for Puppet
1
+ # Rakefile for Puppet -*- ruby -*-
2
+
3
+ $: << File.expand_path(File.join(File.dirname(__FILE__), 'lib'))
2
4
 
3
5
  begin
4
6
  require 'rake/reductive'
@@ -18,17 +20,19 @@ project = Rake::RedLabProject.new("puppet") do |p|
18
20
  p.filelist = [
19
21
  'install.rb',
20
22
  '[A-Z]*',
21
- 'lib/**/*.rb',
23
+ 'lib/puppet.rb',
24
+ 'lib/puppet/**/*.rb',
22
25
  'test/**/*.rb',
23
26
  'bin/**/*',
24
27
  'ext/**/*',
25
28
  'examples/**/*',
26
29
  'conf/**/*'
27
30
  ]
31
+ p.filelist.exclude("bin/pi", "bin/ralsh", "bin/filebucket")
28
32
 
29
33
  p.add_dependency('facter', '1.1.0')
30
34
 
31
- p.epmhosts = %w{culain}
35
+ #p.epmhosts = %w{culain}
32
36
  p.sunpkghost = "sol10b"
33
37
  p.rpmhost = "fedora1"
34
38
  end
@@ -53,7 +57,7 @@ if project.has?(:gem)
53
57
  '--title' << 'Puppet - Configuration Management' <<
54
58
  '--main' << 'README' <<
55
59
  '--line-numbers'
56
- task.test_file = "test/test"
60
+ task.test_file = "test/Rakefile"
57
61
  end
58
62
  end
59
63
 
@@ -65,4 +69,73 @@ if project.has?(:epm)
65
69
  end
66
70
  end
67
71
 
68
- # $Id: Rakefile 1249 2006-06-09 18:42:08Z luke $
72
+ rule(/_is_runnable$/) do |t|
73
+ available = false
74
+ executable = t.name.sub(/_is_runnable$/, '')
75
+ ENV['PATH'].split(':').each do |elem|
76
+ available = true if File.executable? File.join(elem, executable)
77
+ end
78
+
79
+ unless available
80
+ puts "You do not have #{executable} available in your path"
81
+ exit 1
82
+ end
83
+ end
84
+
85
+ file "debian" => :bzr_is_runnable do
86
+ system("bzr get http://www.hezmatt.org/~mpalmer/bzr/puppet.debian.svn debian") || exit(1)
87
+ end
88
+
89
+ task :check_build_deps => 'dpkg-checkbuilddeps_is_runnable' do
90
+ system("dpkg-checkbuilddeps") || exit(1)
91
+ end
92
+
93
+ task :debian_packages => [ "debian", :check_build_deps, :fakeroot_is_runnable ] do
94
+ system("fakeroot debian/rules clean") || exit(1)
95
+ system("fakeroot debian/rules binary") || exit(1)
96
+ end
97
+
98
+
99
+ def dailyfile(package)
100
+ "#{downdir}/#{package}/#{package}-daily-#{stamp}.tgz"
101
+ end
102
+
103
+ def daily(package)
104
+ edir = "/tmp/daily-export"
105
+ Dir.mkdir edir
106
+ Dir.chdir(edir) do
107
+ sh %{svn export http://reductivelabs.com/svn/#{package}/trunk #{package} >/dev/null}
108
+ sh %{tar cf - #{package} | gzip -c > #{dailyfile(package)}}
109
+ end
110
+ FileUtils.rm_rf(edir)
111
+ end
112
+
113
+ def downdir
114
+ ENV['DOWNLOAD_DIR'] || "/export/docroots/reductivelabs.com/htdocs/downloads"
115
+ end
116
+
117
+ def stamp
118
+ [Time.now.year, Time.now.month, Time.now.day].collect { |i| i.to_s}.join
119
+ end
120
+
121
+ pdaily = dailyfile("puppet")
122
+ fdaily = dailyfile("facter")
123
+
124
+ file pdaily do
125
+ daily("puppet")
126
+ end
127
+
128
+ file fdaily do
129
+ daily("facter")
130
+ end
131
+
132
+ task :daily => [pdaily, fdaily]
133
+
134
+ task :dailyclean do
135
+ Dir.glob("#{downdir}/*/*daily*.tgz").each do |file|
136
+ puts "Removing %s" % file
137
+ File.unlink(file)
138
+ end
139
+ end
140
+
141
+ # $Id: Rakefile 2354 2007-03-26 17:19:24Z luke $
data/bin/puppet CHANGED
@@ -8,7 +8,7 @@
8
8
  # = Usage
9
9
  #
10
10
  # puppet [-h|--help] [-V|--version] [-d|--debug] [-v|--verbose]
11
- # [-l|--logfile <file>] <file>
11
+ # [-l|--logdest <file>] <file>
12
12
  #
13
13
  # = Description
14
14
  #
@@ -22,7 +22,11 @@
22
22
  # is also a valid long argument. For example, 'ssldir' is a valid configuration
23
23
  # parameter, so you can specify '--ssldir <directory>' as an argument.
24
24
  #
25
- # See the configuration file for the full list of acceptable parameters.
25
+ # See the configuration file documentation at
26
+ # http://reductivelabs.com/projects/puppet/reference/configref.html for
27
+ # the full list of acceptable parameters. A commented list of all
28
+ # configuration options can also be generated by running puppet with
29
+ # '--genconfig'.
26
30
  #
27
31
  # debug::
28
32
  # Enable full debugging.
@@ -35,7 +39,7 @@
35
39
  # /etc/puppet/classes.txt), and setting this option causes all of those classes
36
40
  # to be set in your +puppet+ manifest.
37
41
  #
38
- # logfile::
42
+ # logdest::
39
43
  # Where to send messages. Choose between syslog, the console, and a log file.
40
44
  # Defaults to sending messages to the console.
41
45
  #
@@ -56,18 +60,10 @@
56
60
  # Licensed under the GNU Public License
57
61
 
58
62
  require 'puppet'
59
- require 'puppet/server'
60
- require 'puppet/client'
63
+ require 'puppet/network/handler'
64
+ require 'puppet/network/client'
61
65
  require 'getoptlong'
62
66
 
63
- $haveusage = true
64
-
65
- begin
66
- require 'rdoc/usage'
67
- rescue LoadError
68
- $haveusage = false
69
- end
70
-
71
67
  options = [
72
68
  [ "--debug", "-d", GetoptLong::NO_ARGUMENT ],
73
69
  [ "--help", "-h", GetoptLong::NO_ARGUMENT ],
@@ -89,6 +85,7 @@ verbose = false
89
85
  noop = false
90
86
  logfile = false
91
87
  loadclasses = false
88
+ logset = false
92
89
 
93
90
  code = nil
94
91
 
@@ -96,8 +93,6 @@ master = {
96
93
  :Local => true
97
94
  }
98
95
 
99
- Puppet::Log.newdestination(:console)
100
-
101
96
  begin
102
97
  result.each { |opt,arg|
103
98
  case opt
@@ -105,7 +100,7 @@ begin
105
100
  puts "%s" % Puppet.version
106
101
  exit
107
102
  when "--help"
108
- if $haveusage
103
+ if Puppet.features.usage?
109
104
  RDoc::usage && exit
110
105
  else
111
106
  puts "No help available unless you have RDoc::usage installed"
@@ -123,7 +118,8 @@ begin
123
118
  loadclasses = true
124
119
  when "--logdest"
125
120
  begin
126
- Puppet::Log.newdestination(arg)
121
+ Puppet::Util::Log.newdestination(arg)
122
+ logset = true
127
123
  rescue => detail
128
124
  $stderr.puts detail.to_s
129
125
  end
@@ -133,30 +129,22 @@ begin
133
129
  }
134
130
  rescue GetoptLong::InvalidOption => detail
135
131
  $stderr.puts "Try '#{$0} --help'"
136
- #if $haveusage
137
- # RDoc::usage(1,'usage')
138
- #end
139
132
  exit(1)
140
133
  end
141
134
 
135
+ unless logset
136
+ Puppet::Util::Log.newdestination(:console)
137
+ end
138
+
142
139
  client = nil
143
140
  server = nil
144
141
 
145
- [:INT, :TERM].each do |signal|
146
- trap(signal) do
147
- Puppet.notice "Caught #{signal}; shutting down"
148
- [client, server].each { |obj|
149
- if obj
150
- obj.shutdown
151
- end
152
- }
153
- end
154
- end
142
+ Puppet.settraps
155
143
 
156
144
  if debug
157
- Puppet::Log.level = :debug
145
+ Puppet::Util::Log.level = :debug
158
146
  elsif verbose
159
- Puppet::Log.level = :info
147
+ Puppet::Util::Log.level = :info
160
148
  end
161
149
 
162
150
  # Now parse the config
@@ -170,7 +158,11 @@ Puppet.genmanifest
170
158
  if code
171
159
  master[:Code] = code
172
160
  else
173
- master[:Manifest] = ARGV.shift
161
+ if ARGV.length > 0
162
+ master[:Manifest] = ARGV.shift
163
+ else
164
+ master[:Code] = STDIN.read
165
+ end
174
166
  end
175
167
 
176
168
  # Allow users to load the classes that puppetd creates.
@@ -187,8 +179,8 @@ if loadclasses
187
179
  end
188
180
 
189
181
  begin
190
- server = Puppet::Server::Master.new(master)
191
- client = Puppet::Client::MasterClient.new(
182
+ server = Puppet::Network::Handler.master.new(master)
183
+ client = Puppet::Network::Client.master.new(
192
184
  :Master => server,
193
185
  :Cache => false
194
186
  )
@@ -199,7 +191,7 @@ begin
199
191
  client.apply
200
192
  rescue => detail
201
193
  $stderr.puts detail
202
- if Puppet[:debug]
194
+ if Puppet[:trace]
203
195
  puts detail.backtrace
204
196
  end
205
197
  exit(1)