puppet 0.23.2 → 0.24.0

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 (629) hide show
  1. data/CHANGELOG +112 -1
  2. data/README +1 -1
  3. data/Rakefile +1 -2
  4. data/bin/filebucket +2 -3
  5. data/bin/puppet +55 -39
  6. data/bin/puppetca +20 -11
  7. data/bin/puppetd +30 -31
  8. data/bin/puppetdoc +27 -28
  9. data/bin/puppetmasterd +24 -42
  10. data/bin/puppetrun +3 -4
  11. data/bin/ralsh +5 -7
  12. data/conf/redhat/puppet.spec +4 -1
  13. data/conf/solaris/smf/svc-puppetd +1 -1
  14. data/conf/solaris/smf/svc-puppetmasterd +1 -1
  15. data/examples/code/allatonce +1 -1
  16. data/examples/code/assignments +1 -1
  17. data/examples/code/components +1 -1
  18. data/examples/code/file.bl +1 -1
  19. data/examples/code/filedefaults +1 -1
  20. data/examples/code/fileparsing +1 -1
  21. data/examples/code/filerecursion +1 -1
  22. data/examples/code/functions +1 -1
  23. data/examples/code/groups +1 -1
  24. data/examples/code/head +1 -1
  25. data/examples/code/importing +1 -1
  26. data/examples/code/modules/sample-module.pp +10 -0
  27. data/examples/code/modules/sample-module/README.txt +17 -0
  28. data/examples/code/modules/sample-module/lib/puppet/parser/functions/hostname_to_dn.rb +36 -0
  29. data/examples/code/modules/sample-module/manifests/init.pp +12 -0
  30. data/examples/code/modules/sample-module/templates/sample.erb +5 -0
  31. data/examples/code/nodes +1 -1
  32. data/examples/code/one +1 -1
  33. data/examples/code/relationships +1 -1
  34. data/examples/code/selectors +1 -1
  35. data/examples/code/simpletests +1 -1
  36. data/examples/root/etc/init.d/sleeper +1 -1
  37. data/examples/root/etc/puppet/fileserver.conf +1 -1
  38. data/ext/ldap/puppet.schema +1 -1
  39. data/ext/module_puppet +30 -21
  40. data/ext/puppet-test +3 -3
  41. data/ext/vim/filetype.vim +1 -1
  42. data/install.rb +1 -2
  43. data/lib/puppet.rb +20 -19
  44. data/lib/puppet/checksum.rb +57 -0
  45. data/lib/puppet/config_stores/rest.rb +1 -1
  46. data/lib/puppet/daemon.rb +0 -1
  47. data/lib/puppet/{configuration.rb → defaults.rb} +56 -23
  48. data/lib/puppet/dsl.rb +22 -116
  49. data/lib/puppet/error.rb +0 -9
  50. data/lib/puppet/event.rb +0 -1
  51. data/lib/puppet/external/gratr/rdot.rb +0 -1
  52. data/lib/puppet/external/lock.rb +0 -1
  53. data/lib/puppet/feature/base.rb +3 -2
  54. data/lib/puppet/feature/rails.rb +0 -1
  55. data/lib/puppet/file_serving.rb +7 -0
  56. data/lib/puppet/file_serving/configuration.rb +129 -0
  57. data/lib/puppet/file_serving/configuration/parser.rb +124 -0
  58. data/lib/puppet/file_serving/content.rb +34 -0
  59. data/lib/puppet/file_serving/file_base.rb +63 -0
  60. data/lib/puppet/file_serving/fileset.rb +138 -0
  61. data/lib/puppet/file_serving/indirection_hooks.rb +44 -0
  62. data/lib/puppet/file_serving/metadata.rb +69 -0
  63. data/lib/puppet/file_serving/mount.rb +186 -0
  64. data/lib/puppet/file_serving/terminus_helper.rb +19 -0
  65. data/lib/puppet/indirector.rb +68 -0
  66. data/lib/puppet/indirector/catalog/compiler.rb +173 -0
  67. data/lib/puppet/indirector/catalog/yaml.rb +24 -0
  68. data/lib/puppet/indirector/checksum/file.rb +33 -0
  69. data/lib/puppet/indirector/code.rb +6 -0
  70. data/lib/puppet/indirector/direct_file_server.rb +27 -0
  71. data/lib/puppet/indirector/exec.rb +57 -0
  72. data/lib/puppet/indirector/facts/facter.rb +65 -0
  73. data/lib/puppet/indirector/facts/memory.rb +9 -0
  74. data/lib/puppet/indirector/facts/yaml.rb +7 -0
  75. data/lib/puppet/indirector/file.rb +54 -0
  76. data/lib/puppet/indirector/file_content.rb +5 -0
  77. data/lib/puppet/indirector/file_content/file.rb +11 -0
  78. data/lib/puppet/indirector/file_content/file_server.rb +11 -0
  79. data/lib/puppet/indirector/file_content/modules.rb +11 -0
  80. data/lib/puppet/indirector/file_content/rest.rb +12 -0
  81. data/lib/puppet/indirector/file_metadata.rb +5 -0
  82. data/lib/puppet/indirector/file_metadata/file.rb +26 -0
  83. data/lib/puppet/indirector/file_metadata/file_server.rb +11 -0
  84. data/lib/puppet/indirector/file_metadata/modules.rb +17 -0
  85. data/lib/puppet/indirector/file_metadata/rest.rb +12 -0
  86. data/lib/puppet/indirector/file_server.rb +56 -0
  87. data/lib/puppet/indirector/indirection.rb +237 -0
  88. data/lib/puppet/indirector/ldap.rb +90 -0
  89. data/lib/puppet/indirector/memory.rb +21 -0
  90. data/lib/puppet/indirector/module_files.rb +82 -0
  91. data/lib/puppet/indirector/node/exec.rb +52 -0
  92. data/lib/puppet/indirector/node/ldap.rb +120 -0
  93. data/lib/puppet/indirector/node/memory.rb +10 -0
  94. data/lib/puppet/indirector/node/plain.rb +19 -0
  95. data/lib/puppet/indirector/node/rest.rb +7 -0
  96. data/lib/puppet/indirector/node/yaml.rb +7 -0
  97. data/lib/puppet/indirector/plain.rb +9 -0
  98. data/lib/puppet/indirector/report/processor.rb +50 -0
  99. data/lib/puppet/indirector/rest.rb +8 -0
  100. data/lib/puppet/indirector/ssl_rsa.rb +5 -0
  101. data/lib/puppet/indirector/ssl_rsa/file.rb +33 -0
  102. data/lib/puppet/indirector/terminus.rb +178 -0
  103. data/lib/puppet/indirector/yaml.rb +57 -0
  104. data/lib/puppet/metatype/attributes.rb +3 -3
  105. data/lib/puppet/metatype/closure.rb +0 -66
  106. data/lib/puppet/metatype/container.rb +0 -9
  107. data/lib/puppet/metatype/evaluation.rb +10 -2
  108. data/lib/puppet/metatype/instances.rb +16 -30
  109. data/lib/puppet/metatype/manager.rb +1 -2
  110. data/lib/puppet/metatype/metaparams.rb +27 -21
  111. data/lib/puppet/metatype/providers.rb +3 -2
  112. data/lib/puppet/metatype/relationships.rb +1 -2
  113. data/lib/puppet/metatype/schedules.rb +0 -1
  114. data/lib/puppet/metatype/tags.rb +0 -1
  115. data/lib/puppet/module.rb +60 -32
  116. data/lib/puppet/network/authconfig.rb +0 -1
  117. data/lib/puppet/network/authorization.rb +0 -1
  118. data/lib/puppet/network/authstore.rb +0 -1
  119. data/lib/puppet/network/client.rb +13 -4
  120. data/lib/puppet/network/client/ca.rb +4 -5
  121. data/lib/puppet/network/client/dipper.rb +0 -1
  122. data/lib/puppet/network/client/file.rb +0 -1
  123. data/lib/puppet/network/client/master.rb +127 -235
  124. data/lib/puppet/network/client/proxy.rb +0 -1
  125. data/lib/puppet/network/client/report.rb +0 -1
  126. data/lib/puppet/network/client/resource.rb +0 -1
  127. data/lib/puppet/network/client/runner.rb +0 -1
  128. data/lib/puppet/network/client/status.rb +0 -1
  129. data/lib/puppet/network/client_request.rb +0 -1
  130. data/lib/puppet/network/handler.rb +5 -2
  131. data/lib/puppet/network/handler/ca.rb +1 -2
  132. data/lib/puppet/network/handler/configuration.rb +184 -0
  133. data/lib/puppet/network/handler/filebucket.rb +1 -2
  134. data/lib/puppet/network/handler/fileserver.rb +279 -107
  135. data/lib/puppet/network/handler/master.rb +57 -152
  136. data/lib/puppet/network/handler/report.rb +6 -65
  137. data/lib/puppet/network/handler/resource.rb +5 -13
  138. data/lib/puppet/network/handler/runner.rb +3 -4
  139. data/lib/puppet/network/handler/status.rb +0 -1
  140. data/lib/puppet/network/http.rb +13 -0
  141. data/lib/puppet/network/http/handler.rb +109 -0
  142. data/lib/puppet/network/http/mongrel.rb +54 -0
  143. data/lib/puppet/network/http/mongrel/rest.rb +37 -0
  144. data/lib/puppet/network/http/mongrel/xmlrpc.rb +4 -0
  145. data/lib/puppet/network/http/webrick.rb +51 -0
  146. data/lib/puppet/network/http/webrick/rest.rb +41 -0
  147. data/lib/puppet/network/http/webrick/xmlrpc.rb +4 -0
  148. data/lib/puppet/network/http_server.rb +3 -0
  149. data/lib/puppet/network/{server → http_server}/mongrel.rb +11 -5
  150. data/lib/puppet/network/{server → http_server}/webrick.rb +9 -5
  151. data/lib/puppet/network/rest_controller.rb +2 -0
  152. data/lib/puppet/network/rights.rb +0 -1
  153. data/lib/puppet/network/server.rb +63 -3
  154. data/lib/puppet/network/xmlrpc/client.rb +90 -23
  155. data/lib/puppet/network/xmlrpc/processor.rb +0 -1
  156. data/lib/puppet/network/xmlrpc/server.rb +0 -1
  157. data/lib/puppet/network/xmlrpc/webrick_servlet.rb +0 -1
  158. data/lib/puppet/node.rb +165 -0
  159. data/lib/puppet/node/catalog.rb +480 -0
  160. data/lib/puppet/node/environment.rb +46 -0
  161. data/lib/puppet/node/facts.rb +36 -0
  162. data/lib/puppet/parameter.rb +34 -28
  163. data/lib/puppet/parser/ast.rb +0 -1
  164. data/lib/puppet/parser/ast/astarray.rb +30 -53
  165. data/lib/puppet/parser/ast/branch.rb +0 -10
  166. data/lib/puppet/parser/ast/caseopt.rb +0 -11
  167. data/lib/puppet/parser/ast/casestatement.rb +0 -12
  168. data/lib/puppet/parser/ast/collection.rb +1 -3
  169. data/lib/puppet/parser/ast/collexpr.rb +0 -2
  170. data/lib/puppet/parser/ast/{component.rb → definition.rb} +58 -72
  171. data/lib/puppet/parser/ast/else.rb +0 -10
  172. data/lib/puppet/parser/ast/function.rb +0 -2
  173. data/lib/puppet/parser/ast/hostclass.rb +21 -19
  174. data/lib/puppet/parser/ast/ifstatement.rb +0 -13
  175. data/lib/puppet/parser/ast/leaf.rb +0 -8
  176. data/lib/puppet/parser/ast/node.rb +13 -10
  177. data/lib/puppet/parser/ast/resource.rb +75 -0
  178. data/lib/puppet/parser/ast/{resourcedefaults.rb → resource_defaults.rb} +4 -20
  179. data/lib/puppet/parser/ast/{resourceoverride.rb → resource_override.rb} +3 -5
  180. data/lib/puppet/parser/ast/resource_reference.rb +66 -0
  181. data/lib/puppet/parser/ast/resourceparam.rb +0 -14
  182. data/lib/puppet/parser/ast/selector.rb +0 -10
  183. data/lib/puppet/parser/ast/tag.rb +0 -2
  184. data/lib/puppet/parser/ast/vardef.rb +0 -14
  185. data/lib/puppet/parser/collector.rb +83 -101
  186. data/lib/puppet/parser/compile.rb +509 -0
  187. data/lib/puppet/parser/functions.rb +10 -10
  188. data/lib/puppet/parser/interpreter.rb +44 -662
  189. data/lib/puppet/parser/lexer.rb +1 -3
  190. data/lib/puppet/parser/parser.rb +674 -701
  191. data/lib/puppet/parser/parser_support.rb +33 -24
  192. data/lib/puppet/parser/resource.rb +219 -162
  193. data/lib/puppet/parser/resource/param.rb +1 -2
  194. data/lib/puppet/parser/resource/reference.rb +24 -16
  195. data/lib/puppet/parser/scope.rb +48 -459
  196. data/lib/puppet/parser/templatewrapper.rb +4 -5
  197. data/lib/puppet/pgraph.rb +10 -13
  198. data/lib/puppet/property.rb +25 -41
  199. data/lib/puppet/propertychange.rb +0 -2
  200. data/lib/puppet/provider.rb +15 -11
  201. data/lib/puppet/provider/cron/crontab.rb +6 -7
  202. data/lib/puppet/provider/group/groupadd.rb +0 -1
  203. data/lib/puppet/provider/group/netinfo.rb +0 -1
  204. data/lib/puppet/provider/group/pw.rb +0 -1
  205. data/lib/puppet/provider/host/netinfo.rb +0 -1
  206. data/lib/puppet/provider/host/parsed.rb +0 -1
  207. data/lib/puppet/provider/interface/redhat.rb +90 -91
  208. data/lib/puppet/provider/interface/sunos.rb +98 -81
  209. data/lib/puppet/provider/mailalias/aliases.rb +0 -1
  210. data/lib/puppet/provider/maillist/mailman.rb +2 -3
  211. data/lib/puppet/provider/mount.rb +10 -9
  212. data/lib/puppet/provider/mount/netinfo.rb +0 -1
  213. data/lib/puppet/provider/mount/parsed.rb +0 -1
  214. data/lib/puppet/provider/nameservice.rb +0 -1
  215. data/lib/puppet/provider/nameservice/netinfo.rb +0 -1
  216. data/lib/puppet/provider/nameservice/objectadd.rb +0 -1
  217. data/lib/puppet/provider/nameservice/pw.rb +0 -1
  218. data/lib/puppet/provider/package.rb +0 -2
  219. data/lib/puppet/provider/package/appdmg.rb +0 -1
  220. data/lib/puppet/provider/package/apple.rb +0 -1
  221. data/lib/puppet/provider/package/apt.rb +0 -1
  222. data/lib/puppet/provider/package/aptitude.rb +0 -1
  223. data/lib/puppet/provider/package/aptrpm.rb +0 -1
  224. data/lib/puppet/provider/package/blastwave.rb +0 -1
  225. data/lib/puppet/provider/package/darwinport.rb +0 -1
  226. data/lib/puppet/provider/package/dpkg.rb +9 -1
  227. data/lib/puppet/provider/package/fink.rb +0 -1
  228. data/lib/puppet/provider/package/freebsd.rb +0 -1
  229. data/lib/puppet/provider/package/gem.rb +0 -1
  230. data/lib/puppet/provider/package/openbsd.rb +1 -2
  231. data/lib/puppet/provider/package/pkgdmg.rb +14 -15
  232. data/lib/puppet/provider/package/portage.rb +6 -7
  233. data/lib/puppet/provider/package/ports.rb +1 -4
  234. data/lib/puppet/provider/package/rpm.rb +31 -45
  235. data/lib/puppet/provider/package/sun.rb +0 -3
  236. data/lib/puppet/provider/package/sunfreeware.rb +0 -1
  237. data/lib/puppet/provider/package/up2date.rb +0 -1
  238. data/lib/puppet/provider/package/urpmi.rb +0 -1
  239. data/lib/puppet/provider/package/yum.rb +45 -14
  240. data/lib/puppet/provider/package/yumhelper.py +37 -0
  241. data/lib/puppet/provider/parsedfile.rb +2 -3
  242. data/lib/puppet/provider/port/parsed.rb +0 -1
  243. data/lib/puppet/provider/service/base.rb +4 -1
  244. data/lib/puppet/provider/service/debian.rb +5 -2
  245. data/lib/puppet/provider/service/freebsd.rb +51 -0
  246. data/lib/puppet/provider/service/init.rb +16 -40
  247. data/lib/puppet/provider/service/redhat.rb +1 -6
  248. data/lib/puppet/provider/service/smf.rb +0 -1
  249. data/lib/puppet/provider/sshkey/parsed.rb +0 -1
  250. data/lib/puppet/provider/user/netinfo.rb +0 -1
  251. data/lib/puppet/provider/user/pw.rb +0 -1
  252. data/lib/puppet/provider/user/useradd.rb +0 -1
  253. data/lib/puppet/provider/zone/solaris.rb +0 -1
  254. data/lib/puppet/rails.rb +35 -30
  255. data/lib/puppet/rails/database/schema.rb +0 -1
  256. data/lib/puppet/rails/host.rb +6 -15
  257. data/lib/puppet/rails/param_name.rb +1 -2
  258. data/lib/puppet/rails/param_value.rb +0 -1
  259. data/lib/puppet/rails/puppet_class.rb +0 -1
  260. data/lib/puppet/rails/resource.rb +3 -5
  261. data/lib/puppet/reference/configuration.rb +12 -6
  262. data/lib/puppet/reference/indirection.rb +34 -0
  263. data/lib/puppet/reference/node_source.rb +9 -0
  264. data/lib/puppet/relationship.rb +10 -8
  265. data/lib/puppet/reports.rb +51 -0
  266. data/lib/puppet/reports/log.rb +2 -3
  267. data/lib/puppet/reports/rrdgraph.rb +2 -5
  268. data/lib/puppet/reports/store.rb +6 -7
  269. data/lib/puppet/reports/tagmail.rb +2 -3
  270. data/lib/puppet/resource_reference.rb +79 -0
  271. data/lib/puppet/simple_graph.rb +251 -0
  272. data/lib/puppet/sslcertificates.rb +19 -15
  273. data/lib/puppet/sslcertificates/ca.rb +56 -15
  274. data/lib/puppet/sslcertificates/certificate.rb +0 -1
  275. data/lib/puppet/sslcertificates/inventory.rb +2 -6
  276. data/lib/puppet/sslcertificates/monkey_patch.rb +6 -0
  277. data/lib/puppet/sslcertificates/support.rb +4 -5
  278. data/lib/puppet/transaction.rb +93 -96
  279. data/lib/puppet/transaction/report.rb +5 -1
  280. data/lib/puppet/transportable.rb +79 -125
  281. data/lib/puppet/type.rb +44 -10
  282. data/lib/puppet/type/component.rb +25 -110
  283. data/lib/puppet/type/cron.rb +1 -2
  284. data/lib/puppet/type/exec.rb +19 -13
  285. data/lib/puppet/type/group.rb +0 -1
  286. data/lib/puppet/type/host.rb +0 -1
  287. data/lib/puppet/type/interface.rb +6 -3
  288. data/lib/puppet/type/k5login.rb +87 -0
  289. data/lib/puppet/type/mailalias.rb +0 -1
  290. data/lib/puppet/type/maillist.rb +0 -1
  291. data/lib/puppet/type/mount.rb +7 -13
  292. data/lib/puppet/type/notify.rb +0 -1
  293. data/lib/puppet/type/package.rb +7 -63
  294. data/lib/puppet/type/pfile.rb +25 -32
  295. data/lib/puppet/type/pfile/checksum.rb +0 -1
  296. data/lib/puppet/type/pfile/content.rb +18 -3
  297. data/lib/puppet/type/pfile/ensure.rb +5 -6
  298. data/lib/puppet/type/pfile/group.rb +4 -1
  299. data/lib/puppet/type/pfile/mode.rb +0 -1
  300. data/lib/puppet/type/pfile/owner.rb +6 -9
  301. data/lib/puppet/type/pfile/source.rb +28 -11
  302. data/lib/puppet/type/pfile/target.rb +2 -1
  303. data/lib/puppet/type/pfile/type.rb +0 -1
  304. data/lib/puppet/type/pfilebucket.rb +0 -1
  305. data/lib/puppet/type/port.rb +0 -1
  306. data/lib/puppet/type/resources.rb +0 -1
  307. data/lib/puppet/type/schedule.rb +17 -15
  308. data/lib/puppet/type/service.rb +23 -159
  309. data/lib/puppet/type/sshkey.rb +0 -1
  310. data/lib/puppet/type/tidy.rb +15 -7
  311. data/lib/puppet/type/user.rb +0 -1
  312. data/lib/puppet/type/zone.rb +0 -1
  313. data/lib/puppet/util.rb +1 -2
  314. data/lib/puppet/util/autoload.rb +21 -23
  315. data/lib/puppet/util/checksums.rb +37 -0
  316. data/lib/puppet/util/classgen.rb +0 -1
  317. data/lib/puppet/util/diff.rb +71 -0
  318. data/lib/puppet/util/docs.rb +8 -2
  319. data/lib/puppet/util/errors.rb +0 -1
  320. data/lib/puppet/util/execution.rb +0 -1
  321. data/lib/puppet/util/fact_store.rb +0 -1
  322. data/lib/puppet/util/feature.rb +31 -22
  323. data/lib/puppet/util/fileparsing.rb +3 -2
  324. data/lib/puppet/util/filetype.rb +30 -12
  325. data/lib/puppet/util/graph.rb +0 -1
  326. data/lib/puppet/util/inifile.rb +0 -1
  327. data/lib/puppet/util/instance_loader.rb +11 -4
  328. data/lib/puppet/util/loadedfile.rb +0 -1
  329. data/lib/puppet/util/log.rb +0 -1
  330. data/lib/puppet/util/log_paths.rb +0 -1
  331. data/lib/puppet/util/logging.rb +0 -1
  332. data/lib/puppet/util/metaid.rb +0 -1
  333. data/lib/puppet/util/methodhelper.rb +0 -2
  334. data/lib/puppet/util/metric.rb +1 -2
  335. data/lib/puppet/util/plist.rb +0 -1
  336. data/lib/puppet/util/plist/generator.rb +0 -1
  337. data/lib/puppet/util/plist/parser.rb +0 -1
  338. data/lib/puppet/util/posix.rb +7 -1
  339. data/lib/puppet/util/provider_features.rb +11 -12
  340. data/lib/puppet/util/rails/collection_merger.rb +0 -1
  341. data/lib/puppet/util/reference.rb +2 -3
  342. data/lib/puppet/util/{config.rb → settings.rb} +424 -300
  343. data/lib/puppet/util/storage.rb +1 -3
  344. data/lib/puppet/util/subclass_loader.rb +0 -1
  345. data/lib/puppet/util/suidmanager.rb +25 -42
  346. data/lib/puppet/util/uri_helper.rb +22 -0
  347. data/lib/puppet/util/variables.rb +0 -1
  348. data/lib/puppet/util/warnings.rb +0 -1
  349. data/test/Rakefile +1 -1
  350. data/test/certmgr/ca.rb +8 -2
  351. data/test/certmgr/certmgr.rb +14 -6
  352. data/test/certmgr/inventory.rb +18 -30
  353. data/test/certmgr/support.rb +3 -2
  354. data/test/executables/filebucket.rb +1 -2
  355. data/test/executables/puppetbin.rb +1 -2
  356. data/test/executables/puppetca.rb +7 -2
  357. data/test/executables/puppetd.rb +23 -29
  358. data/test/executables/puppetmasterd.rb +1 -2
  359. data/test/executables/puppetmodule.rb +1 -2
  360. data/test/language/ast.rb +24 -29
  361. data/test/language/ast/casestatement.rb +1 -2
  362. data/test/language/ast/definition.rb +166 -0
  363. data/test/language/ast/hostclass.rb +50 -29
  364. data/test/language/ast/resource.rb +59 -0
  365. data/test/language/ast/{resourceref.rb → resource_reference.rb} +30 -20
  366. data/test/language/ast/selector.rb +1 -2
  367. data/test/language/ast/variable.rb +1 -2
  368. data/test/language/compile.rb +569 -0
  369. data/test/language/functions.rb +57 -76
  370. data/test/language/lexer.rb +20 -3
  371. data/test/language/parser.rb +45 -33
  372. data/test/language/resource.rb +275 -308
  373. data/test/language/scope.rb +135 -410
  374. data/test/language/snippets.rb +19 -41
  375. data/test/language/transportable.rb +8 -29
  376. data/test/lib/mocha/auto_verify.rb +6 -6
  377. data/test/lib/mocha/deprecation.rb +22 -0
  378. data/test/lib/mocha/exception_raiser.rb +17 -0
  379. data/test/lib/mocha/expectation.rb +167 -84
  380. data/test/lib/mocha/infinite_range.rb +4 -6
  381. data/test/lib/mocha/inspect.rb +3 -1
  382. data/test/lib/mocha/is_a.rb +9 -0
  383. data/test/lib/mocha/missing_expectation.rb +27 -0
  384. data/test/lib/mocha/mock.rb +192 -5
  385. data/test/lib/mocha/multiple_yields.rb +20 -0
  386. data/test/lib/mocha/no_yields.rb +11 -0
  387. data/test/lib/mocha/object.rb +11 -1
  388. data/test/lib/mocha/parameter_matchers.rb +9 -0
  389. data/test/lib/mocha/parameter_matchers/all_of.rb +39 -0
  390. data/test/lib/mocha/parameter_matchers/any_of.rb +44 -0
  391. data/test/lib/mocha/parameter_matchers/anything.rb +30 -0
  392. data/test/lib/mocha/parameter_matchers/has_entry.rb +39 -0
  393. data/test/lib/mocha/parameter_matchers/has_key.rb +39 -0
  394. data/test/lib/mocha/parameter_matchers/has_value.rb +39 -0
  395. data/test/lib/mocha/parameter_matchers/includes.rb +37 -0
  396. data/test/lib/mocha/return_values.rb +31 -0
  397. data/test/lib/mocha/single_return_value.rb +24 -0
  398. data/test/lib/mocha/single_yield.rb +18 -0
  399. data/test/lib/mocha/standalone.rb +2 -0
  400. data/test/lib/mocha/stub.rb +18 -0
  401. data/test/lib/mocha/test_case_adapter.rb +3 -3
  402. data/test/lib/mocha/yield_parameters.rb +31 -0
  403. data/test/lib/puppettest.rb +38 -20
  404. data/test/lib/puppettest/certificates.rb +0 -1
  405. data/test/lib/puppettest/exetest.rb +0 -1
  406. data/test/lib/puppettest/fakes.rb +0 -1
  407. data/test/lib/puppettest/fileparsing.rb +8 -15
  408. data/test/lib/puppettest/filetesting.rb +0 -1
  409. data/test/lib/puppettest/parsertesting.rb +37 -23
  410. data/test/lib/puppettest/railstesting.rb +3 -6
  411. data/test/lib/puppettest/reporttesting.rb +0 -1
  412. data/test/lib/puppettest/resourcetesting.rb +6 -34
  413. data/test/lib/puppettest/runnable_test.rb +30 -0
  414. data/test/lib/puppettest/servertest.rb +2 -3
  415. data/test/lib/puppettest/support/assertions.rb +13 -41
  416. data/test/lib/puppettest/support/collection.rb +0 -1
  417. data/test/lib/puppettest/support/helpers.rb +0 -1
  418. data/test/lib/puppettest/support/resources.rb +17 -17
  419. data/test/lib/puppettest/support/utils.rb +45 -27
  420. data/test/lib/puppettest/testcase.rb +2 -21
  421. data/test/lib/rake/puppet_test_loader.rb +0 -1
  422. data/test/lib/rake/puppet_testtask.rb +0 -1
  423. data/test/network/authconfig.rb +1 -2
  424. data/test/network/authorization.rb +1 -2
  425. data/test/network/authstore.rb +1 -2
  426. data/test/network/client/ca.rb +12 -7
  427. data/test/network/client/client.rb +17 -22
  428. data/test/network/client/dipper.rb +1 -2
  429. data/test/network/client/master.rb +70 -184
  430. data/test/network/client/resource.rb +9 -2
  431. data/test/network/client_request.rb +1 -2
  432. data/test/network/daemon.rb +1 -2
  433. data/test/network/handler/bucket.rb +2 -31
  434. data/test/network/handler/ca.rb +9 -3
  435. data/test/network/handler/configuration.rb +160 -0
  436. data/test/network/handler/fileserver.rb +24 -5
  437. data/test/network/handler/handler.rb +1 -2
  438. data/test/network/handler/master.rb +38 -243
  439. data/test/network/handler/report.rb +2 -104
  440. data/test/network/handler/resource.rb +5 -3
  441. data/test/network/handler/runner.rb +22 -60
  442. data/test/network/rights.rb +1 -2
  443. data/test/network/server/mongrel_test.rb +2 -3
  444. data/test/network/server/webrick.rb +17 -11
  445. data/test/network/xmlrpc/client.rb +27 -12
  446. data/test/network/xmlrpc/processor.rb +3 -4
  447. data/test/network/xmlrpc/server.rb +1 -2
  448. data/test/network/xmlrpc/webrick_servlet.rb +8 -2
  449. data/test/other/dsl.rb +2 -4
  450. data/test/other/events.rb +14 -56
  451. data/test/other/overrides.rb +3 -6
  452. data/test/other/propertychange.rb +1 -2
  453. data/test/other/provider.rb +1 -2
  454. data/test/other/puppet.rb +1 -2
  455. data/test/other/relationships.rb +15 -17
  456. data/test/other/report.rb +14 -20
  457. data/test/other/transactions.rb +109 -192
  458. data/test/puppet/conffiles.rb +3 -5
  459. data/test/puppet/defaults.rb +1 -28
  460. data/test/puppet/errortest.rb +1 -2
  461. data/test/puppet/tc_suidmanager.rb +77 -63
  462. data/test/rails/ast.rb +4 -4
  463. data/test/rails/configuration.rb +71 -0
  464. data/test/rails/host.rb +19 -30
  465. data/test/rails/rails.rb +1 -2
  466. data/test/rails/railsparameter.rb +3 -4
  467. data/test/rails/railsresource.rb +6 -5
  468. data/test/ral/manager/attributes.rb +1 -2
  469. data/test/ral/manager/instances.rb +3 -3
  470. data/test/ral/manager/manager.rb +1 -2
  471. data/test/ral/manager/provider.rb +1 -2
  472. data/test/ral/manager/type.rb +89 -93
  473. data/test/ral/providers/cron/crontab.rb +9 -11
  474. data/test/ral/providers/group.rb +1 -2
  475. data/test/ral/providers/host/netinfo.rb +1 -2
  476. data/test/ral/providers/host/parsed.rb +1 -2
  477. data/test/ral/providers/mailalias/aliases.rb +1 -2
  478. data/test/ral/providers/mount/netinfo.rb +1 -2
  479. data/test/ral/providers/nameservice.rb +1 -2
  480. data/test/ral/providers/package.rb +5 -4
  481. data/test/ral/providers/package/apt.rb +0 -1
  482. data/test/ral/providers/package/aptrpm.rb +0 -1
  483. data/test/ral/providers/parsedfile.rb +1 -2
  484. data/test/ral/providers/port/parsed.rb +1 -2
  485. data/test/ral/providers/provider.rb +10 -5
  486. data/test/ral/providers/service/base.rb +1 -2
  487. data/test/ral/providers/service/debian.rb +58 -0
  488. data/test/ral/providers/sshkey/parsed.rb +1 -2
  489. data/test/ral/providers/user.rb +3 -2
  490. data/test/ral/providers/user/useradd.rb +0 -1
  491. data/test/ral/types/basic.rb +4 -9
  492. data/test/ral/types/cron.rb +6 -12
  493. data/test/ral/types/exec.rb +6 -7
  494. data/test/ral/types/file.rb +35 -14
  495. data/test/ral/types/file/target.rb +6 -5
  496. data/test/ral/types/filebucket.rb +3 -2
  497. data/test/ral/types/fileignoresource.rb +10 -42
  498. data/test/ral/types/filesources.rb +21 -60
  499. data/test/ral/types/group.rb +3 -3
  500. data/test/ral/types/host.rb +6 -3
  501. data/test/ral/types/mailalias.rb +1 -2
  502. data/test/ral/types/parameter.rb +5 -3
  503. data/test/ral/types/port.rb +1 -2
  504. data/test/ral/types/property.rb +3 -3
  505. data/test/ral/types/resources.rb +1 -2
  506. data/test/ral/types/service.rb +5 -3
  507. data/test/ral/types/sshkey.rb +5 -3
  508. data/test/ral/types/tidy.rb +63 -3
  509. data/test/ral/types/user.rb +10 -11
  510. data/test/ral/types/yumrepo.rb +1 -1
  511. data/test/ral/types/zone.rb +1 -2
  512. data/test/util/autoload.rb +23 -27
  513. data/test/util/classgen.rb +1 -2
  514. data/test/util/execution.rb +1 -2
  515. data/test/util/features.rb +1 -3
  516. data/test/util/fileparsing.rb +11 -3
  517. data/test/util/filetype.rb +1 -2
  518. data/test/util/inifile.rb +1 -1
  519. data/test/util/instance_loader.rb +5 -6
  520. data/test/util/loadedfile.rb +1 -2
  521. data/test/util/log.rb +1 -2
  522. data/test/util/metrics.rb +1 -2
  523. data/test/util/package.rb +1 -2
  524. data/test/util/posixtest.rb +1 -2
  525. data/test/util/{config.rb → settings.rb} +123 -265
  526. data/test/util/storage.rb +1 -2
  527. data/test/util/subclass_loader.rb +1 -2
  528. data/test/util/utiltest.rb +1 -111
  529. metadata +130 -112
  530. data/ext/tools/passwd2puppet +0 -45
  531. data/lib/puppet/fact_stores/yaml.rb +0 -42
  532. data/lib/puppet/network/handler/facts.rb +0 -70
  533. data/lib/puppet/parser/ast/resourcedef.rb +0 -222
  534. data/lib/puppet/parser/ast/resourceref.rb +0 -58
  535. data/test/language/ast/component.rb +0 -142
  536. data/test/language/collector.rb +0 -179
  537. data/test/language/interpreter.rb +0 -804
  538. data/test/language/node.rb +0 -126
  539. data/test/lib/mocha/mock_methods.rb +0 -122
  540. data/test/lib/puppettest/graph.rb +0 -41
  541. data/test/lib/spec.rb +0 -8
  542. data/test/lib/spec/callback.rb +0 -11
  543. data/test/lib/spec/callback/callback_container.rb +0 -60
  544. data/test/lib/spec/callback/extensions/module.rb +0 -24
  545. data/test/lib/spec/callback/extensions/object.rb +0 -37
  546. data/test/lib/spec/deprecated.rb +0 -3
  547. data/test/lib/spec/expectations.rb +0 -59
  548. data/test/lib/spec/expectations/differs/default.rb +0 -62
  549. data/test/lib/spec/expectations/errors.rb +0 -6
  550. data/test/lib/spec/expectations/extensions.rb +0 -3
  551. data/test/lib/spec/expectations/extensions/object.rb +0 -109
  552. data/test/lib/spec/expectations/extensions/proc.rb +0 -57
  553. data/test/lib/spec/expectations/extensions/string_and_symbol.rb +0 -17
  554. data/test/lib/spec/expectations/handler.rb +0 -47
  555. data/test/lib/spec/expectations/should.rb +0 -5
  556. data/test/lib/spec/expectations/should/base.rb +0 -64
  557. data/test/lib/spec/expectations/should/change.rb +0 -69
  558. data/test/lib/spec/expectations/should/have.rb +0 -128
  559. data/test/lib/spec/expectations/should/not.rb +0 -74
  560. data/test/lib/spec/expectations/should/should.rb +0 -81
  561. data/test/lib/spec/expectations/sugar.rb +0 -47
  562. data/test/lib/spec/matchers.rb +0 -160
  563. data/test/lib/spec/matchers/be.rb +0 -161
  564. data/test/lib/spec/matchers/be_close.rb +0 -37
  565. data/test/lib/spec/matchers/change.rb +0 -120
  566. data/test/lib/spec/matchers/eql.rb +0 -43
  567. data/test/lib/spec/matchers/equal.rb +0 -43
  568. data/test/lib/spec/matchers/has.rb +0 -44
  569. data/test/lib/spec/matchers/have.rb +0 -140
  570. data/test/lib/spec/matchers/include.rb +0 -50
  571. data/test/lib/spec/matchers/match.rb +0 -41
  572. data/test/lib/spec/matchers/raise_error.rb +0 -100
  573. data/test/lib/spec/matchers/respond_to.rb +0 -35
  574. data/test/lib/spec/matchers/satisfy.rb +0 -47
  575. data/test/lib/spec/matchers/throw_symbol.rb +0 -75
  576. data/test/lib/spec/mocks.rb +0 -232
  577. data/test/lib/spec/mocks/argument_expectation.rb +0 -132
  578. data/test/lib/spec/mocks/error_generator.rb +0 -85
  579. data/test/lib/spec/mocks/errors.rb +0 -10
  580. data/test/lib/spec/mocks/extensions/object.rb +0 -3
  581. data/test/lib/spec/mocks/message_expectation.rb +0 -231
  582. data/test/lib/spec/mocks/methods.rb +0 -40
  583. data/test/lib/spec/mocks/mock.rb +0 -26
  584. data/test/lib/spec/mocks/mock_handler.rb +0 -166
  585. data/test/lib/spec/mocks/order_group.rb +0 -29
  586. data/test/lib/spec/rake/spectask.rb +0 -173
  587. data/test/lib/spec/rake/verify_rcov.rb +0 -47
  588. data/test/lib/spec/runner.rb +0 -132
  589. data/test/lib/spec/runner/backtrace_tweaker.rb +0 -55
  590. data/test/lib/spec/runner/command_line.rb +0 -34
  591. data/test/lib/spec/runner/context.rb +0 -154
  592. data/test/lib/spec/runner/context_eval.rb +0 -142
  593. data/test/lib/spec/runner/context_runner.rb +0 -55
  594. data/test/lib/spec/runner/drb_command_line.rb +0 -21
  595. data/test/lib/spec/runner/execution_context.rb +0 -17
  596. data/test/lib/spec/runner/extensions/kernel.rb +0 -17
  597. data/test/lib/spec/runner/extensions/object.rb +0 -32
  598. data/test/lib/spec/runner/formatter.rb +0 -5
  599. data/test/lib/spec/runner/formatter/base_text_formatter.rb +0 -118
  600. data/test/lib/spec/runner/formatter/html_formatter.rb +0 -219
  601. data/test/lib/spec/runner/formatter/progress_bar_formatter.rb +0 -27
  602. data/test/lib/spec/runner/formatter/rdoc_formatter.rb +0 -22
  603. data/test/lib/spec/runner/formatter/specdoc_formatter.rb +0 -23
  604. data/test/lib/spec/runner/heckle_runner.rb +0 -71
  605. data/test/lib/spec/runner/heckle_runner_win.rb +0 -10
  606. data/test/lib/spec/runner/option_parser.rb +0 -224
  607. data/test/lib/spec/runner/reporter.rb +0 -105
  608. data/test/lib/spec/runner/spec_matcher.rb +0 -25
  609. data/test/lib/spec/runner/spec_parser.rb +0 -41
  610. data/test/lib/spec/runner/spec_should_raise_handler.rb +0 -74
  611. data/test/lib/spec/runner/specification.rb +0 -114
  612. data/test/lib/spec/translator.rb +0 -87
  613. data/test/lib/spec/version.rb +0 -30
  614. data/test/network/handler/facts.rb +0 -112
  615. data/test/other/pgraph.rb +0 -290
  616. data/test/other/relationship.rb +0 -74
  617. data/test/puppet/modules.rb +0 -59
  618. data/test/rails/collection.rb +0 -247
  619. data/test/rails/interpreter.rb +0 -91
  620. data/test/ral/providers/mount/parsed.rb +0 -251
  621. data/test/ral/providers/service.rb +0 -235
  622. data/test/ral/types/component.rb +0 -113
  623. data/test/ral/types/interface.rb +0 -40
  624. data/test/ral/types/mount.rb +0 -362
  625. data/test/ral/types/package.rb +0 -154
  626. data/test/ral/types/schedule.rb +0 -357
  627. data/test/tagging/tagging.rb +0 -170
  628. data/test/util/fact_store.rb +0 -67
  629. data/test/util/graph.rb +0 -108
