puppet 0.24.6 → 0.24.7

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 (383) hide show
  1. data/CHANGELOG +115 -0
  2. data/Rakefile +43 -14
  3. data/bin/puppetca +6 -5
  4. data/bin/puppetdoc +109 -15
  5. data/bin/ralsh +3 -1
  6. data/conf/redhat/puppet.spec +74 -48
  7. data/examples/mcx_dock_absent.pp +4 -0
  8. data/examples/mcx_dock_default.pp +118 -0
  9. data/examples/mcx_dock_full.pp +125 -0
  10. data/examples/mcx_dock_invalid.pp +9 -0
  11. data/examples/mcx_nogroup.pp +118 -0
  12. data/examples/mcx_notexists_absent.pp +4 -0
  13. data/ext/emacs/puppet-mode.el +1 -1
  14. data/lib/puppet.rb +1 -1
  15. data/lib/puppet/external/nagios/base.rb +114 -71
  16. data/lib/puppet/feature/base.rb +6 -0
  17. data/lib/puppet/indirector/yaml.rb +12 -3
  18. data/lib/puppet/module.rb +1 -1
  19. data/lib/puppet/network/client/master.rb +1 -1
  20. data/lib/puppet/network/xmlrpc/client.rb +3 -1
  21. data/lib/puppet/parameter.rb +1 -1
  22. data/lib/puppet/parser/ast.rb +15 -0
  23. data/lib/puppet/parser/ast/astarray.rb +1 -2
  24. data/lib/puppet/parser/ast/casestatement.rb +2 -0
  25. data/lib/puppet/parser/ast/collection.rb +2 -0
  26. data/lib/puppet/parser/ast/comparison_operator.rb +4 -0
  27. data/lib/puppet/parser/ast/definition.rb +2 -0
  28. data/lib/puppet/parser/ast/else.rb +3 -0
  29. data/lib/puppet/parser/ast/function.rb +19 -12
  30. data/lib/puppet/parser/ast/hostclass.rb +9 -1
  31. data/lib/puppet/parser/ast/ifstatement.rb +3 -0
  32. data/lib/puppet/parser/ast/node.rb +3 -0
  33. data/lib/puppet/parser/ast/resource.rb +3 -0
  34. data/lib/puppet/parser/ast/resource_defaults.rb +2 -0
  35. data/lib/puppet/parser/ast/resource_override.rb +3 -0
  36. data/lib/puppet/parser/ast/vardef.rb +3 -0
  37. data/lib/puppet/parser/functions.rb +14 -0
  38. data/lib/puppet/parser/functions/inline_template.rb +21 -0
  39. data/lib/puppet/parser/functions/template.rb +3 -2
  40. data/lib/puppet/parser/lexer.rb +56 -7
  41. data/lib/puppet/parser/parser.rb +114 -98
  42. data/lib/puppet/parser/parser_support.rb +24 -4
  43. data/lib/puppet/parser/resource/reference.rb +4 -3
  44. data/lib/puppet/parser/templatewrapper.rb +30 -22
  45. data/lib/puppet/property.rb +1 -1
  46. data/lib/puppet/property/list.rb +7 -2
  47. data/lib/puppet/property/ordered_list.rb +22 -0
  48. data/lib/puppet/provider/augeas/augeas.rb +189 -0
  49. data/lib/puppet/provider/computer/computer.rb +22 -0
  50. data/lib/puppet/provider/confine.rb +4 -1
  51. data/lib/puppet/provider/confine/variable.rb +13 -2
  52. data/lib/puppet/provider/confine_collection.rb +4 -1
  53. data/lib/puppet/provider/confiner.rb +1 -1
  54. data/lib/puppet/provider/group/directoryservice.rb +6 -3
  55. data/lib/puppet/provider/group/groupadd.rb +5 -2
  56. data/lib/puppet/provider/group/ldap.rb +11 -9
  57. data/lib/puppet/provider/group/netinfo.rb +8 -4
  58. data/lib/puppet/provider/group/pw.rb +5 -1
  59. data/lib/puppet/provider/host/netinfo.rb +5 -2
  60. data/lib/puppet/provider/macauthorization/macauthorization.rb +315 -0
  61. data/lib/puppet/provider/mcx/mcxcontent.rb +201 -0
  62. data/lib/puppet/provider/nameservice/directoryservice.rb +210 -107
  63. data/lib/puppet/provider/nameservice/netinfo.rb +7 -2
  64. data/lib/puppet/provider/package/appdmg.rb +0 -3
  65. data/lib/puppet/provider/package/apt.rb +6 -0
  66. data/lib/puppet/provider/package/rpm.rb +2 -0
  67. data/lib/puppet/provider/package/yum.rb +5 -1
  68. data/lib/puppet/provider/package/yumhelper.py +9 -0
  69. data/lib/puppet/provider/service/base.rb +9 -6
  70. data/lib/puppet/provider/service/daemontools.rb +25 -15
  71. data/lib/puppet/provider/service/debian.rb +6 -2
  72. data/lib/puppet/provider/service/freebsd.rb +5 -2
  73. data/lib/puppet/provider/service/gentoo.rb +6 -3
  74. data/lib/puppet/provider/service/init.rb +31 -21
  75. data/lib/puppet/provider/service/launchd.rb +195 -0
  76. data/lib/puppet/provider/service/redhat.rb +5 -2
  77. data/lib/puppet/provider/service/runit.rb +30 -20
  78. data/lib/puppet/provider/service/smf.rb +7 -4
  79. data/lib/puppet/provider/ssh_authorized_key/parsed.rb +21 -1
  80. data/lib/puppet/provider/user/directoryservice.rb +1 -0
  81. data/lib/puppet/provider/user/netinfo.rb +9 -3
  82. data/lib/puppet/provider/user/user_role_add.rb +43 -6
  83. data/lib/puppet/provider/zfs/solaris.rb +45 -0
  84. data/lib/puppet/provider/zone/solaris.rb +8 -4
  85. data/lib/puppet/provider/zpool/solaris.rb +116 -0
  86. data/lib/puppet/rails/database/003_add_environment_to_host.rb +9 -0
  87. data/lib/puppet/rails/database/schema.rb +1 -0
  88. data/lib/puppet/rails/host.rb +4 -0
  89. data/lib/puppet/reference/configuration.rb +1 -1
  90. data/lib/puppet/reports/tagmail.rb +15 -6
  91. data/lib/puppet/transaction/change.rb +3 -5
  92. data/lib/puppet/transportable.rb +1 -0
  93. data/lib/puppet/type/augeas.rb +155 -0
  94. data/lib/puppet/type/computer.rb +62 -0
  95. data/lib/puppet/type/exec.rb +2 -1
  96. data/lib/puppet/type/file.rb +1 -1
  97. data/lib/puppet/type/file/ensure.rb +8 -5
  98. data/lib/puppet/type/file/mode.rb +0 -14
  99. data/lib/puppet/type/file/owner.rb +32 -64
  100. data/lib/puppet/type/file/selcontext.rb +3 -8
  101. data/lib/puppet/type/group.rb +27 -45
  102. data/lib/puppet/type/k5login.rb +1 -1
  103. data/lib/puppet/type/macauthorization.rb +141 -0
  104. data/lib/puppet/type/mcx.rb +115 -0
  105. data/lib/puppet/type/mount.rb +1 -1
  106. data/lib/puppet/type/nagios_hostdependency.rb +3 -0
  107. data/lib/puppet/type/ssh_authorized_key.rb +16 -0
  108. data/lib/puppet/type/tidy.rb +43 -14
  109. data/lib/puppet/type/user.rb +25 -1
  110. data/lib/puppet/type/zfs.rb +51 -0
  111. data/lib/puppet/type/zone.rb +8 -0
  112. data/lib/puppet/type/zpool.rb +93 -0
  113. data/lib/puppet/util.rb +17 -38
  114. data/lib/puppet/util/file_locking.rb +44 -0
  115. data/lib/puppet/util/filetype.rb +3 -3
  116. data/lib/puppet/util/log.rb +1 -16
  117. data/lib/puppet/util/metric.rb +0 -5
  118. data/lib/puppet/util/rdoc.rb +85 -0
  119. data/lib/puppet/util/rdoc/code_objects.rb +219 -0
  120. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +829 -0
  121. data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +1051 -0
  122. data/lib/puppet/util/rdoc/parser.rb +437 -0
  123. data/lib/puppet/util/selinux.rb +135 -63
  124. data/lib/puppet/util/settings.rb +136 -126
  125. data/lib/puppet/util/storage.rb +4 -2
  126. data/spec/Rakefile +91 -0
  127. data/spec/integration/checksum.rb +47 -0
  128. data/spec/integration/defaults.rb +47 -0
  129. data/spec/integration/file_serving/configuration.rb +43 -0
  130. data/spec/integration/file_serving/content.rb +18 -0
  131. data/spec/integration/file_serving/metadata.rb +18 -0
  132. data/spec/integration/indirector/direct_file_server.rb +80 -0
  133. data/spec/integration/indirector/file_content/file_server.rb +18 -0
  134. data/spec/integration/indirector/file_metadata/file_server.rb +18 -0
  135. data/spec/integration/indirector/module_files.rb +57 -0
  136. data/spec/integration/indirector/node/ldap.rb +15 -0
  137. data/spec/integration/indirector/rest.rb +464 -0
  138. data/spec/integration/network/server/mongrel.rb +48 -0
  139. data/spec/integration/network/server/webrick.rb +48 -0
  140. data/spec/integration/node.rb +93 -0
  141. data/spec/integration/node/catalog.rb +54 -0
  142. data/spec/integration/node/facts.rb +45 -0
  143. data/spec/integration/provider/package.rb +26 -0
  144. data/spec/integration/provider/service/init.rb +32 -0
  145. data/spec/integration/reference/providers.rb +17 -0
  146. data/spec/integration/reports.rb +14 -0
  147. data/spec/integration/transaction/report.rb +26 -0
  148. data/spec/integration/type/package.rb +22 -0
  149. data/spec/integration/util/file_locking.rb +36 -0
  150. data/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb +46 -0
  151. data/spec/monkey_patches/alias_should_to_must.rb +5 -0
  152. data/spec/shared_behaviours/file_server_terminus.rb +42 -0
  153. data/spec/shared_behaviours/file_serving.rb +64 -0
  154. data/spec/shared_behaviours/memory_terminus.rb +32 -0
  155. data/spec/spec.opts +5 -0
  156. data/spec/spec_helper.rb +36 -0
  157. data/spec/unit/executables/client/certhandler.rb +122 -0
  158. data/spec/unit/file_serving/configuration.rb +224 -0
  159. data/spec/unit/file_serving/configuration/parser.rb +135 -0
  160. data/spec/unit/file_serving/content.rb +71 -0
  161. data/spec/unit/file_serving/file_base.rb +124 -0
  162. data/spec/unit/file_serving/fileset.rb +239 -0
  163. data/spec/unit/file_serving/indirection_hooks.rb +124 -0
  164. data/spec/unit/file_serving/metadata.rb +187 -0
  165. data/spec/unit/file_serving/mount.rb +143 -0
  166. data/spec/unit/file_serving/terminus_helper.rb +76 -0
  167. data/spec/unit/indirector.rb +152 -0
  168. data/spec/unit/indirector/catalog/compiler.rb +156 -0
  169. data/spec/unit/indirector/catalog/yaml.rb +25 -0
  170. data/spec/unit/indirector/checksum/file.rb +139 -0
  171. data/spec/unit/indirector/code.rb +33 -0
  172. data/spec/unit/indirector/direct_file_server.rb +89 -0
  173. data/spec/unit/indirector/envelope.rb +47 -0
  174. data/spec/unit/indirector/exec.rb +51 -0
  175. data/spec/unit/indirector/facts/facter.rb +76 -0
  176. data/spec/unit/indirector/facts/yaml.rb +26 -0
  177. data/spec/unit/indirector/file.rb +154 -0
  178. data/spec/unit/indirector/file_content/file.rb +18 -0
  179. data/spec/unit/indirector/file_content/file_server.rb +18 -0
  180. data/spec/unit/indirector/file_content/modules.rb +18 -0
  181. data/spec/unit/indirector/file_content/rest.rb +11 -0
  182. data/spec/unit/indirector/file_metadata/file.rb +52 -0
  183. data/spec/unit/indirector/file_metadata/file_server.rb +18 -0
  184. data/spec/unit/indirector/file_metadata/modules.rb +42 -0
  185. data/spec/unit/indirector/file_metadata/rest.rb +9 -0
  186. data/spec/unit/indirector/file_server.rb +184 -0
  187. data/spec/unit/indirector/indirection.rb +731 -0
  188. data/spec/unit/indirector/ldap.rb +143 -0
  189. data/spec/unit/indirector/memory.rb +29 -0
  190. data/spec/unit/indirector/module_files.rb +259 -0
  191. data/spec/unit/indirector/node/exec.rb +69 -0
  192. data/spec/unit/indirector/node/ldap.rb +424 -0
  193. data/spec/unit/indirector/node/memory.rb +19 -0
  194. data/spec/unit/indirector/node/plain.rb +19 -0
  195. data/spec/unit/indirector/node/rest.rb +13 -0
  196. data/spec/unit/indirector/node/yaml.rb +25 -0
  197. data/spec/unit/indirector/plain.rb +29 -0
  198. data/spec/unit/indirector/report/processor.rb +81 -0
  199. data/spec/unit/indirector/request.rb +87 -0
  200. data/spec/unit/indirector/rest.rb +372 -0
  201. data/spec/unit/indirector/ssl_rsa/file.rb +116 -0
  202. data/spec/unit/indirector/terminus.rb +245 -0
  203. data/spec/unit/indirector/yaml.rb +145 -0
  204. data/spec/unit/module.rb +247 -0
  205. data/spec/unit/network/client.rb +45 -0
  206. data/spec/unit/network/client/master.rb +442 -0
  207. data/spec/unit/network/handler/fileserver.rb +179 -0
  208. data/spec/unit/network/http.rb +35 -0
  209. data/spec/unit/network/http/mongrel.rb +117 -0
  210. data/spec/unit/network/http/mongrel/rest.rb +377 -0
  211. data/spec/unit/network/http/mongrel/xmlrpc.rb +0 -0
  212. data/spec/unit/network/http/webrick.rb +127 -0
  213. data/spec/unit/network/http/webrick/rest.rb +323 -0
  214. data/spec/unit/network/http/webrick/xmlrpc.rb +0 -0
  215. data/spec/unit/network/http_pool.rb +238 -0
  216. data/spec/unit/network/server.rb +316 -0
  217. data/spec/unit/network/xmlrpc/client.rb +13 -0
  218. data/spec/unit/node.rb +167 -0
  219. data/spec/unit/node/catalog.rb +864 -0
  220. data/spec/unit/node/environment.rb +37 -0
  221. data/spec/unit/node/facts.rb +44 -0
  222. data/spec/unit/other/checksum.rb +92 -0
  223. data/spec/unit/other/pgraph.rb +210 -0
  224. data/spec/unit/other/transaction.rb +33 -0
  225. data/spec/unit/other/transbucket.rb +172 -0
  226. data/spec/unit/other/transobject.rb +92 -0
  227. data/spec/unit/parameter.rb +24 -0
  228. data/spec/unit/parser/ast.rb +37 -0
  229. data/spec/unit/parser/ast/arithmetic_operator.rb +73 -0
  230. data/spec/unit/parser/ast/astarray.rb +66 -0
  231. data/spec/unit/parser/ast/boolean_operator.rb +53 -0
  232. data/spec/unit/parser/ast/collexpr.rb +92 -0
  233. data/spec/unit/parser/ast/comparison_operator.rb +92 -0
  234. data/spec/unit/parser/ast/definition.rb +195 -0
  235. data/spec/unit/parser/ast/function.rb +77 -0
  236. data/spec/unit/parser/ast/hostclass.rb +148 -0
  237. data/spec/unit/parser/ast/minus.rb +36 -0
  238. data/spec/unit/parser/ast/node.rb +125 -0
  239. data/spec/unit/parser/ast/nop.rb +20 -0
  240. data/spec/unit/parser/ast/not.rb +30 -0
  241. data/spec/unit/parser/ast/resource_override.rb +51 -0
  242. data/spec/unit/parser/ast/resource_reference.rb +63 -0
  243. data/spec/unit/parser/ast/vardef.rb +47 -0
  244. data/spec/unit/parser/collector.rb +426 -0
  245. data/spec/unit/parser/compiler.rb +561 -0
  246. data/spec/unit/parser/functions.rb +83 -0
  247. data/spec/unit/parser/functions/inline_template.rb +59 -0
  248. data/spec/unit/parser/functions/template.rb +62 -0
  249. data/spec/unit/parser/interpreter.rb +138 -0
  250. data/spec/unit/parser/lexer.rb +646 -0
  251. data/spec/unit/parser/parser.rb +228 -0
  252. data/spec/unit/parser/resource.rb +336 -0
  253. data/spec/unit/parser/resource/reference.rb +95 -0
  254. data/spec/unit/parser/scope.rb +87 -0
  255. data/spec/unit/parser/templatewrapper.rb +129 -0
  256. data/spec/unit/property.rb +35 -0
  257. data/spec/unit/property/keyvalue.rb +168 -0
  258. data/spec/unit/property/list.rb +156 -0
  259. data/spec/unit/property/ordered_list.rb +64 -0
  260. data/spec/unit/provider/augeas/augeas.rb +238 -0
  261. data/spec/unit/provider/confine.rb +78 -0
  262. data/spec/unit/provider/confine/exists.rb +81 -0
  263. data/spec/unit/provider/confine/false.rb +53 -0
  264. data/spec/unit/provider/confine/feature.rb +60 -0
  265. data/spec/unit/provider/confine/true.rb +53 -0
  266. data/spec/unit/provider/confine/variable.rb +107 -0
  267. data/spec/unit/provider/confine_collection.rb +134 -0
  268. data/spec/unit/provider/confiner.rb +63 -0
  269. data/spec/unit/provider/group/groupadd.rb +31 -0
  270. data/spec/unit/provider/group/ldap.rb +105 -0
  271. data/spec/unit/provider/ldap.rb +248 -0
  272. data/spec/unit/provider/macauthorization.rb +147 -0
  273. data/spec/unit/provider/mcx/mcxcontent.rb +175 -0
  274. data/spec/unit/provider/mount.rb +130 -0
  275. data/spec/unit/provider/mount/parsed.rb +185 -0
  276. data/spec/unit/provider/package/apt.rb +138 -0
  277. data/spec/unit/provider/package/dpkg.rb +163 -0
  278. data/spec/unit/provider/package/gem.rb +87 -0
  279. data/spec/unit/provider/package/hpux.rb +52 -0
  280. data/spec/unit/provider/selboolean.rb +37 -0
  281. data/spec/unit/provider/selmodule-example.pp +0 -0
  282. data/spec/unit/provider/selmodule.rb +66 -0
  283. data/spec/unit/provider/service/daemontools.rb +124 -0
  284. data/spec/unit/provider/service/launchd.rb +134 -0
  285. data/spec/unit/provider/service/runit.rb +117 -0
  286. data/spec/unit/provider/ssh_authorized_key/parsed.rb +102 -0
  287. data/spec/unit/provider/user/hpux.rb +25 -0
  288. data/spec/unit/provider/user/ldap.rb +279 -0
  289. data/spec/unit/provider/user/user_role_add.rb +249 -0
  290. data/spec/unit/provider/user/useradd.rb +115 -0
  291. data/spec/unit/provider/zfs/solaris.rb +87 -0
  292. data/spec/unit/provider/zone/solaris.rb +42 -0
  293. data/spec/unit/provider/zpool/solaris.rb +179 -0
  294. data/spec/unit/rails.rb +125 -0
  295. data/spec/unit/relationship.rb +149 -0
  296. data/spec/unit/reports.rb +61 -0
  297. data/spec/unit/resource_reference.rb +73 -0
  298. data/spec/unit/simple_graph.rb +280 -0
  299. data/spec/unit/transaction/change.rb +187 -0
  300. data/spec/unit/transaction/event.rb +25 -0
  301. data/spec/unit/transaction/report.rb +40 -0
  302. data/spec/unit/type.rb +64 -0
  303. data/spec/unit/type/augeas.rb +113 -0
  304. data/spec/unit/type/computer.rb +82 -0
  305. data/spec/unit/type/exec.rb +91 -0
  306. data/spec/unit/type/file.rb +155 -0
  307. data/spec/unit/type/file/ensure.rb +21 -0
  308. data/spec/unit/type/file/group.rb +118 -0
  309. data/spec/unit/type/file/owner.rb +132 -0
  310. data/spec/unit/type/file/selinux.rb +82 -0
  311. data/spec/unit/type/group.rb +40 -0
  312. data/spec/unit/type/macauthorization.rb +78 -0
  313. data/spec/unit/type/mcx.rb +108 -0
  314. data/spec/unit/type/mount.rb +219 -0
  315. data/spec/unit/type/nagios.rb +63 -0
  316. data/spec/unit/type/noop_metaparam.rb +38 -0
  317. data/spec/unit/type/package.rb +246 -0
  318. data/spec/unit/type/resources.rb +27 -0
  319. data/spec/unit/type/schedule.rb +339 -0
  320. data/spec/unit/type/selboolean.rb +47 -0
  321. data/spec/unit/type/selmodule.rb +18 -0
  322. data/spec/unit/type/service.rb +254 -0
  323. data/spec/unit/type/ssh_authorized_key.rb +106 -0
  324. data/spec/unit/type/tidy.rb +68 -0
  325. data/spec/unit/type/user.rb +260 -0
  326. data/spec/unit/type/zfs.rb +45 -0
  327. data/spec/unit/type/zone.rb +20 -0
  328. data/spec/unit/type/zpool.rb +110 -0
  329. data/spec/unit/util/checksums.rb +99 -0
  330. data/spec/unit/util/constant_inflector.rb +70 -0
  331. data/spec/unit/util/file_locking.rb +115 -0
  332. data/spec/unit/util/ldap/connection.rb +169 -0
  333. data/spec/unit/util/ldap/generator.rb +54 -0
  334. data/spec/unit/util/ldap/manager.rb +654 -0
  335. data/spec/unit/util/loadedfile.rb +65 -0
  336. data/spec/unit/util/log.rb +107 -0
  337. data/spec/unit/util/metric.rb +95 -0
  338. data/spec/unit/util/nagios_maker.rb +128 -0
  339. data/spec/unit/util/posix.rb +256 -0
  340. data/spec/unit/util/resource_template.rb +58 -0
  341. data/spec/unit/util/selinux.rb +219 -0
  342. data/spec/unit/util/settings.rb +847 -0
  343. data/spec/unit/util/storage.rb +248 -0
  344. data/spec/unit/util/tagging.rb +92 -0
  345. data/spec/unit/util/uri_helper.rb +41 -0
  346. data/spec/unit/util/user_attr.rb +47 -0
  347. data/spec/unit/util/warnings.rb +35 -0
  348. data/test/certmgr/support.rb +0 -6
  349. data/test/data/providers/ssh_authorized_key/parsed/authorized_keys +1 -0
  350. data/test/data/snippets/multilinecomments.pp +6 -0
  351. data/test/data/snippets/multipleclass.pp +9 -0
  352. data/test/language/functions.rb +11 -1
  353. data/test/language/snippets.rb +16 -0
  354. data/test/lib/puppettest/runnable_test.rb +1 -1
  355. data/test/network/handler/fileserver.rb +5 -0
  356. data/test/other/report.rb +0 -4
  357. data/test/ral/type/resources.rb +2 -19
  358. data/test/util/settings.rb +4 -4
  359. data/test/util/storage.rb +0 -24
  360. data/test/util/utiltest.rb +0 -33
  361. metadata +319 -26
  362. data/conf/debian/README.source +0 -2
  363. data/conf/debian/TODO.Debian +0 -1
  364. data/conf/debian/changelog +0 -257
  365. data/conf/debian/compat +0 -1
  366. data/conf/debian/control +0 -45
  367. data/conf/debian/copyright +0 -17
  368. data/conf/debian/docs +0 -1
  369. data/conf/debian/fileserver.conf +0 -12
  370. data/conf/debian/puppet.NEWS +0 -63
  371. data/conf/debian/puppet.conf +0 -8
  372. data/conf/debian/puppet.dirs +0 -7
  373. data/conf/debian/puppet.files +0 -6
  374. data/conf/debian/puppet.init +0 -64
  375. data/conf/debian/puppet.logrotate +0 -11
  376. data/conf/debian/puppet.postinst +0 -9
  377. data/conf/debian/puppet.postrm +0 -21
  378. data/conf/debian/puppet.preinst +0 -25
  379. data/conf/debian/puppetmaster.files +0 -4
  380. data/conf/debian/puppetmaster.init +0 -58
  381. data/conf/debian/rules +0 -115
  382. data/conf/debian/watch +0 -2
  383. data/lib/puppet/type/nagios_hostgroupescalation.rb +0 -3
