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
@@ -348,7 +348,7 @@ Puppet::Type.newtype(:cron) do
348
348
 
349
349
  The user defaults to whomever Puppet is running as."
350
350
 
351
- defaultto { ENV["USER"] || "root" }
351
+ defaultto { Etc.getpwuid(Process.uid).name || "root" }
352
352
  end
353
353
 
354
354
  newproperty(:target) do
@@ -408,5 +408,4 @@ Puppet::Type.newtype(:cron) do
408
408
  end
409
409
 
410
410
 
411
- # $Id: cron.rb 2698 2007-07-14 21:18:36Z luke $
412
411
 
@@ -113,15 +113,16 @@ module Puppet
113
113
  self.fail "Command exceeded timeout" % value.inspect
114
114
  end
115
115
 
116
- loglevel = @resource[:loglevel]
117
- if status.exitstatus.to_s != self.should.to_s
118
- self.fail("%s returned %s instead of %s" %
119
- [self.resource[:command], status.exitstatus, self.should.to_s])
120
- end
121
-
122
116
  if log = @resource[:logoutput]
123
- if log == :true
117
+ case log
118
+ when :true
124
119
  log = @resource[:loglevel]
120
+ when :on_failure
121
+ if status.exitstatus.to_s != self.should.to_s
122
+ log = @resource[:loglevel]
123
+ else
124
+ log = :false
125
+ end
125
126
  end
126
127
  unless log == :false
127
128
  @output.split(/\n/).each { |line|
@@ -130,6 +131,11 @@ module Puppet
130
131
  end
131
132
  end
132
133
 
134
+ if status.exitstatus.to_s != self.should.to_s
135
+ self.fail("%s returned %s instead of %s" %
136
+ [self.resource[:command], status.exitstatus, self.should.to_s])
137
+ end
138
+
133
139
  return event
134
140
  end
135
141
  end
@@ -201,10 +207,11 @@ module Puppet
201
207
 
202
208
  newparam(:logoutput) do
203
209
  desc "Whether to log output. Defaults to logging output at the
204
- loglevel for the ``exec`` resource. Values are **true**, *false*,
205
- and any legal log level."
210
+ loglevel for the ``exec`` resource. Use *on_failure* to only
211
+ log the output when the command reports an error. Values are
212
+ **true**, *false*, *on_failure*, and any legal log level."
206
213
 
207
- values = [:true, :false]
214
+ values = [:true, :false, :on_failure]
208
215
  # And all of the log levels
209
216
  Puppet::Util::Log.eachlevel { |level| values << level }
210
217
  newvalues(*values)
@@ -276,8 +283,8 @@ module Puppet
276
283
  refreshonly => true
277
284
  }
278
285
 
279
- Note that only ``subscribe`` can trigger actions, not ``require``,
280
- so it only makes sense to use ``refreshonly`` with ``subscribe``."
286
+ Note that only ``subscribe`` and ``notify`` can trigger actions, not ``require``,
287
+ so it only makes sense to use ``refreshonly`` with ``subscribe`` or ``notify``."
281
288
 
282
289
  newvalues(:true, :false)
283
290
 
@@ -602,4 +609,3 @@ module Puppet
602
609
  end
603
610
  end
604
611
 
605
- # $Id: exec.rb 2696 2007-07-14 20:26:31Z luke $
@@ -129,4 +129,3 @@ module Puppet
129
129
  end
130
130
  end
131
131
 
132
- # $Id: group.rb 2665 2007-07-09 21:32:33Z luke $
@@ -86,4 +86,3 @@ module Puppet
86
86
  end
87
87
  end
88
88
 
89
- # $Id: host.rb 2517 2007-05-15 19:22:36Z luke $
@@ -43,15 +43,18 @@ Puppet::Type.newtype(:interface) do
43
43
  and alias. This is use to force a given number to be used"
44
44
  end
45
45
 
46
+ newproperty(:netmask) do
47
+ desc "The netmask for the interface."
48
+ end
49
+
46
50
  newproperty(:ifopts) do
47
51
  desc "Interface options."
48
52
  end
49
53
 
50
54
  newparam(:target) do
55
+ include Puppet::Util::Warnings
51
56
  desc "The path to the file this resource creates."
52
57
 
53
- defaultto { @resource.provider.file_path }
58
+ munge { |value| warnonce "Interface targets are deprecated and no longer have any function" }
54
59
  end
55
60
  end