@@ -0,0 +1,12 @@
1
+ # Jeff McCune <jeff.mccune@northstarlabs.net>
2
+ #
3
+ # Demonstration of a custom parser function and erb template within
4
+ # a module, working in concert.
5
+
6
+ class sample-module {
7
+ $fqdn_to_dn = hostname_to_dn($domain)
8
+ $sample_template = template("sample-module/sample.erb")
9
+
10
+ notice("hostname_to_dn module function returned: [$fqdn_to_dn]")
11
+ info("sample.erb looks like:\n$sample_template")
12
+ }
@@ -0,0 +1,5 @@
1
+
2
+ ## Jeff McCune <jeff.mccune@northstarlabs.net>
3
+ fqdn: <%= fqdn %>
4
+ basedn: <%= fqdn_to_dn %>
5
+ ## end sample.erb ##
@@ -1,4 +1,4 @@
1
- # $Id: nodes 418 2005-07-18 20:05:27Z luke $
1
+ # $Id$
2
2
 
3
3
  # define nodes
4
4
 
@@ -1,4 +1,4 @@
1
- # $Id: one 397 2005-07-14 20:01:13Z luke $
1
+ # $Id$
2
2
 
3
3
  # this service doesn't actually exist, so we noop it
4
4
  # and this way, we can test noop :)