@@ -488,7 +488,7 @@ class Puppet::Network::Client::Master < Puppet::Network::Client
488
488
  return unless Puppet[:splay]
489
489
  return if splayed?
490
490
 
491
- time = rand(Integer(Puppet[:splaylimit]))
491
+ time = rand(Integer(Puppet[:splaylimit]) + 1)
492
492
  Puppet.info "Sleeping for %s seconds (splay is enabled)" % time
493
493
  sleep(time)
494
494
  @splayed = true
@@ -73,7 +73,9 @@ module Puppet::Network
73
73
  rescue Timeout::Error => detail
74
74
  Puppet.err "Connection timeout calling %s.%s: %s" %
75
75
  [namespace, method, detail.to_s]
76
- raise XMLRPCClientError.new("Connection Timeout").set_backtrace(detail.backtrace)
76
+ error = XMLRPCClientError.new("Connection Timeout")
77
+ error.set_backtrace(detail.backtrace)
78
+ raise error
77
79
  rescue => detail
78
80
  if detail.message =~ /^Wrong size\. Was \d+, should be \d+$/
79
81
  Puppet.warning "XMLRPC returned wrong size. Retrying."
@@ -63,7 +63,7 @@ class Puppet::Parameter
63
63
  end
64
64
  unless regs.empty?
