puppet 0.25.5 → 2.6.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 (1474) hide show
  1. data/CHANGELOG +667 -0
  2. data/LICENSE +2 -2
  3. data/README +5 -1
  4. data/README.queueing +1 -1
  5. data/README.rst +7 -4
  6. data/Rakefile +6 -18
  7. data/bin/filebucket +0 -94
  8. data/bin/pi +2 -47
  9. data/bin/puppet +2 -69
  10. data/bin/puppetca +2 -100
  11. data/bin/puppetd +2 -158
  12. data/bin/puppetdoc +2 -63
  13. data/bin/puppetmasterd +2 -64
  14. data/bin/puppetqd +2 -51
  15. data/bin/puppetrun +2 -127
  16. data/bin/ralsh +2 -87
  17. data/conf/epm.list +2 -2
  18. data/conf/osx/PackageInfo.plist +1 -1
  19. data/conf/redhat/client.init +11 -8
  20. data/conf/redhat/puppet.conf +1 -1
  21. data/conf/redhat/puppet.spec +1 -1
  22. data/conf/redhat/rundir-perms.patch +13 -13
  23. data/conf/redhat/server.init +11 -5
  24. data/conf/solaris/pkginfo +2 -2
  25. data/conf/solaris/smf/puppetd.xml +3 -3
  26. data/conf/solaris/smf/puppetmasterd.xml +3 -3
  27. data/conf/suse/client.init +3 -2
  28. data/conf/suse/puppet.spec +22 -18
  29. data/conf/suse/server.init +12 -11
  30. data/examples/modules/sample-module/README.txt +3 -3
  31. data/examples/modules/sample-module/lib/puppet/parser/functions/hostname_to_dn.rb +4 -4
  32. data/ext/extlookup.rb +94 -96
  33. data/ext/nagios/check_puppet.rb +94 -88
  34. data/ext/nagios/naggen +3 -3
  35. data/ext/puppet-test +27 -3
  36. data/ext/puppetlisten/puppetlisten.rb +39 -39
  37. data/ext/puppetlisten/puppetrun.rb +6 -6
  38. data/ext/puppetstoredconfigclean.rb +49 -43
  39. data/ext/pure_ruby_dsl/dsl_test.rb +7 -0
  40. data/ext/regexp_nodes/regexp_nodes.rb +133 -133
  41. data/ext/yaml_nodes.rb +99 -0
  42. data/install.rb +109 -118
  43. data/lib/puppet.rb +118 -131
  44. data/lib/puppet/agent.rb +86 -119
  45. data/lib/puppet/agent/locker.rb +28 -30
  46. data/lib/puppet/application.rb +276 -184
  47. data/lib/puppet/application/agent.rb +266 -0
  48. data/lib/puppet/application/apply.rb +165 -0
  49. data/lib/puppet/application/cert.rb +85 -0
  50. data/lib/puppet/application/describe.rb +203 -0
  51. data/lib/puppet/application/doc.rb +215 -0
  52. data/lib/puppet/application/filebucket.rb +73 -73
  53. data/lib/puppet/application/kick.rb +212 -0
  54. data/lib/puppet/application/master.rb +156 -0
  55. data/lib/puppet/application/queue.rb +91 -0
  56. data/lib/puppet/application/resource.rb +118 -0
  57. data/lib/puppet/configurer.rb +214 -197
  58. data/lib/puppet/configurer/downloader.rb +63 -63
  59. data/lib/puppet/configurer/fact_handler.rb +51 -51
  60. data/lib/puppet/configurer/plugin_handler.rb +19 -19
  61. data/lib/puppet/daemon.rb +100 -103
  62. data/lib/puppet/defaults.rb +793 -796
  63. data/lib/puppet/dsl.rb +5 -269
  64. data/lib/puppet/dsl/resource_api.rb +120 -0
  65. data/lib/puppet/dsl/resource_type_api.rb +40 -0
  66. data/lib/puppet/error.rb +34 -36
  67. data/lib/puppet/external/base64.rb +8 -8
  68. data/lib/puppet/external/dot.rb +262 -262
  69. data/lib/puppet/external/event-loop/better-definers.rb +297 -297
  70. data/lib/puppet/external/event-loop/event-loop.rb +264 -272
  71. data/lib/puppet/external/event-loop/signal-system.rb +161 -163
  72. data/lib/puppet/external/lock.rb +41 -41
  73. data/lib/puppet/external/nagios.rb +32 -32
  74. data/lib/puppet/external/nagios/base.rb +453 -458
  75. data/lib/puppet/external/nagios/parser.rb +264 -287
  76. data/lib/puppet/external/pson/common.rb +8 -5
  77. data/lib/puppet/external/pson/pure/generator.rb +26 -26
  78. data/lib/puppet/external/pson/pure/parser.rb +43 -48
  79. data/lib/puppet/feature/base.rb +21 -1
  80. data/lib/puppet/feature/pson.rb +4 -4
  81. data/lib/puppet/feature/rack.rb +14 -14
  82. data/lib/puppet/feature/rails.rb +23 -25
  83. data/lib/puppet/file_bucket.rb +4 -0
  84. data/lib/puppet/file_bucket/dipper.rb +99 -0
  85. data/lib/puppet/file_bucket/file.rb +136 -0
  86. data/lib/puppet/file_bucket/file/indirection_hooks.rb +9 -0
  87. data/lib/puppet/file_collection.rb +20 -20
  88. data/lib/puppet/file_collection/lookup.rb +11 -11
  89. data/lib/puppet/file_serving/base.rb +67 -71
  90. data/lib/puppet/file_serving/configuration.rb +84 -86
  91. data/lib/puppet/file_serving/configuration/parser.rb +103 -102
  92. data/lib/puppet/file_serving/content.rb +34 -33
  93. data/lib/puppet/file_serving/fileset.rb +131 -133
  94. data/lib/puppet/file_serving/indirection_hooks.rb +17 -17
  95. data/lib/puppet/file_serving/metadata.rb +98 -95
  96. data/lib/puppet/file_serving/mount.rb +22 -22
  97. data/lib/puppet/file_serving/mount/file.rb +101 -106
  98. data/lib/puppet/file_serving/mount/modules.rb +15 -15
  99. data/lib/puppet/file_serving/mount/plugins.rb +15 -16
  100. data/lib/puppet/file_serving/terminus_helper.rb +13 -13
  101. data/lib/puppet/indirector.rb +48 -49
  102. data/lib/puppet/indirector/active_record.rb +19 -19
  103. data/lib/puppet/indirector/catalog/active_record.rb +25 -25
  104. data/lib/puppet/indirector/catalog/compiler.rb +134 -145
  105. data/lib/puppet/indirector/catalog/rest.rb +1 -1
  106. data/lib/puppet/indirector/catalog/yaml.rb +13 -13
  107. data/lib/puppet/indirector/certificate/ca.rb +3 -3
  108. data/lib/puppet/indirector/certificate/file.rb +3 -3
  109. data/lib/puppet/indirector/certificate/rest.rb +8 -8
  110. data/lib/puppet/indirector/certificate_request/ca.rb +7 -7
  111. data/lib/puppet/indirector/certificate_request/file.rb +2 -2
  112. data/lib/puppet/indirector/certificate_request/rest.rb +3 -3
  113. data/lib/puppet/indirector/certificate_revocation_list/ca.rb +2 -2
  114. data/lib/puppet/indirector/certificate_revocation_list/file.rb +2 -2
  115. data/lib/puppet/indirector/certificate_revocation_list/rest.rb +3 -3
  116. data/lib/puppet/indirector/couch.rb +76 -0
  117. data/lib/puppet/indirector/direct_file_server.rb +11 -11
  118. data/lib/puppet/indirector/envelope.rb +4 -4
  119. data/lib/puppet/indirector/exec.rb +38 -42
  120. data/lib/puppet/indirector/facts/active_record.rb +24 -24
  121. data/lib/puppet/indirector/facts/couch.rb +31 -0
  122. data/lib/puppet/indirector/facts/facter.rb +63 -61
  123. data/lib/puppet/indirector/facts/memory.rb +4 -4
  124. data/lib/puppet/indirector/facts/rest.rb +1 -1
  125. data/lib/puppet/indirector/facts/yaml.rb +2 -2
  126. data/lib/puppet/indirector/file.rb +67 -46
  127. data/lib/puppet/indirector/file_bucket_file/file.rb +146 -0
  128. data/lib/puppet/indirector/file_bucket_file/rest.rb +8 -0
  129. data/lib/puppet/indirector/file_content/file.rb +1 -1
  130. data/lib/puppet/indirector/file_content/file_server.rb +1 -1
  131. data/lib/puppet/indirector/file_content/rest.rb +1 -1
  132. data/lib/puppet/indirector/file_metadata/file.rb +11 -11
  133. data/lib/puppet/indirector/file_metadata/file_server.rb +1 -1
  134. data/lib/puppet/indirector/file_metadata/rest.rb +1 -1
  135. data/lib/puppet/indirector/file_server.rb +44 -44
  136. data/lib/puppet/indirector/indirection.rb +249 -260
  137. data/lib/puppet/indirector/key/ca.rb +5 -5
  138. data/lib/puppet/indirector/key/file.rb +29 -29
  139. data/lib/puppet/indirector/ldap.rb +62 -64
  140. data/lib/puppet/indirector/memory.rb +13 -13
  141. data/lib/puppet/indirector/node/active_record.rb +6 -6
  142. data/lib/puppet/indirector/node/exec.rb +40 -44
  143. data/lib/puppet/indirector/node/ldap.rb +246 -212
  144. data/lib/puppet/indirector/node/memory.rb +5 -5
  145. data/lib/puppet/indirector/node/plain.rb +12 -12
  146. data/lib/puppet/indirector/node/rest.rb +2 -2
  147. data/lib/puppet/indirector/node/yaml.rb +2 -2
  148. data/lib/puppet/indirector/plain.rb +4 -4
  149. data/lib/puppet/indirector/queue.rb +49 -51
  150. data/lib/puppet/indirector/report/processor.rb +34 -37
  151. data/lib/puppet/indirector/report/rest.rb +3 -3
  152. data/lib/puppet/indirector/request.rb +171 -157
  153. data/lib/puppet/indirector/resource/ral.rb +48 -0
  154. data/lib/puppet/indirector/resource/rest.rb +5 -0
  155. data/lib/puppet/indirector/resource_type.rb +5 -0
  156. data/lib/puppet/indirector/resource_type/parser.rb +27 -0
  157. data/lib/puppet/indirector/resource_type/rest.rb +7 -0
  158. data/lib/puppet/indirector/rest.rb +83 -79
  159. data/lib/puppet/indirector/run/local.rb +8 -0
  160. data/lib/puppet/indirector/run/rest.rb +6 -0
  161. data/lib/puppet/indirector/ssl_file.rb +165 -165
  162. data/lib/puppet/indirector/status.rb +3 -0
  163. data/lib/puppet/indirector/status/local.rb +7 -0
  164. data/lib/puppet/indirector/status/rest.rb +5 -0
  165. data/lib/puppet/indirector/terminus.rb +129 -133
  166. data/lib/puppet/indirector/yaml.rb +47 -49
  167. data/lib/puppet/metatype/manager.rb +120 -114
  168. data/lib/puppet/module.rb +182 -124
  169. data/lib/puppet/network/authconfig.rb +146 -156
  170. data/lib/puppet/network/authorization.rb +63 -70
  171. data/lib/puppet/network/authstore.rb +226 -232
  172. data/lib/puppet/network/client.rb +141 -152
  173. data/lib/puppet/network/client/ca.rb +47 -49
  174. data/lib/puppet/network/client/file.rb +3 -3
  175. data/lib/puppet/network/client/proxy.rb +19 -19
  176. data/lib/puppet/network/client/report.rb +17 -21
  177. data/lib/puppet/network/client/runner.rb +5 -7
  178. data/lib/puppet/network/client/status.rb +1 -1
  179. data/lib/puppet/network/client_request.rb +20 -22
  180. data/lib/puppet/network/format.rb +79 -81
  181. data/lib/puppet/network/format_handler.rb +135 -130
  182. data/lib/puppet/network/formats.rb +128 -154
  183. data/lib/puppet/network/handler.rb +43 -46
  184. data/lib/puppet/network/handler/ca.rb +129 -135
  185. data/lib/puppet/network/handler/filebucket.rb +39 -170
  186. data/lib/puppet/network/handler/fileserver.rb +624 -656
  187. data/lib/puppet/network/handler/master.rb +62 -75
  188. data/lib/puppet/network/handler/report.rb +60 -67
  189. data/lib/puppet/network/handler/runner.rb +20 -20
  190. data/lib/puppet/network/handler/status.rb +9 -9
  191. data/lib/puppet/network/http.rb +12 -12
  192. data/lib/puppet/network/http/api/v1.rb +49 -44
  193. data/lib/puppet/network/http/compression.rb +111 -0
  194. data/lib/puppet/network/http/handler.rb +183 -183
  195. data/lib/puppet/network/http/mongrel.rb +46 -48
  196. data/lib/puppet/network/http/mongrel/rest.rb +73 -66
  197. data/lib/puppet/network/http/rack.rb +45 -45
  198. data/lib/puppet/network/http/rack/httphandler.rb +7 -7
  199. data/lib/puppet/network/http/rack/rest.rb +84 -61
  200. data/lib/puppet/network/http/rack/xmlrpc.rb +49 -49
  201. data/lib/puppet/network/http/webrick.rb +108 -112
  202. data/lib/puppet/network/http/webrick/rest.rb +60 -57
  203. data/lib/puppet/network/http_pool.rb +95 -83
  204. data/lib/puppet/network/http_server/mongrel.rb +90 -90
  205. data/lib/puppet/network/http_server/webrick.rb +139 -148
  206. data/lib/puppet/network/rest_authconfig.rb +76 -71
  207. data/lib/puppet/network/rest_authorization.rb +11 -13
  208. data/lib/puppet/network/rights.rb +217 -226
  209. data/lib/puppet/network/server.rb +147 -151
  210. data/lib/puppet/network/xmlrpc/client.rb +197 -205
  211. data/lib/puppet/network/xmlrpc/processor.rb +68 -72
  212. data/lib/puppet/network/xmlrpc/server.rb +10 -10
  213. data/lib/puppet/network/xmlrpc/webrick_servlet.rb +94 -100
  214. data/lib/puppet/node.rb +99 -107
  215. data/lib/puppet/node/environment.rb +109 -62
  216. data/lib/puppet/node/facts.rb +48 -43
  217. data/lib/puppet/parameter.rb +246 -498
  218. data/lib/puppet/parameter/value.rb +63 -0
  219. data/lib/puppet/parameter/value_collection.rb +143 -0
  220. data/lib/puppet/parser.rb +4 -0
  221. data/lib/puppet/parser/ast.rb +81 -67
  222. data/lib/puppet/parser/ast/arithmetic_operator.rb +27 -29
  223. data/lib/puppet/parser/ast/astarray.rb +50 -50
  224. data/lib/puppet/parser/ast/asthash.rb +37 -0
  225. data/lib/puppet/parser/ast/boolean_operator.rb +33 -35
  226. data/lib/puppet/parser/ast/branch.rb +29 -31
  227. data/lib/puppet/parser/ast/caseopt.rb +50 -56
  228. data/lib/puppet/parser/ast/casestatement.rb +30 -30
  229. data/lib/puppet/parser/ast/collection.rb +43 -37
  230. data/lib/puppet/parser/ast/collexpr.rb +66 -69
  231. data/lib/puppet/parser/ast/comparison_operator.rb +32 -35
  232. data/lib/puppet/parser/ast/else.rb +13 -13
  233. data/lib/puppet/parser/ast/function.rb +34 -43
  234. data/lib/puppet/parser/ast/ifstatement.rb +23 -27
  235. data/lib/puppet/parser/ast/in_operator.rb +24 -0
  236. data/lib/puppet/parser/ast/leaf.rb +173 -156
  237. data/lib/puppet/parser/ast/match_operator.rb +16 -19
  238. data/lib/puppet/parser/ast/minus.rb +13 -13
  239. data/lib/puppet/parser/ast/nop.rb +6 -6
  240. data/lib/puppet/parser/ast/not.rb +9 -9
  241. data/lib/puppet/parser/ast/relationship.rb +60 -0
  242. data/lib/puppet/parser/ast/resource.rb +58 -57
  243. data/lib/puppet/parser/ast/resource_defaults.rb +16 -16
  244. data/lib/puppet/parser/ast/resource_override.rb +51 -51
  245. data/lib/puppet/parser/ast/resource_reference.rb +17 -72
  246. data/lib/puppet/parser/ast/resourceparam.rb +20 -17
  247. data/lib/puppet/parser/ast/selector.rb +30 -34
  248. data/lib/puppet/parser/ast/tag.rb +16 -16
  249. data/lib/puppet/parser/ast/vardef.rb +20 -16
  250. data/lib/puppet/parser/collector.rb +181 -189
  251. data/lib/puppet/parser/compiler.rb +395 -364
  252. data/lib/puppet/parser/files.rb +65 -69
  253. data/lib/puppet/parser/functions.rb +85 -97
  254. data/lib/puppet/parser/functions/defined.rb +23 -23
  255. data/lib/puppet/parser/functions/fail.rb +2 -2
  256. data/lib/puppet/parser/functions/file.rb +21 -19
  257. data/lib/puppet/parser/functions/fqdn_rand.rb +7 -7
  258. data/lib/puppet/parser/functions/generate.rb +24 -26
  259. data/lib/puppet/parser/functions/include.rb +16 -18
  260. data/lib/puppet/parser/functions/inline_template.rb +16 -17
  261. data/lib/puppet/parser/functions/realize.rb +8 -8
  262. data/lib/puppet/parser/functions/regsubst.rb +74 -59
  263. data/lib/puppet/parser/functions/require.rb +35 -33
  264. data/lib/puppet/parser/functions/search.rb +5 -5
  265. data/lib/puppet/parser/functions/sha1.rb +3 -4
  266. data/lib/puppet/parser/functions/shellquote.rb +31 -33
  267. data/lib/puppet/parser/functions/split.rb +8 -8
  268. data/lib/puppet/parser/functions/sprintf.rb +10 -9
  269. data/lib/puppet/parser/functions/tag.rb +3 -3
  270. data/lib/puppet/parser/functions/tagged.rb +13 -13
  271. data/lib/puppet/parser/functions/template.rb +18 -19
  272. data/lib/puppet/parser/functions/versioncmp.rb +17 -14
  273. data/lib/puppet/parser/grammar.ra +485 -422
  274. data/lib/puppet/parser/lexer.rb +500 -442
  275. data/lib/puppet/parser/parser.rb +1438 -1084
  276. data/lib/puppet/parser/parser_support.rb +227 -502
  277. data/lib/puppet/parser/relationship.rb +43 -0
  278. data/lib/puppet/parser/resource.rb +280 -375
  279. data/lib/puppet/parser/resource/param.rb +18 -18
  280. data/lib/puppet/parser/scope.rb +450 -447
  281. data/lib/puppet/parser/templatewrapper.rb +92 -94
  282. data/lib/puppet/parser/type_loader.rb +146 -0
  283. data/lib/puppet/parser/yaml_trimmer.rb +6 -8
  284. data/lib/puppet/property.rb +290 -453
  285. data/lib/puppet/property/ensure.rb +92 -0
  286. data/lib/puppet/property/keyvalue.rb +74 -82
  287. data/lib/puppet/property/list.rb +71 -81
  288. data/lib/puppet/property/ordered_list.rb +15 -15
  289. data/lib/puppet/provider.rb +229 -241
  290. data/lib/puppet/provider/augeas/augeas.rb +318 -320
  291. data/lib/puppet/provider/computer/computer.rb +13 -13
  292. data/lib/puppet/provider/confine.rb +63 -63
  293. data/lib/puppet/provider/confine/exists.rb +14 -14
  294. data/lib/puppet/provider/confine/false.rb +12 -12
  295. data/lib/puppet/provider/confine/feature.rb +10 -10
  296. data/lib/puppet/provider/confine/true.rb +13 -13
  297. data/lib/puppet/provider/confine/variable.rb +51 -54
  298. data/lib/puppet/provider/confine_collection.rb +38 -38
  299. data/lib/puppet/provider/confiner.rb +10 -14
  300. data/lib/puppet/provider/cron/crontab.rb +172 -173
  301. data/lib/puppet/provider/file/posix.rb +99 -0
  302. data/lib/puppet/provider/file/win32.rb +74 -0
  303. data/lib/puppet/provider/group/directoryservice.rb +6 -6
  304. data/lib/puppet/provider/group/groupadd.rb +18 -20
  305. data/lib/puppet/provider/group/ldap.rb +40 -43
  306. data/lib/puppet/provider/group/pw.rb +23 -23
  307. data/lib/puppet/provider/host/parsed.rb +51 -50
  308. data/lib/puppet/provider/ldap.rb +121 -123
  309. data/lib/puppet/provider/macauthorization/macauthorization.rb +263 -272
  310. data/lib/puppet/provider/mailalias/aliases.rb +34 -31
  311. data/lib/puppet/provider/maillist/mailman.rb +87 -93
  312. data/lib/puppet/provider/mcx/mcxcontent.rb +155 -151
  313. data/lib/puppet/provider/mount.rb +36 -40
  314. data/lib/puppet/provider/mount/parsed.rb +28 -26
  315. data/lib/puppet/provider/naginator.rb +46 -48
  316. data/lib/puppet/provider/nameservice.rb +215 -257
  317. data/lib/puppet/provider/nameservice/directoryservice.rb +455 -471
  318. data/lib/puppet/provider/nameservice/objectadd.rb +21 -21
  319. data/lib/puppet/provider/nameservice/pw.rb +13 -13
  320. data/lib/puppet/provider/package.rb +18 -20
  321. data/lib/puppet/provider/package/aix.rb +128 -0
  322. data/lib/puppet/provider/package/appdmg.rb +78 -82
  323. data/lib/puppet/provider/package/apple.rb +39 -40
  324. data/lib/puppet/provider/package/apt.rb +95 -104
  325. data/lib/puppet/provider/package/aptitude.rb +19 -21
  326. data/lib/puppet/provider/package/aptrpm.rb +70 -72
  327. data/lib/puppet/provider/package/blastwave.rb +88 -94
  328. data/lib/puppet/provider/package/darwinport.rb +67 -69
  329. data/lib/puppet/provider/package/dpkg.rb +123 -97
  330. data/lib/puppet/provider/package/fink.rb +66 -68
  331. data/lib/puppet/provider/package/freebsd.rb +38 -40
  332. data/lib/puppet/provider/package/gem.rb +98 -102
  333. data/lib/puppet/provider/package/hpux.rb +37 -39
  334. data/lib/puppet/provider/package/nim.rb +35 -0
  335. data/lib/puppet/provider/package/openbsd.rb +100 -75
  336. data/lib/puppet/provider/package/pkg.rb +108 -0
  337. data/lib/puppet/provider/package/pkgdmg.rb +95 -87
  338. data/lib/puppet/provider/package/portage.rb +101 -104
  339. data/lib/puppet/provider/package/ports.rb +71 -73
  340. data/lib/puppet/provider/package/portupgrade.rb +251 -0
  341. data/lib/puppet/provider/package/rpm.rb +113 -115
  342. data/lib/puppet/provider/package/rug.rb +46 -46
  343. data/lib/puppet/provider/package/sun.rb +135 -151
  344. data/lib/puppet/provider/package/sunfreeware.rb +5 -5
  345. data/lib/puppet/provider/package/up2date.rb +31 -31
  346. data/lib/puppet/provider/package/urpmi.rb +51 -51
  347. data/lib/puppet/provider/package/yum.rb +90 -98
  348. data/lib/puppet/provider/package/zypper.rb +52 -0
  349. data/lib/puppet/provider/parsedfile.rb +306 -329
  350. data/lib/puppet/provider/port/parsed.rb +5 -5
  351. data/lib/puppet/provider/selboolean/getsetsebool.rb +34 -34
  352. data/lib/puppet/provider/selmodule/semodule.rb +103 -111
  353. data/lib/puppet/provider/service/base.rb +134 -139
  354. data/lib/puppet/provider/service/bsd.rb +48 -0
  355. data/lib/puppet/provider/service/daemontools.rb +158 -162
  356. data/lib/puppet/provider/service/debian.rb +36 -36
  357. data/lib/puppet/provider/service/freebsd.rb +118 -38
  358. data/lib/puppet/provider/service/gentoo.rb +33 -39
  359. data/lib/puppet/provider/service/init.rb +125 -125
  360. data/lib/puppet/provider/service/launchd.rb +234 -254
  361. data/lib/puppet/provider/service/redhat.rb +58 -58
  362. data/lib/puppet/provider/service/runit.rb +74 -74
  363. data/lib/puppet/provider/service/smf.rb +81 -85
  364. data/lib/puppet/provider/service/src.rb +87 -0
  365. data/lib/puppet/provider/ssh_authorized_key/parsed.rb +73 -81
  366. data/lib/puppet/provider/sshkey/parsed.rb +24 -21
  367. data/lib/puppet/provider/user/directoryservice.rb +71 -71
  368. data/lib/puppet/provider/user/hpux.rb +20 -20
  369. data/lib/puppet/provider/user/ldap.rb +106 -110
  370. data/lib/puppet/provider/user/pw.rb +33 -37
  371. data/lib/puppet/provider/user/user_role_add.rb +168 -183
  372. data/lib/puppet/provider/user/useradd.rb +50 -51
  373. data/lib/puppet/provider/zfs/solaris.rb +35 -35
  374. data/lib/puppet/provider/zone/solaris.rb +206 -205
  375. data/lib/puppet/provider/zpool/solaris.rb +95 -97
  376. data/lib/puppet/rails.rb +115 -122
  377. data/lib/puppet/rails/benchmark.rb +43 -49
  378. data/lib/puppet/rails/database/001_add_created_at_to_all_tables.rb +8 -12
  379. data/lib/puppet/rails/database/002_remove_duplicated_index_on_all_tables.rb +8 -12
  380. data/lib/puppet/rails/database/003_add_environment_to_host.rb +6 -10
  381. data/lib/puppet/rails/database/schema.rb +100 -97
  382. data/lib/puppet/rails/fact_name.rb +1 -1
  383. data/lib/puppet/rails/fact_value.rb +5 -5
  384. data/lib/puppet/rails/host.rb +252 -249
  385. data/lib/puppet/rails/param_name.rb +15 -15
  386. data/lib/puppet/rails/param_value.rb +55 -55
  387. data/lib/puppet/rails/puppet_tag.rb +4 -4
  388. data/lib/puppet/rails/resource.rb +189 -203
  389. data/lib/puppet/rails/resource_tag.rb +19 -19
  390. data/lib/puppet/rails/source_file.rb +5 -5
  391. data/lib/puppet/reference/configuration.rb +53 -56
  392. data/lib/puppet/reference/function.rb +1 -1
  393. data/lib/puppet/reference/indirection.rb +13 -13
  394. data/lib/puppet/reference/metaparameter.rb +40 -40
  395. data/lib/puppet/reference/network.rb +16 -16
  396. data/lib/puppet/reference/providers.rb +97 -98
  397. data/lib/puppet/reference/report.rb +1 -1
  398. data/lib/puppet/reference/type.rb +67 -70
  399. data/lib/puppet/relationship.rb +65 -67
  400. data/lib/puppet/reports.rb +32 -34
  401. data/lib/puppet/reports/http.rb +22 -0
  402. data/lib/puppet/reports/log.rb +7 -6
  403. data/lib/puppet/reports/rrdgraph.rb +105 -114
  404. data/lib/puppet/reports/store.rb +53 -56
  405. data/lib/puppet/reports/tagmail.rb +149 -157
  406. data/lib/puppet/resource.rb +428 -194
  407. data/lib/puppet/resource/catalog.rb +496 -512
  408. data/lib/puppet/resource/status.rb +58 -0
  409. data/lib/puppet/resource/type.rb +311 -0
  410. data/lib/puppet/resource/type_collection.rb +217 -0
  411. data/lib/puppet/resource/type_collection_helper.rb +7 -0
  412. data/lib/puppet/run.rb +77 -0
  413. data/lib/puppet/simple_graph.rb +381 -413
  414. data/lib/puppet/ssl.rb +2 -1
  415. data/lib/puppet/ssl/base.rb +60 -43
  416. data/lib/puppet/ssl/certificate.rb +21 -21
  417. data/lib/puppet/ssl/certificate_authority.rb +215 -229
  418. data/lib/puppet/ssl/certificate_authority/interface.rb +84 -68
  419. data/lib/puppet/ssl/certificate_factory.rb +119 -119
  420. data/lib/puppet/ssl/certificate_request.rb +52 -45
  421. data/lib/puppet/ssl/certificate_revocation_list.rb +78 -78
  422. data/lib/puppet/ssl/host.rb +230 -228
  423. data/lib/puppet/ssl/inventory.rb +33 -33
  424. data/lib/puppet/ssl/key.rb +37 -37
  425. data/lib/puppet/sslcertificates.rb +124 -123
  426. data/lib/puppet/sslcertificates/ca.rb +327 -344
  427. data/lib/puppet/sslcertificates/certificate.rb +197 -224
  428. data/lib/puppet/sslcertificates/inventory.rb +27 -29
  429. data/lib/puppet/sslcertificates/support.rb +113 -119
  430. data/lib/puppet/status.rb +28 -0
  431. data/lib/puppet/transaction.rb +349 -696
  432. data/lib/puppet/transaction/change.rb +80 -85
  433. data/lib/puppet/transaction/event.rb +54 -14
  434. data/lib/puppet/transaction/event_manager.rb +99 -0
  435. data/lib/puppet/transaction/report.rb +121 -59
  436. data/lib/puppet/transaction/resource_harness.rb +150 -0
  437. data/lib/puppet/transportable.rb +215 -226
  438. data/lib/puppet/type.rb +1644 -1849
  439. data/lib/puppet/type/augeas.rb +153 -134
  440. data/lib/puppet/type/component.rb +63 -65
  441. data/lib/puppet/type/computer.rb +44 -44
  442. data/lib/puppet/type/cron.rb +364 -384
  443. data/lib/puppet/type/exec.rb +583 -521
  444. data/lib/puppet/type/file.rb +786 -823
  445. data/lib/puppet/type/file/checksum.rb +23 -240
  446. data/lib/puppet/type/file/content.rb +193 -129
  447. data/lib/puppet/type/file/ensure.rb +149 -153
  448. data/lib/puppet/type/file/group.rb +94 -104
  449. data/lib/puppet/type/file/mode.rb +109 -122
  450. data/lib/puppet/type/file/owner.rb +39 -131
  451. data/lib/puppet/type/file/selcontext.rb +69 -73
  452. data/lib/puppet/type/file/source.rb +165 -153
  453. data/lib/puppet/type/file/target.rb +56 -60
  454. data/lib/puppet/type/file/type.rb +18 -18
  455. data/lib/puppet/type/filebucket.rb +91 -92
  456. data/lib/puppet/type/group.rb +77 -82
  457. data/lib/puppet/type/host.rb +85 -85
  458. data/lib/puppet/type/k5login.rb +65 -65
  459. data/lib/puppet/type/macauthorization.rb +141 -143
  460. data/lib/puppet/type/mailalias.rb +37 -37
  461. data/lib/puppet/type/maillist.rb +51 -51
  462. data/lib/puppet/type/mcx.rb +62 -62
  463. data/lib/puppet/type/mount.rb +199 -193
  464. data/lib/puppet/type/notify.rb +33 -33
  465. data/lib/puppet/type/package.rb +301 -298
  466. data/lib/puppet/type/port.rb +4 -4
  467. data/lib/puppet/type/resources.rb +107 -123
  468. data/lib/puppet/type/schedule.rb +317 -326
  469. data/lib/puppet/type/selboolean.rb +19 -19
  470. data/lib/puppet/type/selmodule.rb +34 -34
  471. data/lib/puppet/type/service.rb +152 -152
  472. data/lib/puppet/type/ssh_authorized_key.rb +74 -78
  473. data/lib/puppet/type/sshkey.rb +52 -56
  474. data/lib/puppet/type/stage.rb +18 -0
  475. data/lib/puppet/type/tidy.rb +289 -300
  476. data/lib/puppet/type/user.rb +300 -312
  477. data/lib/puppet/type/yumrepo.rb +300 -335
  478. data/lib/puppet/type/zfs.rb +36 -36
  479. data/lib/puppet/type/zone.rb +376 -347
  480. data/lib/puppet/type/zpool.rb +71 -77
  481. data/lib/puppet/util.rb +383 -387
  482. data/lib/puppet/util/autoload.rb +125 -143
  483. data/lib/puppet/util/autoload/file_cache.rb +78 -101
  484. data/lib/puppet/util/backups.rb +66 -66
  485. data/lib/puppet/util/cacher.rb +112 -120
  486. data/lib/puppet/util/checksums.rb +119 -84
  487. data/lib/puppet/util/classgen.rb +157 -167
  488. data/lib/puppet/util/command_line.rb +95 -0
  489. data/lib/puppet/util/command_line/filebucket +97 -0
  490. data/lib/puppet/util/command_line/pi +48 -0
  491. data/lib/puppet/util/command_line/puppet +69 -0
  492. data/lib/puppet/util/command_line/puppetca +110 -0
  493. data/lib/puppet/util/command_line/puppetd +186 -0
  494. data/lib/puppet/util/command_line/puppetdoc +67 -0
  495. data/lib/puppet/util/command_line/puppetmasterd +65 -0
  496. data/lib/puppet/util/command_line/puppetqd +53 -0
  497. data/lib/puppet/util/command_line/puppetrun +128 -0
  498. data/lib/puppet/util/command_line/ralsh +89 -0
  499. data/lib/puppet/util/constant_inflector.rb +7 -7
  500. data/lib/puppet/util/diff.rb +59 -56
  501. data/lib/puppet/util/docs.rb +97 -99
  502. data/lib/puppet/util/errors.rb +53 -44
  503. data/lib/puppet/util/execution.rb +15 -15
  504. data/lib/puppet/util/feature.rb +62 -72
  505. data/lib/puppet/util/file_locking.rb +33 -33
  506. data/lib/puppet/util/fileparsing.rb +292 -318
  507. data/lib/puppet/util/filetype.rb +246 -263
  508. data/lib/puppet/util/graph.rb +16 -18
  509. data/lib/puppet/util/inifile.rb +170 -184
  510. data/lib/puppet/util/inline_docs.rb +26 -0
  511. data/lib/puppet/util/instance_loader.rb +58 -58
  512. data/lib/puppet/util/ldap/connection.rb +57 -59
  513. data/lib/puppet/util/ldap/generator.rb +31 -31
  514. data/lib/puppet/util/ldap/manager.rb +233 -235
  515. data/lib/puppet/util/loadedfile.rb +49 -51
  516. data/lib/puppet/util/log.rb +210 -494
  517. data/lib/puppet/util/log/destination.rb +49 -0
  518. data/lib/puppet/util/log/destinations.rb +217 -0
  519. data/lib/puppet/util/log_paths.rb +15 -17
  520. data/lib/puppet/util/logging.rb +34 -13
  521. data/lib/puppet/util/metaid.rb +15 -15
  522. data/lib/puppet/util/methodhelper.rb +24 -26
  523. data/lib/puppet/util/metric.rb +123 -125
  524. data/lib/puppet/util/monkey_patches.rb +21 -20
  525. data/lib/puppet/util/nagios_maker.rb +41 -41
  526. data/lib/puppet/util/package.rb +24 -26
  527. data/lib/puppet/util/pidlock.rb +49 -49
  528. data/lib/puppet/util/posix.rb +115 -115
  529. data/lib/puppet/util/provider_features.rb +147 -155
  530. data/lib/puppet/util/pson.rb +5 -5
  531. data/lib/puppet/util/queue.rb +55 -55
  532. data/lib/puppet/util/queue/stomp.rb +27 -27
  533. data/lib/puppet/util/rails/cache_accumulator.rb +49 -49
  534. data/lib/puppet/util/rails/collection_merger.rb +13 -13
  535. data/lib/puppet/util/rails/reference_serializer.rb +26 -26
  536. data/lib/puppet/util/rdoc.rb +77 -74
  537. data/lib/puppet/util/rdoc/code_objects.rb +235 -217
  538. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +732 -676
  539. data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +38 -12
  540. data/lib/puppet/util/rdoc/parser.rb +418 -392
  541. data/lib/puppet/util/reference.rb +168 -174
  542. data/lib/puppet/util/resource_template.rb +17 -17
  543. data/lib/puppet/util/run_mode.rb +81 -0
  544. data/lib/puppet/util/selinux.rb +184 -200
  545. data/lib/puppet/util/settings.rb +886 -919
  546. data/lib/puppet/util/settings/boolean_setting.rb +20 -23
  547. data/lib/puppet/util/settings/file_setting.rb +98 -99
  548. data/lib/puppet/util/settings/setting.rb +71 -87
  549. data/lib/puppet/util/storage.rb +73 -84
  550. data/lib/puppet/util/subclass_loader.rb +59 -66
  551. data/lib/puppet/util/suidmanager.rb +87 -84
  552. data/lib/puppet/util/tagging.rb +37 -39
  553. data/lib/puppet/util/user_attr.rb +14 -14
  554. data/lib/puppet/util/warnings.rb +20 -20
  555. data/lib/puppet/util/zaml.rb +242 -241
  556. data/man/man5/puppet.conf.5 +148 -76
  557. data/man/man8/filebucket.8 +6 -6
  558. data/man/man8/pi.8 +5 -5
  559. data/man/man8/puppet.8 +2 -73
  560. data/man/man8/puppetca.8 +47 -32
  561. data/man/man8/puppetd.8 +118 -76
  562. data/man/man8/puppetdoc.8 +16 -12
  563. data/man/man8/puppetmasterd.8 +4 -4
  564. data/man/man8/puppetqd.8 +4 -4
  565. data/man/man8/puppetrun.8 +23 -22
  566. data/man/man8/ralsh.8 +16 -17
  567. data/spec/fixtures/yaml/test.local.yaml +16 -0
  568. data/spec/integration/application/apply_spec.rb +33 -0
  569. data/spec/integration/configurer_spec.rb +35 -0
  570. data/spec/integration/defaults_spec.rb +258 -0
  571. data/spec/integration/file_serving/content_spec.rb +20 -0
  572. data/spec/integration/file_serving/fileset_spec.rb +14 -0
  573. data/spec/integration/file_serving/metadata_spec.rb +21 -0
  574. data/spec/integration/file_serving/terminus_helper_spec.rb +22 -0
  575. data/spec/integration/indirector/bucket_file/rest_spec.rb +68 -0
  576. data/spec/integration/indirector/catalog/compiler_spec.rb +68 -0
  577. data/spec/integration/indirector/catalog/queue_spec.rb +61 -0
  578. data/spec/integration/indirector/certificate/rest_spec.rb +68 -0
  579. data/spec/integration/indirector/certificate_request/rest_spec.rb +88 -0
  580. data/spec/integration/indirector/certificate_revocation_list/rest_spec.rb +76 -0
  581. data/spec/integration/indirector/direct_file_server_spec.rb +73 -0
  582. data/spec/integration/indirector/file_content/file_server_spec.rb +94 -0
  583. data/spec/integration/indirector/file_metadata/file_server_spec.rb +18 -0
  584. data/spec/integration/indirector/node/ldap_spec.rb +15 -0
  585. data/spec/integration/indirector/report/rest_spec.rb +96 -0
  586. data/spec/integration/indirector/rest_spec.rb +524 -0
  587. data/spec/integration/network/client_spec.rb +19 -0
  588. data/spec/integration/network/formats_spec.rb +110 -0
  589. data/spec/integration/network/handler_spec.rb +25 -0
  590. data/spec/integration/network/server/mongrel_spec.rb +66 -0
  591. data/spec/integration/network/server/webrick_spec.rb +85 -0
  592. data/spec/integration/node/environment_spec.rb +58 -0
  593. data/spec/integration/node/facts_spec.rb +47 -0
  594. data/spec/integration/node_spec.rb +93 -0
  595. data/spec/integration/parser/collector_spec.rb +38 -0
  596. data/spec/integration/parser/compiler_spec.rb +29 -0
  597. data/spec/integration/parser/functions/require_spec.rb +44 -0
  598. data/spec/integration/parser/parser_spec.rb +113 -0
  599. data/spec/integration/provider/mailalias/aliases_spec.rb +25 -0
  600. data/spec/integration/provider/package_spec.rb +26 -0
  601. data/spec/integration/provider/service/init_spec.rb +32 -0
  602. data/spec/integration/reference/providers_spec.rb +17 -0
  603. data/spec/integration/reports_spec.rb +18 -0
  604. data/spec/integration/resource/catalog_spec.rb +61 -0
  605. data/spec/integration/resource/type_collection_spec.rb +96 -0
  606. data/spec/integration/ssl/certificate_authority_spec.rb +135 -0
  607. data/spec/integration/ssl/certificate_request_spec.rb +61 -0
  608. data/spec/integration/ssl/certificate_revocation_list_spec.rb +42 -0
  609. data/spec/integration/ssl/host_spec.rb +90 -0
  610. data/spec/integration/transaction/report_spec.rb +29 -0
  611. data/spec/integration/transaction_spec.rb +284 -0
  612. data/spec/integration/type/file_spec.rb +506 -0
  613. data/spec/integration/type/package_spec.rb +25 -0
  614. data/spec/integration/type/tidy_spec.rb +32 -0
  615. data/spec/integration/type_spec.rb +22 -0
  616. data/spec/integration/util/autoload_spec.rb +114 -0
  617. data/spec/integration/util/feature_spec.rb +54 -0
  618. data/spec/integration/util/file_locking_spec.rb +37 -0
  619. data/spec/integration/util/rdoc/parser_spec.rb +59 -0
  620. data/spec/integration/util/settings_spec.rb +30 -0
  621. data/spec/lib/puppet_spec/files.rb +16 -6
  622. data/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb +27 -27
  623. data/spec/monkey_patches/alias_should_to_must.rb +4 -4
  624. data/spec/shared_behaviours/file_server_terminus.rb +28 -28
  625. data/spec/shared_behaviours/file_serving.rb +53 -53
  626. data/spec/shared_behaviours/memory_terminus.rb +22 -22
  627. data/spec/spec.opts +1 -0
  628. data/spec/spec_helper.rb +61 -18
  629. data/spec/spec_specs/runnable_spec.rb +95 -0
  630. data/spec/unit/agent/locker_spec.rb +100 -0
  631. data/spec/unit/agent_spec.rb +281 -0
  632. data/spec/unit/application/agent_spec.rb +588 -0
  633. data/spec/unit/application/apply_spec.rb +387 -0
  634. data/spec/unit/application/cert_spec.rb +194 -0
  635. data/spec/unit/application/describe_spec.rb +84 -0
  636. data/spec/unit/application/doc_spec.rb +368 -0
  637. data/spec/unit/application/filebucket_spec.rb +223 -0
  638. data/spec/unit/application/kick_spec.rb +313 -0
  639. data/spec/unit/application/master_spec.rb +453 -0
  640. data/spec/unit/application/queue_spec.rb +186 -0
  641. data/spec/unit/application/resource_spec.rb +233 -0
  642. data/spec/unit/application_spec.rb +531 -0
  643. data/spec/unit/configurer/downloader_spec.rb +188 -0
  644. data/spec/unit/configurer/fact_handler_spec.rb +164 -0
  645. data/spec/unit/configurer/plugin_handler_spec.rb +112 -0
  646. data/spec/unit/configurer_spec.rb +494 -0
  647. data/spec/unit/daemon_spec.rb +306 -0
  648. data/spec/unit/dsl/resource_api_spec.rb +181 -0
  649. data/spec/unit/dsl/resource_type_api_spec.rb +46 -0
  650. data/spec/unit/file_bucket/dipper_spec.rb +122 -0
  651. data/spec/unit/file_bucket/file_spec.rb +230 -0
  652. data/spec/unit/file_collection/lookup_spec.rb +46 -0
  653. data/spec/unit/file_collection_spec.rb +53 -0
  654. data/spec/unit/file_serving/base_spec.rb +132 -0
  655. data/spec/unit/file_serving/configuration/parser_spec.rb +181 -0
  656. data/spec/unit/file_serving/configuration_spec.rb +249 -0
  657. data/spec/unit/file_serving/content_spec.rb +118 -0
  658. data/spec/unit/file_serving/fileset_spec.rb +347 -0
  659. data/spec/unit/file_serving/indirection_hooks_spec.rb +63 -0
  660. data/spec/unit/file_serving/metadata_spec.rb +286 -0
  661. data/spec/unit/file_serving/mount/file_spec.rb +196 -0
  662. data/spec/unit/file_serving/mount/modules_spec.rb +63 -0
  663. data/spec/unit/file_serving/mount/plugins_spec.rb +61 -0
  664. data/spec/unit/file_serving/mount_spec.rb +32 -0
  665. data/spec/unit/file_serving/terminus_helper_spec.rb +98 -0
  666. data/spec/unit/indirector/active_record_spec.rb +76 -0
  667. data/spec/unit/indirector/catalog/active_record_spec.rb +141 -0
  668. data/spec/unit/indirector/catalog/compiler_spec.rb +275 -0
  669. data/spec/unit/indirector/catalog/queue_spec.rb +20 -0
  670. data/spec/unit/indirector/catalog/rest_spec.rb +11 -0
  671. data/spec/unit/indirector/catalog/yaml_spec.rb +25 -0
  672. data/spec/unit/indirector/certificate/ca_spec.rb +28 -0
  673. data/spec/unit/indirector/certificate/file_spec.rb +28 -0
  674. data/spec/unit/indirector/certificate/rest_spec.rb +58 -0
  675. data/spec/unit/indirector/certificate_request/ca_spec.rb +19 -0
  676. data/spec/unit/indirector/certificate_request/file_spec.rb +19 -0
  677. data/spec/unit/indirector/certificate_request/rest_spec.rb +23 -0
  678. data/spec/unit/indirector/certificate_revocation_list/ca_spec.rb +21 -0
  679. data/spec/unit/indirector/certificate_revocation_list/file_spec.rb +20 -0
  680. data/spec/unit/indirector/certificate_revocation_list/rest_spec.rb +23 -0
  681. data/spec/unit/indirector/code_spec.rb +33 -0
  682. data/spec/unit/indirector/direct_file_server_spec.rb +84 -0
  683. data/spec/unit/indirector/envelope_spec.rb +47 -0
  684. data/spec/unit/indirector/exec_spec.rb +56 -0
  685. data/spec/unit/indirector/facts/active_record_spec.rb +104 -0
  686. data/spec/unit/indirector/facts/couch_spec.rb +98 -0
  687. data/spec/unit/indirector/facts/facter_spec.rb +143 -0
  688. data/spec/unit/indirector/facts/rest_spec.rb +11 -0
  689. data/spec/unit/indirector/facts/yaml_spec.rb +26 -0
  690. data/spec/unit/indirector/file_bucket_file/file_spec.rb +290 -0
  691. data/spec/unit/indirector/file_bucket_file/rest_spec.rb +11 -0
  692. data/spec/unit/indirector/file_content/file_server_spec.rb +18 -0
  693. data/spec/unit/indirector/file_content/file_spec.rb +18 -0
  694. data/spec/unit/indirector/file_content/rest_spec.rb +11 -0
  695. data/spec/unit/indirector/file_metadata/file_server_spec.rb +18 -0
  696. data/spec/unit/indirector/file_metadata/file_spec.rb +52 -0
  697. data/spec/unit/indirector/file_metadata/rest_spec.rb +9 -0
  698. data/spec/unit/indirector/file_server_spec.rb +267 -0
  699. data/spec/unit/indirector/file_spec.rb +181 -0
  700. data/spec/unit/indirector/indirection_spec.rb +795 -0
  701. data/spec/unit/indirector/key/ca_spec.rb +28 -0
  702. data/spec/unit/indirector/key/file_spec.rb +104 -0
  703. data/spec/unit/indirector/ldap_spec.rb +143 -0
  704. data/spec/unit/indirector/memory_spec.rb +29 -0
  705. data/spec/unit/indirector/node/active_record_spec.rb +41 -0
  706. data/spec/unit/indirector/node/exec_spec.rb +70 -0
  707. data/spec/unit/indirector/node/ldap_spec.rb +456 -0
  708. data/spec/unit/indirector/node/memory_spec.rb +19 -0
  709. data/spec/unit/indirector/node/plain_spec.rb +19 -0
  710. data/spec/unit/indirector/node/rest_spec.rb +13 -0
  711. data/spec/unit/indirector/node/yaml_spec.rb +25 -0
  712. data/spec/unit/indirector/plain_spec.rb +29 -0
  713. data/spec/unit/indirector/queue_spec.rb +123 -0
  714. data/spec/unit/indirector/report/processor_spec.rb +81 -0
  715. data/spec/unit/indirector/report/rest_spec.rb +28 -0
  716. data/spec/unit/indirector/request_spec.rb +304 -0
  717. data/spec/unit/indirector/resource/ral_spec.rb +129 -0
  718. data/spec/unit/indirector/resource/rest_spec.rb +11 -0
  719. data/spec/unit/indirector/resource_type/parser_spec.rb +75 -0
  720. data/spec/unit/indirector/resource_type/rest_spec.rb +15 -0
  721. data/spec/unit/indirector/rest_spec.rb +455 -0
  722. data/spec/unit/indirector/run/local_spec.rb +20 -0
  723. data/spec/unit/indirector/run/rest_spec.rb +11 -0
  724. data/spec/unit/indirector/ssl_file_spec.rb +281 -0
  725. data/spec/unit/indirector/status/rest_spec.rb +11 -0
  726. data/spec/unit/indirector/terminus_spec.rb +245 -0
  727. data/spec/unit/indirector/yaml_spec.rb +146 -0
  728. data/spec/unit/indirector_spec.rb +157 -0
  729. data/spec/unit/module_spec.rb +547 -0
  730. data/spec/unit/network/authconfig_spec.rb +292 -0
  731. data/spec/unit/network/authstore_spec.rb +370 -0
  732. data/spec/unit/network/client_spec.rb +45 -0
  733. data/spec/unit/network/format_handler_spec.rb +336 -0
  734. data/spec/unit/network/format_spec.rb +198 -0
  735. data/spec/unit/network/formats_spec.rb +337 -0
  736. data/spec/unit/network/handler/fileserver_spec.rb +172 -0
  737. data/spec/unit/network/http/api/v1_spec.rb +122 -0
  738. data/spec/unit/network/http/compression_spec.rb +199 -0
  739. data/spec/unit/network/http/handler_spec.rb +455 -0
  740. data/spec/unit/network/http/mongrel/rest_spec.rb +249 -0
  741. data/spec/unit/network/http/mongrel/{xmlrpc.rb → xmlrpc_spec.rb} +0 -0
  742. data/spec/unit/network/http/mongrel_spec.rb +131 -0
  743. data/spec/unit/network/http/rack/rest_spec.rb +249 -0
  744. data/spec/unit/network/http/rack/xmlrpc_spec.rb +157 -0
  745. data/spec/unit/network/http/rack_spec.rb +102 -0
  746. data/spec/unit/network/http/webrick/rest_spec.rb +180 -0
  747. data/spec/unit/network/http/webrick/{xmlrpc.rb → xmlrpc_spec.rb} +0 -0
  748. data/spec/unit/network/http/webrick_spec.rb +339 -0
  749. data/spec/unit/network/http_pool_spec.rb +206 -0
  750. data/spec/unit/network/http_spec.rb +35 -0
  751. data/spec/unit/network/rest_authconfig_spec.rb +148 -0
  752. data/spec/unit/network/rest_authorization_spec.rb +43 -0
  753. data/spec/unit/network/rights_spec.rb +519 -0
  754. data/spec/unit/network/server_spec.rb +534 -0
  755. data/spec/unit/network/xmlrpc/client_spec.rb +171 -0
  756. data/spec/unit/node/environment_spec.rb +248 -0
  757. data/spec/unit/node/facts_spec.rb +102 -0
  758. data/spec/unit/node_spec.rb +210 -0
  759. data/spec/unit/other/selinux_spec.rb +94 -0
  760. data/spec/unit/other/transbucket_spec.rb +188 -0
  761. data/spec/unit/other/transobject_spec.rb +112 -0
  762. data/spec/unit/parameter/value_collection_spec.rb +167 -0
  763. data/spec/unit/parameter/value_spec.rb +88 -0
  764. data/spec/unit/parameter_spec.rb +172 -0
  765. data/spec/unit/parser/ast/arithmetic_operator_spec.rb +73 -0
  766. data/spec/unit/parser/ast/astarray_spec.rb +72 -0
  767. data/spec/unit/parser/ast/asthash_spec.rb +98 -0
  768. data/spec/unit/parser/ast/boolean_operator_spec.rb +53 -0
  769. data/spec/unit/parser/ast/casestatement_spec.rb +161 -0
  770. data/spec/unit/parser/ast/collection_spec.rb +63 -0
  771. data/spec/unit/parser/ast/collexpr_spec.rb +115 -0
  772. data/spec/unit/parser/ast/comparison_operator_spec.rb +116 -0
  773. data/spec/unit/parser/ast/function_spec.rb +83 -0
  774. data/spec/unit/parser/ast/ifstatement_spec.rb +76 -0
  775. data/spec/unit/parser/ast/in_operator_spec.rb +60 -0
  776. data/spec/unit/parser/ast/leaf_spec.rb +362 -0
  777. data/spec/unit/parser/ast/match_operator_spec.rb +50 -0
  778. data/spec/unit/parser/ast/minus_spec.rb +36 -0
  779. data/spec/unit/parser/ast/nop_spec.rb +20 -0
  780. data/spec/unit/parser/ast/not_spec.rb +30 -0
  781. data/spec/unit/parser/ast/relationship_spec.rb +88 -0
  782. data/spec/unit/parser/ast/resource_defaults_spec.rb +22 -0
  783. data/spec/unit/parser/ast/resource_override_spec.rb +51 -0
  784. data/spec/unit/parser/ast/resource_reference_spec.rb +46 -0
  785. data/spec/unit/parser/ast/resource_spec.rb +120 -0
  786. data/spec/unit/parser/ast/selector_spec.rb +139 -0
  787. data/spec/unit/parser/ast/vardef_spec.rb +60 -0
  788. data/spec/unit/parser/ast_spec.rb +111 -0
  789. data/spec/unit/parser/collector_spec.rb +559 -0
  790. data/spec/unit/parser/compiler_spec.rb +754 -0
  791. data/spec/unit/parser/files_spec.rb +201 -0
  792. data/spec/unit/parser/functions/defined_spec.rb +50 -0
  793. data/spec/unit/parser/functions/fqdn_rand_spec.rb +62 -0
  794. data/spec/unit/parser/functions/generate_spec.rb +41 -0
  795. data/spec/unit/parser/functions/inline_template_spec.rb +59 -0
  796. data/spec/unit/parser/functions/realize_spec.rb +51 -0
  797. data/spec/unit/parser/functions/regsubst_spec.rb +192 -0
  798. data/spec/unit/parser/functions/require_spec.rb +74 -0
  799. data/spec/unit/parser/functions/shellquote_spec.rb +81 -0
  800. data/spec/unit/parser/functions/split_spec.rb +49 -0
  801. data/spec/unit/parser/functions/sprintf_spec.rb +41 -0
  802. data/spec/unit/parser/functions/tag_spec.rb +24 -0
  803. data/spec/unit/parser/functions/template_spec.rb +62 -0
  804. data/spec/unit/parser/functions/versioncmp_spec.rb +29 -0
  805. data/spec/unit/parser/functions_spec.rb +102 -0
  806. data/spec/unit/parser/lexer_spec.rb +646 -0
  807. data/spec/unit/parser/parser_spec.rb +412 -0
  808. data/spec/unit/parser/relationship_spec.rb +70 -0
  809. data/spec/unit/parser/resource_spec.rb +564 -0
  810. data/spec/unit/parser/scope_spec.rb +629 -0
  811. data/spec/unit/parser/templatewrapper_spec.rb +144 -0
  812. data/spec/unit/parser/type_loader_spec.rb +201 -0
  813. data/spec/unit/property/ensure_spec.rb +13 -0
  814. data/spec/unit/property/keyvalue_spec.rb +168 -0
  815. data/spec/unit/property/list_spec.rb +166 -0
  816. data/spec/unit/property/ordered_list_spec.rb +64 -0
  817. data/spec/unit/property_spec.rb +410 -0
  818. data/spec/unit/provider/augeas/augeas_spec.rb +413 -0
  819. data/spec/unit/provider/confine/exists_spec.rb +81 -0
  820. data/spec/unit/provider/confine/false_spec.rb +53 -0
  821. data/spec/unit/provider/confine/feature_spec.rb +60 -0
  822. data/spec/unit/provider/confine/true_spec.rb +53 -0
  823. data/spec/unit/provider/confine/variable_spec.rb +107 -0
  824. data/spec/unit/provider/confine_collection_spec.rb +134 -0
  825. data/spec/unit/provider/confine_spec.rb +78 -0
  826. data/spec/unit/provider/confiner_spec.rb +63 -0
  827. data/spec/unit/provider/group/groupadd_spec.rb +31 -0
  828. data/spec/unit/provider/group/ldap_spec.rb +105 -0
  829. data/spec/unit/provider/ldap_spec.rb +248 -0
  830. data/spec/unit/provider/macauthorization_spec.rb +147 -0
  831. data/spec/unit/provider/mcx/mcxcontent_spec.rb +175 -0
  832. data/spec/unit/provider/mount/parsed_spec.rb +193 -0
  833. data/spec/unit/provider/mount_spec.rb +130 -0
  834. data/spec/unit/provider/naginator_spec.rb +58 -0
  835. data/spec/unit/provider/package/aix_spec.rb +66 -0
  836. data/spec/unit/provider/package/apt_spec.rb +145 -0
  837. data/spec/unit/provider/package/dpkg_spec.rb +225 -0
  838. data/spec/unit/provider/package/gem_spec.rb +87 -0
  839. data/spec/unit/provider/package/hpux_spec.rb +52 -0
  840. data/spec/unit/provider/package/nim_spec.rb +42 -0
  841. data/spec/unit/provider/package/pkg_spec.rb +63 -0
  842. data/spec/unit/provider/package/pkgdmg_spec.rb +84 -0
  843. data/spec/unit/provider/package/zypper_spec.rb +81 -0
  844. data/spec/unit/provider/parsedfile_spec.rb +95 -0
  845. data/spec/unit/provider/selboolean_spec.rb +37 -0
  846. data/spec/unit/provider/selmodule_spec.rb +66 -0
  847. data/spec/unit/provider/service/daemontools_spec.rb +166 -0
  848. data/spec/unit/provider/service/debian_spec.rb +89 -0
  849. data/spec/unit/provider/service/init_spec.rb +168 -0
  850. data/spec/unit/provider/service/launchd_spec.rb +200 -0
  851. data/spec/unit/provider/service/redhat_spec.rb +121 -0
  852. data/spec/unit/provider/service/runit_spec.rb +140 -0
  853. data/spec/unit/provider/service/src_spec.rb +97 -0
  854. data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +228 -0
  855. data/spec/unit/provider/sshkey/parsed_spec.rb +38 -0
  856. data/spec/unit/provider/user/hpux_spec.rb +25 -0
  857. data/spec/unit/provider/user/ldap_spec.rb +279 -0
  858. data/spec/unit/provider/user/user_role_add_spec.rb +249 -0
  859. data/spec/unit/provider/user/useradd_spec.rb +115 -0
  860. data/spec/unit/provider/zfs/solaris_spec.rb +99 -0
  861. data/spec/unit/provider/zone/solaris_spec.rb +55 -0
  862. data/spec/unit/provider/zpool/solaris_spec.rb +179 -0
  863. data/spec/unit/provider_spec.rb +31 -0
  864. data/spec/unit/puppet_spec.rb +12 -0
  865. data/spec/unit/rails/host_spec.rb +163 -0
  866. data/spec/unit/rails/param_value_spec.rb +49 -0
  867. data/spec/unit/rails/resource_spec.rb +123 -0
  868. data/spec/unit/rails_spec.rb +258 -0
  869. data/spec/unit/relationship_spec.rb +236 -0
  870. data/spec/unit/reports/http_spec.rb +56 -0
  871. data/spec/unit/reports/tagmail_spec.rb +94 -0
  872. data/spec/unit/reports_spec.rb +61 -0
  873. data/spec/unit/resource/catalog_spec.rb +1078 -0
  874. data/spec/unit/resource/status_spec.rb +103 -0
  875. data/spec/unit/resource/type_collection_helper_spec.rb +25 -0
  876. data/spec/unit/resource/type_collection_spec.rb +432 -0
  877. data/spec/unit/resource/type_spec.rb +722 -0
  878. data/spec/unit/resource_spec.rb +818 -0
  879. data/spec/unit/run_spec.rb +137 -0
  880. data/spec/unit/simple_graph_spec.rb +544 -0
  881. data/spec/unit/ssl/base_spec.rb +43 -0
  882. data/spec/unit/ssl/certificate_authority/interface_spec.rb +333 -0
  883. data/spec/unit/ssl/certificate_authority_spec.rb +772 -0
  884. data/spec/unit/ssl/certificate_factory_spec.rb +107 -0
  885. data/spec/unit/ssl/certificate_request_spec.rb +220 -0
  886. data/spec/unit/ssl/certificate_revocation_list_spec.rb +168 -0
  887. data/spec/unit/ssl/certificate_spec.rb +124 -0
  888. data/spec/unit/ssl/host_spec.rb +707 -0
  889. data/spec/unit/ssl/inventory_spec.rb +180 -0
  890. data/spec/unit/ssl/key_spec.rb +198 -0
  891. data/spec/unit/status_spec.rb +31 -0
  892. data/spec/unit/transaction/change_spec.rb +193 -0
  893. data/spec/unit/transaction/event_manager_spec.rb +260 -0
  894. data/spec/unit/transaction/event_spec.rb +108 -0
  895. data/spec/unit/transaction/report_spec.rb +234 -0
  896. data/spec/unit/transaction/resource_harness_spec.rb +401 -0
  897. data/spec/unit/transaction_spec.rb +452 -0
  898. data/spec/unit/transportable_spec.rb +0 -0
  899. data/spec/unit/type/augeas_spec.rb +122 -0
  900. data/spec/unit/type/component_spec.rb +63 -0
  901. data/spec/unit/type/computer_spec.rb +81 -0
  902. data/spec/unit/type/cron_spec.rb +33 -0
  903. data/spec/unit/type/exec_spec.rb +162 -0
  904. data/spec/unit/type/file/checksum_spec.rb +73 -0
  905. data/spec/unit/type/file/content_spec.rb +460 -0
  906. data/spec/unit/type/file/ensure_spec.rb +84 -0
  907. data/spec/unit/type/file/group_spec.rb +123 -0
  908. data/spec/unit/type/file/owner_spec.rb +150 -0
  909. data/spec/unit/type/file/selinux_spec.rb +83 -0
  910. data/spec/unit/type/file/source_spec.rb +272 -0
  911. data/spec/unit/type/file_spec.rb +1070 -0
  912. data/spec/unit/type/filebucket_spec.rb +74 -0
  913. data/spec/unit/type/group_spec.rb +57 -0
  914. data/spec/unit/type/macauthorization_spec.rb +111 -0
  915. data/spec/unit/type/maillist_spec.rb +42 -0
  916. data/spec/unit/type/mcx_spec.rb +100 -0
  917. data/spec/unit/type/mount_spec.rb +261 -0
  918. data/spec/unit/type/nagios_spec.rb +63 -0
  919. data/spec/unit/type/noop_metaparam_spec.rb +37 -0
  920. data/spec/unit/type/package_spec.rb +240 -0
  921. data/spec/unit/type/resources_spec.rb +102 -0
  922. data/spec/unit/type/schedule_spec.rb +333 -0
  923. data/spec/unit/type/selboolean_spec.rb +45 -0
  924. data/spec/unit/type/selmodule_spec.rb +18 -0
  925. data/spec/unit/type/service_spec.rb +222 -0
  926. data/spec/unit/type/ssh_authorized_key_spec.rb +152 -0
  927. data/spec/unit/type/stage_spec.rb +9 -0
  928. data/spec/unit/type/tidy_spec.rb +424 -0
  929. data/spec/unit/type/user_spec.rb +281 -0
  930. data/spec/unit/type/zfs_spec.rb +45 -0
  931. data/spec/unit/type/zone_spec.rb +60 -0
  932. data/spec/unit/type/zpool_spec.rb +110 -0
  933. data/spec/unit/type_spec.rb +566 -0
  934. data/spec/unit/util/autoload/file_cache_spec.rb +159 -0
  935. data/spec/unit/util/autoload_spec.rb +120 -0
  936. data/spec/unit/util/backups_spec.rb +159 -0
  937. data/spec/unit/util/cache_accumulator_spec.rb +75 -0
  938. data/spec/unit/util/cacher_spec.rb +185 -0
  939. data/spec/unit/util/checksums_spec.rb +153 -0
  940. data/spec/unit/util/command_line_spec.rb +108 -0
  941. data/spec/unit/util/constant_inflector_spec.rb +70 -0
  942. data/spec/unit/util/errors_spec.rb +38 -0
  943. data/spec/unit/util/feature_spec.rb +72 -0
  944. data/spec/unit/util/file_locking_spec.rb +156 -0
  945. data/spec/unit/util/filetype_spec.rb +100 -0
  946. data/spec/unit/util/inline_docs_spec.rb +32 -0
  947. data/spec/unit/util/json_spec.rb +21 -0
  948. data/spec/unit/util/ldap/connection_spec.rb +169 -0
  949. data/spec/unit/util/ldap/generator_spec.rb +54 -0
  950. data/spec/unit/util/ldap/manager_spec.rb +654 -0
  951. data/spec/unit/util/loadedfile_spec.rb +65 -0
  952. data/spec/unit/util/log/destinations_spec.rb +24 -0
  953. data/spec/unit/util/log_spec.rb +215 -0
  954. data/spec/unit/util/logging_spec.rb +95 -0
  955. data/spec/unit/util/metric_spec.rb +95 -0
  956. data/spec/unit/util/monkey_patches_spec.rb +7 -0
  957. data/spec/unit/util/nagios_maker_spec.rb +126 -0
  958. data/spec/unit/util/package_spec.rb +21 -0
  959. data/spec/unit/util/posix_spec.rb +256 -0
  960. data/spec/unit/util/queue/stomp_spec.rb +140 -0
  961. data/spec/unit/util/queue_spec.rb +96 -0
  962. data/spec/unit/util/rdoc/parser_spec.rb +540 -0
  963. data/spec/unit/util/rdoc_spec.rb +165 -0
  964. data/spec/unit/util/reference_serializer_spec.rb +52 -0
  965. data/spec/unit/util/resource_template_spec.rb +58 -0
  966. data/spec/unit/util/run_mode_spec.rb +51 -0
  967. data/spec/unit/util/selinux_spec.rb +278 -0
  968. data/spec/unit/util/settings/file_setting_spec.rb +256 -0
  969. data/spec/unit/util/settings_spec.rb +1099 -0
  970. data/spec/unit/util/storage_spec.rb +235 -0
  971. data/spec/unit/util/tagging_spec.rb +102 -0
  972. data/spec/unit/util/user_attr_spec.rb +47 -0
  973. data/spec/unit/util/warnings_spec.rb +39 -0
  974. data/spec/unit/util/zaml_spec.rb +38 -0
  975. data/tasks/rake/git_workflow.rake +1 -1
  976. data/tasks/rake/sign.rake +2 -2
  977. data/test/certmgr/ca.rb +61 -61
  978. data/test/certmgr/certmgr.rb +292 -283
  979. data/test/certmgr/inventory.rb +44 -42
  980. data/test/certmgr/support.rb +78 -77
  981. data/test/data/providers/ssh_authorized_key/parsed/authorized_keys +1 -1
  982. data/test/data/snippets/hash.pp +33 -0
  983. data/test/language/ast.rb +68 -117
  984. data/test/language/ast/variable.rb +14 -15
  985. data/test/language/functions.rb +404 -463
  986. data/test/language/parser.rb +670 -1135
  987. data/test/language/scope.rb +198 -402
  988. data/test/language/snippets.rb +439 -447
  989. data/test/language/transportable.rb +67 -66
  990. data/test/lib/puppettest.rb +260 -268
  991. data/test/lib/puppettest/certificates.rb +51 -53
  992. data/test/lib/puppettest/exetest.rb +107 -111
  993. data/test/lib/puppettest/fakes.rb +153 -158
  994. data/test/lib/puppettest/fileparsing.rb +17 -17
  995. data/test/lib/puppettest/filetesting.rb +204 -213
  996. data/test/lib/puppettest/parsertesting.rb +382 -365
  997. data/test/lib/puppettest/railstesting.rb +49 -50
  998. data/test/lib/puppettest/reporttesting.rb +10 -10
  999. data/test/lib/puppettest/resourcetesting.rb +45 -36
  1000. data/test/lib/puppettest/runnable_test.rb +36 -28
  1001. data/test/lib/puppettest/servertest.rb +54 -51
  1002. data/test/lib/puppettest/support/assertions.rb +48 -55
  1003. data/test/lib/puppettest/support/helpers.rb +12 -16
  1004. data/test/lib/puppettest/support/resources.rb +23 -25
  1005. data/test/lib/puppettest/support/utils.rb +138 -148
  1006. data/test/lib/puppettest/testcase.rb +15 -17
  1007. data/test/lib/rake/puppet_test_loader.rb +1 -3
  1008. data/test/lib/rake/puppet_testtask.rb +10 -10
  1009. data/test/network/authconfig.rb +48 -50
  1010. data/test/network/authorization.rb +114 -113
  1011. data/test/network/authstore.rb +454 -406
  1012. data/test/network/client/ca.rb +46 -48
  1013. data/test/network/client/dipper.rb +22 -22
  1014. data/test/network/client_request.rb +20 -20
  1015. data/test/network/handler/ca.rb +251 -252
  1016. data/test/network/handler/fileserver.rb +1071 -1001
  1017. data/test/network/handler/master.rb +58 -58
  1018. data/test/network/handler/report.rb +64 -64
  1019. data/test/network/handler/runner.rb +8 -8
  1020. data/test/network/rights.rb +22 -19
  1021. data/test/network/server/mongrel_test.rb +87 -87
  1022. data/test/network/server/webrick.rb +99 -87
  1023. data/test/network/xmlrpc/client.rb +30 -30
  1024. data/test/network/xmlrpc/processor.rb +52 -53
  1025. data/test/network/xmlrpc/server.rb +10 -11
  1026. data/test/network/xmlrpc/webrick_servlet.rb +21 -18
  1027. data/test/other/provider.rb +69 -84
  1028. data/test/other/puppet.rb +61 -76
  1029. data/test/other/relationships.rb +73 -65
  1030. data/test/other/report.rb +88 -187
  1031. data/test/other/transactions.rb +363 -885
  1032. data/test/puppet/defaults.rb +51 -54
  1033. data/test/puppet/errortest.rb +8 -8
  1034. data/test/puppet/tc_suidmanager.rb +106 -103
  1035. data/test/rails/rails.rb +8 -9
  1036. data/test/rails/railsparameter.rb +60 -54
  1037. data/test/ral/manager/attributes.rb +262 -260
  1038. data/test/ral/manager/instances.rb +77 -78
  1039. data/test/ral/manager/manager.rb +36 -36
  1040. data/test/ral/manager/provider.rb +56 -79
  1041. data/test/ral/manager/type.rb +308 -449
  1042. data/test/ral/providers/cron/crontab.rb +561 -545
  1043. data/test/ral/providers/group.rb +203 -212
  1044. data/test/ral/providers/host/parsed.rb +189 -180
  1045. data/test/ral/providers/mailalias/aliases.rb +40 -40
  1046. data/test/ral/providers/nameservice.rb +21 -21
  1047. data/test/ral/providers/package.rb +207 -214
  1048. data/test/ral/providers/package/aptitude.rb +75 -63
  1049. data/test/ral/providers/package/aptrpm.rb +84 -72
  1050. data/test/ral/providers/parsedfile.rb +510 -509
  1051. data/test/ral/providers/port/parsed.rb +5 -5
  1052. data/test/ral/providers/provider.rb +421 -421
  1053. data/test/ral/providers/service/base.rb +59 -53
  1054. data/test/ral/providers/sshkey/parsed.rb +86 -83
  1055. data/test/ral/providers/user.rb +471 -451
  1056. data/test/ral/providers/user/useradd.rb +168 -177
  1057. data/test/ral/type/cron.rb +406 -393
  1058. data/test/ral/type/exec.rb +721 -641
  1059. data/test/ral/type/file.rb +827 -896
  1060. data/test/ral/type/file/target.rb +295 -251
  1061. data/test/ral/type/fileignoresource.rb +232 -205
  1062. data/test/ral/type/filesources.rb +446 -485
  1063. data/test/ral/type/host.rb +124 -153
  1064. data/test/ral/type/mailalias.rb +28 -31
  1065. data/test/ral/type/port.rb +7 -7
  1066. data/test/ral/type/resources.rb +88 -93
  1067. data/test/ral/type/service.rb +19 -19
  1068. data/test/ral/type/sshkey.rb +120 -160
  1069. data/test/ral/type/user.rb +132 -414
  1070. data/test/ral/type/yumrepo.rb +95 -92
  1071. data/test/ral/type/zone.rb +316 -287
  1072. data/test/test +1 -1
  1073. data/test/util/classgen.rb +182 -167
  1074. data/test/util/execution.rb +18 -18
  1075. data/test/util/fileparsing.rb +580 -540
  1076. data/test/util/inifile.rb +117 -106
  1077. data/test/util/instance_loader.rb +29 -29
  1078. data/test/util/log.rb +202 -198
  1079. data/test/util/metrics.rb +51 -51
  1080. data/test/util/package.rb +11 -12
  1081. data/test/util/pidlock.rb +115 -115
  1082. data/test/util/settings.rb +613 -557
  1083. data/test/util/storage.rb +71 -88
  1084. data/test/util/subclass_loader.rb +69 -72
  1085. data/test/util/utiltest.rb +204 -203
  1086. metadata +493 -395
  1087. data/lib/puppet/agent/runner.rb +0 -65
  1088. data/lib/puppet/application/pi.rb +0 -214
  1089. data/lib/puppet/application/puppet.rb +0 -181
  1090. data/lib/puppet/application/puppetca.rb +0 -71
  1091. data/lib/puppet/application/puppetd.rb +0 -250
  1092. data/lib/puppet/application/puppetdoc.rb +0 -224
  1093. data/lib/puppet/application/puppetmasterd.rb +0 -168
  1094. data/lib/puppet/application/puppetqd.rb +0 -96
  1095. data/lib/puppet/application/puppetrun.rb +0 -210
  1096. data/lib/puppet/application/ralsh.rb +0 -152
  1097. data/lib/puppet/checksum.rb +0 -57
  1098. data/lib/puppet/indirector/checksum/file.rb +0 -33
  1099. data/lib/puppet/indirector/runner/rest.rb +0 -7
  1100. data/lib/puppet/network/client/dipper.rb +0 -85
  1101. data/lib/puppet/network/client/resource.rb +0 -38
  1102. data/lib/puppet/network/handler/resource.rb +0 -190
  1103. data/lib/puppet/parser/ast/definition.rb +0 -207
  1104. data/lib/puppet/parser/ast/hostclass.rb +0 -95
  1105. data/lib/puppet/parser/ast/node.rb +0 -42
  1106. data/lib/puppet/parser/interpreter.rb +0 -84
  1107. data/lib/puppet/parser/loaded_code.rb +0 -119
  1108. data/lib/puppet/parser/resource/reference.rb +0 -99
  1109. data/lib/puppet/resource/reference.rb +0 -90
  1110. data/lib/puppet/util/config_store.rb +0 -61
  1111. data/spec/integration/application/puppet.rb +0 -33
  1112. data/spec/integration/bin/puppetmasterd.rb +0 -122
  1113. data/spec/integration/checksum.rb +0 -48
  1114. data/spec/integration/configurer.rb +0 -18
  1115. data/spec/integration/defaults.rb +0 -230
  1116. data/spec/integration/file_serving/content.rb +0 -20
  1117. data/spec/integration/file_serving/fileset.rb +0 -14
  1118. data/spec/integration/file_serving/metadata.rb +0 -21
  1119. data/spec/integration/file_serving/terminus_helper.rb +0 -22
  1120. data/spec/integration/indirector/catalog/compiler.rb +0 -67
  1121. data/spec/integration/indirector/catalog/queue.rb +0 -61
  1122. data/spec/integration/indirector/certificate/rest.rb +0 -70
  1123. data/spec/integration/indirector/certificate_request/rest.rb +0 -88
  1124. data/spec/integration/indirector/certificate_revocation_list/rest.rb +0 -76
  1125. data/spec/integration/indirector/direct_file_server.rb +0 -73
  1126. data/spec/integration/indirector/file_content/file_server.rb +0 -94
  1127. data/spec/integration/indirector/file_metadata/file_server.rb +0 -18
  1128. data/spec/integration/indirector/node/ldap.rb +0 -15
  1129. data/spec/integration/indirector/report/rest.rb +0 -94
  1130. data/spec/integration/indirector/rest.rb +0 -523
  1131. data/spec/integration/network/client.rb +0 -19
  1132. data/spec/integration/network/formats.rb +0 -110
  1133. data/spec/integration/network/handler.rb +0 -25
  1134. data/spec/integration/network/server/mongrel.rb +0 -66
  1135. data/spec/integration/network/server/webrick.rb +0 -86
  1136. data/spec/integration/node.rb +0 -93
  1137. data/spec/integration/node/environment.rb +0 -58
  1138. data/spec/integration/node/facts.rb +0 -47
  1139. data/spec/integration/parser/compiler.rb +0 -29
  1140. data/spec/integration/parser/functions/require.rb +0 -86
  1141. data/spec/integration/provider/mailalias/aliases.rb +0 -25
  1142. data/spec/integration/provider/package.rb +0 -26
  1143. data/spec/integration/provider/service/init.rb +0 -32
  1144. data/spec/integration/reference/providers.rb +0 -17
  1145. data/spec/integration/reports.rb +0 -18
  1146. data/spec/integration/resource/catalog.rb +0 -61
  1147. data/spec/integration/ssl/certificate_authority.rb +0 -135
  1148. data/spec/integration/ssl/certificate_request.rb +0 -61
  1149. data/spec/integration/ssl/certificate_revocation_list.rb +0 -42
  1150. data/spec/integration/ssl/host.rb +0 -90
  1151. data/spec/integration/transaction.rb +0 -66
  1152. data/spec/integration/transaction/report.rb +0 -29
  1153. data/spec/integration/type.rb +0 -22
  1154. data/spec/integration/type/file.rb +0 -477
  1155. data/spec/integration/type/package.rb +0 -25
  1156. data/spec/integration/type/tidy.rb +0 -27
  1157. data/spec/integration/util/autoload.rb +0 -114
  1158. data/spec/integration/util/feature.rb +0 -54
  1159. data/spec/integration/util/file_locking.rb +0 -37
  1160. data/spec/integration/util/settings.rb +0 -27
  1161. data/spec/unit/agent.rb +0 -259
  1162. data/spec/unit/agent/locker.rb +0 -100
  1163. data/spec/unit/agent/runner.rb +0 -118
  1164. data/spec/unit/application.rb +0 -420
  1165. data/spec/unit/application/filebucket.rb +0 -220
  1166. data/spec/unit/application/pi.rb +0 -84
  1167. data/spec/unit/application/puppet.rb +0 -399
  1168. data/spec/unit/application/puppetca.rb +0 -142
  1169. data/spec/unit/application/puppetd.rb +0 -502
  1170. data/spec/unit/application/puppetdoc.rb +0 -360
  1171. data/spec/unit/application/puppetmasterd.rb +0 -457
  1172. data/spec/unit/application/puppetqd.rb +0 -186
  1173. data/spec/unit/application/puppetrun.rb +0 -289
  1174. data/spec/unit/application/ralsh.rb +0 -254
  1175. data/spec/unit/configurer.rb +0 -339
  1176. data/spec/unit/configurer/downloader.rb +0 -188
  1177. data/spec/unit/configurer/fact_handler.rb +0 -164
  1178. data/spec/unit/configurer/plugin_handler.rb +0 -112
  1179. data/spec/unit/daemon.rb +0 -287
  1180. data/spec/unit/file_collection.rb +0 -53
  1181. data/spec/unit/file_collection/lookup.rb +0 -46
  1182. data/spec/unit/file_serving/base.rb +0 -132
  1183. data/spec/unit/file_serving/configuration.rb +0 -249
  1184. data/spec/unit/file_serving/configuration/parser.rb +0 -181
  1185. data/spec/unit/file_serving/content.rb +0 -110
  1186. data/spec/unit/file_serving/fileset.rb +0 -347
  1187. data/spec/unit/file_serving/indirection_hooks.rb +0 -63
  1188. data/spec/unit/file_serving/metadata.rb +0 -286
  1189. data/spec/unit/file_serving/mount.rb +0 -32
  1190. data/spec/unit/file_serving/mount/file.rb +0 -196
  1191. data/spec/unit/file_serving/mount/modules.rb +0 -63
  1192. data/spec/unit/file_serving/mount/plugins.rb +0 -61
  1193. data/spec/unit/file_serving/terminus_helper.rb +0 -98
  1194. data/spec/unit/indirector.rb +0 -157
  1195. data/spec/unit/indirector/active_record.rb +0 -76
  1196. data/spec/unit/indirector/catalog/active_record.rb +0 -141
  1197. data/spec/unit/indirector/catalog/compiler.rb +0 -261
  1198. data/spec/unit/indirector/catalog/queue.rb +0 -20
  1199. data/spec/unit/indirector/catalog/rest.rb +0 -11
  1200. data/spec/unit/indirector/catalog/yaml.rb +0 -25
  1201. data/spec/unit/indirector/certificate/ca.rb +0 -28
  1202. data/spec/unit/indirector/certificate/file.rb +0 -28
  1203. data/spec/unit/indirector/certificate/rest.rb +0 -57
  1204. data/spec/unit/indirector/certificate_request/ca.rb +0 -19
  1205. data/spec/unit/indirector/certificate_request/file.rb +0 -19
  1206. data/spec/unit/indirector/certificate_request/rest.rb +0 -23
  1207. data/spec/unit/indirector/certificate_revocation_list/ca.rb +0 -21
  1208. data/spec/unit/indirector/certificate_revocation_list/file.rb +0 -20
  1209. data/spec/unit/indirector/certificate_revocation_list/rest.rb +0 -23
  1210. data/spec/unit/indirector/checksum/file.rb +0 -139
  1211. data/spec/unit/indirector/code.rb +0 -33
  1212. data/spec/unit/indirector/direct_file_server.rb +0 -84
  1213. data/spec/unit/indirector/envelope.rb +0 -47
  1214. data/spec/unit/indirector/exec.rb +0 -56
  1215. data/spec/unit/indirector/facts/active_record.rb +0 -104
  1216. data/spec/unit/indirector/facts/facter.rb +0 -142
  1217. data/spec/unit/indirector/facts/rest.rb +0 -11
  1218. data/spec/unit/indirector/facts/yaml.rb +0 -26
  1219. data/spec/unit/indirector/file.rb +0 -161
  1220. data/spec/unit/indirector/file_content/file.rb +0 -18
  1221. data/spec/unit/indirector/file_content/file_server.rb +0 -18
  1222. data/spec/unit/indirector/file_content/rest.rb +0 -11
  1223. data/spec/unit/indirector/file_metadata/file.rb +0 -52
  1224. data/spec/unit/indirector/file_metadata/file_server.rb +0 -18
  1225. data/spec/unit/indirector/file_metadata/rest.rb +0 -9
  1226. data/spec/unit/indirector/file_server.rb +0 -267
  1227. data/spec/unit/indirector/indirection.rb +0 -795
  1228. data/spec/unit/indirector/key/ca.rb +0 -28
  1229. data/spec/unit/indirector/key/file.rb +0 -104
  1230. data/spec/unit/indirector/ldap.rb +0 -143
  1231. data/spec/unit/indirector/memory.rb +0 -29
  1232. data/spec/unit/indirector/node/active_record.rb +0 -34
  1233. data/spec/unit/indirector/node/exec.rb +0 -69
  1234. data/spec/unit/indirector/node/ldap.rb +0 -458
  1235. data/spec/unit/indirector/node/memory.rb +0 -19
  1236. data/spec/unit/indirector/node/plain.rb +0 -19
  1237. data/spec/unit/indirector/node/rest.rb +0 -13
  1238. data/spec/unit/indirector/node/yaml.rb +0 -25
  1239. data/spec/unit/indirector/plain.rb +0 -29
  1240. data/spec/unit/indirector/queue.rb +0 -123
  1241. data/spec/unit/indirector/report/processor.rb +0 -81
  1242. data/spec/unit/indirector/report/rest.rb +0 -28
  1243. data/spec/unit/indirector/request.rb +0 -308
  1244. data/spec/unit/indirector/rest.rb +0 -403
  1245. data/spec/unit/indirector/runner/rest.rb +0 -11
  1246. data/spec/unit/indirector/ssl_file.rb +0 -280
  1247. data/spec/unit/indirector/terminus.rb +0 -245
  1248. data/spec/unit/indirector/yaml.rb +0 -145
  1249. data/spec/unit/module.rb +0 -247
  1250. data/spec/unit/network/authconfig.rb +0 -292
  1251. data/spec/unit/network/authstore.rb +0 -370
  1252. data/spec/unit/network/client.rb +0 -45
  1253. data/spec/unit/network/client/dipper.rb +0 -16
  1254. data/spec/unit/network/format.rb +0 -191
  1255. data/spec/unit/network/format_handler.rb +0 -327
  1256. data/spec/unit/network/formats.rb +0 -365
  1257. data/spec/unit/network/handler/fileserver.rb +0 -176
  1258. data/spec/unit/network/http.rb +0 -35
  1259. data/spec/unit/network/http/api/v1.rb +0 -122
  1260. data/spec/unit/network/http/handler.rb +0 -458
  1261. data/spec/unit/network/http/mongrel.rb +0 -131
  1262. data/spec/unit/network/http/mongrel/rest.rb +0 -232
  1263. data/spec/unit/network/http/rack.rb +0 -102
  1264. data/spec/unit/network/http/rack/rest.rb +0 -199
  1265. data/spec/unit/network/http/rack/xmlrpc.rb +0 -157
  1266. data/spec/unit/network/http/webrick.rb +0 -339
  1267. data/spec/unit/network/http/webrick/rest.rb +0 -157
  1268. data/spec/unit/network/http_pool.rb +0 -206
  1269. data/spec/unit/network/rest_authconfig.rb +0 -146
  1270. data/spec/unit/network/rest_authorization.rb +0 -43
  1271. data/spec/unit/network/rights.rb +0 -519
  1272. data/spec/unit/network/server.rb +0 -534
  1273. data/spec/unit/network/xmlrpc/client.rb +0 -171
  1274. data/spec/unit/node.rb +0 -200
  1275. data/spec/unit/node/environment.rb +0 -187
  1276. data/spec/unit/node/facts.rb +0 -97
  1277. data/spec/unit/other/checksum.rb +0 -92
  1278. data/spec/unit/other/selinux.rb +0 -85
  1279. data/spec/unit/other/transbucket.rb +0 -188
  1280. data/spec/unit/other/transobject.rb +0 -112
  1281. data/spec/unit/parameter.rb +0 -405
  1282. data/spec/unit/parser/ast.rb +0 -41
  1283. data/spec/unit/parser/ast/arithmetic_operator.rb +0 -73
  1284. data/spec/unit/parser/ast/astarray.rb +0 -72
  1285. data/spec/unit/parser/ast/boolean_operator.rb +0 -53
  1286. data/spec/unit/parser/ast/casestatement.rb +0 -135
  1287. data/spec/unit/parser/ast/collection.rb +0 -63
  1288. data/spec/unit/parser/ast/collexpr.rb +0 -115
  1289. data/spec/unit/parser/ast/comparison_operator.rb +0 -92
  1290. data/spec/unit/parser/ast/definition.rb +0 -213
  1291. data/spec/unit/parser/ast/function.rb +0 -83
  1292. data/spec/unit/parser/ast/hostclass.rb +0 -148
  1293. data/spec/unit/parser/ast/ifstatement.rb +0 -76
  1294. data/spec/unit/parser/ast/leaf.rb +0 -298
  1295. data/spec/unit/parser/ast/match_operator.rb +0 -50
  1296. data/spec/unit/parser/ast/minus.rb +0 -36
  1297. data/spec/unit/parser/ast/node.rb +0 -145
  1298. data/spec/unit/parser/ast/nop.rb +0 -20
  1299. data/spec/unit/parser/ast/not.rb +0 -30
  1300. data/spec/unit/parser/ast/resource.rb +0 -103
  1301. data/spec/unit/parser/ast/resource_override.rb +0 -51
  1302. data/spec/unit/parser/ast/resource_reference.rb +0 -69
  1303. data/spec/unit/parser/ast/selector.rb +0 -155
  1304. data/spec/unit/parser/ast/vardef.rb +0 -47
  1305. data/spec/unit/parser/collector.rb +0 -556
  1306. data/spec/unit/parser/compiler.rb +0 -604
  1307. data/spec/unit/parser/files.rb +0 -190
  1308. data/spec/unit/parser/functions.rb +0 -83
  1309. data/spec/unit/parser/functions/fqdn_rand.rb +0 -62
  1310. data/spec/unit/parser/functions/generate.rb +0 -41
  1311. data/spec/unit/parser/functions/inline_template.rb +0 -59
  1312. data/spec/unit/parser/functions/realize.rb +0 -51
  1313. data/spec/unit/parser/functions/regsubst.rb +0 -168
  1314. data/spec/unit/parser/functions/require.rb +0 -69
  1315. data/spec/unit/parser/functions/shellquote.rb +0 -92
  1316. data/spec/unit/parser/functions/split.rb +0 -51
  1317. data/spec/unit/parser/functions/sprintf.rb +0 -42
  1318. data/spec/unit/parser/functions/template.rb +0 -62
  1319. data/spec/unit/parser/functions/versioncmp.rb +0 -29
  1320. data/spec/unit/parser/interpreter.rb +0 -147
  1321. data/spec/unit/parser/lexer.rb +0 -731
  1322. data/spec/unit/parser/loaded_code.rb +0 -215
  1323. data/spec/unit/parser/parser.rb +0 -423
  1324. data/spec/unit/parser/resource.rb +0 -529
  1325. data/spec/unit/parser/resource/reference.rb +0 -111
  1326. data/spec/unit/parser/scope.rb +0 -387
  1327. data/spec/unit/parser/templatewrapper.rb +0 -134
  1328. data/spec/unit/property.rb +0 -305
  1329. data/spec/unit/property/keyvalue.rb +0 -168
  1330. data/spec/unit/property/list.rb +0 -166
  1331. data/spec/unit/property/ordered_list.rb +0 -64
  1332. data/spec/unit/provider.rb +0 -31
  1333. data/spec/unit/provider/augeas/augeas.rb +0 -413
  1334. data/spec/unit/provider/confine.rb +0 -78
  1335. data/spec/unit/provider/confine/exists.rb +0 -81
  1336. data/spec/unit/provider/confine/false.rb +0 -53
  1337. data/spec/unit/provider/confine/feature.rb +0 -60
  1338. data/spec/unit/provider/confine/true.rb +0 -53
  1339. data/spec/unit/provider/confine/variable.rb +0 -107
  1340. data/spec/unit/provider/confine_collection.rb +0 -134
  1341. data/spec/unit/provider/confiner.rb +0 -63
  1342. data/spec/unit/provider/group/groupadd.rb +0 -31
  1343. data/spec/unit/provider/group/ldap.rb +0 -105
  1344. data/spec/unit/provider/ldap.rb +0 -248
  1345. data/spec/unit/provider/macauthorization.rb +0 -147
  1346. data/spec/unit/provider/mcx/mcxcontent.rb +0 -175
  1347. data/spec/unit/provider/mount.rb +0 -130
  1348. data/spec/unit/provider/mount/parsed.rb +0 -194
  1349. data/spec/unit/provider/naginator.rb +0 -58
  1350. data/spec/unit/provider/package/apt.rb +0 -138
  1351. data/spec/unit/provider/package/dpkg.rb +0 -170
  1352. data/spec/unit/provider/package/gem.rb +0 -87
  1353. data/spec/unit/provider/package/hpux.rb +0 -52
  1354. data/spec/unit/provider/package/pkgdmg.rb +0 -73
  1355. data/spec/unit/provider/parsedfile.rb +0 -95
  1356. data/spec/unit/provider/selboolean.rb +0 -37
  1357. data/spec/unit/provider/selmodule.rb +0 -66
  1358. data/spec/unit/provider/service/daemontools.rb +0 -166
  1359. data/spec/unit/provider/service/debian.rb +0 -89
  1360. data/spec/unit/provider/service/init.rb +0 -121
  1361. data/spec/unit/provider/service/launchd.rb +0 -200
  1362. data/spec/unit/provider/service/redhat.rb +0 -96
  1363. data/spec/unit/provider/service/runit.rb +0 -140
  1364. data/spec/unit/provider/ssh_authorized_key/parsed.rb +0 -206
  1365. data/spec/unit/provider/sshkey/parsed.rb +0 -38
  1366. data/spec/unit/provider/user/hpux.rb +0 -25
  1367. data/spec/unit/provider/user/ldap.rb +0 -279
  1368. data/spec/unit/provider/user/user_role_add.rb +0 -249
  1369. data/spec/unit/provider/user/useradd.rb +0 -115
  1370. data/spec/unit/provider/zfs/solaris.rb +0 -99
  1371. data/spec/unit/provider/zone/solaris.rb +0 -42
  1372. data/spec/unit/provider/zpool/solaris.rb +0 -179
  1373. data/spec/unit/rails.rb +0 -133
  1374. data/spec/unit/rails/host.rb +0 -163
  1375. data/spec/unit/rails/param_value.rb +0 -49
  1376. data/spec/unit/rails/resource.rb +0 -107
  1377. data/spec/unit/relationship.rb +0 -236
  1378. data/spec/unit/reports.rb +0 -61
  1379. data/spec/unit/resource.rb +0 -495
  1380. data/spec/unit/resource/catalog.rb +0 -1053
  1381. data/spec/unit/resource/reference.rb +0 -111
  1382. data/spec/unit/simple_graph.rb +0 -551
  1383. data/spec/unit/ssl/certificate.rb +0 -124
  1384. data/spec/unit/ssl/certificate_authority.rb +0 -741
  1385. data/spec/unit/ssl/certificate_authority/interface.rb +0 -269
  1386. data/spec/unit/ssl/certificate_factory.rb +0 -107
  1387. data/spec/unit/ssl/certificate_request.rb +0 -193
  1388. data/spec/unit/ssl/certificate_revocation_list.rb +0 -168
  1389. data/spec/unit/ssl/host.rb +0 -704
  1390. data/spec/unit/ssl/inventory.rb +0 -180
  1391. data/spec/unit/ssl/key.rb +0 -198
  1392. data/spec/unit/transaction.rb +0 -146
  1393. data/spec/unit/transaction/change.rb +0 -187
  1394. data/spec/unit/transaction/event.rb +0 -25
  1395. data/spec/unit/transaction/report.rb +0 -40
  1396. data/spec/unit/type.rb +0 -426
  1397. data/spec/unit/type/augeas.rb +0 -106
  1398. data/spec/unit/type/component.rb +0 -63
  1399. data/spec/unit/type/computer.rb +0 -78
  1400. data/spec/unit/type/cron.rb +0 -33
  1401. data/spec/unit/type/exec.rb +0 -116
  1402. data/spec/unit/type/file.rb +0 -810
  1403. data/spec/unit/type/file/checksum.rb +0 -28
  1404. data/spec/unit/type/file/content.rb +0 -297
  1405. data/spec/unit/type/file/ensure.rb +0 -84
  1406. data/spec/unit/type/file/group.rb +0 -123
  1407. data/spec/unit/type/file/owner.rb +0 -143
  1408. data/spec/unit/type/file/selinux.rb +0 -84
  1409. data/spec/unit/type/file/source.rb +0 -264
  1410. data/spec/unit/type/filebucket.rb +0 -74
  1411. data/spec/unit/type/group.rb +0 -39
  1412. data/spec/unit/type/macauthorization.rb +0 -111
  1413. data/spec/unit/type/maillist.rb +0 -42
  1414. data/spec/unit/type/mcx.rb +0 -100
  1415. data/spec/unit/type/mount.rb +0 -211
  1416. data/spec/unit/type/nagios.rb +0 -63
  1417. data/spec/unit/type/noop_metaparam.rb +0 -37
  1418. data/spec/unit/type/package.rb +0 -236
  1419. data/spec/unit/type/resources.rb +0 -89
  1420. data/spec/unit/type/schedule.rb +0 -333
  1421. data/spec/unit/type/selboolean.rb +0 -45
  1422. data/spec/unit/type/selmodule.rb +0 -18
  1423. data/spec/unit/type/service.rb +0 -230
  1424. data/spec/unit/type/ssh_authorized_key.rb +0 -140
  1425. data/spec/unit/type/tidy.rb +0 -422
  1426. data/spec/unit/type/user.rb +0 -285
  1427. data/spec/unit/type/zfs.rb +0 -45
  1428. data/spec/unit/type/zone.rb +0 -20
  1429. data/spec/unit/type/zpool.rb +0 -110
  1430. data/spec/unit/util/autoload.rb +0 -133
  1431. data/spec/unit/util/autoload/file_cache.rb +0 -183
  1432. data/spec/unit/util/backups.rb +0 -159
  1433. data/spec/unit/util/cache_accumulator.rb +0 -69
  1434. data/spec/unit/util/cacher.rb +0 -185
  1435. data/spec/unit/util/checksums.rb +0 -113
  1436. data/spec/unit/util/constant_inflector.rb +0 -70
  1437. data/spec/unit/util/feature.rb +0 -72
  1438. data/spec/unit/util/file_locking.rb +0 -115
  1439. data/spec/unit/util/filetype.rb +0 -100
  1440. data/spec/unit/util/json.rb +0 -21
  1441. data/spec/unit/util/ldap/connection.rb +0 -169
  1442. data/spec/unit/util/ldap/generator.rb +0 -54
  1443. data/spec/unit/util/ldap/manager.rb +0 -654
  1444. data/spec/unit/util/loadedfile.rb +0 -65
  1445. data/spec/unit/util/log.rb +0 -202
  1446. data/spec/unit/util/metric.rb +0 -95
  1447. data/spec/unit/util/monkey_patches.rb +0 -103
  1448. data/spec/unit/util/nagios_maker.rb +0 -126
  1449. data/spec/unit/util/package.rb +0 -21
  1450. data/spec/unit/util/posix.rb +0 -256
  1451. data/spec/unit/util/queue.rb +0 -96
  1452. data/spec/unit/util/queue/stomp.rb +0 -140
  1453. data/spec/unit/util/reference_serializer.rb +0 -52
  1454. data/spec/unit/util/resource_template.rb +0 -58
  1455. data/spec/unit/util/selinux.rb +0 -280
  1456. data/spec/unit/util/settings.rb +0 -1058
  1457. data/spec/unit/util/settings/file_setting.rb +0 -248
  1458. data/spec/unit/util/storage.rb +0 -248
  1459. data/spec/unit/util/tagging.rb +0 -102
  1460. data/spec/unit/util/user_attr.rb +0 -47
  1461. data/spec/unit/util/warnings.rb +0 -39
  1462. data/spec/unit/util/zaml.rb +0 -38
  1463. data/test/language/ast/casestatement.rb +0 -103
  1464. data/test/language/ast/resource.rb +0 -58
  1465. data/test/language/ast/resource_reference.rb +0 -77
  1466. data/test/language/ast/selector.rb +0 -61
  1467. data/test/language/resource.rb +0 -172
  1468. data/test/lib/puppettest/support/collection.rb +0 -29
  1469. data/test/network/client/resource.rb +0 -52
  1470. data/test/network/handler/bucket.rb +0 -313
  1471. data/test/network/handler/resource.rb +0 -250
  1472. data/test/other/dsl.rb +0 -215
  1473. data/test/other/events.rb +0 -124
  1474. data/test/ral/type/group.rb +0 -170