@@ -1,4 +1,4 @@
1
- # $Id: relationships 832 2006-01-17 07:11:50Z luke $
1
+ # $Id$
2
2
 
3
3
  #service.setpath("../examples/root/etc/init.d")
4
4
  #puppet.statefile("/tmp/puppetstate")
@@ -1,4 +1,4 @@
1
- # $Id: selectors 599 2005-08-29 21:03:46Z luke $
1
+ # $Id$
2
2
  #
3
3
 
4
4
  $platform = SunOS
@@ -1,4 +1,4 @@
1
- # $Id: simpletests 832 2006-01-17 07:11:50Z luke $
1
+ # $Id$
2
2
 
3
3
  file {
4
4
  "/tmp/atest": ensure => file;
@@ -1,6 +1,6 @@
1
1
  #!/bin/bash
2
2
 
3
- # $Id: sleeper 1569 2006-09-05 23:46:32Z luke $
3
+ # $Id$
4
4
 
5
5
  script=$0
6
6
  path=`echo $script | sed 's/etc..*/bin/'`
@@ -1,4 +1,4 @@
1
- # $Id: fileserver.conf 1861 2006-11-12 22:16:59Z luke $
1
+ # $Id$
2
2
 
3
3
  [dist]
4
4
  path /dist
@@ -1,6 +1,6 @@
1
1
  # These OIDs are all fake. No guarantees there won't be conflicts.
2
2
  #
3
- # $Id: puppet.schema 1260 2006-06-13 18:09:07Z luke $
3
+ # $Id$
4
4
 
5
5
  attributetype ( 1.1.3.10 NAME 'puppetclass'
6
6
  DESC 'Puppet Node Class'
@@ -61,7 +61,7 @@ options = [
61
61
  ]
62
62
 
63
63
  # Add all of the config parameters as valid options.
64
- Puppet.config.addargs(options)
64
+ Puppet.settings.addargs(options)
65
65
 
66
66
  result = GetoptLong.new(*options)
67
67
 
@@ -108,7 +108,7 @@ begin
108
108
  $stderr.puts detail.to_s
109
109
  end
110
110
  else
111
- Puppet.config.handlearg(opt, arg)
111
+ Puppet.settings.handlearg(opt, arg)
112
112
  end
113
113
  }
114
114
  rescue GetoptLong::InvalidOption => detail
@@ -121,7 +121,7 @@ end
121
121
 
122
122
  # Now parse the config
123
123
  if Puppet[:config] and File.exists? Puppet[:config]
124
- Puppet.config.parse(Puppet[:config])
124
+ Puppet.settings.parse(Puppet[:config])
125
125
  end
126
126
 
127
127
  client = nil
@@ -150,14 +150,23 @@ unless setdest
150
150
  Puppet::Util::Log.newdestination(:syslog)
151
151
  end
152
152
 
153
- master[:Manifest] = ARGV.shift
153
+ Puppet[:manifest] = ARGV.shift
154
154
 
155
155
  unless ENV.include?("CFALLCLASSES")
156
156
  $stderr.puts "Cfengine classes must be passed to the module"
157
157
  exit(15)
158
158
  end
159
159
 
160
- master[:UseNodes] = false
160
+ # Collect our facts.
161
+ Puppet::Node::Facts.terminus_class = :facter
162
+ facts = Puppet::Node::Facts.find("me")
163
+ facts.name = facts.values["hostname"]
164
+
165
+ # Create our Node
166
+ node = Puppet::Node.new(facts.name)
167
+
168
+ # Merge in the facts.
169
+ node.merge(facts.values)
161
170
 
162
171
  classes = ENV["CFALLCLASSES"].split(":")
163
172
 
@@ -166,33 +175,33 @@ if classes.empty?
166
175
  exit(16)
167
176
  end
168
177
 
169
- master[:Classes] = classes
178
+ node.classes = classes
170
179
 
171
180
  begin
172
- server = Puppet::Network::Handler.master.new(master)
181
+ # Compile our configuration
182
+ catalog = Puppet::Node::Catalog.find(node)
173
183
  rescue => detail
174
- $stderr.puts detail
175
- exit(1)
176
- end
177
-
178
- begin
179
- client = Puppet::Network::Client.master.new(
180
- :Master => server,
181
- :Cache => false
182
- )
183
- rescue => detail
184
- $stderr.puts detail
184
+ if Puppet[:trace]
185
+ puts detail.backtrace
186
+ end
187
+ if detail.is_a?(XMLRPC::FaultException)
188
+ $stderr.puts detail.message
189
+ else
190
+ $stderr.puts detail
191
+ end
185
192
  exit(1)
186
193
  end
187
194
 
188
-
189
195
  if parseonly
190
196
  exit(0)
191
197
  end
192
198
 
193
199
  begin
194
- client.getconfig
195
- client.apply
200
+ # Translate it to a RAL configuration
201
+ catalog = catalog.to_ral
202
+
203
+ # And apply it
204
+ catalog.apply
196
205
  rescue => detail
197
206
  Puppet.err detail
198
207
  exit(1)
@@ -200,7 +200,7 @@ class Suite
200
200
  end
201
201
  end
202
202
 
203
- Suite.new :configuration, "Configuration handling" do
203
+ Suite.new :catalog, "Catalog handling" do
204
204
  def prepare
205
205
  $args[:cache] = false
206
206
  # Create a config client and pull the config down
@@ -227,7 +227,7 @@ Suite.new :configuration, "Configuration handling" do
227
227
  @facts = YAML.dump(@facts)
228
228
  end
229
229
 
230
- newtest :compile, "Compiled configuration" do
230
+ newtest :compile, "Compiled catalog" do
231
231
  @client.driver.getconfig(@facts, "yaml")
232
232
  end
233
233
 
@@ -438,4 +438,4 @@ if $options[:fork] > 0
438
438
  Process.waitall
439
439
  end
440
440
 
441
- # $Id: puppet-test 2731 2007-07-31 02:34:28Z luke $
441
+ # $Id$
@@ -1,5 +1,5 @@
1
1
  " detect puppet filetypes
2
- " $Id: filetype.vim 875 2006-02-07 23:56:16Z luke $
2
+ " $Id$
3
3
 
4
4
  if exists("did_load_filetypes")
5
5
  finish
data/install.rb CHANGED
@@ -30,7 +30,6 @@
30
30
  # 5) Install all library files ending in .rb from lib/ into Ruby's
31
31
  # site_lib/version directory.
32
32
  #
33
- # $Id: install.rb 2580 2007-06-14 06:11:46Z luke $
34
33
  #++
35
34
 
36
35
  require 'rbconfig'
@@ -65,7 +64,7 @@ sbins = glob(%w{sbin/*})
65
64
  bins = glob(%w{bin/*})
66
65
  rdoc = glob(%w{bin/* sbin/* lib/**/*.rb README README-library CHANGELOG TODO Install}).reject { |e| e=~ /\.(bat|cmd)$/ }
67
66
  ri = glob(%w(bin/*.rb sbin/* lib/**/*.rb)).reject { |e| e=~ /\.(bat|cmd)$/ }
68
- libs = glob(%w{lib/**/*.rb})
67
+ libs = glob(%w{lib/**/*.rb lib/**/*.py})
69
68
  tests = glob(%w{tests/**/*.rb})
70
69
 
71
70
  def do_bins(bins, target, strip = 's?bin/')
@@ -12,7 +12,7 @@ require 'puppet/external/event-loop'
12
12
  require 'puppet/util'
13
13
  require 'puppet/util/log'
14
14
  require 'puppet/util/autoload'
15
- require 'puppet/util/config'
15
+ require 'puppet/util/settings'
16
16
  require 'puppet/util/feature'
17
17
  require 'puppet/util/suidmanager'
18
18
 
@@ -25,7 +25,7 @@ require 'puppet/util/suidmanager'
25
25
  # it's also a place to find top-level commands like 'debug'
26
26
 
27
27
  module Puppet
28
- PUPPETVERSION = '0.23.2'
28
+ PUPPETVERSION = '0.24.0'
29
29
 
30
30
  def Puppet.version
31
31
  return PUPPETVERSION
@@ -45,7 +45,7 @@ module Puppet
45
45
  end
46
46
 
47
47
  # the hash that determines how our system behaves
48
- @@config = Puppet::Util::Config.new
48
+ @@settings = Puppet::Util::Settings.new
49
49
 
50
50
  # The services running in this process.
51
51
  @services ||= []
@@ -76,7 +76,7 @@ module Puppet
76
76
 
77
77
  # Store a new default value.
78
78
  def self.setdefaults(section, hash)
79
- @@config.setdefaults(section, hash)
79
+ @@settings.setdefaults(section, hash)
80
80
  end
81
81
 
82
82
  # configuration parameter access and stuff
@@ -89,17 +89,17 @@ module Puppet
89
89
  return false
90
90
  end
91
91
  else
92
- return @@config[param]
92
+ return @@settings[param]
93
93
  end
94
94
  end
95
95
 
96
96
  # configuration parameter access and stuff
97
97
  def self.[]=(param,value)
98
- @@config[param] = value
98
+ @@settings[param] = value
99
99
  end
100
100
 
101
101
  def self.clear
102
- @@config.clear
102
+ @@settings.clear
103
103
  end
104
104
 
105
105
  def self.debug=(value)
@@ -110,19 +110,21 @@ module Puppet
110
110
  end
111
111
  end
112
112
 
113
- def self.config
114
- @@config
113
+ def self.settings
114
+ @@settings
115
115
  end
116
116
 
117
117
  # Load all of the configuration parameters.
118
- require 'puppet/configuration'
118
+ require 'puppet/defaults'
119
119
 
120
+ # Prints the contents of a config file with the available config elements, or it
121
+ # prints a single value of a config element.
120
122
  def self.genconfig
121
123
  if Puppet[:configprint] != ""
122
124
  val = Puppet[:configprint]
123
125
  if val == "all"
124
126
  hash = {}
125
- Puppet.config.each do |name, obj|
127
+ Puppet.settings.each do |name, obj|
126
128
  val = obj.value
127
129
  case val
128
130
  when true, false, "": val = val.inspect
@@ -134,7 +136,7 @@ module Puppet
134
136
  end
135
137
  elsif val =~ /,/
136
138
  val.split(/\s*,\s*/).sort.each do |v|
137
- if Puppet.config.include?(v)
139
+ if Puppet.settings.include?(v)
138
140
  puts "%s = %s" % [v, Puppet[v]]
139
141
  else
140
142
  puts "invalid parameter: %s" % v
@@ -143,7 +145,7 @@ module Puppet
143
145
  end
144
146
  else
145
147
  val.split(/\s*,\s*/).sort.each do |v|
146
- if Puppet.config.include?(v)
148
+ if Puppet.settings.include?(v)
147
149
  puts Puppet[val]
148
150
  else
149
151
  puts "invalid parameter: %s" % v
@@ -154,14 +156,14 @@ module Puppet
154
156
  exit(0)
155
157
  end
156
158
  if Puppet[:genconfig]
157
- puts Puppet.config.to_config
159
+ puts Puppet.settings.to_config
158
160
  exit(0)
159
161
  end
160
162
  end
161
163
 
162
164
  def self.genmanifest
163
165
  if Puppet[:genmanifest]
164
- puts Puppet.config.to_manifest
166
+ puts Puppet.settings.to_manifest
165
167
  exit(0)
166
168
  end
167
169
  end
@@ -208,14 +210,14 @@ module Puppet
208
210
  oldconfig ||= File.join(Puppet[:confdir], Puppet[:name].to_s + ".conf")
209
211
  if FileTest.exists?(oldconfig) and Puppet[:name] != "puppet"
210
212
  Puppet.warning "Individual config files are deprecated; remove %s and use puppet.conf" % oldconfig
211
- Puppet.config.old_parse(oldconfig)
213
+ Puppet.settings.old_parse(oldconfig)
212
214
  return
213
215
  end
214
216
 
215
217
  # Now check for the normal config.
216
218
  if Puppet[:config] and File.exists? Puppet[:config]
217
219
  Puppet.debug "Parsing %s" % Puppet[:config]
218
- Puppet.config.parse(Puppet[:config])
220
+ Puppet.settings.parse(Puppet[:config])
219
221
  end
220
222
  end
221
223
 
@@ -242,7 +244,7 @@ module Puppet
242
244
 
243
245
  # Handle restarting.
244
246
  trap(:HUP) do
245
- if client = @services.find { |s| s.is_a? Puppet::Network::Client::Master } and client.running?
247
+ if client = @services.find { |s| s.is_a? Puppet::Network::Client.master } and client.running?
246
248
  client.restart
247
249
  else
248
250
  Puppet.restart
@@ -428,4 +430,3 @@ if Puppet[:storeconfigs]
428
430
  require 'puppet/rails'
429
431
  end
430
432
 
431
- # $Id: puppet.rb 2754 2007-08-07 02:41:06Z luke $
@@ -0,0 +1,57 @@
1
+ #
2
+ # Created by Luke Kanies on 2007-9-22.
3
+ # Copyright (c) 2007. All rights reserved.
4
+
5
+ require 'puppet'
6
+ require 'puppet/util/checksums'
7
+ require 'puppet/indirector'
8
+
9
+ # A checksum class to model translating checksums to file paths. This
10
+ # is the new filebucket.
11
+ class Puppet::Checksum
12
+ include Puppet::Util::Checksums
13
+
14
+ extend Puppet::Indirector
15
+
16
+ indirects :checksum
17
+
18
+ attr_reader :algorithm, :content
19
+
20
+ def algorithm=(value)
21
+ unless respond_to?(value)
22
+ raise ArgumentError, "Checksum algorithm %s is not supported" % value
23
+ end
24
+ value = value.intern if value.is_a?(String)
25
+ @algorithm = value
26
+ # Reset the checksum so it's forced to be recalculated.
27
+ @checksum = nil
28
+ end
29
+
30
+ # Calculate (if necessary) and return the checksum
31
+ def checksum
32
+ unless @checksum
33
+ @checksum = send(algorithm, content)
34
+ end
35
+ @checksum
36
+ end
37
+
38
+ def initialize(content, algorithm = "md5")
39
+ raise ArgumentError.new("You must specify the content") unless content
40
+
41
+ @content = content
42
+
43
+ # Init to avoid warnings.
44
+ @checksum = nil
45
+
46
+ self.algorithm = algorithm
47
+ end
48
+
49
+ # This is here so the Indirector::File terminus works correctly.
50
+ def name
51
+ checksum
52
+ end
53
+
54
+ def to_s
55
+ "Checksum<{%s}%s>" % [algorithm, checksum]
56
+ end
57
+ end
@@ -1,4 +1,4 @@
1
- Puppet::Util::ConfigStore.newstore(:rest) do
1
+ Puppet::Util::SettingsStore.newstore(:rest) do
2
2
  desc "Store client configurations via a REST web service."
3
3
 
4
4
  require 'net/http'
@@ -81,4 +81,3 @@ module Puppet::Daemon
81
81
  end
82
82
  end
83
83
 
84
- # $Id: daemon.rb 2259 2007-03-06 19:03:05Z luke $
@@ -6,6 +6,10 @@ module Puppet
6
6
  var = nil
7
7
  name = $0.gsub(/.+#{File::SEPARATOR}/,'').sub(/\.rb$/, '')
8
8
 
9
+ # Make File.expand_path happy
10
+ require 'etc'
11
+ ENV["HOME"] ||= Etc.getpwuid(Process.uid).dir
12
+
9
13
  if name != "puppetmasterd" and Puppet::Util::SUIDManager.uid != 0
10
14
  conf = File.expand_path("~/.puppet")
11
15
  var = File.expand_path("~/.puppet/var")
@@ -51,18 +55,11 @@ module Puppet
51
55
  syslog. Syslog has a fixed list of valid facilities, and you must
52
56
  choose one of those; you cannot just make one up."],
53
57
  :statedir => { :default => "$vardir/state",
54
- :mode => 01777,
58
+ :mode => 01755,
55
59
  :desc => "The directory where Puppet state is stored. Generally,
56
60
  this directory can be removed without causing harm (although it
57
61
  might result in spurious service restarts)."
58
62
  },
59
- :statefile => { :default => "$statedir/state.yaml",
60
- :mode => 0660,
61
- :desc => "Where puppetd and puppetmasterd store state associated
62
- with the running configuration. In the case of puppetmasterd,
63
- this file reflects the state discovered through interacting
64
- with clients."
65
- },
66
63
  :ssldir => {
67
64
  :default => "$confdir/ssl",
68
65
  :mode => 0771,
@@ -70,7 +67,6 @@ module Puppet
70
67
  :desc => "Where SSL certificates are kept."
71
68
  },
72
69
  :rundir => { :default => rundir,
73
- :mode => 01777,
74
70
  :desc => "Where Puppet PID files are kept."
75
71
  },
76
72
  :genconfig => [false,
@@ -107,6 +103,7 @@ module Puppet
107
103
  guaranteed to work for those cases. In fact, the autoload
108
104
  mechanism is responsible for making sure this directory
109
105
  is in Ruby's search path",
106
+ :call_on_define => true, # Call our hook with the default value, so we always get the libdir set.
110
107
  :hook => proc do |value|
111
108
  if defined? @oldlibdir and $:.include?(@oldlibdir)
112
109
  $:.delete(@oldlibdir)
@@ -122,7 +119,34 @@ module Puppet
122
119
  "The configuration file that defines the rights to the different
123
120
  namespaces and methods. This can be used as a coarse-grained
124
121
  authorization system for both ``puppetd`` and ``puppetmasterd``."
125
- ]
122
+ ],
123
+ :environments => ["production,development", "The valid environments for Puppet clients.
124
+ This is more useful as a server-side setting than client, but any
125
+ environment chosen must be in this list. Values should be
126
+ separated by a comma."],
127
+ :environment => {:default => "development", :desc => "The environment Puppet is running in. For clients
128
+ (e.g., ``puppetd``) this determines the environment itself, which
129
+ is used to find modules and much more. For servers (i.e.,
130
+ ``puppetmasterd``) this provides the default environment for nodes
131
+ we know nothing about.",
132
+ :hook => proc { |value| raise(ArgumentError, "Invalid environment %s" % value) unless Puppet::Node::Environment.valid?(value) }
133
+ },
134
+ :diff_args => ["", "Which arguments to pass to the diff command when printing differences between files."],
135
+ :diff => ["diff", "Which diff command to use when printing differences between files."],
136
+ :show_diff => [false, "Whether to print a contextual diff when files are being replaced. The diff
137
+ is printed on stdout, so this option is meaningless unless you are running Puppet interactively.
138
+ This feature currently requires the ``diff/lcs`` Ruby library."],
139
+ :yamldir => {:default => "$vardir/yaml", :owner => "$user", :group => "$user", :mode => "750",
140
+ :desc => "The directory in which YAML data is stored, usually in a subdirectory."},
141
+ :daemonize => { :default => true,
142
+ :desc => "Send the process into the background. This is the default.",
143
+ :short => "D"
144
+ },
145
+ :maximum_uid => [4294967290, "The maximum allowed UID. Some platforms use negative UIDs
146
+ but then ship with tools that do not know how to handle signed ints, so the UIDs show up as
147
+ huge numbers that can then not be fed back into the system. This is a hackish way to fail in a
148
+ slightly more useful way when that happens."],
149
+ :node_terminus => ["plain", "Where to find information about nodes."]
126
150
  )
127
151
 
128
152
  hostname = Facter["hostname"].value
@@ -136,6 +160,9 @@ module Puppet
136
160
  Puppet.setdefaults(:ssl,
137
161
  :certname => [fqdn, "The name to use when handling certificates. Defaults
138
162
  to the fully qualified domain name."],
163
+ :certdnsnames => ['', "The DNS names on the Server certificate as a colon-separated list.
164
+ If it's anything other than an empty string, it will be used as an alias in the created
165
+ certificate. By default, only the server gets an alias set up, and only for 'puppet'."],
139
166
  :certdir => ["$ssldir/certs", "The certificate directory."],
140
167
  :publickeydir => ["$ssldir/public_keys", "The public key directory."],
141
168
  :privatekeydir => { :default => "$ssldir/private_keys",
@@ -258,7 +285,7 @@ module Puppet
258
285
  )
259
286
 
260
287
  # Define the config default.
261
- self.setdefaults(self.config[:name],
288
+ self.setdefaults(self.settings[:name],
262
289
  :config => ["$confdir/puppet.conf",
263
290
  "The configuration file for #{Puppet[:name]}."],
264
291
  :pidfile => ["", "The pid file"],
@@ -277,6 +304,9 @@ module Puppet
277
304
  "Where puppetmasterd looks for its manifests."],
278
305
  :manifest => ["$manifestdir/site.pp",
279
306
  "The entry-point manifest for puppetmasterd."],
307
+ :code => ["", "Code to parse directly. This is essentially only used
308
+ by ``puppet`, and should only be set if you're writing your own Puppet
309
+ executable"],
280
310
  :masterlog => { :default => "$logdir/puppetmaster.log",
281
311
  :owner => "$user",
282
312
  :group => "$group",
@@ -326,11 +356,18 @@ module Puppet
326
356
  :mode => 0660,
327
357
  :desc => "Where puppetd caches the local configuration. An
328
358
  extension indicating the cache format is added automatically."},
359
+ :statefile => { :default => "$statedir/state.yaml",
360
+ :mode => 0660,
361
+ :desc => "Where puppetd and puppetmasterd store state associated
362
+ with the running configuration. In the case of puppetmasterd,
363
+ this file reflects the state discovered through interacting
364
+ with clients."
365
+ },
329
366
  :classfile => { :default => "$statedir/classes.txt",
330
367
  :owner => "root",
331
368
  :mode => 0644,
332
369
  :desc => "The file in which puppetd stores a list of the classes
333
- associated with the retrieved configuratiion. Can be loaded in
370
+ associated with the retrieved configuration. Can be loaded in
334
371
  the separate ``puppet`` executable using the ``--loadclasses``
335
372
  option."},
336
373
  :puppetdlog => { :default => "$logdir/puppetd.log",
@@ -348,6 +385,11 @@ module Puppet
348
385
  may need to use a FQDN for the server hostname when using a proxy."],
349
386
  :http_proxy_port => [3128,
350
387
  "The HTTP proxy port to use for outgoing connections"],
388
+ :http_keepalive => [true,
389
+ "Whether to reuse http connections, thus enabling http-keepalive."],
390
+ :http_enable_post_connection_check => [true,
391
+ "Boolean; wheter or not puppetd should validate the server
392
+ SSL certificate against the request hostname."],
351
393
  :server => ["puppet",
352
394
  "The server to which server puppetd should connect"],
353
395
  :ignoreschedules => [false,
@@ -485,16 +527,6 @@ module Puppet
485
527
  "The server through which to send email reports."]
486
528
  )
487
529
 
488
- self.setdefaults(:facts,
489
- :factstore => ["yaml",
490
- "The backend store to use for client facts."]
491
- )
492
-
493
- self.setdefaults(:yamlfacts,
494
- :yamlfactdir => ["$vardir/facts",
495
- "The directory in which client facts are stored when the yaml fact store is used."]
496
- )
497
-
498
530
  self.setdefaults(:rails,
499
531
  :dblocation => { :default => "$statedir/clientconfigs.sqlite3",
500
532
  :mode => 0660,
@@ -512,6 +544,8 @@ module Puppet
512
544
  used when networked databases are used."],
513
545
  :dbpassword => [ "puppet", "The database password for Client caching. Only
514
546
  used when networked databases are used."],
547
+ :dbsocket => [ "", "The database socket location. Only used when networked
548
+ databases are used. Will be ignored if the value is an empty string."],
515
549
  :railslog => {:default => "$logdir/rails.log",
516
550
  :mode => 0600,
517
551
  :owner => "$user",
@@ -638,4 +672,3 @@ module Puppet
638
672
  )
639
673
  end
640
674
 
641
- # $Id: configuration.rb 2752 2007-08-06 20:05:28Z luke $