65
65
  @doc += " Values can also match ``" +
66
- regs.join("``, ``") + "``."
66
+ regs.collect { |r| r.inspect }.join("``, ``") + "``."
67
67
  end
68
68
  end
69
69
 
@@ -12,8 +12,23 @@ class Puppet::Parser::AST
12
12
 
13
13
  include Puppet::Util::Errors
14
14
  include Puppet::Util::MethodHelper
15
+ include Puppet::Util::Docs
16
+
15
17
  attr_accessor :line, :file, :parent, :scope
16
18
 
19
+ # don't fetch lexer comment by default
20
+ def use_docs
21
+ self.class.use_docs
22
+ end
23
+
24
+ # allow our subclass to specify they want documentation
25
+ class << self
26
+ attr_accessor :use_docs
27
+ def associates_doc
28
+ self.use_docs = true
29
+ end
30
+ end
31
+
17
32
  # Does this ast object set something? If so, it gets evaluated first.
18
33
  def self.settor?
19
34
  if defined? @settor
@@ -30,10 +30,9 @@ class Puppet::Parser::AST
30
30
  items << child
31
31
  end
32
32
  }
33
-
34
33
  rets = items.flatten.collect { |child|
35
34
  child.safeevaluate(scope)
36
- }
35
+ }.flatten
37
36
  return rets.reject { |o| o.nil? }
