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
@@ -324,4 +324,3 @@ module Puppet
324
324
  end
325
325
  end
326
326
 
327
- # $Id: checksum.rb 2629 2007-06-19 22:18:55Z luke $
@@ -1,5 +1,7 @@
1
1
  module Puppet
2
2
  Puppet.type(:file).newproperty(:content) do
3
+ include Puppet::Util::Diff
4
+
3
5
  desc "Specify the contents of a file as a string. Newlines, tabs, and
4
6
  spaces can be specified using the escaped syntax (e.g., \\n for a
5
7
  newline). The primary purpose of this parameter is to provide a
@@ -30,6 +32,21 @@ module Puppet
30
32
  end
31
33
  end
32
34
 
35
+ # Override this method to provide diffs if asked for.
36
+ # Also, fix #872: when content is used, and replace is true, the file
37
+ # should be insync when it exists
38
+ def insync?(is)
39
+ if ! @resource.replace? and File.exists?(@resource[:path])
40
+ return true
41
+ end
42
+
43
+ result = super
44
+ if ! result and Puppet[:show_diff] and File.exists?(@resource[:path])
45
+ string_file_diff(@resource[:path], self.should)
46
+ end
47
+ return result
48
+ end
49
+
33
50
  # We should probably take advantage of existing md5 sums if they're there,
34
51
  # but I really don't feel like dealing with the complexity right now.
35
52
  def retrieve
@@ -62,11 +79,9 @@ module Puppet
62
79
  def sync
63
80
  return_event = @resource.stat ? :file_changed : :file_created
64
81
 
65
- @resource.write { |f| f.print self.should }
82
+ @resource.write(:content) { |f| f.print self.should }
66
83
 
67
84
  return return_event
68
85
  end
69
86
  end
70
87
  end
71
-
72
- # $Id: content.rb 2500 2007-05-09 22:05:32Z luke $
@@ -2,11 +2,11 @@ module Puppet
2
2
  Puppet.type(:file).ensurable do
3
3
  require 'etc'
4
4
  desc "Whether to create files that don't currently exist.
5
- Possible values are *absent*, *present* (equivalent to ``exists`` in
6
- most file tests -- will match any form of file existence, and if the
7
- file is missing will create an empty file), *file*, and
8
- *directory*. Specifying ``absent`` will delete the file, although
9
- currently this will not recursively delete directories.
5
+ Possible values are *absent*, *present* (will match any form of
6
+ file existence, and if the file is missing will create an empty
7
+ file), *file*, and *directory*. Specifying ``absent`` will delete
8
+ the file, although currently this will not recursively delete
9
+ directories.
10
10
 
11
11
  Anything other than those values will be considered to be a symlink.
12
12
  For instance, the following text creates a link::
@@ -172,4 +172,3 @@ module Puppet
172
172
  end
173
173
  end
174
174
 
175
- # $Id: ensure.rb 2500 2007-05-09 22:05:32Z luke $
@@ -6,6 +6,10 @@ module Puppet
6
6
  name or group ID."
7
7
  @event = :file_changed
8
8
 
9
+ validate do |group|
10
+ raise(Puppet::Error, "Invalid group name '%s'" % group.inspect) unless group and group != ""
11
+ end
12
+
9
13
  def id2name(id)
10
14
  if id > 70000
11
15
  return nil
@@ -118,4 +122,3 @@ module Puppet
118
122
  end
119
123
  end
120
124
 
121
- # $Id: group.rb 2741 2007-08-03 23:14:32Z lutter $
@@ -132,4 +132,3 @@ module Puppet
132
132
  end
133
133
  end
134
134
 
135
- # $Id: mode.rb 2500 2007-05-09 22:05:32Z luke $
@@ -6,12 +6,9 @@ module Puppet
6
6
  @event = :file_changed
7
7
 
8
8
  def id2name(id)
9
- if id.is_a?(Symbol)
10
- return id.to_s
11
- end
12
- if id > 70000
13
- return nil
14
- end
9
+ return id.to_s if id.is_a?(Symbol)
10
+ return nil if id > Puppet[:maximum_uid].to_i
11
+
15
12
  begin