56
-
57
- # $Id: interface.rb 2747 2007-08-05 19:01:39Z luke $
@@ -0,0 +1,87 @@
1
+ # $Id: k5login.rb 2468 2007-08-07 23:30:20Z digant $
2
+ #
3
+ # Plug-in type for handling k5login files
4
+
5
+ Puppet::Type.newtype(:k5login) do
6
+ @doc = "Manage the .k5login file for a user. Specify the full path to
7
+ the .k5login file as the name and an array of principals as the
8
+ property principals."
9
+
10
+ ensurable
11
+
12
+ # Principals that should exist in the file
13
+ newproperty(:principals, :array_matching => :all) do
14
+ desc "The principals present in the .k5login file."
15
+ end
16
+
17
+ # The path/name of the k5login file
18
+ newparam(:path) do
19
+ isnamevar
20
+ desc "The path to the file to manage. Must be fully qualified."
21
+
22
+ validate do |value|
23
+ unless value =~ /^#{File::SEPARATOR}/
24
+ raise Puppet::Error, "File paths must be fully qualified"
25
+ end
26
+ end
27
+ end
28
+
29
+ # To manage the mode of the file
30
+ newproperty(:mode) do
31
+ desc "Manage the k5login file's mode"
32
+ defaultto { "644" }
33
+ end
34
+
35
+ provide(:k5login) do
36
+ desc "The k5login provider is the only provider for the k5login
37
+ type."
38
+
39
+ # Does this file exist?
40
+ def exists?
41
+ File.exists?(@resource[:name])
42
+ end
43
+
44
+ # create the file
45
+ def create
46
+ write(@resource.should(:principals))
47
+ should_mode = @resource.should(:mode)
48
+ unless self.mode == should_mode
49
+ self.mode should_mode
50
+ end
51
+ end
52
+
53
+ # remove the file
54
+ def destroy
55
+ File.unlink(@resource[:name])
56
+ end
57
+
58
+ # Return the principals
59
+ def principals
60
+ if File.exists?(@resource[:name])
61
+ File.readlines(@resource[:name]).collect { |line| line.chomp }
62
+ else
63
+ :absent
64
+ end
65
+ end
66
+
67
+ # Write the principals out to the k5login file
68
+ def principals=(value)
69
+ write(value)
70
+ end
71
+
72
+ # Return the mode as an octal string, not as an integer
73
+ def mode
74
+ "%o" % (File.stat(@resource[:name]).mode & 007777)
75
+ end
76
+
77
+ # Set the file mode, converting from a string to an integer.
78
+ def mode=(value)
79
+ File.chmod(Integer("0" + value), @resource[:name])
80
+ end
81
+
82
+ private
83
+ def write(value)
84
+ File.open(@resource[:name], "w") { |f| f.puts value.join("\n") }
85
+ end
86
+ end
87
+ end
@@ -47,4 +47,3 @@ module Puppet
47
47
  end
48
48
  end
49
49
 
50
- # $Id: mailalias.rb 2676 2007-07-10 23:24:34Z luke $
@@ -54,4 +54,3 @@ module Puppet
54
54
  end
55
55
  end
56
56
 
57
- # $Id: maillist.rb 2677 2007-07-11 18:35:51Z luke $
@@ -44,15 +44,12 @@ module Puppet
44
44
  newvalue(:mounted, :event => :mount_mounted) do
45
45
  # Create the mount point if it does not already exist.
46
46
  current_value = self.retrieve
47
- if current_value.nil? or current_value == :absent
48
- provider.create
49
- end
47
+ provider.create if current_value.nil? or current_value == :absent
50
48
 
51
49
  syncothers()
50
+
52
51
  # The fs can be already mounted if it was absent but mounted
53
- unless provider.mounted?
54
- provider.mount
55
- end
52
+ provider.mount unless provider.mounted?
56
53
  end
57
54
 
58
55
  def retrieve
@@ -71,11 +68,11 @@ module Puppet
71
68
  def syncothers
72
69
  # We have to flush any changes to disk.
73
70
  currentvalues = @resource.retrieve
71
+
72
+ # Determine if there are any out-of-sync properties.
74
73
  oos = @resource.send(:properties).find_all do |prop|
75
74
  unless currentvalues.include?(prop)
76
- raise Puppet::DevError,
77
- "Parent has property %s but it doesn't appear in the current vallues",
78
- [prop.name]
75
+ raise Puppet::DevError, "Parent has property %s but it doesn't appear in the current values", [prop.name]
79
76
  end
80
77
  if prop.name == :ensure
81
78
  false
@@ -198,9 +195,7 @@ module Puppet
198
195
 
199
196
  def refresh
200
197
  # Only remount if we're supposed to be mounted.