38
37
  end
39
38
 
@@ -6,6 +6,8 @@ class Puppet::Parser::AST
6
6
  class CaseStatement < AST::Branch
7
7
  attr_accessor :test, :options, :default
8
8
 
9
+ associates_doc
10
+
9
11
  # Short-curcuit evaluation. Return the value of the statements for
10
12
  # the first option that matches.
11
13
  def evaluate(scope)
@@ -8,6 +8,8 @@ class Puppet::Parser::AST
8
8
  class Collection < AST::Branch
9
9
  attr_accessor :type, :query, :form
10
10
 
11
+ associates_doc
12
+
11
13
  # We return an object that does a late-binding evaluation.
12
14
  def evaluate(scope)
13
15
  if self.query
@@ -18,6 +18,10 @@ class Puppet::Parser::AST
18
18
  lval = @lval.safeevaluate(scope)
19
19
  rval = @rval.safeevaluate(scope)
20
20
 
21
+ # convert to number if operands are number
22
+ lval = Puppet::Parser::Scope.number?(lval) || lval
23
+ rval = Puppet::Parser::Scope.number?(rval) || rval
24
+
21
25
  # return result
22
26
  unless @operator == '!='
23
27
  lval.send(@operator,rval)
@@ -10,6 +10,8 @@ class Puppet::Parser::AST::Definition < Puppet::Parser::AST::Branch
10
10
  attr_accessor :name