16
13
  user = Etc.getpwuid(id)
17
14
  rescue TypeError
@@ -19,6 +16,7 @@ module Puppet
19
16
  rescue ArgumentError
20
17
  return nil
21
18
  end
19
+
22
20
  if user.uid == ""
23
21
  return nil
24
22
  else
@@ -113,8 +111,8 @@ module Puppet
113
111
  # On OS X, files that are owned by -2 get returned as really
114
112
  # large UIDs instead of negative ones. This isn't a Ruby bug,
115
113
  # it's an OS X bug, since it shows up in perl, too.
116
- if currentvalue > 120000
117
- self.warning "current state is silly: %s" % currentvalue
114
+ if currentvalue > Puppet[:maximum_uid].to_i
115
+ self.warning "Apparently using negative UID (%s) on a platform that does not consistently handle them" % currentvalue
118
116
  currentvalue = :silly
119
117
  end
120
118
 
@@ -167,4 +165,3 @@ module Puppet
167
165
  end
168
166
  end
169
167
 
170
- # $Id: owner.rb 2501 2007-05-09 23:08:42Z luke $
@@ -5,6 +5,7 @@ module Puppet
5
5
  # this state, during retrieval, modifies the appropriate other states
6
6
  # so that things get taken care of appropriately.
7
7
  Puppet.type(:file).newproperty(:source) do
8
+ include Puppet::Util::Diff
8
9
 
9
10
  attr_accessor :source, :local
10
11
  desc "Copy a file over the current file. Uses ``checksum`` to
@@ -158,7 +159,17 @@ module Puppet
158
159
  end
159
160
  # Now, we just check to see if the checksums are the same
160
161
  parentchecksum = @resource.property(:checksum).retrieve
161
- return (!parentchecksum.nil? and (parentchecksum == @stats[:checksum]))
162
+ result = (!parentchecksum.nil? and (parentchecksum == @stats[:checksum]))
163
+
164
+ # Diff the contents if they ask it. This is quite annoying -- we need to do this in
165
+ # 'insync?' because they might be in noop mode, but we don't want to do the file
166
+ # retrieval twice, so we cache the value annoyingly.
167
+ if ! result and Puppet[:show_diff] and File.exists?(@resource[:path]) and ! @stats[:_diffed]
168
+ @stats[:_remote_content] = get_remote_content
169
+ string_file_diff(@resource[:path], @stats[:_remote_content])
170
+ @stats[:_diffed] = true
171
+ end
172
+ return result
162
173
  end
163
174
 
164
175
  def pinparams
@@ -236,6 +247,21 @@ module Puppet
236
247
  end
237
248
 
238
249
  def sync
250
+ contents = @stats[:_remote_content] || get_remote_content()
251
+
252
+ exists = File.exists?(@resource[:path])
253
+
254
+ @resource.write(:source) { |f| f.print contents }
255
+
256
+ if exists
257
+ return :file_changed
258
+ else
259
+ return :file_created
260
+ end
261
+ end
262
+
263
+ private
264
+ def get_remote_content
239
265
  unless @stats[:type] == "file"
240
266
  #if @stats[:type] == "directory"
241
267
  #[@resource.name, @should.inspect]
@@ -264,17 +290,8 @@ module Puppet
264
290
  self.notice "Could not retrieve contents for %s" %
265
291
  @source
266
292
  end
267
- exists = File.exists?(@resource[:path])
268
293
 
269
- @resource.write { |f| f.print contents }
270
-
271
- if exists
272
- return :file_changed
273
- else
274
- return :file_created
275
- end
294
+ return contents
276
295
  end
277
296
  end
278
297
  end
279
-
280
- # $Id: source.rb 2699 2007-07-14 23:04:19Z luke $
@@ -45,6 +45,8 @@ module Puppet
45
45
  end
46
46
  end
47
47
 
48
+ @resource.send(:property_fix)
49
+
48
50
  :link_created
49
51
  end
50
52
  end