201
- if ens = @parameters[:ensure] and ens.should == :mounted
202
- provider.remount
203
- end
198
+ provider.remount if self.should(:fstype) != "swap" and provider.mounted?
204
199
  end
205
200
 
206
201
  def value(name)
@@ -213,4 +208,3 @@ module Puppet
213
208
  end
214
209
  end
215
210
 
216
- # $Id: mount.rb 2723 2007-07-20 16:46:54Z luke $
@@ -43,4 +43,3 @@ module Puppet
43
43
  end
44
44
  end
45
45
 
46
- # $Id: notify.rb 2525 2007-05-18 03:34:37Z luke $
@@ -4,7 +4,6 @@
4
4
  # systems.
5
5
 
6
6
  module Puppet
7
- class PackageError < Puppet::Error; end
8
7
  newtype(:package) do
9
8
  @doc = "Manage packages. There is a basic dichotomy in package
10
9
  support right now: Some package types (e.g., yum and apt) can
@@ -108,25 +107,15 @@ module Puppet
108
107
  @lateststamp ||= (Time.now.to_i - 1000)
109
108
  # Iterate across all of the should values, and see how they
110
109
  # turn out.
110
+
111
111
  @should.each { |should|
112
112
  case should
113
113
  when :present
114
- unless [:absent, :purged].include?(is)
115
- return true
116
- end
114
+ return true unless [:absent, :purged].include?(is)
117
115
  when :latest
118
116
  # Short-circuit packages that are not present
119
- if is == :absent
120
- return false
121
- end
122
-
123
- unless provider.respond_to?(:latest)
124
- self.fail(
125
- "Package type %s does not support specifying 'latest'" %
126
- @resource[:provider]
127
- )
128
- end
129
-
117
+ return false if is == :absent or is == :purged
118
+
130
119
  # Don't run 'latest' more than about every 5 minutes
131
120
  if @latest and ((Time.now.to_i - @lateststamp) / 60) < 5
132
121
  #self.debug "Skipping latest check"
@@ -153,9 +142,9 @@ module Puppet
153
142
  [is.inspect, @resource.name, @latest.inspect]
154
143
  end
155
144
  when :absent
156
- if is == :absent or is == :purged
157
- return true
158
- end
145
+ return true if is == :absent or is == :purged
146
+ when :purged
147
+ return true if is == :purged
159
148
  when is
160
149
  return true
161
150
  end
@@ -312,46 +301,6 @@ module Puppet
312
301
  autos
313
302
  end
314
303
 
315
- @listed = false
316
-
317
- @allowedmethods = [:types]
318
-
319
- class << self
320
- attr_reader :listed
321
- end
322
-
323
- def self.clear
324
- @listed = false
325
- super
326
- end
327
-
328
- # Create a new package object from listed information
329
- def self.installedpkg(hash)
330
- unless hash.include? :provider
331
- raise Puppet::DevError, "Got installed package with no provider"
332
- end
333
- # this is from code, so we don't have to do as much checking
334
- name = hash[:name]
335
- hash.delete(:name)
336
-
337
- object = self[name] || self.create(:name => name)
338
- object.setparams(hash)
339
-
340
- return object
341
- end
342
-
343
- # Iterate across all packages of a given type and mark them absent
344
- # if they are not in the list
345
- def self.markabsent(pkgtype, packages)
346
- # Mark any packages we didn't find as absent
347
- self.each do |pkg|
348
- next unless packages[:provider] == pkgtype
349
- unless packages.include? pkg
350
- pkg.provider.send(:ensure, :absent)
351
- end
352
- end
353
- end
354
-
355
304
  # This only exists for testing.
356
305
  def clear
357
306
  if obj = @parameters[:ensure]
@@ -365,10 +314,6 @@ module Puppet
365
314
  @provider.get(:ensure) != :absent
366
315
  end
367
316
 
368
- # okay, there are two ways that a package could be created...
369
- # either through the language, in which case the hash's values should
370
- # be set in 'should', or through comparing against the system, in which
371
- # case the hash's values should be set in 'is'
372
317
  def initialize(params)
373
318
  self.initvars
374
319
  provider = nil
@@ -403,4 +348,3 @@ module Puppet
403
348
  end # Puppet.type(:package)
404
349
  end
405
350
 
406
- # $Id: package.rb 2709 2007-07-19 00:14:15Z luke $
@@ -4,6 +4,7 @@ require 'etc'
4
4
  require 'uri'
5
5
  require 'fileutils'
6
6
  require 'puppet/network/handler'
7
+ require 'puppet/util/diff'
7
8
 
8
9
  module Puppet
9
10
  newtype(:file) do
@@ -573,6 +574,8 @@ module Puppet
573
574
  # Create a new file or directory object as a child to the current
574
575
  # object.
575
576
  def newchild(path, local, hash = {})
577
+ raise(Puppet::DevError, "File recursion cannot happen without a catalog") unless catalog
578
+
576
579
  # make local copy of arguments
577
580
  args = symbolize_options(@arghash)
578
581
 
@@ -607,13 +610,12 @@ module Puppet
607
610
  }