11
11
  end
12
12
 
13
+ associates_doc
14
+
13
15
  # The class name
14
16
  @name = :definition
15
17
 
@@ -4,6 +4,9 @@ class Puppet::Parser::AST
4
4
  # A separate ElseIf statement; can function as an 'else' if there's no
5
5
  # test.
6
6
  class Else < AST::Branch
7
+
8
+ associates_doc
9
+
7
10
  attr_accessor :statements
8
11
 
9
12
  def each
@@ -3,25 +3,17 @@ require 'puppet/parser/ast/branch'
3
3
  class Puppet::Parser::AST
4
4
  # An AST object to call a function.
5
5
  class Function < AST::Branch
6
+
7
+ associates_doc
8
+
6
9
  attr_accessor :name, :arguments
7
10
 
8
11
  @settor = true
9
12
 
10
13
  def evaluate(scope)
11
- # We don't need to evaluate the name, because it's plaintext
12
- args = @arguments.safeevaluate(scope)
13
-
14
- return scope.send("function_" + @name, args)
15
- end
16
-
17
- def initialize(hash)
18
- @ftype = hash[:ftype] || :rvalue
19
- hash.delete(:ftype) if hash.include? :ftype
20
-
21
- super(hash)
22
14
 
23
15
  # Make sure it's a defined function