@@ -72,4 +74,3 @@ module Puppet
72
74
  end
73
75
  end
74
76
 
75
- # $Id: target.rb 2500 2007-05-09 22:05:32Z luke $
@@ -24,4 +24,3 @@ module Puppet
24
24
  end
25
25
  end
26
26
 
27
- # $Id: type.rb 2500 2007-05-09 22:05:32Z luke $
@@ -115,4 +115,3 @@ module Puppet
115
115
  end
116
116
  end
117
117
 
118
- # $Id: pfilebucket.rb 2679 2007-07-11 20:23:49Z luke $
@@ -116,4 +116,3 @@
116
116
  # end
117
117
  #end
118
118
 
119
- # $Id: port.rb 2517 2007-05-15 19:22:36Z luke $
@@ -149,4 +149,3 @@ Puppet::Type.newtype(:resources) do
149
149
  end
150
150
  end
151
151
 
152
- # $Id: resources.rb 2687 2007-07-12 19:51:57Z luke $
@@ -241,7 +241,7 @@ module Puppet
241
241
  :daily => :day,
242
242
  :monthly => :month,
243
243
  :weekly => proc do |prev, now|
244
- prev.strftime("%U") == now.strftime("%U")
244
+ prev.strftime("%U") != now.strftime("%U")
245
245
  end
246
246
  }
247
247
 
@@ -256,8 +256,7 @@ module Puppet
256
256
  return method.call(previous, now)
257
257
  else
258
258
  # We negate it, because if they're equal we don't run
259
- val = now.send(method) != previous.send(method)
260
- return val
259
+ return now.send(method) != previous.send(method)
261
260
  end
262
261
  when :distance
263
262
  scale = @@scale[value]
@@ -266,6 +265,9 @@ module Puppet
266
265
  # than the unit of time, we match. We divide the scale
267
266
  # by the repeat, so that we'll repeat that often within
268
267
  # the scale.
268
+ diff = (now.to_i - previous.to_i)
269
+ comparison = (scale / @resource[:repeat])
270
+
269
271
  return (now.to_i - previous.to_i) >= (scale / @resource[:repeat])
270
272
  end
271
273
  end
@@ -312,25 +314,27 @@ module Puppet
312
314
  end
313
315
 
314
316
  def self.mkdefaultschedules
315
- # Create our default schedule
316
- unless self["puppet"]
317
- Puppet.debug "Creating default schedules"
318
- self.create(
319
- :name => "puppet",
320
- :period => :hourly,
321
- :repeat => "2"
322
- )
323
- end
317
+ return [] if self["puppet"]
318
+
319
+ result = []
320
+ Puppet.debug "Creating default schedules"
321
+ result << self.create(
322
+ :name => "puppet",
323
+ :period => :hourly,
324
+ :repeat => "2"
325
+ )
324
326
 
325
327
  # And then one for every period