@@ -1,41 +1,39 @@
1
1
  module Puppet::Parser::Functions
2
2
 
3
- Safe = 'a-zA-Z0-9@%_+=:,./-' # Safe unquoted
4
- Dangerous = '!"`$\\' # Unsafe inside double quotes
3
+ Safe = 'a-zA-Z0-9@%_+=:,./-' # Safe unquoted
4
+ Dangerous = '!"`$\\' # Unsafe inside double quotes
5
5
 
6
- newfunction(:shellquote, :type => :rvalue, :doc => "\
7
- Quote and concatenate arguments for use in Bourne shell.
6
+ newfunction(:shellquote, :type => :rvalue, :doc => "\
7
+ Quote and concatenate arguments for use in Bourne shell.
8
8
 
9
- Each argument is quoted separately, and then all are concatenated
10
- with spaces. If an argument is an array, the elements of that
11
- array is interpolated within the rest of the arguments; this makes
12
- it possible to have an array of arguments and pass that array to
13
- shellquote() instead of having to specify each argument
14
- individually in the call.
15
- ") \
16
- do |args|
9
+ Each argument is quoted separately, and then all are concatenated
10
+ with spaces. If an argument is an array, the elements of that
11
+ array is interpolated within the rest of the arguments; this makes
12
+ it possible to have an array of arguments and pass that array to
13
+ shellquote instead of having to specify each argument
14
+ individually in the call.
15
+ ") \
16
+ do |args|
17
17
 
18
- result = []
19
- args.flatten.each do |word|
20
- if word.length != 0 and word.count(Safe) == word.length
21
- result << word
22
- elsif word.count(Dangerous) == 0
23
- result << ('"' + word + '"')
24
- elsif word.count("'") == 0
25
- result << ("'" + word + "'")
26
- else
27
- r = '"'
28
- word.each_byte() do |c|
29
- if Dangerous.include?(c)
30
- r += "\\"
31
- end
32
- r += c.chr()
33
- end
34
- r += '"'
35
- result << r
36
- end
18
+ result = []
19
+ args.flatten.each do |word|
20
+ if word.length != 0 and word.count(Safe) == word.length
21
+ result << word
22
+ elsif word.count(Dangerous) == 0
23
+ result << ('"' + word + '"')
24
+ elsif word.count("'") == 0
25
+ result << ("'" + word + "'")
26
+ else
27
+ r = '"'
28
+ word.each_byte do |c|
29
+ r += "\\" if Dangerous.include?(c)
30
+ r += c.chr
37
31
  end
38
-
39
- return result.join(" ")
32
+ r += '"'
33
+ result << r
34
+ end
40
35
  end
36
+
37
+ return result.join(" ")
38
+ end
41
39
  end
@@ -1,6 +1,9 @@
1
1
  module Puppet::Parser::Functions
2
- newfunction(:split, :type => :rvalue,
3
- :doc => "\
2
+
3
+ newfunction(
4
+ :split, :type => :rvalue,
5
+
6
+ :doc => "\
4
7
  Split a string variable into an array using the specified split regexp.
5
8
 
6
9
  Usage::
@@ -19,11 +22,8 @@ a regexp meta-character (.), and that needs protection. A simple
19
22
  way to do that for a single character is to enclose it in square
20
23
  brackets.") do |args|
21
24
 
22
- if args.length != 2
23
- raise Puppet::ParseError, ("split(): wrong number of arguments" +
24
- " (#{args.length}; must be 2)")
25
- end
25
+ raise Puppet::ParseError, ("split(): wrong number of arguments (#{args.length}; must be 2)") if args.length != 2
26
26
 
27
- return args[0].split(Regexp.compile(args[1]))
28
- end
27
+ return args[0].split(Regexp.compile(args[1]))
28
+ end
29
29
  end
@@ -1,12 +1,13 @@
1
1
  module Puppet::Parser::Functions
2
- newfunction(:sprintf, :type => :rvalue,
3
- :doc => "Perform printf-style formatting of text.
4
2
 
5
- The first parameter is format string describing how the rest of the parameters should be formatted. See the documentation for the ``Kernel::sprintf()`` function in Ruby for all the details.") do |args|
6
- if args.length < 1
7
- raise Puppet::ParseError, 'sprintf() needs at least one argument'
8
- end
9
- fmt = args.shift()
10
- return sprintf(fmt, *args)
11
- end
3
+ newfunction(
4
+ :sprintf, :type => :rvalue,
5
+
6
+ :doc => "Perform printf-style formatting of text.
7
+
8
+ The first parameter is format string describing how the rest of the parameters should be formatted. See the documentation for the ``Kernel::sprintf`` function in Ruby for all the details.") do |args|
9
+ raise Puppet::ParseError, 'sprintf() needs at least one argument' if args.length < 1
10
+ fmt = args.shift
11
+ return sprintf(fmt, *args)
12
+ end
12
13
  end
@@ -1,6 +1,6 @@
1
1
  # Tag the current scope with each passed name
2
2
  Puppet::Parser::Functions::newfunction(:tag, :doc => "Add the specified tags to the containing class
3
- or definition. All contained objects will then acquire that tag, also.
4
- ") do |vals|
5
- self.resource.tag(*vals)
3
+ or definition. All contained objects will then acquire that tag, also.
4
+ ") do |vals|
5
+ self.resource.tag(*vals)
6
6
  end
@@ -1,18 +1,18 @@
1
1
  # Test whether a given tag is set. This functions as a big OR -- if any of the specified tags are unset, we return false.
2
2
  Puppet::Parser::Functions::newfunction(:tagged, :type => :rvalue, :doc => "A boolean function that
3
- tells you whether the current container is tagged with the specified tags.
4
- The tags are ANDed, so that all of the specified tags must be included for
5
- the function to return true.") do |vals|
6
- configtags = compiler.catalog.tags
7
- resourcetags = resource.tags
3
+ tells you whether the current container is tagged with the specified tags.
4
+ The tags are ANDed, so that all of the specified tags must be included for
5
+ the function to return true.") do |vals|
6
+ configtags = compiler.catalog.tags
7
+ resourcetags = resource.tags
8
8
 
9
- retval = true
10
- vals.each do |val|
11
- unless configtags.include?(val) or resourcetags.include?(val)
12
- retval = false
13
- break
14
- end
15
- end
9
+ retval = true
10
+ vals.each do |val|
11
+ unless configtags.include?(val) or resourcetags.include?(val)
12
+ retval = false
13
+ break
14
+ end
15
+ end
16
16
 
17
- return retval
17
+ return retval
18
18
  end
@@ -1,23 +1,22 @@
1
1
  Puppet::Parser::Functions::newfunction(:template, :type => :rvalue, :doc =>
2
- "Evaluate a template and return its value. See `the templating docs
3
- <http://docs.puppetlabs.com/guides/templating.html>`_ for more information. Note that
4
- if multiple templates are specified, their output is all concatenated
5
- and returned as the output of the function.") do |vals|
6
- require 'erb'
2
+ "Evaluate a template and return its value. See `the templating docs
3
+ <http://docs.puppetlabs.com/guides/templating.html>`_ for more information.
4
+ Note that if multiple templates are specified, their output is all
5
+ concatenated and returned as the output of the function.") do |vals|
6
+ require 'erb'
7
7
 
8
- vals.collect do |file|
9
- # Use a wrapper, so the template can't get access to the full
10
- # Scope object.
11
- debug "Retrieving template %s" % file
8
+ vals.collect do |file|
9
+ # Use a wrapper, so the template can't get access to the full
10
+ # Scope object.
11
+ debug "Retrieving template #{file}"
12
12
 
13
- wrapper = Puppet::Parser::TemplateWrapper.new(self)
14
- wrapper.file = file
15
- begin
16
- wrapper.result
17
- rescue => detail
18
- raise Puppet::ParseError,
19
- "Failed to parse template %s: %s" %
20
- [file, detail]
21
- end
22
- end.join("")
13
+ wrapper = Puppet::Parser::TemplateWrapper.new(self)
14
+ wrapper.file = file
15
+ begin
16
+ wrapper.result
17
+ rescue => detail
18
+ raise Puppet::ParseError,
19
+ "Failed to parse template #{file}: #{detail}"
20
+ end
21
+ end.join("")
23
22
  end
@@ -1,31 +1,34 @@
1
1
  require 'puppet/util/package'
2
2
 
3
- Puppet::Parser::Functions::newfunction(:versioncmp, :type => :rvalue,
4
- :doc => "Compares two versions
3
+
4
+ Puppet::Parser::Functions::newfunction(
5
+ :versioncmp, :type => :rvalue,
6
+
7
+ :doc => "Compares two versions
5
8
 
6
9
  Prototype::
7
10
 
8
- \$result = versioncmp(a, b)
11
+ \$result = versioncmp(a, b)
9
12
 
10
- where a and b are arbitrary version strings
13
+ where a and b are arbitrary version strings
11
14
 
12
15
  This functions returns a number::
13
16
 
14
- * > 0 if version a is greater than version b
15
- * == 0 if both version are equals
16
- * < 0 if version a is less than version b
17
+ * > 0 if version a is greater than version b
18
+ * == 0 if both version are equals
19
+ * < 0 if version a is less than version b
17
20
 
18
21
  Example::
19
22
 
20
- if versioncmp('2.6-1', '2.4.5') > 0 {
21
- notice('2.6-1 is > than 2.4.5')
22
- }
23
+ if versioncmp('2.6-1', '2.4.5') > 0 {
24
+ notice('2.6-1 is > than 2.4.5')
25
+ }
23
26
 
24
27
  ") do |args|
25
28
 
26
- unless args.length == 2
27
- raise Puppet::ParseError, "versioncmp should have 2 arguments"
28
- end
29
+ unless args.length == 2
30
+ raise Puppet::ParseError, "versioncmp should have 2 arguments"
31
+ end
29
32
 
30
- return Puppet::Util::Package.versioncmp(args[0], args[1])
33
+ return Puppet::Util::Package.versioncmp(args[0], args[1])
31
34
  end
@@ -4,473 +4,494 @@
4
4
 
5
5
  class Puppet::Parser::Parser
6
6
 
7
- token LBRACK DQTEXT SQTEXT RBRACK LBRACE RBRACE SYMBOL FARROW COMMA TRUE
7
+ token STRING DQPRE DQMID DQPOST
8
+ token LBRACK RBRACK LBRACE RBRACE SYMBOL FARROW COMMA TRUE
8
9
  token FALSE EQUALS APPENDS LESSEQUAL NOTEQUAL DOT COLON LLCOLLECT RRCOLLECT
9
10
  token QMARK LPAREN RPAREN ISEQUAL GREATEREQUAL GREATERTHAN LESSTHAN
10
11
  token IF ELSE IMPORT DEFINE ELSIF VARIABLE CLASS INHERITS NODE BOOLEAN
11
12
  token NAME SEMIC CASE DEFAULT AT LCOLLECT RCOLLECT CLASSNAME CLASSREF
12
13
  token NOT OR AND UNDEF PARROW PLUS MINUS TIMES DIV LSHIFT RSHIFT UMINUS
13
- token MATCH NOMATCH REGEX
14
+ token MATCH NOMATCH REGEX IN_EDGE OUT_EDGE IN_EDGE_SUB OUT_EDGE_SUB
15
+ token IN
14
16
 
15
17
  prechigh
16
- right NOT
17
- nonassoc UMINUS
18
- left MATCH NOMATCH
19
- left TIMES DIV
20
- left MINUS PLUS
21
- left LSHIFT RSHIFT
22
- left NOTEQUAL ISEQUAL
23
- left GREATEREQUAL GREATERTHAN LESSTHAN LESSEQUAL
24
- left AND
25
- left OR
18
+ right NOT
19
+ nonassoc UMINUS
20
+ left IN MATCH NOMATCH
21
+ left TIMES DIV
22
+ left MINUS PLUS
23
+ left LSHIFT RSHIFT
24
+ left NOTEQUAL ISEQUAL
25
+ left GREATEREQUAL GREATERTHAN LESSTHAN LESSEQUAL
26
+ left AND
27
+ left OR
26
28
  preclow
27
29
 
28
30
  rule
29
31
  program: statements {
30
- if val[0]
31
- # Make sure we always return an array.
32
- if val[0].is_a?(AST::ASTArray)
33
- if val[0].children.empty?
34
- result = nil
35
- else
36
- result = val[0]
37
- end
38
- else
39
- result = aryfy(val[0])
40
- end
41
- else
32
+ if val[0]
33
+ # Make sure we always return an array.
34
+ if val[0].is_a?(AST::ASTArray)
35
+ if val[0].children.empty?
42
36
  result = nil
37
+ else
38
+ result = val[0]
39
+ end
40
+ else
41
+ result = aryfy(val[0])
43
42
  end
43
+ else
44
+ result = nil
45
+ end
44
46
  }
45
- | nil
47
+ | nil
46
48
 
47
49
  statements: statement
48
- | statements statement {
50
+ | statements statement {
49
51
  if val[0] and val[1]
50
- if val[0].instance_of?(AST::ASTArray)
51
- val[0].push(val[1])
52
- result = val[0]
53
- else
54
- result = ast AST::ASTArray, :children => [val[0],val[1]]
55
- end
56
- elsif obj = (val[0] || val[1])
57
- result = obj
58
- else result = nil
52
+ if val[0].instance_of?(AST::ASTArray)
53
+ val[0].push(val[1])
54
+ result = val[0]
55
+ else
56
+ result = ast AST::ASTArray, :children => [val[0],val[1]]
59
57
  end
58
+ elsif obj = (val[0] || val[1])
59
+ result = obj
60
+ else result = nil
61
+ end
60
62
  }
61
63
 
62
64
  # The main list of valid statements
63
65
  statement: resource
64
- | virtualresource
65
- | collection
66
- | assignment
67
- | casestatement
68
- | ifstatement
69
- | import
70
- | fstatement
71
- | definition
72
- | hostclass
73
- | nodedef
74
- | resourceoverride
75
- | append
66
+ | virtualresource
67
+ | collection
68
+ | assignment
69
+ | casestatement
70
+ | ifstatement_begin
71
+ | import
72
+ | fstatement
73
+ | definition
74
+ | hostclass
75
+ | nodedef
76
+ | resourceoverride
77
+ | append
78
+ | relationship
76
79
 
77
- fstatement: NAME LPAREN funcvalues RPAREN {
78
- args = aryfy(val[2])
79
- result = ast AST::Function,
80
- :name => val[0][:value],
81
- :line => val[0][:line],
82
- :arguments => args,
83
- :ftype => :statement
80
+ relationship: relationship_side edge relationship_side {
81
+ result = AST::Relationship.new(val[0], val[2], val[1][:value], ast_context)
84
82
  }
85
- | NAME LPAREN funcvalues COMMA RPAREN {
86
- args = aryfy(val[2])
87
- result = ast AST::Function,
88
- :name => val[0][:value],
89
- :line => val[0][:line],
90
- :arguments => args,
91
- :ftype => :statement
83
+ | relationship edge relationship_side {
84
+ result = AST::Relationship.new(val[0], val[2], val[1][:value], ast_context)
85
+ }
86
+
87
+ relationship_side: resource | resourceref | collection
88
+
89
+ edge: IN_EDGE | OUT_EDGE | IN_EDGE_SUB | OUT_EDGE_SUB
90
+
91
+ fstatement: NAME LPAREN funcvalues RPAREN {
92
+ args = aryfy(val[2])
93
+ result = ast AST::Function,
94
+ :name => val[0][:value],
95
+ :line => val[0][:line],
96
+ :arguments => args,
97
+ :ftype => :statement
98
+ }
99
+ | NAME LPAREN funcvalues COMMA RPAREN {
100
+ args = aryfy(val[2])
101
+ result = ast AST::Function,
102
+ :name => val[0][:value],
103
+ :line => val[0][:line],
104
+ :arguments => args,
105
+ :ftype => :statement
92
106
  } | NAME LPAREN RPAREN {
93
- result = ast AST::Function,
94
- :name => val[0][:value],
95
- :line => val[0][:line],
96
- :arguments => AST::ASTArray.new({}),
97
- :ftype => :statement
107
+ result = ast AST::Function,
108
+ :name => val[0][:value],
109
+ :line => val[0][:line],
110
+ :arguments => AST::ASTArray.new({}),
111
+ :ftype => :statement
98
112
  }
99
- | NAME funcvalues {
113
+ | NAME funcvalues {
100
114
  args = aryfy(val[1])
101
115
  result = ast AST::Function,
102
- :name => val[0][:value],
103
- :line => val[0][:line],
104
- :arguments => args,
105
- :ftype => :statement
116
+ :name => val[0][:value],
117
+ :line => val[0][:line],
118
+ :arguments => args,
119
+ :ftype => :statement
106
120
  }
107
121
 
108
122
  funcvalues: namestring
109
- | resourceref
110
- | funcvalues COMMA namestring {
123
+ | resourceref
124
+ | funcvalues COMMA namestring {
111
125
  result = aryfy(val[0], val[2])
112
126
  result.line = @lexer.line
113
127
  result.file = @lexer.file
114
128
  }
115
- | funcvalues COMMA resourceref {
129
+ | funcvalues COMMA resourceref {
116
130
  unless val[0].is_a?(AST::ASTArray)
117
- val[0] = aryfy(val[0])
118
- end
131
+ val[0] = aryfy(val[0])
132
+ end
119
133
 
120
- val[0].push(val[2])
134
+ val[0].push(val[2])
121
135
 
122
- result = val[0]
136
+ result = val[0]
123
137
  }
124
138
 
125
139
  # This is *almost* an rvalue, but I couldn't get a full
126
140
  # rvalue to work without scads of shift/reduce conflicts.
127
141
  namestring: name
128
- | variable
129
- | type
130
- | boolean
131
- | funcrvalue
132
- | selector
133
- | quotedtext
134
- | CLASSNAME {
135
- result = ast AST::Name, :value => val[0][:value]
136
- }
142
+ | variable
143
+ | type
144
+ | boolean
145
+ | funcrvalue
146
+ | selector
147
+ | quotedtext
148
+ | hasharrayaccesses
149
+ | CLASSNAME {
150
+ result = ast AST::Name, :value => val[0][:value]
151
+ }
137
152
 
138
153
  resource: classname LBRACE resourceinstances endsemi RBRACE {
139
- @lexer.commentpop
140
- array = val[2]
141
- if array.instance_of?(AST::ResourceInstance)
142
- array = [array]
143
- end
144
- result = ast AST::ASTArray
145
-
146
- # this iterates across each specified resourceinstance
147
- array.each { |instance|
148
- unless instance.instance_of?(AST::ResourceInstance)
149
- raise Puppet::Dev, "Got something that isn't an instance"
150
- end
151
- # now, i need to somehow differentiate between those things with
152
- # arrays in their names, and normal things
153
- result.push ast(AST::Resource,
154
- :type => val[0],
155
- :title => instance[0],
156
- :params => instance[1])
157
- }
154
+ @lexer.commentpop
155
+ array = val[2]
156
+ array = [array] if array.instance_of?(AST::ResourceInstance)
157
+ result = ast AST::ASTArray
158
+
159
+ # this iterates across each specified resourceinstance
160
+ array.each { |instance|
161
+ raise Puppet::Dev, "Got something that isn't an instance" unless instance.instance_of?(AST::ResourceInstance)
162
+ # now, i need to somehow differentiate between those things with
163
+ # arrays in their names, and normal things
164
+
165
+ result.push ast(
166
+ AST::Resource,
167
+ :type => val[0],
168
+ :title => instance[0],
169
+
170
+ :parameters => instance[1])
171
+ }
158
172
  } | classname LBRACE params endcomma RBRACE {
159
- # This is a deprecated syntax.
160
- error "All resource specifications require names"
173
+ # This is a deprecated syntax.
174
+ error "All resource specifications require names"
161
175
  } | classref LBRACE params endcomma RBRACE {
162
- # a defaults setting for a type
163
- result = ast(AST::ResourceDefaults, :type => val[0], :params => val[2])
176
+ # a defaults setting for a type
177
+ @lexer.commentpop
178
+ result = ast(AST::ResourceDefaults, :type => val[0], :parameters => val[2])
164
179
  }
165
180
 
166
181
  # Override a value set elsewhere in the configuration.
167
182
  resourceoverride: resourceref LBRACE anyparams endcomma RBRACE {
168
- @lexer.commentpop
169
- result = ast AST::ResourceOverride, :object => val[0], :params => val[2]
183
+ @lexer.commentpop
184
+ result = ast AST::ResourceOverride, :object => val[0], :parameters => val[2]
170
185
  }
171
186
 
172
187
  # Exported and virtual resources; these don't get sent to the client
173
188
  # unless they get collected elsewhere in the db.
174
189
  virtualresource: at resource {
175
- type = val[0]
190
+ type = val[0]
176
191
 
177
- if (type == :exported and ! Puppet[:storeconfigs]) and ! Puppet[:parseonly]
178
- Puppet.warning addcontext("You cannot collect without storeconfigs being set")
179
- end
192
+ if (type == :exported and ! Puppet[:storeconfigs]) and ! Puppet[:parseonly]
193
+ Puppet.warning addcontext("You cannot collect without storeconfigs being set")
194
+ end
180
195
 
181
- if val[1].is_a? AST::ResourceDefaults
182
- error "Defaults are not virtualizable"
183
- end
196
+ error "Defaults are not virtualizable" if val[1].is_a? AST::ResourceDefaults
184
197
 
185
- method = type.to_s + "="
198
+ method = type.to_s + "="
186
199
 
187
- # Just mark our resources as exported and pass them through.
188
- if val[1].instance_of?(AST::ASTArray)
189
- val[1].each do |obj|
190
- obj.send(method, true)
191
- end
192
- else
193
- val[1].send(method, true)
200
+ # Just mark our resources as exported and pass them through.
201
+ if val[1].instance_of?(AST::ASTArray)
202
+ val[1].each do |obj|
203
+ obj.send(method, true)
194
204
  end
205
+ else
206
+ val[1].send(method, true)
207
+ end
195
208
 
196
- result = val[1]
209
+ result = val[1]
197
210
  }
198
211
 
199
212
  at: AT { result = :virtual }
200
- | AT AT { result = :exported }
213
+ | AT AT { result = :exported }
201
214
 
202
215
  # A collection statement. Currently supports no arguments at all, but eventually
203
216
  # will, I assume.
204
217
  collection: classref collectrhand LBRACE anyparams endcomma RBRACE {
218
+ @lexer.commentpop
219
+ Puppet.warning addcontext("Collection names must now be capitalized") if val[0] =~ /^[a-z]/
220
+ type = val[0].downcase
221
+ args = {:type => type}
222
+
223
+ if val[1].is_a?(AST::CollExpr)
224
+ args[:query] = val[1]
225
+ args[:query].type = type
226
+ args[:form] = args[:query].form
227
+ else
228
+ args[:form] = val[1]
229
+ end
230
+ if args[:form] == :exported and ! Puppet[:storeconfigs] and ! Puppet[:parseonly]
231
+ Puppet.warning addcontext("You cannot collect exported resources without storeconfigs being set; the collection will be ignored")
232
+ end
233
+ args[:override] = val[3]
234
+ result = ast AST::Collection, args
235
+ }
236
+ | classref collectrhand {
205
237
  if val[0] =~ /^[a-z]/
206
- Puppet.warning addcontext("Collection names must now be capitalized")
207
- end
208
- type = val[0].downcase
209
- args = {:type => type}
238
+ Puppet.warning addcontext("Collection names must now be capitalized")
239
+ end
240
+ type = val[0].downcase
241
+ args = {:type => type }
210
242
 
211
- if val[1].is_a?(AST::CollExpr)
212
- args[:query] = val[1]
213
- args[:query].type = type
214
- args[:form] = args[:query].form
215
- else
216
- args[:form] = val[1]
217
- end
218
- if args[:form] == :exported and ! Puppet[:storeconfigs] and ! Puppet[:parseonly]
219
- Puppet.warning addcontext("You cannot collect exported resources without storeconfigs being set; the collection will be ignored")
220
- end
221
- args[:override] = val[3]
222
- result = ast AST::Collection, args
223
- }
224
- | classref collectrhand {
225
- if val[0] =~ /^[a-z]/
226
- Puppet.warning addcontext("Collection names must now be capitalized")
227
- end
228
- type = val[0].downcase
229
- args = {:type => type }
230
-
231
- if val[1].is_a?(AST::CollExpr)
232
- args[:query] = val[1]
233
- args[:query].type = type
234
- args[:form] = args[:query].form
235
- else
236
- args[:form] = val[1]
237
- end
238
- if args[:form] == :exported and ! Puppet[:storeconfigs] and ! Puppet[:parseonly]
239
- Puppet.warning addcontext("You cannot collect exported resources without storeconfigs being set; the collection will be ignored")
240
- end
241
- result = ast AST::Collection, args
243
+ if val[1].is_a?(AST::CollExpr)
244
+ args[:query] = val[1]
245
+ args[:query].type = type
246
+ args[:form] = args[:query].form
247
+ else
248
+ args[:form] = val[1]
249
+ end
250
+ if args[:form] == :exported and ! Puppet[:storeconfigs] and ! Puppet[:parseonly]
251
+ Puppet.warning addcontext("You cannot collect exported resources without storeconfigs being set; the collection will be ignored")
252
+ end
253
+ result = ast AST::Collection, args
242
254
  }
243
255
 
244
256
 
245
257
  collectrhand: LCOLLECT collstatements RCOLLECT {
246
- if val[1]
247
- result = val[1]
248
- result.form = :virtual
249
- else
250
- result = :virtual
251
- end
258
+ if val[1]
259
+ result = val[1]
260
+ result.form = :virtual
261
+ else
262
+ result = :virtual
263
+ end
252
264
  }
253
- | LLCOLLECT collstatements RRCOLLECT {
265
+ | LLCOLLECT collstatements RRCOLLECT {
254
266
  if val[1]
255
- result = val[1]
256
- result.form = :exported
257
- else
258
- result = :exported
259
- end
267
+ result = val[1]
268
+ result.form = :exported
269
+ else
270
+ result = :exported
271
+ end
260
272
  }
261
273
 
262
274
  # A mini-language for handling collection comparisons. This is organized
263
275
  # to avoid the need for precedence indications.
264
276
  collstatements: nil
265
- | collstatement
266
- | collstatements colljoin collstatement {
277
+ | collstatement
278
+ | collstatements colljoin collstatement {
267
279
  result = ast AST::CollExpr, :test1 => val[0], :oper => val[1], :test2 => val[2]
268
280
  }
269
281
 
270
282
  collstatement: collexpr
271
- | LPAREN collstatements RPAREN {
283
+ | LPAREN collstatements RPAREN {
272
284
  result = val[1]
273
285
  result.parens = true
274
286
  }
275
287
 
276
288
  colljoin: AND { result=val[0][:value] }
277
- | OR { result=val[0][:value] }
289
+ | OR { result=val[0][:value] }
278
290
 
279
291
  collexpr: colllval ISEQUAL simplervalue {
280
- result = ast AST::CollExpr, :test1 => val[0], :oper => val[1][:value], :test2 => val[2]
281
- #result = ast AST::CollExpr
282
- #result.push *val
292
+ result = ast AST::CollExpr, :test1 => val[0], :oper => val[1][:value], :test2 => val[2]
293
+ #result = ast AST::CollExpr
294
+ #result.push *val
283
295
  }
284
- | colllval NOTEQUAL simplervalue {
296
+ | colllval NOTEQUAL simplervalue {
285
297
  result = ast AST::CollExpr, :test1 => val[0], :oper => val[1][:value], :test2 => val[2]
286
298
  #result = ast AST::CollExpr
287
299
  #result.push *val
288
300
  }
289
301
 
290
302
  colllval: variable
291
- | name
303
+ | name
292
304
 
293
305
  resourceinst: resourcename COLON params endcomma {
294
- result = ast AST::ResourceInstance, :children => [val[0],val[2]]
306
+ result = ast AST::ResourceInstance, :children => [val[0],val[2]]
295
307
  }
296
308
 
297
309
  resourceinstances: resourceinst
298
- | resourceinstances SEMIC resourceinst {
310
+ | resourceinstances SEMIC resourceinst {
299
311
  if val[0].instance_of?(AST::ResourceInstance)
300
- result = ast AST::ASTArray, :children => [val[0],val[2]]
301
- else
302
- val[0].push val[2]
303
- result = val[0]
304
- end
312
+ result = ast AST::ASTArray, :children => [val[0],val[2]]
313
+ else
314
+ val[0].push val[2]
315
+ result = val[0]
316
+ end
305
317
  }
306
318
 
307
319
  endsemi: # nothing
308
- | SEMIC
320
+ | SEMIC
309
321
 
310
322
  undef: UNDEF {
311
- result = ast AST::Undef, :value => :undef
323
+ result = ast AST::Undef, :value => :undef
312
324
  }
313
325
 
314
326
  name: NAME {
315
- result = ast AST::Name, :value => val[0][:value], :line => val[0][:line]
327
+ result = ast AST::Name, :value => val[0][:value], :line => val[0][:line]
316
328
  }
317
329
 
318
330
  type: CLASSREF {
319
- result = ast AST::Type, :value => val[0][:value], :line => val[0][:line]
331
+ result = ast AST::Type, :value => val[0][:value], :line => val[0][:line]
320
332
  }
321
333
 
322
334
  resourcename: quotedtext
323
- | name
324
- | type
325
- | selector
326
- | variable
327
- | array
335
+ | name
336
+ | type
337
+ | selector
338
+ | variable
339
+ | array
340
+ | hasharrayaccesses
328
341
 
329
342
  assignment: VARIABLE EQUALS expression {
330
- if val[0][:value] =~ /::/
331
- raise Puppet::ParseError, "Cannot assign to variables in other namespaces"
332
- end
333
- # this is distinct from referencing a variable
334
- variable = ast AST::Name, :value => val[0][:value], :line => val[0][:line]
335
- result = ast AST::VarDef, :name => variable, :value => val[2], :line => val[0][:line]
343
+ raise Puppet::ParseError, "Cannot assign to variables in other namespaces" if val[0][:value] =~ /::/
344
+ # this is distinct from referencing a variable
345
+ variable = ast AST::Name, :value => val[0][:value], :line => val[0][:line]
346
+ result = ast AST::VarDef, :name => variable, :value => val[2], :line => val[0][:line]
347
+ }
348
+ | hasharrayaccess EQUALS expression {
349
+ result = ast AST::VarDef, :name => val[0], :value => val[2]
336
350
  }
337
351
 
338
352
  append: VARIABLE APPENDS expression {
339
- variable = ast AST::Name, :value => val[0][:value], :line => val[0][:line]
340
- result = ast AST::VarDef, :name => variable, :value => val[2], :append => true, :line => val[0][:line]
353
+ variable = ast AST::Name, :value => val[0][:value], :line => val[0][:line]
354
+ result = ast AST::VarDef, :name => variable, :value => val[2], :append => true, :line => val[0][:line]
341
355
  }
342
356
 
343
357
  params: # nothing
344
358
  {
345
- result = ast AST::ASTArray
359
+ result = ast AST::ASTArray
346
360
  }
347
- | param { result = val[0] }
348
- | params COMMA param {
361
+ | param { result = val[0] }
362
+ | params COMMA param {
349
363
  if val[0].instance_of?(AST::ASTArray)
350
- val[0].push(val[2])
351
- result = val[0]
352
- else
353
- result = ast AST::ASTArray, :children => [val[0],val[2]]
354
- end
364
+ val[0].push(val[2])
365
+ result = val[0]
366
+ else
367
+ result = ast AST::ASTArray, :children => [val[0],val[2]]
368
+ end
355
369
  }
356
370
 
357
371
  param: NAME FARROW rvalue {
358
- result = ast AST::ResourceParam, :param => val[0][:value], :line => val[0][:line], :value => val[2]
372
+ result = ast AST::ResourceParam, :param => val[0][:value], :line => val[0][:line], :value => val[2]
359
373
  }
360
374
 
361
375
  addparam: NAME PARROW rvalue {
362
- result = ast AST::ResourceParam, :param => val[0][:value], :line => val[0][:line], :value => val[2],
363
- :add => true
376
+ result = ast AST::ResourceParam, :param => val[0][:value], :line => val[0][:line], :value => val[2],
377
+ :add => true
364
378
  }
365
379
 
366
380
  anyparam: param
367
- | addparam
381
+ | addparam
368
382
 
369
383
  anyparams: # nothing
370
384
  {
371
- result = ast AST::ASTArray
385
+ result = ast AST::ASTArray
372
386
  }
373
- | anyparam { result = val[0] }
374
- | anyparams COMMA anyparam {
387
+ | anyparam { result = val[0] }
388
+ | anyparams COMMA anyparam {
375
389
  if val[0].instance_of?(AST::ASTArray)
376
- val[0].push(val[2])
377
- result = val[0]
378
- else
379
- result = ast AST::ASTArray, :children => [val[0],val[2]]
380
- end
390
+ val[0].push(val[2])
391
+ result = val[0]
392
+ else
393
+ result = ast AST::ASTArray, :children => [val[0],val[2]]
394
+ end
381
395
  }
382
396
 
383
397
  rvalues: rvalue
384
- | rvalues comma rvalue {
398
+ | rvalues comma rvalue {
385
399
  if val[0].instance_of?(AST::ASTArray)
386
- result = val[0].push(val[2])
387
- else
388
- result = ast AST::ASTArray, :children => [val[0],val[2]]
389
- end
400
+ result = val[0].push(val[2])
401
+ else
402
+ result = ast AST::ASTArray, :children => [val[0],val[2]]
403
+ end
390
404
  }
391
405
 
392
406
  simplervalue: quotedtext
393
- | name
394
- | type
395
- | boolean
396
- | selector
397
- | variable
407
+ | name
408
+ | type
409
+ | boolean
410
+ | selector
411
+ | variable
398
412
 
399
413
  rvalue: quotedtext
400
- | name
401
- | type
402
- | boolean
403
- | selector
404
- | variable
405
- | array
406
- | resourceref
407
- | funcrvalue
408
- | undef
414
+ | name
415
+ | type
416
+ | boolean
417
+ | selector
418
+ | variable
419
+ | array
420
+ | hash
421
+ | hasharrayaccesses
422
+ | resourceref
423
+ | funcrvalue
424
+ | undef
409
425
 
410
426
  # We currently require arguments in these functions.
411
427
  funcrvalue: NAME LPAREN funcvalues RPAREN {
412
- args = aryfy(val[2])
413
- result = ast AST::Function,
414
- :name => val[0][:value], :line => val[0][:line],
415
- :arguments => args,
416
- :ftype => :rvalue
428
+ args = aryfy(val[2])
429
+ result = ast AST::Function,
430
+ :name => val[0][:value], :line => val[0][:line],
431
+ :arguments => args,
432
+ :ftype => :rvalue
417
433
  } | NAME LPAREN RPAREN {
418
- result = ast AST::Function,
419
- :name => val[0][:value], :line => val[0][:line],
420
- :arguments => AST::ASTArray.new({}),
421
- :ftype => :rvalue
434
+ result = ast AST::Function,
435
+ :name => val[0][:value], :line => val[0][:line],
436
+ :arguments => AST::ASTArray.new({}),
437
+ :ftype => :rvalue
422
438
  }
423
439
 
424
- quotedtext: DQTEXT {
425
- result = ast AST::String, :value => val[0][:value], :line => val[0][:line]
426
- } | SQTEXT {
427
- result = ast AST::FlatString, :value => val[0][:value], :line => val[0][:line]
428
- }
440
+ quotedtext: STRING { result = ast AST::String, :value => val[0][:value], :line => val[0][:line] }
441
+ | DQPRE dqrval { result = ast AST::Concat, :value => [ast(AST::String,val[0])]+val[1], :line => val[0][:line] }
442
+
443
+ dqrval: expression dqtail { result = [val[0]] + val[1] }
444
+
445
+ dqtail: DQPOST { result = [ast(AST::String,val[0])] }
446
+ | DQMID dqrval { result = [ast(AST::String,val[0])] + val[1] }
429
447
 
430
448
  boolean: BOOLEAN {
431
- result = ast AST::Boolean, :value => val[0][:value], :line => val[0][:line]
449
+ result = ast AST::Boolean, :value => val[0][:value], :line => val[0][:line]
432
450
  }
433
451
 
434
452
  resourceref: NAME LBRACK rvalues RBRACK {
435
- Puppet.warning addcontext("Deprecation notice: Resource references should now be capitalized")
436
- result = ast AST::ResourceReference, :type => val[0][:value], :line => val[0][:line], :title => val[2]
453
+ Puppet.warning addcontext("Deprecation notice: Resource references should now be capitalized")
454
+ result = ast AST::ResourceReference, :type => val[0][:value], :line => val[0][:line], :title => val[2]
437
455
  } | classref LBRACK rvalues RBRACK {
438
- result = ast AST::ResourceReference, :type => val[0], :title => val[2]
456
+ result = ast AST::ResourceReference, :type => val[0], :title => val[2]
439
457
  }
440
458
 
441
- ifstatement: IF expression LBRACE statements RBRACE else {
442
- @lexer.commentpop
443
- args = {
444
- :test => val[1],
445
- :statements => val[3]
446
- }
459
+ ifstatement_begin: IF ifstatement {
460
+ result = val[1]
461
+ }
447
462
 
448
- if val[5]
449
- args[:else] = val[5]
450
- end
463
+ ifstatement: expression LBRACE statements RBRACE else {
464
+ @lexer.commentpop
465
+ args = {
466
+ :test => val[0],
467
+ :statements => val[2]
468
+ }
451
469
 
452
- result = ast AST::IfStatement, args
470
+ args[:else] = val[4] if val[4]
471
+
472
+ result = ast AST::IfStatement, args
453
473
  }
454
- | IF expression LBRACE RBRACE else {
474
+ | expression LBRACE RBRACE else {
455
475
  @lexer.commentpop
456
476
  args = {
457
- :test => val[1],
458
- :statements => ast(AST::Nop)
459
- }
477
+ :test => val[0],
478
+ :statements => ast(AST::Nop)
479
+ }
460
480
 
461
- if val[4]
462
- args[:else] = val[4]
463
- end
481
+ args[:else] = val[3] if val[3]
464
482
 
465
- result = ast AST::IfStatement, args
483
+ result = ast AST::IfStatement, args
466
484
  }
467
485
 
468
486
  else: # nothing
469
- | ELSE LBRACE statements RBRACE {
487
+ | ELSIF ifstatement {
488
+ result = ast AST::Else, :statements => val[1]
489
+ }
490
+ | ELSE LBRACE statements RBRACE {
470
491
  @lexer.commentpop
471
492
  result = ast AST::Else, :statements => val[2]
472
493
  }
473
- | ELSE LBRACE RBRACE {
494
+ | ELSE LBRACE RBRACE {
474
495
  @lexer.commentpop
475
496
  result = ast AST::Else, :statements => ast(AST::Nop)
476
497
  }
@@ -488,199 +509,203 @@ else: # nothing
488
509
  # per operator :-(
489
510
 
490
511
  expression: rvalue
491
- | expression MATCH regex {
512
+ | expression IN rvalue {
513
+ result = ast AST::InOperator, :lval => val[0], :rval => val[2]
514
+ }
515
+ | expression MATCH regex {
492
516
  result = ast AST::MatchOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
493
517
  }
494
- | expression NOMATCH regex {
518
+ | expression NOMATCH regex {
495
519
  result = ast AST::MatchOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
496
520
  }
497
- | expression PLUS expression {
521
+ | expression PLUS expression {
498
522
  result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
499
523
  }
500
- | expression MINUS expression {
524
+ | expression MINUS expression {
501
525
  result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
502
526
  }
503
- | expression DIV expression {
527
+ | expression DIV expression {
504
528
  result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
505
529
  }
506
- | expression TIMES expression {
530
+ | expression TIMES expression {
507
531
  result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
508
532
  }
509
- | expression LSHIFT expression {
533
+ | expression LSHIFT expression {
510
534
  result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
511
535
  }
512
- | expression RSHIFT expression {
536
+ | expression RSHIFT expression {
513
537
  result = ast AST::ArithmeticOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
514
538
  }
515
- | MINUS expression =UMINUS {
539
+ | MINUS expression =UMINUS {
516
540
  result = ast AST::Minus, :value => val[1]
517
541
  }
518
- | expression NOTEQUAL expression {
542
+ | expression NOTEQUAL expression {
519
543
  result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
520
544
  }
521
- | expression ISEQUAL expression {
545
+ | expression ISEQUAL expression {
522
546
  result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
523
547
  }
524
- | expression GREATERTHAN expression {
548
+ | expression GREATERTHAN expression {
525
549
  result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
526
550
  }
527
- | expression GREATEREQUAL expression {
551
+ | expression GREATEREQUAL expression {
528
552
  result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
529
553
  }
530
- | expression LESSTHAN expression {
554
+ | expression LESSTHAN expression {
531
555
  result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
532
556
  }
533
- | expression LESSEQUAL expression {
557
+ | expression LESSEQUAL expression {
534
558
  result = ast AST::ComparisonOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
535
559
  }
536
- | NOT expression {
560
+ | NOT expression {
537
561
  result = ast AST::Not, :value => val[1]
538
562
  }
539
- | expression AND expression {
563
+ | expression AND expression {
540
564
  result = ast AST::BooleanOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
541
565
  }
542
- | expression OR expression {
566
+ | expression OR expression {
543
567
  result = ast AST::BooleanOperator, :operator => val[1][:value], :lval => val[0], :rval => val[2]
544
568
  }
545
- | LPAREN expression RPAREN {
569
+ | LPAREN expression RPAREN {
546
570
  result = val[1]
547
571
  }
548
572
 
549
573
  casestatement: CASE rvalue LBRACE caseopts RBRACE {
550
- @lexer.commentpop
551
- options = val[3]
552
- unless options.instance_of?(AST::ASTArray)
553
- options = ast AST::ASTArray, :children => [val[3]]
554
- end
555
- result = ast AST::CaseStatement, :test => val[1], :options => options
574
+ @lexer.commentpop
575
+ options = val[3]
576
+ options = ast AST::ASTArray, :children => [val[3]] unless options.instance_of?(AST::ASTArray)
577
+ result = ast AST::CaseStatement, :test => val[1], :options => options
556
578
  }
557
579
 
558
580
  caseopts: caseopt
559
- | caseopts caseopt {
581
+ | caseopts caseopt {
560
582
  if val[0].instance_of?(AST::ASTArray)
561
- val[0].push val[1]
562
- result = val[0]
563
- else
564
- result = ast AST::ASTArray, :children => [val[0], val[1]]
565
- end
583
+ val[0].push val[1]
584
+ result = val[0]
585
+ else
586
+ result = ast AST::ASTArray, :children => [val[0], val[1]]
587
+ end
566
588
  }
567
589
 
568
590
  caseopt: casevalues COLON LBRACE statements RBRACE {
569
- @lexer.commentpop
570
- result = ast AST::CaseOpt, :value => val[0], :statements => val[3]
591
+ @lexer.commentpop
592
+ result = ast AST::CaseOpt, :value => val[0], :statements => val[3]
571
593
  } | casevalues COLON LBRACE RBRACE {
572
- @lexer.commentpop
573
- result = ast(AST::CaseOpt,
574
- :value => val[0],
575
- :statements => ast(AST::ASTArray)
576
- )
594
+ @lexer.commentpop
595
+
596
+ result = ast(
597
+ AST::CaseOpt,
598
+ :value => val[0],
599
+
600
+ :statements => ast(AST::ASTArray)
601
+ )
577
602
  }
578
603
 
579
604
  casevalues: selectlhand
580
- | casevalues COMMA selectlhand {
605
+ | casevalues COMMA selectlhand {
581
606
  if val[0].instance_of?(AST::ASTArray)
582
- val[0].push(val[2])
583
- result = val[0]
584
- else
585
- result = ast AST::ASTArray, :children => [val[0],val[2]]
586
- end
607
+ val[0].push(val[2])
608
+ result = val[0]
609
+ else
610
+ result = ast AST::ASTArray, :children => [val[0],val[2]]
611
+ end
587
612
  }
588
613
 
589
614
  selector: selectlhand QMARK svalues {
590
- result = ast AST::Selector, :param => val[0], :values => val[2]
615
+ result = ast AST::Selector, :param => val[0], :values => val[2]
591
616
  }
592
617
 
593
618
  svalues: selectval
594
- | LBRACE sintvalues endcomma RBRACE {
619
+ | LBRACE sintvalues endcomma RBRACE {
595
620
  @lexer.commentpop
596
621
  result = val[1]
597
622
  }
598
623
 
599
624
  sintvalues: selectval
600
- | sintvalues comma selectval {
625
+ | sintvalues comma selectval {
601
626
  if val[0].instance_of?(AST::ASTArray)
602
- val[0].push(val[2])
603
- result = val[0]
604
- else
605
- result = ast AST::ASTArray, :children => [val[0],val[2]]
606
- end
627
+ val[0].push(val[2])
628
+ result = val[0]
629
+ else
630
+ result = ast AST::ASTArray, :children => [val[0],val[2]]
631
+ end
607
632
  }
608
633
 
609
634
  selectval: selectlhand FARROW rvalue {
610
- result = ast AST::ResourceParam, :param => val[0], :value => val[2]
635
+ result = ast AST::ResourceParam, :param => val[0], :value => val[2]
611
636
  }
612
637
 
613
638
  selectlhand: name
614
- | type
615
- | quotedtext
616
- | variable
617
- | funcrvalue
618
- | boolean
619
- | undef
620
- | DEFAULT {
639
+ | type
640
+ | quotedtext
641
+ | variable
642
+ | funcrvalue
643
+ | boolean
644
+ | undef
645
+ | DEFAULT {
621
646
  result = ast AST::Default, :value => val[0][:value], :line => val[0][:line]
622
647
  }
623
- | regex
648
+ | regex
624
649
 
625
650
  # These are only used for importing, and we don't interpolate there.
626
- qtexts: quotedtext { result = [val[0].value] }
627
- | qtexts COMMA quotedtext {
628
- results = val[0] << val[2].value
629
- }
651
+ string: STRING { result = [val[0][:value]] }
652
+ strings: string
653
+ | strings COMMA string { result = val[0] += val[2] }
630
654
 
631
- import: IMPORT qtexts {
632
- val[1].each do |file|
633
- import(file)
634
- end
655
+ import: IMPORT strings {
656
+ val[1].each do |file|
657
+ import(file)
658
+ end
635
659
 
636
- result = AST::ASTArray.new(:children => [])
660
+ result = AST::ASTArray.new(:children => [])
637
661
  }
638
662
 
639
663
  # Disable definition inheritance for now. 8/27/06, luke
640
664
  #definition: DEFINE NAME argumentlist parent LBRACE statements RBRACE {
641
665
  definition: DEFINE classname argumentlist LBRACE statements RBRACE {
642
- @lexer.commentpop
643
- newdefine classname(val[1]), :arguments => val[2], :code => val[4], :line => val[0][:line]
644
- @lexer.indefine = false
645
- result = nil
666
+ @lexer.commentpop
667
+ newdefine classname(val[1]), :arguments => val[2], :code => val[4], :line => val[0][:line]
668
+ @lexer.indefine = false
669
+ result = nil
646
670
 
647
671
  #} | DEFINE NAME argumentlist parent LBRACE RBRACE {
648
672
  } | DEFINE classname argumentlist LBRACE RBRACE {
649
- @lexer.commentpop
650
- newdefine classname(val[1]), :arguments => val[2], :line => val[0][:line]
651
- @lexer.indefine = false
652
- result = nil
673
+ @lexer.commentpop
674
+ newdefine classname(val[1]), :arguments => val[2], :line => val[0][:line]
675
+ @lexer.indefine = false
676
+ result = nil
653
677
  }
654
678
 
655
679
  #hostclass: CLASS NAME argumentlist parent LBRACE statements RBRACE {
656
- hostclass: CLASS classname classparent LBRACE statements RBRACE {
657
- @lexer.commentpop
658
- # Our class gets defined in the parent namespace, not our own.
659
- @lexer.namepop
660
- newclass classname(val[1]), :code => val[4], :parent => val[2], :line => val[0][:line]
661
- result = nil
662
- } | CLASS classname classparent LBRACE RBRACE {
663
- @lexer.commentpop
664
- # Our class gets defined in the parent namespace, not our own.
665
- @lexer.namepop
666
- newclass classname(val[1]), :parent => val[2], :line => val[0][:line]
667
- result = nil
680
+ hostclass: CLASS classname argumentlist classparent LBRACE statements RBRACE {
681
+ @lexer.commentpop
682
+ # Our class gets defined in the parent namespace, not our own.
683
+ @lexer.namepop
684
+ newclass classname(val[1]), :arguments => val[2], :parent => val[3], :code => val[5], :line => val[0][:line]
685
+ result = nil
686
+ } | CLASS classname argumentlist classparent LBRACE RBRACE {
687
+ @lexer.commentpop
688
+ # Our class gets defined in the parent namespace, not our own.
689
+ @lexer.namepop
690
+ newclass classname(val[1]), :arguments => val[2], :parent => val[3], :line => val[0][:line]
691
+ result = nil
668
692
  }
669
693
 
670
694
  nodedef: NODE hostnames nodeparent LBRACE statements RBRACE {
671
- @lexer.commentpop
672
- newnode val[1], :parent => val[2], :code => val[4], :line => val[0][:line]
673
- result = nil
695
+ @lexer.commentpop
696
+ newnode val[1], :parent => val[2], :code => val[4], :line => val[0][:line]
697
+ result = nil
674
698
  } | NODE hostnames nodeparent LBRACE RBRACE {
675
- @lexer.commentpop
676
- newnode val[1], :parent => val[2], :line => val[0][:line]
677
- result = nil
699
+ @lexer.commentpop
700
+ newnode val[1], :parent => val[2], :line => val[0][:line]
701
+ result = nil
678
702
  }
679
703
 
680
704
  classref: CLASSREF { result = val[0][:value] }
681
705
 
682
706
  classname: NAME { result = val[0][:value] }
683
- | CLASSNAME { result = val[0][:value] }
707
+ | CLASSNAME { result = val[0][:value] }
708
+ | CLASS { result = "class" }
684
709
 
685
710
  # Multiple hostnames, as used for node names. These are all literal
686
711
  # strings, not AST objects.
@@ -692,93 +717,135 @@ hostnames: nodename
692
717
  }
693
718
 
694
719
  nodename: hostname {
695
- result = ast AST::HostName, :value => val[0]
720
+ result = ast AST::HostName, :value => val[0]
696
721
  }
697
722
 
698
723
  hostname: NAME { result = val[0][:value] }
699
- | SQTEXT { result = val[0][:value] }
700
- | DQTEXT { result = val[0][:value] }
701
- | DEFAULT { result = val[0][:value] }
702
- | regex
724
+ | STRING { result = val[0][:value] }
725
+ | DEFAULT { result = val[0][:value] }
726
+ | regex
703
727
 
704
728
  nil: {
705
- result = nil
729
+ result = nil
706
730
  }
707
731
 
708
732
  nothing: {
709
- result = ast AST::ASTArray, :children => []
733
+ result = ast AST::ASTArray, :children => []
710
734
  }
711
735
 
712
736
  argumentlist: nil
713
- | LPAREN nothing RPAREN {
737
+ | LPAREN nothing RPAREN {
714
738
  result = nil
715
739
  }
716
- | LPAREN arguments RPAREN {
740
+ | LPAREN arguments RPAREN {
717
741
  result = val[1]
718
742
  result = [result] unless result[0].is_a?(Array)
719
743
  }
720
744
 
721
745
  arguments: argument
722
- | arguments COMMA argument {
746
+ | arguments COMMA argument {
723
747
  result = val[0]
724
748
  result = [result] unless result[0].is_a?(Array)
725
749
  result << val[2]
726
750
  }
727
751
 
728
752
  argument: NAME EQUALS rvalue {
729
- Puppet.warning addcontext("Deprecation notice: must now include '$' in prototype")
730
- result = [val[0][:value], val[2]]
753
+ Puppet.warning addcontext("Deprecation notice: must now include '$' in prototype")
754
+ result = [val[0][:value], val[2]]
731
755
  }
732
- | NAME {
756
+ | NAME {
733
757
  Puppet.warning addcontext("Deprecation notice: must now include '$' in prototype")
734
758
  result = [val[0][:value]]
735
759
  } | VARIABLE EQUALS rvalue {
736
- result = [val[0][:value], val[2]]
760
+ result = [val[0][:value], val[2]]
737
761
  } | VARIABLE {
738
- result = [val[0][:value]]
762
+ result = [val[0][:value]]
739
763
  }
740
764
 
741
765
  nodeparent: nil
742
- | INHERITS hostname {
766
+ | INHERITS hostname {
743
767
  result = val[1]
744
768
  }
745
769
 
746
770
  classparent: nil
747
- | INHERITS classnameordefault {
771
+ | INHERITS classnameordefault {
748
772
  result = val[1]
749
773
  }
750
774
 
751
775
  classnameordefault: classname | DEFAULT
752
776
 
753
777
  variable: VARIABLE {
754
- result = ast AST::Variable, :value => val[0][:value], :line => val[0][:line]
778
+ result = ast AST::Variable, :value => val[0][:value], :line => val[0][:line]
755
779
  }
756
780
 
757
781
  array: LBRACK rvalues RBRACK {
758
- if val[1].instance_of?(AST::ASTArray)
759
- result = val[1]
760
- else
761
- result = ast AST::ASTArray, :children => [val[1]]
762
- end
782
+ if val[1].instance_of?(AST::ASTArray)
783
+ result = val[1]
784
+ else
785
+ result = ast AST::ASTArray, :children => [val[1]]
786
+ end
763
787
  }
764
- | LBRACK rvalues COMMA RBRACK {
788
+ | LBRACK rvalues COMMA RBRACK {
765
789
  if val[1].instance_of?(AST::ASTArray)
766
- result = val[1]
767
- else
768
- result = ast AST::ASTArray, :children => [val[1]]
769
- end
790
+ result = val[1]
791
+ else
792
+ result = ast AST::ASTArray, :children => [val[1]]
793
+ end
770
794
  } | LBRACK RBRACK {
771
- result = ast AST::ASTArray
795
+ result = ast AST::ASTArray
772
796
  }
773
797
 
774
798
  comma: FARROW
775
- | COMMA
799
+ | COMMA
776
800
 
777
801
  endcomma: # nothing
778
- | COMMA { result = nil }
802
+ | COMMA { result = nil }
779
803
 
780
804
  regex: REGEX {
781
- result = ast AST::Regex, :value => val[0][:value]
805
+ result = ast AST::Regex, :value => val[0][:value]
806
+ }
807
+
808
+ hash: LBRACE hashpairs RBRACE {
809
+ if val[1].instance_of?(AST::ASTHash)
810
+ result = val[1]
811
+ else
812
+ result = ast AST::ASTHash, { :value => val[1] }
813
+ end
814
+ }
815
+ | LBRACE hashpairs COMMA RBRACE {
816
+ if val[1].instance_of?(AST::ASTHash)
817
+ result = val[1]
818
+ else
819
+ result = ast AST::ASTHash, { :value => val[1] }
820
+ end
821
+ } | LBRACE RBRACE {
822
+ result = ast AST::ASTHash
823
+ }
824
+
825
+ hashpairs: hashpair
826
+ | hashpairs COMMA hashpair {
827
+ if val[0].instance_of?(AST::ASTHash)
828
+ result = val[0].merge(val[2])
829
+ else
830
+ result = ast AST::ASTHash, :value => val[0]
831
+ result.merge(val[2])
832
+ end
833
+ }
834
+
835
+ hashpair: key FARROW rvalue {
836
+ result = ast AST::ASTHash, { :value => { val[0] => val[2] } }
837
+ }
838
+
839
+ key: NAME { result = val[0][:value] }
840
+ | quotedtext { result = val[0] }
841
+
842
+ hasharrayaccess: VARIABLE LBRACK rvalue RBRACK {
843
+ result = ast AST::HashOrArrayAccess, :variable => val[0][:value], :key => val[2]
844
+ }
845
+
846
+ hasharrayaccesses: hasharrayaccess
847
+ | hasharrayaccess LBRACK rvalue RBRACK {
848
+ result = ast AST::HashOrArrayAccess, :variable => val[0], :key => val[2]
782
849
  }
783
850
 
784
851
  end
@@ -787,17 +854,13 @@ require 'puppet'
787
854
  require 'puppet/util/loadedfile'
788
855
  require 'puppet/parser/lexer'
789
856
  require 'puppet/parser/ast'
790
- #require 'puppet/parser/interpreter'
791
857
 
792
858
  module Puppet
793
- class ParseError < Puppet::Error; end
794
- class ImportError < Racc::ParseError; end
795
- class AlreadyImportedError < ImportError; end
859
+ class ParseError < Puppet::Error; end
860
+ class ImportError < Racc::ParseError; end
861
+ class AlreadyImportedError < ImportError; end
796
862
  end
797
863
 
798
- Puppet[:typecheck] = true
799
- Puppet[:paramcheck] = true
800
-
801
864
  ---- inner ----
802
865
 
803
866
  # It got too annoying having code in a file that needs to be compiled.