24
- unless @fname = Puppet::Parser::Functions.function(@name)
16
+ unless @fname
25
17
  raise Puppet::ParseError, "Unknown function %s" % @name
26
18
  end
27
19
 
@@ -42,6 +34,21 @@ class Puppet::Parser::AST
42
34
  raise Puppet::DevError, "Invalid function type %s" % @ftype.inspect
43
35
  end
44
36
 
37
+
38
+
39
+ # We don't need to evaluate the name, because it's plaintext
40
+ args = @arguments.safeevaluate(scope)
41
+
42
+ return scope.send("function_" + @name, args)
43
+ end
44
+
45
+ def initialize(hash)
46
+ @ftype = hash[:ftype] || :rvalue
47
+ hash.delete(:ftype) if hash.include? :ftype
48
+
49
+ super(hash)
50
+
51
+ @fname = Puppet::Parser::Functions.function(@name)
45
52
  # Lastly, check the parity
46
53
  end
47
54
  end
@@ -4,6 +4,9 @@ require 'puppet/parser/ast/definition'
4
4
  # in that each class is a singleton -- only one will exist for a given
5
5
  # node.
6
6
  class Puppet::Parser::AST::HostClass < Puppet::Parser::AST::Definition
7
+
8
+ associates_doc
9
+
7
10
  @name = :class