326
328
  @parameters.find { |p| p.name == :period }.values.each { |value|
327
329
  unless self[value.to_s]
328
- self.create(
330
+ result << self.create(
329
331
  :name => value.to_s,
330
332
  :period => value
331
333
  )
332
334
  end
333
335
  }
336
+
337
+ result
334
338
  end
335
339
 
336
340
  def match?(previous = nil, now = nil)
@@ -346,7 +350,6 @@ module Puppet
346
350
  self.class.allattrs.each { |param|
347
351
  if @parameters.include?(param) and
348
352
  @parameters[param].respond_to?(:match?)
349
- #self.notice "Trying to match %s" % param
350
353
  return false unless @parameters[param].match?(previous, now)
351
354
  end
352
355
  }
@@ -358,4 +361,3 @@ module Puppet
358
361
  end
359
362
  end
360
363
 
361
- # $Id: schedule.rb 2665 2007-07-09 21:32:33Z luke $
@@ -28,79 +28,23 @@ module Puppet
28
28
  feature :enableable, "The provider can enable and disable the service",
29
29
  :methods => [:disable, :enable, :enabled?]
30
30
 
31
- attr_reader :stat
32
-
33
- newproperty(:enable) do
34
- attr_reader :runlevel
31
+ newproperty(:enable, :required_features => :enableable) do
35
32
  desc "Whether a service should be enabled to start at boot.
36
33
  This property behaves quite differently depending on the platform;
37
34
  wherever possible, it relies on local tools to enable or disable
38
35
  a given service."
39
36
 
40
37
  newvalue(:true, :event => :service_enabled) do
41
- unless provider.respond_to?(:enable)
42
- raise Puppet::Error, "Service %s does not support enabling" %
43
- @resource.name
44
- end
45
38
  provider.enable
46
39
  end
47
40
 
48
41
  newvalue(:false, :event => :service_disabled) do
49
- unless provider.respond_to?(:disable)
50
- raise Puppet::Error, "Service %s does not support enabling" %
51
- @resource.name
52
- end
53
42
  provider.disable
54
43
  end
55
44
 
56
45
  def retrieve
57
- unless provider.respond_to?(:enabled?)
58
- raise Puppet::Error, "Service %s does not support enabling" %
59
- @resource.name
60
- end
61
46
  return provider.enabled?
62
47
  end
63
-
64
- validate do |value|
65
- unless value =~ /^\d+/
66
- super(value)
67
- end
68
- end
69
-
70
- munge do |should|
71
- @runlevel = nil
72
- if should =~ /^\d+$/
73
- arity = @resource.method(:enable)
74
- if @runlevel and arity != 1
75
- raise Puppet::Error,
76
- "Services on %s do not accept runlevel specs" %
77
- @resource.type
78
- elsif arity != 0
79
- raise Puppet::Error,
80
- "Services on %s must specify runlevels" %
81
- @resource.type
82
- end
83
- @runlevel = should
84
- return :true
85
- else
86
- super(should)
87
- end
88
- end
89
-
90
- def sync
91
- case self.should
92
- when :true
93
- if @runlevel
94
- provider.enable(@runlevel)
95
- else
96
- provider.enable()
97
- end
98
- return :service_enabled
99
- when :false
100
- provider.disable
101
- return :service_disabled
102
- end
103
- end
104
48
  end
105
49
 
106
50
  # Handle whether the service should actually be running right now.
@@ -124,42 +68,16 @@ module Puppet
124
68
 
125
69
  def sync
126
70
  event = super()
127
- # case self.should
128
- # when :running
129
- # provider.start
130
- # event = :service_started
131
- # when :stopped
132
- # provider.stop
133
- # event = :service_stopped
134
- # else
135
- # self.debug "Not running '%s' and shouldn't be running" %
136
- # self
137
- # end
138
71
 
139
72
  if property = @resource.property(:enable)
140
73
  val = property.retrieve
141
- unless property.insync?(val)
142
- property.sync
143
- end
74
+ property.sync unless property.insync?(val)
144
75
  end
145
76
 
146
77
  return event
147
78
  end
148
79
  end
149
80
 
150
- # Produce a warning, rather than just failing.
151
- newparam(:running) do
152
- desc "A place-holder parameter that wraps ``ensure``, because
153
- ``running`` is deprecated. You should use ``ensure`` instead
154
- of this, but using this will still work, albeit with a
155
- warning."
156
-
157
- munge do |value|
158
- @resource.warning "'running' is deprecated; please use 'ensure'"
159
- @resource[:ensure] = value
160
- end
161
- end
162
-
163
81
  newparam(:binary) do
164
82
  desc "The path to the daemon. This is only used for
165
83
  systems that do not support init scripts. This binary will be
@@ -178,53 +96,38 @@ module Puppet
178
96
 
179
97
  If you do not specify anything, then the service name will be
180
98
  looked for in the process table."
99
+
100
+ newvalues(:true, :false)
181
101
  end
182
102
  newparam(:name) do
183
- desc "The name of the service to run. This name
184
- is used to find the service in whatever service subsystem it
185
- is in."
103
+ desc "The name of the service to run. This name is used to find
104
+ the service in whatever service subsystem it is in."
186
105
  isnamevar
187
106
  end
188
107
 
189
- newparam(:type) do
190
- desc "Deprecated form of ``provider``."
191
-
192
- munge do |value|
193
- warning "'type' is deprecated; use 'provider' instead"
194
- @resource[:provider] = value
195
- end
196
- end
197
-
198
108
  newparam(:path) do
199
- desc "The search path for finding init scripts."
109
+ desc "The search path for finding init scripts. Multiple values should
110
+ be separated by colons or provided as an array."
200
111
 
201
112
  munge do |value|
202
- paths = []
203
- if value.is_a?(Array)
204
- paths += value.flatten.collect { |p|
205
- p.split(":")
206
- }.flatten
207
- else
208
- paths = value.split(":")
209
- end
210
-
211
- paths.each do |path|
113
+ value = [value] unless value.is_a?(Array)
114
+ paths = value.flatten.collect { |p| p.split(":") }.flatten.find_all do |path|
212
115
  if FileTest.directory?(path)
213
- next
214
- end
215
- if FileTest.exists?(path)
216
- unless FileTest.directory?(path)
217
- @resource.debug "Search path %s is not a directory" %
218
- [path]
219
- end
116
+ true
220
117
  else
221
- @resource.debug("Search path %s does not exist" % [path])
118
+ if FileTest.exist?(path) and ! FileTest.directory?(path)
119
+ @resource.debug "Search path %s is not a directory" % [path]
120
+ else
121
+ @resource.debug("Search path %s does not exist" % [path])
122
+ end
123
+ false
222
124
  end
223
- paths.delete(path)
224
125
  end
225
126
 
226
127
  paths
227
128
  end
129
+
130
+ defaultto { provider.class.defpath if provider.class.respond_to?(:defpath) }
228
131
  end
229
132
  newparam(:pattern) do
230
133
  desc "The pattern to search for in the process table.
@@ -238,9 +141,7 @@ module Puppet
238
141
 
239
142
  The pattern can be a simple string or any legal Ruby pattern."
240
143
 
241
- defaultto {
242
- @resource[:binary] || @resource[:name]
243
- }
144
+ defaultto { @resource[:binary] || @resource[:name] }
244
145
  end
245
146
  newparam(:restart) do
246
147
  desc "Specify a *restart* command manually. If left
@@ -268,52 +169,15 @@ module Puppet
268
169
  newvalues(:true, :false)
269
170
  end
270
171
 
271
- # Add a new path to our list of paths that services could be in.
272
- def self.newpath(type, path)
273
- type = type.intern if type.is_a? String
274
- @paths ||= {}
275
- @paths[type] ||= []
276
-
277
- unless @paths[type].include? path
278
- @paths[type] << path
279
- end
280
- end
281
-
282
- def self.paths(type)
283
- type = type.intern if type.is_a? String
284
- @paths ||= {}
285
- @paths[type] ||= []
286
-
287
- @paths[type].dup
288
- end
289
-
290
- # Initialize the service. This is basically responsible for merging
291
- # in the right module.
292
- def initialize(hash)
293
- super
294
-
295
- # and then see if it needs to be checked
296
- if self.respond_to?(:configchk)
297
- self.configchk
298
- end
299
-
300
- unless @parameters.include?(:ensure) or @parameters.include?(:enable)
301
- warning "No properties specified; 'enable' or 'ensure' should be specified"
302
- end
303
- end
304
-
305
172
  # Basically just a synonym for restarting. Used to respond
306
173
  # to events.
307
174
  def refresh
308
- # Only restart if we're supposed to be running
309
-
310
- if ens = @parameters[:ensure] and ens.should == :running and ens.retrieve == :running
175
+ # Only restart if we're actually running
176
+ if (@parameters[:ensure] || newattr(:ensure)).retrieve == :running
311
177
  provider.restart
312
178
  else
313
- debug "Skipping restart; 'ensure' is not set to 'running'"
179
+ debug "Skipping restart; service is not running"
314
180
  end
315
181
  end
316
182
  end
317
183
  end
318
-
319
- # $Id: service.rb 2696 2007-07-14 20:26:31Z luke $