608
611
 
609
612
  child = nil
610
- klass = self.class
611
-
613
+
612
614
  # The child might already exist because 'localrecurse' runs
613
615
  # before 'sourcerecurse'. I could push the override stuff into
614
616
  # a separate method or something, but the work is the same other
615
617
  # than this last bit, so it doesn't really make sense.
616
- if child = klass[path]
618
+ if child = catalog.resource(:file, path)
617
619
  unless child.parent.object_id == self.object_id
618
620
  self.debug "Not managing more explicit file %s" %
619
621
  path
@@ -639,28 +641,20 @@ module Puppet
639
641
  #notice "Creating new file with args %s" % args.inspect
640
642
  args[:parent] = self
641
643
  begin
642
- child = klass.implicitcreate(args)
643
-
644
- # implicit creation can return nil
645
- if child.nil?
646
- return nil
647
- end
648
- rescue Puppet::Error => detail
649
- self.notice(
650
- "Cannot manage: %s" %
651
- [detail.message]
652
- )
653
- self.debug args.inspect
654
- child = nil
644
+ # This method is used by subclasses of :file, so use the class name rather than hard-coding
645
+ # :file.
646
+ return nil unless child = catalog.create_implicit_resource(self.class.name, args)
655
647
  rescue => detail
656
- self.notice(
657
- "Cannot manage: %s" %
658
- [detail]
659
- )
660
- self.debug args.inspect
661
- child = nil
648
+ puts detail.backtrace
649
+ self.notice "Cannot manage: %s" % [detail]
650
+ return nil
662
651
  end
663
652
  end
653
+
654
+ # LAK:FIXME This shouldn't be necessary, but as long as we're
655
+ # modeling the relationship graph specifically, it is.
656
+ catalog.relationship_graph.add_edge! self, child
657
+
664
658
  return child
665
659
  end
666
660
 
@@ -668,12 +662,14 @@ module Puppet
668
662
  # path names, rather than including the full parent's title each
669
663
  # time.
670
664
  def pathbuilder
671
- if defined? @parent
665
+ # We specifically need to call the method here, so it looks
666
+ # up our parent in the catalog graph.
667
+ if parent = parent()
672
668
  # We only need to behave specially when our parent is also
673
669
  # a file
674
- if @parent.is_a?(self.class)
670
+ if parent.is_a?(self.class)
675
671
  # Remove the parent file name
676
- list = @parent.pathbuilder
672
+ list = parent.pathbuilder
677
673
  list.pop # remove the parent's path info
678
674
  return list << self.ref
679
675
  else
@@ -694,9 +690,7 @@ module Puppet
694
690
  # files.
695
691
  def recurse
696
692
  # are we at the end of the recursion?
697
- unless self.recurse?
698
- return
699
- end
693
+ return unless self.recurse?
700
694
 
701
695
  recurse = self[:recurse]
702
696
  # we might have a string, rather than a number
@@ -893,8 +887,8 @@ module Puppet
893
887
  # For directories, keep all of the sources, so that
894
888
  # sourceselect still works as planned.
895
889
  if type == "directory"
896
- newsource = @parameters[:source].should.collect do |source|
897
- source + file
890
+ newsource = @parameters[:source].should.collect do |tmpsource|
891
+ tmpsource + file
898
892
  end
899
893
  else
900
894
  newsource = source + file
@@ -1047,7 +1041,7 @@ module Puppet
1047
1041
  # Write out the file. We open the file correctly, with all of the
1048
1042
  # uid and mode and such, and then yield the file handle for actual
1049
1043
  # writing.
1050
- def write(usetmp = true)
1044
+ def write(property, usetmp = true)
1051
1045
  mode = self.should(:mode)
1052
1046
 
1053
1047
  remove_existing(:file)
@@ -1178,4 +1172,3 @@ module Puppet
1178
1172
  require 'puppet/type/pfile/mode'
1179
1173
  require 'puppet/type/pfile/type'
1180
1174
  end
1181
- # $Id: pfile.rb 2665 2007-07-09 21:32:33Z luke $