8
11
 
9
12
  # Are we a child of the passed class? Do a recursive search up our
@@ -56,7 +59,12 @@ class Puppet::Parser::AST::HostClass < Puppet::Parser::AST::Definition
56
59
 
57
60
  # Don't create a subscope for the top-level class, since it already
58
61
  # has its own scope.
59
- scope = subscope(scope, resource) unless resource.title == :main
62
+ unless resource.title == :main
63
+ scope = subscope(scope, resource)
64
+
65
+ scope.setvar("title", resource.title)
66
+ scope.setvar("name", resource.name)
67
+ end
60
68
 
61
69
  # Add the parent scope namespaces to our own.
62
70
  if pnames
@@ -3,6 +3,9 @@ require 'puppet/parser/ast/branch'
3
3
  class Puppet::Parser::AST
4
4
  # A basic 'if/elsif/else' statement.
5
5
  class IfStatement < AST::Branch
6
+
7
+ associates_doc
8
+
6
9
  attr_accessor :test, :else, :statements
7
10
 
8
11
  def each
@@ -3,6 +3,9 @@ require 'puppet/parser/ast/hostclass'
3
3
  # The specific code associated with a host. Nodes are annoyingly unlike
4
4
  # other objects. That's just the way it is, at least for now.
5
5
  class Puppet::Parser::AST::Node < Puppet::Parser::AST::HostClass
6
+
7
+ associates_doc
8
+
6
9
  @name = :node
7
10
 
8
11
  def initialize(options)
@@ -4,6 +4,9 @@ require 'puppet/parser/ast/resource_reference'
4
4
  # builtin type.
5
5
  class Puppet::Parser::AST
6
6
  class Resource < AST::ResourceReference
7
+
8
+ associates_doc
9
+
7
10
  attr_accessor :title, :type, :exported, :virtual
8
11
  attr_reader :params
9
12
 
@@ -6,6 +6,8 @@ class Puppet::Parser::AST
6
6
  class ResourceDefaults < AST::Branch
7
7
  attr_accessor :type, :params
8
8
 
9
+ associates_doc
10
+
9
11
  # As opposed to ResourceDef, this stores each default for the given
10
12
  # object type.
11
13
  def evaluate(scope)
@@ -4,6 +4,9 @@ class Puppet::Parser::AST
4
4
  # Set a parameter on a resource specification created somewhere else in the
5
5
  # configuration. The object is responsible for verifying that this is allowed.
6
6
  class ResourceOverride < Resource
7
+
8
+ associates_doc
9
+
7
10
  attr_accessor :object
8
11
  attr_reader :params
9
12
 
@@ -3,6 +3,9 @@ require 'puppet/parser/ast/branch'
3
3
  class Puppet::Parser::AST
4
4
  # Define a variable. Stores the value in the current scope.
5
5
  class VarDef < AST::Branch
6
+
7
+ associates_doc
8
+
6
9
  attr_accessor :name, :value, :append
7
10
 
8
11
  @settor = true
@@ -54,6 +54,20 @@ module Functions
54
54
  end
55
55
  end
56
56
 
57
+ # Remove a function added by newfunction
58
+ def self.rmfunction(name)
59
+ name = symbolize(name)
60
+
61
+ unless @functions.include? name
62
+ raise Puppet::DevError, "Function %s is not defined" % name
63
+ end
64
+
65
+ @functions.delete(name)
66
+
67
+ fname = "function_" + name.to_s
68
+ Puppet::Parser::Scope.send(:remove_method, fname)
69
+ end
70
+
57
71
  # Determine if a given name is a function
58
72
  def self.function(name)
59
73
  name = symbolize(name)
@@ -0,0 +1,21 @@
1
+ Puppet::Parser::Functions::newfunction(:inline_template, :type => :rvalue, :doc =>
2
+ "Evaluate a template string and return its value. See `the templating docs
3
+ </trac/puppet/wiki/PuppetTemplating>`_ for more information. Note that
4
+ if multiple template strings are specified, their output is all concatenated
5
+ and returned as the output of the function.") do |vals|
6
+ require 'erb'
7
+
8
+ vals.collect do |string|
9
+ # Use a wrapper, so the template can't get access to the full
10
+ # Scope object.
11
+
12
+ wrapper = Puppet::Parser::TemplateWrapper.new(self)
13
+ begin
14
+ wrapper.result(string)
15
+ rescue => detail
16
+ raise Puppet::ParseError,
17
+ "Failed to parse inline template: %s" %
18
+ [detail]
19
+ end
20
+ end.join("")
21
+ end
@@ -9,10 +9,11 @@ Puppet::Parser::Functions::newfunction(:template, :type => :rvalue, :doc =>
9
9
  # Use a wrapper, so the template can't get access to the full
10
10
  # Scope object.
11
11
  debug "Retrieving template %s" % file
12
- wrapper = Puppet::Parser::TemplateWrapper.new(self, file)
13
12
 
13
+ wrapper = Puppet::Parser::TemplateWrapper.new(self)
14
+ wrapper.file = file
14
15
  begin
15
- wrapper.result()
16
+ wrapper.result
16
17
  rescue => detail
17
18
  raise Puppet::ParseError,
18
19
  "Failed to parse template %s: %s" %
@@ -17,7 +17,7 @@ class Puppet::Parser::Lexer
17
17
 
18
18
  # Our base token class.
19
19
  class Token
20
- attr_accessor :regex, :name, :string, :skip, :incr_line, :skip_text
20
+ attr_accessor :regex, :name, :string, :skip, :incr_line, :skip_text, :accumulate
21
21
 
22
22
  def initialize(regex, name)
23
23
  if regex.is_a?(String)
@@ -28,8 +28,10 @@ class Puppet::Parser::Lexer
28
28
  end
29
29
  end
30
30
 
31
- def skip?
32
- self.skip
31
+ %w{skip accumulate}.each do |method|
32
+ define_method(method+"?") do
33
+ self.send(method)
34
+ end
33
35
  end
34
36
 
35
37
  def to_s
@@ -132,7 +134,7 @@ class Puppet::Parser::Lexer
132
134
  '*' => :TIMES,
133
135
  '<<' => :LSHIFT,
134
136
  '>>' => :RSHIFT,
135
- %r{([a-z][-\w]*::)+[a-z][-\w]*} => :CLASSNAME,
137
+ %r{([a-z][-\w]*)?(::[a-z][-\w]*)+} => :CLASSNAME, # Require '::' in the class name, else we'd compete with NAME
136
138
  %r{((::){0,1}[A-Z][-\w]*)+} => :CLASSREF
137
139
  )
138
140
 
@@ -155,7 +157,17 @@ class Puppet::Parser::Lexer
155
157
  [string_token, value]
156
158
  end
157
159
 
158
- TOKENS.add_token :COMMENT, %r{#.*}, :skip => true
160
+ TOKENS.add_token :COMMENT, %r{#.*}, :accumulate => true, :skip => true do |lexer,value|
161
+ value.sub!(/# ?/,'')
162
+ [self, value]
163
+ end
164
+
165
+ TOKENS.add_token :MLCOMMENT, %r{/\*(.*?)\*/}m, :accumulate => true, :skip => true do |lexer, value|
166
+ lexer.line += value.count("\n")
167
+ value.sub!(/^\/\* ?/,'')
168
+ value.sub!(/ ?\*\/$/,'')
169
+ [self,value]
170
+ end
159
171
 
160
172
  TOKENS.add_token :RETURN, "\n", :skip => true, :incr_line => true, :skip_text => true
161
173
 
@@ -320,6 +332,7 @@ class Puppet::Parser::Lexer
320
332
  @namestack = []
321
333
  @indefine = false
322
334
  @expected = []
335
+ @commentstack = ['']
323
336
  end
324
337
 
325
338
  # Make any necessary changes to the token and/or value.
@@ -328,12 +341,18 @@ class Puppet::Parser::Lexer
328
341
 
329
342
  skip() if token.skip_text
330
343
 
331
- return if token.skip
344
+ return if token.skip and not token.accumulate?
332
345
 
333
346
  token, value = token.convert(self, value) if token.respond_to?(:convert)
334
347
 
335
348
  return unless token
336
349
 
350
+ if token.accumulate?
351
+ @commentstack.last << value + "\n"
352
+ end
353
+
354
+ return if token.skip
355
+
337
356
  return token, value
338
357
  end
339
358
 
@@ -384,6 +403,18 @@ class Puppet::Parser::Lexer
384
403
  raise "Could not match '%s'" % nword
385
404
  end
386
405
 
406
+ if matched_token.name == :RETURN
407
+ # this matches a blank line
408
+ if @last_return
409
+ # eat the previously accumulated comments
410
+ getcomment
411
+ end
412
+ # since :RETURN skips, we won't survive to munge_token
413
+ @last_return = true
414
+ else
415
+ @last_return = false
416
+ end
417
+
387
418
  final_token, value = munge_token(matched_token, value)
388
419
 
389
420
  next unless final_token
@@ -394,6 +425,10 @@ class Puppet::Parser::Lexer
394
425
  @expected.pop
395
426
  end
396
427
 
428
+ if final_token.name == :LBRACE
429
+ commentpush
430
+ end
431
+
397
432
  yield [final_token.name, value]
398
433
 
399
434
  if @previous_token
@@ -409,7 +444,6 @@ class Puppet::Parser::Lexer
409
444
  @indefine = value
410
445
  end
411
446
  end
412
-
413
447
  @previous_token = final_token
414
448
  skip()
415
449
  end
@@ -448,4 +482,19 @@ class Puppet::Parser::Lexer
448
482
  def string=(string)
449
483
  @scanner = StringScanner.new(string)
450
484
  end
485
+
486
+ # returns the content of the currently accumulated content cache
487
+ def commentpop
488
+ return @commentstack.pop
489
+ end
490
+
491
+ def getcomment
492
+ comment = @commentstack.pop
493
+ @commentstack.push('')
494
+ return comment
495
+ end
496
+
497
+ def commentpush
498
+ @commentstack.push('')
499
+ end
451
500
  end