puppet 0.24.9 → 0.25.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 (910) hide show
  1. data/CHANGELOG +18680 -1241
  2. data/CHANGELOG.old +1705 -0
  3. data/LICENSE +2 -2
  4. data/README +1 -1
  5. data/README.queueing +126 -0
  6. data/README.rst +4 -4
  7. data/Rakefile +62 -216
  8. data/bin/filebucket +6 -117
  9. data/bin/pi +50 -0
  10. data/bin/puppet +7 -188
  11. data/bin/puppetdoc +7 -198
  12. data/bin/ralsh +4 -191
  13. data/conf/auth.conf +94 -0
  14. data/conf/gentoo/init.d/puppetmaster +30 -30
  15. data/conf/osx/PackageInfo.plist +30 -30
  16. data/conf/osx/createpackage.sh +23 -18
  17. data/conf/osx/preflight +8 -0
  18. data/conf/puppet-queue.conf +10 -0
  19. data/conf/redhat/client.init +52 -41
  20. data/conf/redhat/logrotate +1 -0
  21. data/conf/redhat/puppet.spec +74 -36
  22. data/conf/redhat/rundir-perms.patch +28 -0
  23. data/conf/redhat/server.init +48 -43
  24. data/conf/redhat/server.sysconfig +4 -4
  25. data/conf/solaris/smf/puppetd.xml +53 -53
  26. data/conf/solaris/smf/puppetmasterd.xml +53 -53
  27. data/conf/solaris/smf/svc-puppetd +4 -4
  28. data/conf/solaris/smf/svc-puppetmasterd +3 -3
  29. data/conf/suse/client.init +4 -4
  30. data/conf/suse/puppet.spec +14 -14
  31. data/conf/suse/server.init +17 -17
  32. data/examples/etc/init.d/sleeper +8 -8
  33. data/examples/mac_dscl.pp +2 -2
  34. data/examples/mac_dscl_revert.pp +1 -1
  35. data/examples/mcx_dock_default.pp +108 -108
  36. data/examples/mcx_dock_full.pp +108 -108
  37. data/examples/mcx_nogroup.pp +108 -108
  38. data/examples/modules/sample-module/lib/puppet/parser/functions/hostname_to_dn.rb +5 -5
  39. data/examples/modules/sample-module/manifests/init.pp +2 -2
  40. data/examples/relationships +1 -1
  41. data/ext/autotest/config +6 -6
  42. data/ext/bin/sleeper +12 -12
  43. data/ext/dbfix.sql +21 -21
  44. data/ext/emacs/puppet-mode.el +42 -41
  45. data/ext/extlookup.rb +183 -0
  46. data/ext/ldap/puppet.schema +2 -1
  47. data/ext/logcheck/puppet +1 -1
  48. data/ext/module_puppet +7 -7
  49. data/ext/nagios/check_puppet.rb +83 -83
  50. data/ext/nagios/naggen +302 -0
  51. data/ext/puppet-test +61 -18
  52. data/ext/puppetlisten/puppetlisten.rb +76 -0
  53. data/ext/puppetlisten/puppetrun.rb +39 -0
  54. data/ext/puppetstoredconfigclean.rb +29 -29
  55. data/ext/rack/README +73 -0
  56. data/ext/rack/files/apache2.conf +38 -0
  57. data/ext/rack/files/config.ru +18 -0
  58. data/ext/rack/manifest.pp +59 -0
  59. data/ext/vim/syntax/puppet.vim +54 -35
  60. data/install.rb +37 -26
  61. data/lib/puppet.rb +15 -227
  62. data/lib/puppet/agent.rb +134 -0
  63. data/lib/puppet/agent/locker.rb +42 -0
  64. data/lib/puppet/agent/runner.rb +65 -0
  65. data/lib/puppet/application.rb +313 -0
  66. data/lib/puppet/application/filebucket.rb +87 -0
  67. data/lib/puppet/application/pi.rb +214 -0
  68. data/lib/puppet/application/puppet.rb +177 -0
  69. data/lib/puppet/application/puppetca.rb +71 -0
  70. data/lib/puppet/application/puppetd.rb +256 -0
  71. data/lib/puppet/application/puppetdoc.rb +222 -0
  72. data/lib/puppet/application/puppetmasterd.rb +168 -0
  73. data/lib/puppet/application/puppetqd.rb +96 -0
  74. data/lib/puppet/application/puppetrun.rb +219 -0
  75. data/lib/puppet/application/ralsh.rb +168 -0
  76. data/lib/puppet/configurer.rb +177 -0
  77. data/lib/puppet/configurer/downloader.rb +79 -0
  78. data/lib/puppet/configurer/fact_handler.rb +68 -0
  79. data/lib/puppet/configurer/plugin_handler.rb +26 -0
  80. data/lib/puppet/daemon.rb +78 -28
  81. data/lib/puppet/defaults.rb +239 -166
  82. data/lib/puppet/dsl.rb +7 -7
  83. data/lib/puppet/external/dot.rb +271 -271
  84. data/lib/puppet/external/event-loop/better-definers.rb +298 -298
  85. data/lib/puppet/external/event-loop/event-loop.rb +274 -274
  86. data/lib/puppet/external/event-loop/signal-system.rb +163 -163
  87. data/lib/puppet/external/lock.rb +1 -1
  88. data/lib/puppet/external/nagios.rb +20 -20
  89. data/lib/puppet/external/nagios/base.rb +3 -3
  90. data/lib/puppet/external/nagios/grammar.ry +185 -0
  91. data/lib/puppet/external/nagios/makefile +9 -0
  92. data/lib/puppet/external/nagios/parser.rb +1 -1
  93. data/lib/puppet/feature/json.rb +2 -0
  94. data/lib/puppet/feature/rack.rb +24 -0
  95. data/lib/puppet/feature/rails.rb +23 -33
  96. data/lib/puppet/feature/rubygems.rb +6 -0
  97. data/lib/puppet/feature/stomp.rb +6 -0
  98. data/lib/puppet/file_serving/{file_base.rb → base.rb} +10 -9
  99. data/lib/puppet/file_serving/configuration.rb +61 -61
  100. data/lib/puppet/file_serving/configuration/parser.rb +24 -29
  101. data/lib/puppet/file_serving/content.rb +26 -11
  102. data/lib/puppet/file_serving/fileset.rb +54 -19
  103. data/lib/puppet/file_serving/indirection_hooks.rb +12 -24
  104. data/lib/puppet/file_serving/metadata.rb +8 -8
  105. data/lib/puppet/file_serving/mount.rb +9 -151
  106. data/lib/puppet/file_serving/mount/file.rb +126 -0
  107. data/lib/puppet/file_serving/mount/modules.rb +25 -0
  108. data/lib/puppet/file_serving/mount/plugins.rb +27 -0
  109. data/lib/puppet/file_serving/terminus_helper.rb +9 -4
  110. data/lib/puppet/indirector.rb +6 -4
  111. data/lib/puppet/indirector/active_record.rb +28 -0
  112. data/lib/puppet/indirector/catalog/active_record.rb +36 -0
  113. data/lib/puppet/indirector/catalog/compiler.rb +50 -24
  114. data/lib/puppet/indirector/catalog/queue.rb +5 -0
  115. data/lib/puppet/indirector/catalog/rest.rb +6 -0
  116. data/lib/puppet/indirector/catalog/yaml.rb +2 -4
  117. data/lib/puppet/indirector/certificate/ca.rb +9 -0
  118. data/lib/puppet/indirector/certificate/file.rb +9 -0
  119. data/lib/puppet/indirector/certificate/rest.rb +9 -0
  120. data/lib/puppet/indirector/certificate_request/ca.rb +14 -0
  121. data/lib/puppet/indirector/certificate_request/file.rb +8 -0
  122. data/lib/puppet/indirector/certificate_request/rest.rb +9 -0
  123. data/lib/puppet/indirector/certificate_revocation_list/ca.rb +8 -0
  124. data/lib/puppet/indirector/certificate_revocation_list/file.rb +8 -0
  125. data/lib/puppet/indirector/certificate_revocation_list/rest.rb +9 -0
  126. data/lib/puppet/indirector/direct_file_server.rb +4 -8
  127. data/lib/puppet/indirector/exec.rb +2 -6
  128. data/lib/puppet/indirector/facts/active_record.rb +36 -0
  129. data/lib/puppet/indirector/facts/facter.rb +30 -22
  130. data/lib/puppet/indirector/facts/rest.rb +6 -0
  131. data/lib/puppet/indirector/file.rb +1 -0
  132. data/lib/puppet/indirector/file_content/rest.rb +0 -1
  133. data/lib/puppet/indirector/file_metadata/file.rb +2 -2
  134. data/lib/puppet/indirector/file_metadata/rest.rb +0 -1
  135. data/lib/puppet/indirector/file_server.rb +31 -18
  136. data/lib/puppet/indirector/indirection.rb +46 -33
  137. data/lib/puppet/indirector/key/ca.rb +12 -0
  138. data/lib/puppet/indirector/key/file.rb +42 -0
  139. data/lib/puppet/indirector/node/active_record.rb +13 -0
  140. data/lib/puppet/indirector/node/ldap.rb +1 -1
  141. data/lib/puppet/indirector/queue.rb +83 -0
  142. data/lib/puppet/indirector/report/processor.rb +1 -1
  143. data/lib/puppet/indirector/report/rest.rb +7 -0
  144. data/lib/puppet/indirector/request.rb +158 -15
  145. data/lib/puppet/indirector/rest.rb +74 -36
  146. data/lib/puppet/indirector/runner/rest.rb +7 -0
  147. data/lib/puppet/indirector/ssl_file.rb +174 -0
  148. data/lib/puppet/indirector/terminus.rb +4 -4
  149. data/lib/puppet/indirector/yaml.rb +1 -1
  150. data/lib/puppet/metatype/manager.rb +3 -3
  151. data/lib/puppet/module.rb +99 -124
  152. data/lib/puppet/network/authconfig.rb +57 -42
  153. data/lib/puppet/network/authstore.rb +58 -10
  154. data/lib/puppet/network/client.rb +0 -2
  155. data/lib/puppet/network/client/ca.rb +1 -1
  156. data/lib/puppet/network/client/dipper.rb +7 -2
  157. data/lib/puppet/network/format.rb +123 -0
  158. data/lib/puppet/network/format_handler.rb +156 -0
  159. data/lib/puppet/network/formats.rb +123 -0
  160. data/lib/puppet/network/handler/filebucket.rb +1 -1
  161. data/lib/puppet/network/handler/fileserver.rb +43 -35
  162. data/lib/puppet/network/handler/master.rb +4 -4
  163. data/lib/puppet/network/handler/report.rb +1 -1
  164. data/lib/puppet/network/handler/resource.rb +16 -20
  165. data/lib/puppet/network/handler/runner.rb +9 -42
  166. data/lib/puppet/network/http.rb +4 -4
  167. data/lib/puppet/network/http/api.rb +4 -0
  168. data/lib/puppet/network/http/api/v1.rb +65 -0
  169. data/lib/puppet/network/http/handler.rb +163 -56
  170. data/lib/puppet/network/http/mongrel.rb +19 -15
  171. data/lib/puppet/network/http/mongrel/rest.rb +35 -17
  172. data/lib/puppet/network/http/rack.rb +62 -0
  173. data/lib/puppet/network/http/rack/httphandler.rb +34 -0
  174. data/lib/puppet/network/http/rack/rest.rb +79 -0
  175. data/lib/puppet/network/http/rack/xmlrpc.rb +65 -0
  176. data/lib/puppet/network/http/webrick.rb +89 -16
  177. data/lib/puppet/network/http/webrick/rest.rb +24 -11
  178. data/lib/puppet/network/http_pool.rb +28 -29
  179. data/lib/puppet/network/http_server/mongrel.rb +8 -10
  180. data/lib/puppet/network/http_server/webrick.rb +1 -3
  181. data/lib/puppet/network/rest_authconfig.rb +89 -0
  182. data/lib/puppet/network/rest_authorization.rb +25 -0
  183. data/lib/puppet/network/rights.rb +230 -27
  184. data/lib/puppet/network/server.rb +133 -31
  185. data/lib/puppet/network/xmlrpc/client.rb +5 -5
  186. data/lib/puppet/network/xmlrpc/webrick_servlet.rb +6 -6
  187. data/lib/puppet/node.rb +28 -21
  188. data/lib/puppet/node/environment.rb +48 -0
  189. data/lib/puppet/node/facts.rb +21 -0
  190. data/lib/puppet/parameter.rb +291 -219
  191. data/lib/puppet/parser/ast.rb +1 -0
  192. data/lib/puppet/parser/ast/astarray.rb +5 -1
  193. data/lib/puppet/parser/ast/boolean_operator.rb +3 -3
  194. data/lib/puppet/parser/ast/caseopt.rb +10 -0
  195. data/lib/puppet/parser/ast/casestatement.rb +12 -27
  196. data/lib/puppet/parser/ast/collection.rb +31 -0
  197. data/lib/puppet/parser/ast/collexpr.rb +18 -11
  198. data/lib/puppet/parser/ast/comparison_operator.rb +1 -1
  199. data/lib/puppet/parser/ast/definition.rb +6 -2
  200. data/lib/puppet/parser/ast/function.rb +7 -2
  201. data/lib/puppet/parser/ast/ifstatement.rb +11 -6
  202. data/lib/puppet/parser/ast/leaf.rb +106 -3
  203. data/lib/puppet/parser/ast/match_operator.rb +31 -0
  204. data/lib/puppet/parser/ast/node.rb +10 -6
  205. data/lib/puppet/parser/ast/resource_defaults.rb +2 -2
  206. data/lib/puppet/parser/ast/resource_override.rb +1 -1
  207. data/lib/puppet/parser/ast/resource_reference.rb +11 -3
  208. data/lib/puppet/parser/ast/selector.rb +14 -32
  209. data/lib/puppet/parser/ast/vardef.rb +1 -1
  210. data/lib/puppet/parser/collector.rb +67 -15
  211. data/lib/puppet/parser/compiler.rb +21 -53
  212. data/lib/puppet/parser/files.rb +92 -0
  213. data/lib/puppet/parser/functions.rb +3 -3
  214. data/lib/puppet/parser/functions/defined.rb +3 -3
  215. data/lib/puppet/parser/functions/fqdn_rand.rb +3 -3
  216. data/lib/puppet/parser/functions/inline_template.rb +4 -4
  217. data/lib/puppet/parser/functions/regsubst.rb +37 -35
  218. data/lib/puppet/parser/functions/require.rb +34 -0
  219. data/lib/puppet/parser/functions/shellquote.rb +41 -0
  220. data/lib/puppet/parser/functions/split.rb +29 -0
  221. data/lib/puppet/parser/functions/sprintf.rb +6 -6
  222. data/lib/puppet/parser/functions/template.rb +4 -4
  223. data/lib/puppet/parser/functions/versioncmp.rb +22 -1
  224. data/lib/puppet/parser/grammar.ra +812 -0
  225. data/lib/puppet/parser/interpreter.rb +4 -4
  226. data/lib/puppet/parser/lexer.rb +44 -15
  227. data/lib/puppet/parser/loaded_code.rb +115 -0
  228. data/lib/puppet/parser/makefile +8 -0
  229. data/lib/puppet/parser/parser.rb +1080 -928
  230. data/lib/puppet/parser/parser_support.rb +118 -96
  231. data/lib/puppet/parser/resource.rb +56 -126
  232. data/lib/puppet/parser/resource/param.rb +2 -76
  233. data/lib/puppet/parser/resource/reference.rb +15 -8
  234. data/lib/puppet/parser/scope.rb +68 -35
  235. data/lib/puppet/parser/templatewrapper.rb +8 -8
  236. data/lib/puppet/parser/yaml_trimmer.rb +11 -0
  237. data/lib/puppet/property.rb +69 -124
  238. data/lib/puppet/property/list.rb +3 -3
  239. data/lib/puppet/provider.rb +5 -5
  240. data/lib/puppet/provider/augeas/augeas.rb +119 -118
  241. data/lib/puppet/provider/computer/computer.rb +3 -3
  242. data/lib/puppet/provider/confine/variable.rb +1 -1
  243. data/lib/puppet/provider/cron/crontab.rb +8 -7
  244. data/lib/puppet/provider/group/directoryservice.rb +2 -2
  245. data/lib/puppet/provider/group/groupadd.rb +1 -1
  246. data/lib/puppet/provider/group/ldap.rb +3 -3
  247. data/lib/puppet/provider/group/pw.rb +1 -1
  248. data/lib/puppet/provider/host/parsed.rb +3 -3
  249. data/lib/puppet/provider/ldap.rb +1 -3
  250. data/lib/puppet/provider/macauthorization/macauthorization.rb +62 -55
  251. data/lib/puppet/provider/mailalias/aliases.rb +9 -1
  252. data/lib/puppet/provider/maillist/mailman.rb +8 -4
  253. data/lib/puppet/provider/mcx/mcxcontent.rb +11 -11
  254. data/lib/puppet/provider/mount/parsed.rb +2 -2
  255. data/lib/puppet/provider/nameservice.rb +6 -6
  256. data/lib/puppet/provider/nameservice/directoryservice.rb +83 -87
  257. data/lib/puppet/provider/package/appdmg.rb +10 -9
  258. data/lib/puppet/provider/package/apple.rb +1 -3
  259. data/lib/puppet/provider/package/apt.rb +5 -5
  260. data/lib/puppet/provider/package/aptitude.rb +1 -1
  261. data/lib/puppet/provider/package/aptrpm.rb +1 -1
  262. data/lib/puppet/provider/package/darwinport.rb +1 -1
  263. data/lib/puppet/provider/package/dpkg.rb +2 -2
  264. data/lib/puppet/provider/package/fink.rb +6 -6
  265. data/lib/puppet/provider/package/freebsd.rb +1 -1
  266. data/lib/puppet/provider/package/gem.rb +2 -2
  267. data/lib/puppet/provider/package/hpux.rb +5 -5
  268. data/lib/puppet/provider/package/pkgdmg.rb +30 -22
  269. data/lib/puppet/provider/package/portage.rb +1 -1
  270. data/lib/puppet/provider/package/ports.rb +1 -1
  271. data/lib/puppet/provider/package/rpm.rb +5 -5
  272. data/lib/puppet/provider/package/rug.rb +1 -1
  273. data/lib/puppet/provider/package/sun.rb +7 -7
  274. data/lib/puppet/provider/package/up2date.rb +1 -1
  275. data/lib/puppet/provider/package/yum.rb +2 -2
  276. data/lib/puppet/provider/package/yumhelper.py +2 -2
  277. data/lib/puppet/provider/port/parsed.rb +1 -1
  278. data/lib/puppet/provider/selmodule/semodule.rb +3 -3
  279. data/lib/puppet/provider/service/base.rb +21 -12
  280. data/lib/puppet/provider/service/daemontools.rb +86 -49
  281. data/lib/puppet/provider/service/debian.rb +20 -12
  282. data/lib/puppet/provider/service/freebsd.rb +5 -5
  283. data/lib/puppet/provider/service/gentoo.rb +2 -2
  284. data/lib/puppet/provider/service/init.rb +21 -33
  285. data/lib/puppet/provider/service/launchd.rb +120 -48
  286. data/lib/puppet/provider/service/redhat.rb +12 -21
  287. data/lib/puppet/provider/service/runit.rb +19 -9
  288. data/lib/puppet/provider/service/smf.rb +49 -34
  289. data/lib/puppet/provider/ssh_authorized_key/parsed.rb +34 -0
  290. data/lib/puppet/provider/sshkey/parsed.rb +2 -2
  291. data/lib/puppet/provider/user/directoryservice.rb +12 -29
  292. data/lib/puppet/provider/user/hpux.rb +3 -3
  293. data/lib/puppet/provider/user/ldap.rb +2 -2
  294. data/lib/puppet/provider/zfs/solaris.rb +1 -1
  295. data/lib/puppet/provider/zone/solaris.rb +4 -4
  296. data/lib/puppet/provider/zpool/solaris.rb +3 -3
  297. data/lib/puppet/rails.rb +9 -9
  298. data/lib/puppet/rails/benchmark.rb +69 -0
  299. data/lib/puppet/rails/database/001_add_created_at_to_all_tables.rb +5 -5
  300. data/lib/puppet/rails/database/002_remove_duplicated_index_on_all_tables.rb +2 -2
  301. data/lib/puppet/rails/database/003_add_environment_to_host.rb +1 -1
  302. data/lib/puppet/rails/database/schema.rb +8 -8
  303. data/lib/puppet/rails/fact_value.rb +1 -1
  304. data/lib/puppet/rails/host.rb +211 -93
  305. data/lib/puppet/rails/param_name.rb +5 -1
  306. data/lib/puppet/rails/param_value.rb +29 -2
  307. data/lib/puppet/rails/puppet_tag.rb +5 -0
  308. data/lib/puppet/rails/resource.rb +120 -20
  309. data/lib/puppet/rails/resource_tag.rb +1 -1
  310. data/lib/puppet/rails/source_file.rb +1 -1
  311. data/lib/puppet/reference/configuration.rb +14 -14
  312. data/lib/puppet/reference/function.rb +1 -1
  313. data/lib/puppet/reference/metaparameter.rb +48 -0
  314. data/lib/puppet/reference/providers.rb +6 -6
  315. data/lib/puppet/reference/type.rb +1 -37
  316. data/lib/puppet/relationship.rb +57 -30
  317. data/lib/puppet/reports/rrdgraph.rb +4 -4
  318. data/lib/puppet/reports/store.rb +3 -3
  319. data/lib/puppet/reports/tagmail.rb +15 -15
  320. data/lib/puppet/resource.rb +265 -0
  321. data/lib/puppet/{node → resource}/catalog.rb +188 -112
  322. data/lib/puppet/{resource_reference.rb → resource/reference.rb} +46 -24
  323. data/lib/puppet/simple_graph.rb +165 -27
  324. data/lib/puppet/ssl.rb +7 -0
  325. data/lib/puppet/ssl/base.rb +62 -0
  326. data/lib/puppet/ssl/certificate.rb +34 -0
  327. data/lib/puppet/ssl/certificate_authority.rb +298 -0
  328. data/lib/puppet/ssl/certificate_authority/interface.rb +118 -0
  329. data/lib/puppet/ssl/certificate_factory.rb +145 -0
  330. data/lib/puppet/ssl/certificate_request.rb +51 -0
  331. data/lib/puppet/ssl/certificate_revocation_list.rb +86 -0
  332. data/lib/puppet/ssl/host.rb +271 -0
  333. data/lib/puppet/ssl/inventory.rb +52 -0
  334. data/lib/puppet/ssl/key.rb +56 -0
  335. data/lib/puppet/sslcertificates.rb +6 -6
  336. data/lib/puppet/sslcertificates/ca.rb +15 -15
  337. data/lib/puppet/sslcertificates/certificate.rb +4 -4
  338. data/lib/puppet/sslcertificates/inventory.rb +3 -3
  339. data/lib/puppet/transaction.rb +113 -139
  340. data/lib/puppet/transaction/change.rb +6 -6
  341. data/lib/puppet/transaction/event.rb +1 -1
  342. data/lib/puppet/transaction/report.rb +7 -1
  343. data/lib/puppet/transportable.rb +28 -28
  344. data/lib/puppet/type.rb +263 -688
  345. data/lib/puppet/type/augeas.rb +3 -2
  346. data/lib/puppet/type/component.rb +28 -95
  347. data/lib/puppet/type/computer.rb +10 -10
  348. data/lib/puppet/type/cron.rb +19 -14
  349. data/lib/puppet/type/exec.rb +21 -20
  350. data/lib/puppet/type/file.rb +306 -633
  351. data/lib/puppet/type/file/checksum.rb +10 -11
  352. data/lib/puppet/type/file/content.rb +83 -22
  353. data/lib/puppet/type/file/ensure.rb +15 -9
  354. data/lib/puppet/type/file/group.rb +7 -1
  355. data/lib/puppet/type/file/mode.rb +1 -1
  356. data/lib/puppet/type/file/owner.rb +9 -3
  357. data/lib/puppet/type/file/selcontext.rb +4 -4
  358. data/lib/puppet/type/file/source.rb +78 -179
  359. data/lib/puppet/type/file/target.rb +3 -3
  360. data/lib/puppet/type/file/type.rb +2 -2
  361. data/lib/puppet/type/filebucket.rb +33 -54
  362. data/lib/puppet/type/group.rb +8 -8
  363. data/lib/puppet/type/host.rb +7 -7
  364. data/lib/puppet/type/k5login.rb +2 -2
  365. data/lib/puppet/type/macauthorization.rb +77 -52
  366. data/lib/puppet/type/mailalias.rb +2 -2
  367. data/lib/puppet/type/maillist.rb +2 -2
  368. data/lib/puppet/type/mcx.rb +3 -3
  369. data/lib/puppet/type/mount.rb +16 -11
  370. data/lib/puppet/type/notify.rb +4 -4
  371. data/lib/puppet/type/package.rb +6 -28
  372. data/lib/puppet/type/port.rb +1 -1
  373. data/lib/puppet/type/resources.rb +19 -19
  374. data/lib/puppet/type/schedule.rb +18 -20
  375. data/lib/puppet/type/selmodule.rb +1 -1
  376. data/lib/puppet/type/service.rb +11 -7
  377. data/lib/puppet/type/ssh_authorized_key.rb +26 -9
  378. data/lib/puppet/type/sshkey.rb +2 -2
  379. data/lib/puppet/type/tidy.rb +285 -289
  380. data/lib/puppet/type/user.rb +9 -7
  381. data/lib/puppet/type/yumrepo.rb +17 -16
  382. data/lib/puppet/type/zone.rb +8 -7
  383. data/lib/puppet/util.rb +11 -36
  384. data/lib/puppet/util/autoload.rb +31 -19
  385. data/lib/puppet/util/autoload/file_cache.rb +115 -0
  386. data/lib/puppet/util/backups.rb +86 -0
  387. data/lib/puppet/util/cacher.rb +135 -0
  388. data/lib/puppet/util/checksums.rb +11 -1
  389. data/lib/puppet/util/classgen.rb +1 -1
  390. data/lib/puppet/util/config_store.rb +2 -2
  391. data/lib/puppet/util/constant_inflector.rb +1 -1
  392. data/lib/puppet/util/diff.rb +2 -2
  393. data/lib/puppet/util/docs.rb +9 -3
  394. data/lib/puppet/util/execution.rb +1 -1
  395. data/lib/puppet/util/feature.rb +27 -20
  396. data/lib/puppet/util/fileparsing.rb +3 -3
  397. data/lib/puppet/util/filetype.rb +8 -6
  398. data/lib/puppet/util/graph.rb +5 -5
  399. data/lib/puppet/util/inifile.rb +5 -5
  400. data/lib/puppet/util/json.rb +13 -0
  401. data/lib/puppet/util/ldap/connection.rb +2 -2
  402. data/lib/puppet/util/log.rb +48 -31
  403. data/lib/puppet/util/metric.rb +4 -4
  404. data/lib/puppet/util/monkey_patches.rb +43 -0
  405. data/lib/puppet/util/nagios_maker.rb +1 -1
  406. data/lib/puppet/util/package.rb +4 -4
  407. data/lib/puppet/util/pidlock.rb +59 -59
  408. data/lib/puppet/util/posix.rb +13 -52
  409. data/lib/puppet/util/provider_features.rb +3 -3
  410. data/lib/puppet/util/queue.rb +96 -0
  411. data/lib/puppet/util/queue/stomp.rb +47 -0
  412. data/lib/puppet/util/rails/cache_accumulator.rb +65 -0
  413. data/lib/puppet/util/rails/collection_merger.rb +0 -39
  414. data/lib/puppet/util/rails/reference_serializer.rb +17 -3
  415. data/lib/puppet/util/rdoc.rb +1 -0
  416. data/lib/puppet/util/rdoc/code_objects.rb +5 -1
  417. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +5 -5
  418. data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +13 -13
  419. data/lib/puppet/util/rdoc/parser.rb +28 -32
  420. data/lib/puppet/util/reference.rb +29 -8
  421. data/lib/puppet/util/resource_template.rb +1 -1
  422. data/lib/puppet/util/selinux.rb +12 -6
  423. data/lib/puppet/util/settings.rb +203 -578
  424. data/lib/puppet/util/settings/boolean_setting.rb +33 -0
  425. data/lib/puppet/util/settings/file_setting.rb +119 -0
  426. data/lib/puppet/util/settings/setting.rb +110 -0
  427. data/lib/puppet/util/subclass_loader.rb +1 -1
  428. data/lib/puppet/util/suidmanager.rb +2 -2
  429. data/lib/puppet/util/tagging.rb +1 -1
  430. data/lib/puppet/util/warnings.rb +17 -9
  431. data/man/man8/filebucket.8 +2 -2
  432. data/man/man8/pi.8 +2 -2
  433. data/man/man8/puppet.8 +3 -4
  434. data/man/man8/puppet.conf.8 +63 -63
  435. data/man/man8/puppetca.8 +2 -2
  436. data/man/man8/puppetd.8 +2 -2
  437. data/man/man8/puppetdoc.8 +2 -2
  438. data/man/man8/puppetmasterd.8 +2 -2
  439. data/man/man8/puppetrun.8 +2 -2
  440. data/man/man8/ralsh.8 +3 -3
  441. data/sbin/puppetca +102 -0
  442. data/sbin/puppetd +159 -0
  443. data/sbin/puppetmasterd +66 -0
  444. data/sbin/puppetqd +53 -0
  445. data/sbin/puppetrun +130 -0
  446. data/spec/Rakefile +2 -2
  447. data/spec/integration/application/puppet.rb +33 -0
  448. data/spec/integration/bin/puppetmasterd.rb +110 -0
  449. data/spec/integration/configurer.rb +18 -0
  450. data/spec/integration/defaults.rb +158 -7
  451. data/spec/integration/file_serving/content.rb +2 -0
  452. data/spec/integration/file_serving/fileset.rb +14 -0
  453. data/spec/integration/file_serving/metadata.rb +2 -0
  454. data/spec/integration/file_serving/terminus_helper.rb +22 -0
  455. data/spec/integration/indirector/catalog/compiler.rb +67 -0
  456. data/spec/integration/indirector/catalog/queue.rb +61 -0
  457. data/spec/integration/indirector/certificate/rest.rb +69 -0
  458. data/spec/integration/indirector/certificate_request/rest.rb +89 -0
  459. data/spec/integration/indirector/certificate_revocation_list/rest.rb +77 -0
  460. data/spec/integration/indirector/direct_file_server.rb +16 -23
  461. data/spec/integration/indirector/file_content/file_server.rb +75 -0
  462. data/spec/integration/indirector/report/rest.rb +95 -0
  463. data/spec/integration/indirector/rest.rb +207 -147
  464. data/spec/integration/network/client.rb +19 -0
  465. data/spec/integration/network/formats.rb +110 -0
  466. data/spec/integration/network/handler.rb +25 -0
  467. data/spec/integration/network/server/mongrel.rb +26 -8
  468. data/spec/integration/network/server/webrick.rb +49 -11
  469. data/spec/integration/node/environment.rb +58 -0
  470. data/spec/integration/node/facts.rb +4 -2
  471. data/spec/integration/parser/compiler.rb +29 -0
  472. data/spec/integration/parser/functions/require.rb +67 -0
  473. data/spec/integration/provider/mailalias/aliases.rb +25 -0
  474. data/spec/integration/{node → resource}/catalog.rb +17 -10
  475. data/spec/integration/ssl/certificate_authority.rb +135 -0
  476. data/spec/integration/ssl/certificate_request.rb +59 -0
  477. data/spec/integration/ssl/certificate_revocation_list.rb +42 -0
  478. data/spec/integration/ssl/host.rb +90 -0
  479. data/spec/integration/transaction.rb +66 -0
  480. data/spec/integration/transaction/report.rb +2 -5
  481. data/spec/integration/type.rb +22 -0
  482. data/spec/integration/type/file.rb +458 -0
  483. data/spec/integration/type/package.rb +1 -1
  484. data/spec/integration/type/tidy.rb +27 -0
  485. data/spec/integration/util/autoload.rb +114 -0
  486. data/spec/integration/util/feature.rb +54 -0
  487. data/spec/integration/util/file_locking.rb +2 -1
  488. data/spec/integration/util/settings.rb +27 -0
  489. data/spec/lib/puppet_spec/files.rb +9 -0
  490. data/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb +1 -0
  491. data/spec/monkey_patches/alias_should_to_must.rb +1 -0
  492. data/spec/shared_behaviours/file_server_terminus.rb +14 -11
  493. data/spec/shared_behaviours/file_serving.rb +13 -17
  494. data/spec/spec_helper.rb +22 -5
  495. data/spec/unit/agent.rb +259 -0
  496. data/spec/unit/agent/locker.rb +100 -0
  497. data/spec/unit/agent/runner.rb +118 -0
  498. data/spec/unit/application.rb +420 -0
  499. data/spec/unit/application/filebucket.rb +220 -0
  500. data/spec/unit/application/pi.rb +84 -0
  501. data/spec/unit/application/puppet.rb +404 -0
  502. data/spec/unit/application/puppetca.rb +142 -0
  503. data/spec/unit/application/puppetd.rb +502 -0
  504. data/spec/unit/application/puppetdoc.rb +345 -0
  505. data/spec/unit/application/puppetmasterd.rb +456 -0
  506. data/spec/unit/application/puppetqd.rb +186 -0
  507. data/spec/unit/application/puppetrun.rb +279 -0
  508. data/spec/unit/application/ralsh.rb +237 -0
  509. data/spec/unit/configurer.rb +232 -0
  510. data/spec/unit/configurer/downloader.rb +188 -0
  511. data/spec/unit/configurer/fact_handler.rb +150 -0
  512. data/spec/unit/configurer/plugin_handler.rb +112 -0
  513. data/spec/unit/daemon.rb +287 -0
  514. data/spec/unit/file_serving/{file_base.rb → base.rb} +39 -31
  515. data/spec/unit/file_serving/configuration.rb +104 -93
  516. data/spec/unit/file_serving/configuration/parser.rb +64 -18
  517. data/spec/unit/file_serving/content.rb +65 -26
  518. data/spec/unit/file_serving/fileset.rb +116 -14
  519. data/spec/unit/file_serving/indirection_hooks.rb +34 -95
  520. data/spec/unit/file_serving/metadata.rb +27 -40
  521. data/spec/unit/file_serving/mount.rb +7 -118
  522. data/spec/unit/file_serving/mount/file.rb +188 -0
  523. data/spec/unit/file_serving/mount/modules.rb +63 -0
  524. data/spec/unit/file_serving/mount/plugins.rb +61 -0
  525. data/spec/unit/file_serving/terminus_helper.rb +39 -27
  526. data/spec/unit/indirector.rb +6 -1
  527. data/spec/unit/indirector/active_record.rb +76 -0
  528. data/spec/unit/indirector/catalog/active_record.rb +122 -0
  529. data/spec/unit/indirector/catalog/compiler.rb +222 -118
  530. data/spec/unit/indirector/catalog/queue.rb +20 -0
  531. data/spec/unit/indirector/catalog/rest.rb +11 -0
  532. data/spec/unit/indirector/catalog/yaml.rb +6 -6
  533. data/spec/unit/indirector/certificate/ca.rb +28 -0
  534. data/spec/unit/indirector/certificate/file.rb +28 -0
  535. data/spec/unit/indirector/certificate/rest.rb +23 -0
  536. data/spec/unit/indirector/certificate_request/ca.rb +19 -0
  537. data/spec/unit/indirector/certificate_request/file.rb +19 -0
  538. data/spec/unit/indirector/certificate_request/rest.rb +23 -0
  539. data/spec/unit/indirector/certificate_revocation_list/ca.rb +21 -0
  540. data/spec/unit/indirector/certificate_revocation_list/file.rb +20 -0
  541. data/spec/unit/indirector/certificate_revocation_list/rest.rb +23 -0
  542. data/spec/unit/indirector/direct_file_server.rb +3 -8
  543. data/spec/unit/indirector/exec.rb +6 -1
  544. data/spec/unit/indirector/facts/active_record.rb +104 -0
  545. data/spec/unit/indirector/facts/facter.rb +53 -12
  546. data/spec/unit/indirector/facts/rest.rb +11 -0
  547. data/spec/unit/indirector/file.rb +8 -1
  548. data/spec/unit/indirector/file_metadata/file.rb +5 -5
  549. data/spec/unit/indirector/file_server.rb +181 -98
  550. data/spec/unit/indirector/indirection.rb +102 -38
  551. data/spec/unit/indirector/key/ca.rb +28 -0
  552. data/spec/unit/indirector/key/file.rb +104 -0
  553. data/spec/unit/indirector/node/active_record.rb +34 -0
  554. data/spec/unit/indirector/node/ldap.rb +1 -1
  555. data/spec/unit/indirector/node/rest.rb +2 -2
  556. data/spec/unit/indirector/queue.rb +123 -0
  557. data/spec/unit/indirector/report/rest.rb +28 -0
  558. data/spec/unit/indirector/request.rb +221 -0
  559. data/spec/unit/indirector/rest.rb +343 -334
  560. data/spec/unit/indirector/runner/rest.rb +11 -0
  561. data/spec/unit/indirector/ssl_file.rb +280 -0
  562. data/spec/unit/module.rb +180 -180
  563. data/spec/unit/network/authconfig.rb +292 -0
  564. data/spec/unit/network/authstore.rb +94 -0
  565. data/spec/unit/network/client.rb +2 -2
  566. data/spec/unit/network/client/dipper.rb +16 -0
  567. data/spec/unit/network/format.rb +191 -0
  568. data/spec/unit/network/format_handler.rb +306 -0
  569. data/spec/unit/network/formats.rb +249 -0
  570. data/spec/unit/network/handler/fileserver.rb +2 -5
  571. data/spec/unit/network/http.rb +3 -3
  572. data/spec/unit/network/http/api/v1.rb +122 -0
  573. data/spec/unit/network/http/handler.rb +448 -0
  574. data/spec/unit/network/http/mongrel.rb +46 -32
  575. data/spec/unit/network/http/mongrel/rest.rb +174 -319
  576. data/spec/unit/network/http/rack.rb +102 -0
  577. data/spec/unit/network/http/rack/rest.rb +199 -0
  578. data/spec/unit/network/http/rack/xmlrpc.rb +157 -0
  579. data/spec/unit/network/http/webrick.rb +249 -37
  580. data/spec/unit/network/http/webrick/rest.rb +113 -279
  581. data/spec/unit/network/http_pool.rb +86 -110
  582. data/spec/unit/network/rest_authconfig.rb +146 -0
  583. data/spec/unit/network/rest_authorization.rb +43 -0
  584. data/spec/unit/network/rights.rb +519 -0
  585. data/spec/unit/network/server.rb +475 -257
  586. data/spec/unit/node.rb +43 -10
  587. data/spec/unit/node/environment.rb +143 -9
  588. data/spec/unit/node/facts.rb +77 -24
  589. data/spec/unit/other/selinux.rb +85 -0
  590. data/spec/unit/other/transbucket.rb +29 -13
  591. data/spec/unit/other/transobject.rb +35 -15
  592. data/spec/unit/parameter.rb +378 -5
  593. data/spec/unit/parser/ast.rb +1 -1
  594. data/spec/unit/parser/ast/arithmetic_operator.rb +17 -17
  595. data/spec/unit/parser/ast/astarray.rb +16 -10
  596. data/spec/unit/parser/ast/boolean_operator.rb +2 -2
  597. data/spec/unit/parser/ast/casestatement.rb +143 -0
  598. data/spec/unit/parser/ast/collection.rb +63 -0
  599. data/spec/unit/parser/ast/collexpr.rb +31 -8
  600. data/spec/unit/parser/ast/comparison_operator.rb +9 -9
  601. data/spec/unit/parser/ast/definition.rb +18 -0
  602. data/spec/unit/parser/ast/function.rb +6 -0
  603. data/spec/unit/parser/ast/ifstatement.rb +75 -0
  604. data/spec/unit/parser/ast/leaf.rb +261 -0
  605. data/spec/unit/parser/ast/match_operator.rb +50 -0
  606. data/spec/unit/parser/ast/minus.rb +1 -1
  607. data/spec/unit/parser/ast/node.rb +20 -0
  608. data/spec/unit/parser/ast/not.rb +1 -1
  609. data/spec/unit/parser/ast/resource_override.rb +5 -5
  610. data/spec/unit/parser/ast/resource_reference.rb +11 -5
  611. data/spec/unit/parser/ast/selector.rb +156 -0
  612. data/spec/unit/parser/ast/vardef.rb +11 -11
  613. data/spec/unit/parser/collector.rb +167 -48
  614. data/spec/unit/parser/compiler.rb +128 -104
  615. data/spec/unit/parser/files.rb +190 -0
  616. data/spec/unit/parser/functions/inline_template.rb +0 -0
  617. data/spec/unit/parser/functions/regsubst.rb +42 -42
  618. data/spec/unit/parser/functions/require.rb +36 -0
  619. data/spec/unit/parser/functions/shellquote.rb +92 -0
  620. data/spec/unit/parser/functions/split.rb +51 -0
  621. data/spec/unit/parser/functions/sprintf.rb +11 -11
  622. data/spec/unit/parser/functions/template.rb +0 -0
  623. data/spec/unit/parser/functions/versioncmp.rb +2 -2
  624. data/spec/unit/parser/interpreter.rb +16 -7
  625. data/spec/unit/parser/lexer.rb +72 -12
  626. data/spec/unit/parser/loaded_code.rb +198 -0
  627. data/spec/unit/parser/parser.rb +215 -28
  628. data/spec/unit/parser/resource.rb +131 -22
  629. data/spec/unit/parser/scope.rb +207 -12
  630. data/spec/unit/parser/templatewrapper.rb +8 -3
  631. data/spec/unit/property.rb +270 -16
  632. data/spec/unit/property/list.rb +12 -6
  633. data/spec/unit/provider.rb +31 -0
  634. data/spec/unit/provider/augeas/augeas.rb +61 -33
  635. data/spec/unit/provider/macauthorization.rb +29 -29
  636. data/spec/unit/provider/mcx/mcxcontent.rb +4 -4
  637. data/spec/unit/provider/mount/parsed.rb +5 -8
  638. data/spec/unit/provider/naginator.rb +0 -0
  639. data/spec/unit/provider/package/apt.rb +6 -6
  640. data/spec/unit/provider/package/pkgdmg.rb +73 -0
  641. data/spec/unit/provider/selboolean.rb +1 -1
  642. data/spec/unit/provider/selmodule.rb +2 -2
  643. data/spec/unit/provider/service/daemontools.rb +40 -15
  644. data/spec/unit/provider/service/debian.rb +89 -0
  645. data/spec/unit/provider/service/init.rb +106 -0
  646. data/spec/unit/provider/service/launchd.rb +71 -13
  647. data/spec/unit/provider/service/redhat.rb +94 -0
  648. data/spec/unit/provider/service/runit.rb +14 -2
  649. data/spec/unit/provider/ssh_authorized_key/parsed.rb +66 -2
  650. data/spec/unit/provider/user/ldap.rb +1 -1
  651. data/spec/unit/provider/user/user_role_add.rb +1 -1
  652. data/spec/unit/provider/zfs/solaris.rb +18 -6
  653. data/spec/unit/provider/zone/solaris.rb +1 -1
  654. data/spec/unit/rails.rb +16 -22
  655. data/spec/unit/rails/host.rb +163 -0
  656. data/spec/unit/rails/param_value.rb +49 -0
  657. data/spec/unit/rails/resource.rb +87 -0
  658. data/spec/unit/relationship.rb +141 -29
  659. data/spec/unit/resource.rb +504 -0
  660. data/spec/unit/resource/catalog.rb +1061 -0
  661. data/spec/unit/resource/reference.rb +111 -0
  662. data/spec/unit/simple_graph.rb +448 -191
  663. data/spec/unit/ssl/certificate.rb +124 -0
  664. data/spec/unit/ssl/certificate_authority.rb +741 -0
  665. data/spec/unit/ssl/certificate_authority/interface.rb +269 -0
  666. data/spec/unit/ssl/certificate_factory.rb +107 -0
  667. data/spec/unit/ssl/certificate_request.rb +193 -0
  668. data/spec/unit/ssl/certificate_revocation_list.rb +180 -0
  669. data/spec/unit/ssl/host.rb +704 -0
  670. data/spec/unit/ssl/inventory.rb +180 -0
  671. data/spec/unit/ssl/key.rb +198 -0
  672. data/spec/unit/transaction.rb +65 -2
  673. data/spec/unit/transaction/change.rb +1 -1
  674. data/spec/unit/transaction/report.rb +1 -1
  675. data/spec/unit/type.rb +361 -8
  676. data/spec/unit/type/augeas.rb +30 -37
  677. data/spec/unit/type/component.rb +63 -0
  678. data/spec/unit/type/computer.rb +17 -21
  679. data/spec/unit/type/exec.rb +27 -2
  680. data/spec/unit/type/file.rb +704 -83
  681. data/spec/unit/type/file/content.rb +253 -15
  682. data/spec/unit/type/file/ensure.rb +65 -2
  683. data/spec/unit/type/file/group.rb +5 -0
  684. data/spec/unit/type/file/owner.rb +5 -0
  685. data/spec/unit/type/file/selinux.rb +12 -16
  686. data/spec/unit/type/file/source.rb +264 -0
  687. data/spec/unit/type/filebucket.rb +74 -0
  688. data/spec/unit/type/group.rb +1 -5
  689. data/spec/unit/type/macauthorization.rb +59 -26
  690. data/spec/unit/type/mcx.rb +8 -16
  691. data/spec/unit/type/mount.rb +8 -16
  692. data/spec/unit/type/noop_metaparam.rb +0 -2
  693. data/spec/unit/type/package.rb +13 -23
  694. data/spec/unit/type/resources.rb +4 -7
  695. data/spec/unit/type/schedule.rb +1 -7
  696. data/spec/unit/type/selboolean.rb +4 -6
  697. data/spec/unit/type/service.rb +23 -33
  698. data/spec/unit/type/ssh_authorized_key.rb +25 -14
  699. data/spec/unit/type/tidy.rb +329 -21
  700. data/spec/unit/type/user.rb +18 -10
  701. data/spec/unit/type/zfs.rb +6 -6
  702. data/spec/unit/util/autoload.rb +94 -3
  703. data/spec/unit/util/autoload/file_cache.rb +183 -0
  704. data/spec/unit/util/backups.rb +159 -0
  705. data/spec/unit/util/cache_accumulator.rb +69 -0
  706. data/spec/unit/util/cacher.rb +185 -0
  707. data/spec/unit/util/checksums.rb +9 -1
  708. data/spec/unit/util/feature.rb +72 -0
  709. data/spec/unit/util/filetype.rb +1 -11
  710. data/spec/unit/util/json.rb +21 -0
  711. data/spec/unit/util/log.rb +45 -0
  712. data/spec/unit/util/package.rb +2 -2
  713. data/spec/unit/util/queue.rb +88 -0
  714. data/spec/unit/util/queue/stomp.rb +140 -0
  715. data/spec/unit/util/reference_serializer.rb +52 -0
  716. data/spec/unit/util/selinux.rb +5 -3
  717. data/spec/unit/util/settings.rb +413 -264
  718. data/spec/unit/util/settings/file_setting.rb +223 -0
  719. data/spec/unit/util/storage.rb +11 -11
  720. data/spec/unit/util/warnings.rb +21 -17
  721. data/test/Rakefile +6 -5
  722. data/test/certmgr/ca.rb +5 -5
  723. data/test/certmgr/certmgr.rb +4 -4
  724. data/test/data/providers/cron/crontab.allthree +2 -2
  725. data/test/data/providers/cron/crontab.envNcomment +1 -1
  726. data/test/data/providers/cron/crontab.envNname +1 -1
  727. data/test/data/providers/cron/crontab.multirecords +1 -1
  728. data/test/data/providers/cron/crontab_collections.yaml +14 -14
  729. data/test/data/providers/cron/crontab_multiple_with_env.yaml +6 -6
  730. data/test/data/providers/cron/crontab_sample_records.yaml +102 -102
  731. data/test/data/providers/mailalias/aliases/test1 +28 -0
  732. data/test/data/providers/package/testpackages.yaml +6 -6
  733. data/test/data/reports/1.yaml +17 -17
  734. data/test/data/reports/tagmail_passers.conf +2 -2
  735. data/test/data/snippets/append.pp +5 -5
  736. data/test/data/snippets/casestatement.pp +9 -2
  737. data/test/data/snippets/classincludes.pp +1 -1
  738. data/test/data/snippets/collection_override.pp +8 -0
  739. data/test/data/snippets/fqparents.pp +2 -2
  740. data/test/data/snippets/ifexpression.pp +12 -0
  741. data/test/data/snippets/multilinecomments.pp +5 -1
  742. data/test/data/snippets/selectorvalues.pp +7 -0
  743. data/test/data/types/hosts/1 +1 -1
  744. data/test/data/types/hosts/2 +3 -3
  745. data/test/data/types/hosts/solaris +2 -2
  746. data/test/data/types/mount/freebsd.fstab +7 -7
  747. data/test/data/types/mount/solaris.fstab +10 -10
  748. data/test/data/types/port/1 +472 -472
  749. data/test/data/types/port/darwin +4347 -4347
  750. data/test/language/ast.rb +3 -2
  751. data/test/language/ast/casestatement.rb +12 -12
  752. data/test/language/ast/resource.rb +4 -4
  753. data/test/language/ast/resource_reference.rb +5 -5
  754. data/test/language/ast/selector.rb +11 -11
  755. data/test/language/ast/variable.rb +4 -4
  756. data/test/language/functions.rb +16 -16
  757. data/test/language/parser.rb +89 -111
  758. data/test/language/resource.rb +3 -88
  759. data/test/language/scope.rb +14 -55
  760. data/test/language/snippets.rb +31 -31
  761. data/test/lib/puppettest.rb +12 -12
  762. data/test/lib/puppettest/certificates.rb +2 -2
  763. data/test/lib/puppettest/exetest.rb +0 -1
  764. data/test/lib/puppettest/fakes.rb +1 -1
  765. data/test/lib/puppettest/parsertesting.rb +9 -4
  766. data/test/lib/puppettest/railstesting.rb +3 -3
  767. data/test/lib/puppettest/servertest.rb +1 -1
  768. data/test/lib/puppettest/support/assertions.rb +2 -2
  769. data/test/lib/puppettest/support/collection.rb +1 -1
  770. data/test/lib/puppettest/support/resources.rb +7 -7
  771. data/test/lib/puppettest/support/utils.rb +10 -16
  772. data/test/lib/puppettest/testcase.rb +2 -1
  773. data/test/network/authconfig.rb +1 -1
  774. data/test/network/authorization.rb +1 -1
  775. data/test/network/authstore.rb +57 -14
  776. data/test/network/client/ca.rb +1 -0
  777. data/test/network/client/resource.rb +12 -50
  778. data/test/network/client_request.rb +1 -1
  779. data/test/network/handler/bucket.rb +2 -2
  780. data/test/network/handler/fileserver.rb +17 -21
  781. data/test/network/handler/master.rb +5 -5
  782. data/test/network/handler/report.rb +3 -3
  783. data/test/network/handler/resource.rb +29 -75
  784. data/test/network/handler/runner.rb +8 -58
  785. data/test/network/rights.rb +1 -1
  786. data/test/network/server/mongrel_test.rb +15 -1
  787. data/test/network/server/webrick.rb +0 -36
  788. data/test/network/xmlrpc/webrick_servlet.rb +5 -5
  789. data/test/other/dsl.rb +3 -3
  790. data/test/other/events.rb +15 -15
  791. data/test/other/puppet.rb +2 -32
  792. data/test/other/relationships.rb +21 -148
  793. data/test/other/report.rb +20 -23
  794. data/test/other/transactions.rb +110 -298
  795. data/test/puppet/defaults.rb +1 -1
  796. data/test/puppet/tc_suidmanager.rb +1 -1
  797. data/test/rails/railsparameter.rb +4 -4
  798. data/test/ral/manager/attributes.rb +12 -68
  799. data/test/ral/manager/instances.rb +3 -19
  800. data/test/ral/manager/manager.rb +7 -7
  801. data/test/ral/manager/provider.rb +7 -7
  802. data/test/ral/manager/type.rb +54 -349
  803. data/test/ral/providers/cron/crontab.rb +14 -14
  804. data/test/ral/providers/group.rb +5 -6
  805. data/test/ral/providers/host/parsed.rb +3 -3
  806. data/test/ral/providers/mailalias/aliases.rb +4 -4
  807. data/test/ral/providers/package.rb +3 -3
  808. data/test/ral/providers/package/aptitude.rb +55 -55
  809. data/test/ral/providers/package/aptrpm.rb +7 -7
  810. data/test/ral/providers/parsedfile.rb +10 -14
  811. data/test/ral/providers/port/parsed.rb +6 -6
  812. data/test/ral/providers/provider.rb +10 -10
  813. data/test/ral/providers/service/base.rb +32 -32
  814. data/test/ral/providers/sshkey/parsed.rb +14 -14
  815. data/test/ral/providers/user.rb +16 -17
  816. data/test/ral/providers/user/useradd.rb +19 -22
  817. data/test/ral/type/cron.rb +21 -28
  818. data/test/ral/type/exec.rb +57 -60
  819. data/test/ral/type/file.rb +88 -862
  820. data/test/ral/type/file/target.rb +21 -70
  821. data/test/ral/type/fileignoresource.rb +37 -44
  822. data/test/ral/type/filesources.rb +43 -473
  823. data/test/ral/type/group.rb +6 -7
  824. data/test/ral/type/host.rb +14 -30
  825. data/test/ral/type/mailalias.rb +3 -3
  826. data/test/ral/type/port.rb +5 -5
  827. data/test/ral/type/resources.rb +37 -37
  828. data/test/ral/type/service.rb +3 -3
  829. data/test/ral/type/sshkey.rb +34 -39
  830. data/test/ral/type/user.rb +15 -14
  831. data/test/ral/type/yumrepo.rb +18 -17
  832. data/test/ral/type/zone.rb +4 -6
  833. data/test/test +9 -9
  834. data/test/util/fileparsing.rb +10 -10
  835. data/test/util/inifile.rb +6 -6
  836. data/test/util/instance_loader.rb +1 -1
  837. data/test/util/log.rb +2 -2
  838. data/test/util/metrics.rb +1 -6
  839. data/test/util/package.rb +1 -1
  840. data/test/util/pidlock.rb +116 -116
  841. data/test/util/settings.rb +40 -429
  842. data/test/util/storage.rb +5 -5
  843. data/test/util/subclass_loader.rb +0 -7
  844. data/test/util/utiltest.rb +10 -29
  845. metadata +1369 -941
  846. data/bin/puppetca +0 -363
  847. data/bin/puppetd +0 -439
  848. data/bin/puppetmasterd +0 -289
  849. data/bin/puppetrun +0 -369
  850. data/conf/redhat/lsb-config.patch +0 -51
  851. data/conf/redhat/no-chuser-0.15.1.patch +0 -38
  852. data/conf/redhat/no-lockdir.patch +0 -13
  853. data/examples/mac_netinfo.pp +0 -5
  854. data/ext/passenger/README +0 -63
  855. data/ext/passenger/apache2.conf +0 -29
  856. data/ext/passenger/config.ru +0 -40
  857. data/lib/puppet/config_stores/rest.rb +0 -60
  858. data/lib/puppet/executables/client/certhandler.rb +0 -82
  859. data/lib/puppet/indirector/file_content/modules.rb +0 -11
  860. data/lib/puppet/indirector/file_metadata/modules.rb +0 -17
  861. data/lib/puppet/indirector/module_files.rb +0 -82
  862. data/lib/puppet/indirector/ssl_rsa.rb +0 -5
  863. data/lib/puppet/indirector/ssl_rsa/file.rb +0 -33
  864. data/lib/puppet/network/client/master.rb +0 -524
  865. data/lib/puppet/network/http_server/rack.rb +0 -148
  866. data/lib/puppet/pgraph.rb +0 -121
  867. data/lib/puppet/provider/group/netinfo.rb +0 -15
  868. data/lib/puppet/provider/host/netinfo.rb +0 -19
  869. data/lib/puppet/provider/mount/netinfo.rb +0 -37
  870. data/lib/puppet/provider/nameservice/netinfo.rb +0 -224
  871. data/lib/puppet/provider/user/netinfo.rb +0 -111
  872. data/lib/puppet/util/fact_store.rb +0 -59
  873. data/lib/puppet/util/uri_helper.rb +0 -22
  874. data/spec/integration/file_serving/configuration.rb +0 -43
  875. data/spec/integration/indirector/module_files.rb +0 -57
  876. data/spec/unit/executables/client/certhandler.rb +0 -135
  877. data/spec/unit/indirector/file_content/modules.rb +0 -18
  878. data/spec/unit/indirector/file_metadata/modules.rb +0 -42
  879. data/spec/unit/indirector/module_files.rb +0 -259
  880. data/spec/unit/indirector/ssl_rsa/file.rb +0 -121
  881. data/spec/unit/network/client/master.rb +0 -442
  882. data/spec/unit/node/catalog.rb +0 -865
  883. data/spec/unit/other/pgraph.rb +0 -210
  884. data/spec/unit/resource_reference.rb +0 -73
  885. data/spec/unit/util/uri_helper.rb +0 -41
  886. data/test/data/snippets/ifexpression.rb +0 -6
  887. data/test/executables/filebucket.rb +0 -51
  888. data/test/executables/puppetbin.rb +0 -104
  889. data/test/executables/puppetca.rb +0 -115
  890. data/test/executables/puppetd.rb +0 -55
  891. data/test/executables/puppetmasterd.rb +0 -147
  892. data/test/network/client/client.rb +0 -195
  893. data/test/network/client/master.rb +0 -490
  894. data/test/network/daemon.rb +0 -70
  895. data/test/network/handler/handler.rb +0 -63
  896. data/test/other/overrides.rb +0 -107
  897. data/test/puppet/conffiles.rb +0 -107
  898. data/test/rails/ast.rb +0 -73
  899. data/test/rails/configuration.rb +0 -71
  900. data/test/rails/host.rb +0 -154
  901. data/test/rails/railsresource.rb +0 -251
  902. data/test/ral/providers/host/netinfo.rb +0 -56
  903. data/test/ral/providers/mount/netinfo.rb +0 -79
  904. data/test/ral/type/basic.rb +0 -85
  905. data/test/ral/type/filebucket.rb +0 -157
  906. data/test/ral/type/parameter.rb +0 -174
  907. data/test/ral/type/property.rb +0 -388
  908. data/test/ral/type/tidy.rb +0 -291
  909. data/test/util/autoload.rb +0 -145
  910. data/test/util/features.rb +0 -95
@@ -15,6 +15,7 @@ class TestAST < Test::Unit::TestCase
15
15
  include PuppetTest::Support::Collection
16
16
 
17
17
  def test_if
18
+ scope = mkscope
18
19
  astif = nil
19
20
  astelse = nil
20
21
  fakeelse = FakeAST.new(:else)
@@ -35,14 +36,14 @@ class TestAST < Test::Unit::TestCase
35
36
  # We initialized it to true, so we should get that first
36
37
  ret = nil
37
38
  assert_nothing_raised {
38
- ret = astif.evaluate("yay")
39
+ ret = astif.evaluate(scope)
39
40
  }
40
41
  assert_equal(:if, ret)
41
42
 
42
43
  # Now set it to false and check that
43
44
  faketest.evaluate = false
44
45
  assert_nothing_raised {
45
- ret = astif.evaluate("yay")
46
+ ret = astif.evaluate(scope)
46
47
  }
47
48
  assert_equal(:else, ret)
48
49
  end
@@ -9,21 +9,21 @@ require 'puppettest'
9
9
  require 'puppettest/parsertesting'
10
10
 
11
11
  class TestCaseStatement < Test::Unit::TestCase
12
- include PuppetTest
13
- include PuppetTest::ParserTesting
14
- AST = Puppet::Parser::AST
15
-
16
- class ActiveAST < FakeAST
17
- def self.clear
18
- $evaluated = []
12
+ include PuppetTest
13
+ include PuppetTest::ParserTesting
14
+ AST = Puppet::Parser::AST
15
+
16
+ class ActiveAST < FakeAST
17
+ def self.clear
18
+ $evaluated = []
19
19
  end
20
- def evaluate
21
- $evaluated ||= []
22
- $evaluated << @evaluate
20
+ def evaluate
21
+ $evaluated ||= []
22
+ $evaluated << @evaluate
23
23
  end
24
24
  end
25
-
26
- def test_evaluate
25
+
26
+ def test_evaluate
27
27
  ast = nil
28
28
  scope = mkscope
29
29
  param = nameobj("MyParam")
@@ -9,9 +9,9 @@ require 'puppettest'
9
9
  require 'puppettest/parsertesting'
10
10
 
11
11
  class TestASTResource< Test::Unit::TestCase
12
- include PuppetTest
13
- include PuppetTest::ParserTesting
14
- AST = Puppet::Parser::AST
12
+ include PuppetTest
13
+ include PuppetTest::ParserTesting
14
+ AST = Puppet::Parser::AST
15
15
 
16
16
  def setup
17
17
  super
@@ -31,7 +31,7 @@ class TestASTResource< Test::Unit::TestCase
31
31
  @parser.newdefine "three"
32
32
  twoscope = @scope.newscope(:namespace => "one")
33
33
  twoscope.resource = @scope.resource
34
- assert(twoscope.finddefine("two"), "Could not find 'two' definition")
34
+ assert(twoscope.find_definition("two"), "Could not find 'two' definition")
35
35
  title = "title"
36
36
 
37
37
  # First try a qualified type
@@ -9,10 +9,10 @@ require 'puppettest'
9
9
  require 'puppettest/parsertesting'
10
10
 
11
11
  class TestASTResourceReference < Test::Unit::TestCase
12
- include PuppetTest
13
- include PuppetTest::ParserTesting
14
- AST = Puppet::Parser::AST
15
-
12
+ include PuppetTest
13
+ include PuppetTest::ParserTesting
14
+ AST = Puppet::Parser::AST
15
+
16
16
  def newref(type, title)
17
17
  AST::ResourceReference.new(:type => type, :title => AST::String.new(:value => title))
18
18
  end
@@ -29,7 +29,7 @@ class TestASTResourceReference < Test::Unit::TestCase
29
29
  @parser.newdefine "one::two"
30
30
  @parser.newdefine "three"
31
31
  twoscope = @scope.newscope(:namespace => "one")
32
- assert(twoscope.finddefine("two"), "Could not find 'two' definition")
32
+ assert(twoscope.find_definition("two"), "Could not find 'two' definition")
33
33
  title = "title"
34
34
 
35
35
  # First try a qualified type
@@ -9,29 +9,29 @@ require 'puppettest'
9
9
  require 'puppettest/parsertesting'
10
10
 
11
11
  class TestSelector < Test::Unit::TestCase
12
- include PuppetTest
13
- include PuppetTest::ParserTesting
14
- AST = Puppet::Parser::AST
15
-
12
+ include PuppetTest
13
+ include PuppetTest::ParserTesting
14
+ AST = Puppet::Parser::AST
15
+
16
16
  def test_evaluate
17
17
  scope = mkscope
18
18
  upperparam = nameobj("MYPARAM")
19
19
  lowerparam = nameobj("myparam")
20
-
20
+
21
21
  should = {"MYPARAM" => "upper", "myparam" => "lower"}
22
-
22
+
23
23
  maker = Proc.new do
24
24
  {
25
25
  :default => AST::ResourceParam.new(:param => AST::Default.new(:value => "default"), :value => FakeAST.new("default")),
26
26
  :lower => AST::ResourceParam.new(:param => FakeAST.new("myparam"), :value => FakeAST.new("lower")),
27
27
  :upper => AST::ResourceParam.new(:param => FakeAST.new("MYPARAM"), :value => FakeAST.new("upper")),
28
28
  }
29
-
29
+
30
30
  end
31
-
31
+
32
32
  # Start out case-sensitive
33
33
  Puppet[:casesensitive] = true
34
-
34
+
35
35
  %w{MYPARAM myparam}.each do |str|
36
36
  param = nameobj(str)
37
37
  params = maker.call()
@@ -40,10 +40,10 @@ class TestSelector < Test::Unit::TestCase
40
40
  assert_nothing_raised { result = sel.evaluate(scope) }
41
41
  assert_equal(should[str], result, "did not case-sensitively match %s" % str)
42
42
  end
43
-
43
+
44
44
  # then insensitive
45
45
  Puppet[:casesensitive] = false
46
-
46
+
47
47
  %w{MYPARAM myparam}.each do |str|
48
48
  param = nameobj(str)
49
49
  params = maker.call()
@@ -9,10 +9,10 @@ require 'puppettest'
9
9
  require 'puppettest/parsertesting'
10
10
 
11
11
  class TestVariable < Test::Unit::TestCase
12
- include PuppetTest
13
- include PuppetTest::ParserTesting
14
- AST = Puppet::Parser::AST
15
-
12
+ include PuppetTest
13
+ include PuppetTest::ParserTesting
14
+ AST = Puppet::Parser::AST
15
+
16
16
  def setup
17
17
  super
18
18
  @interp = mkinterp
@@ -359,8 +359,8 @@ class TestLangFunctions < Test::Unit::TestCase
359
359
  end
360
360
 
361
361
  def test_autoloading_functions
362
- assert_equal(false, Puppet::Parser::Functions.function(:autofunc),
363
- "Got told autofunc already exists")
362
+ #assert_equal(false, Puppet::Parser::Functions.function(:autofunc),
363
+ # "Got told autofunc already exists")
364
364
 
365
365
  dir = tempfile()
366
366
  $: << dir
@@ -388,17 +388,17 @@ class TestLangFunctions < Test::Unit::TestCase
388
388
  def test_realize
389
389
  scope = mkscope
390
390
  parser = scope.compiler.parser
391
-
391
+
392
392
  realize = Puppet::Parser::Functions.function(:realize)
393
393
 
394
394
  # Make a definition
395
395
  parser.newdefine("mytype")
396
-
396
+
397
397
  [%w{file /tmp/virtual}, %w{mytype yay}].each do |type, title|
398
398
  # Make a virtual resource
399
399
  virtual = mkresource(:type => type, :title => title,
400
400
  :virtual => true, :params => {}, :scope => scope)
401
-
401
+
402
402
  scope.compiler.add_resource(scope, virtual)
403
403
 
404
404
  ref = Puppet::Parser::Resource::Reference.new(
@@ -442,39 +442,39 @@ class TestLangFunctions < Test::Unit::TestCase
442
442
  assert_equal([none.to_s], scope.compiler.collections[0].resources,
443
443
  "Did not set resources in collection")
444
444
  end
445
-
445
+
446
446
  def test_defined
447
447
  scope = mkscope
448
448
  parser = scope.compiler.parser
449
449
 
450
450
  defined = Puppet::Parser::Functions.function(:defined)
451
-
451
+
452
452
  parser.newclass("yayness")
453
453
  parser.newdefine("rahness")
454
-
454
+
455
455
  assert_nothing_raised do
456
456
  assert(scope.function_defined("yayness"), "yayness class was not considered defined")
457
457
  assert(scope.function_defined("rahness"), "rahness definition was not considered defined")
458
458
  assert(scope.function_defined("service"), "service type was not considered defined")
459
459
  assert(! scope.function_defined("fakness"), "fakeness was considered defined")
460
460
  end
461
-
461
+
462
462
  # Now make sure any match in a list will work
463
463
  assert(scope.function_defined(["booness", "yayness", "fakeness"]),
464
464
  "A single answer was not sufficient to return true")
465
-
465
+
466
466
  # and make sure multiple falses are still false
467
467
  assert(! scope.function_defined(%w{no otherno stillno}),
468
468
  "Multiple falses were somehow true")
469
-
469
+
470
470
  # Now make sure we can test resources
471
471
  scope.compiler.add_resource(scope, mkresource(:type => "file", :title => "/tmp/rahness",
472
472
  :scope => scope, :source => scope.source,
473
473
  :params => {:owner => "root"}))
474
-
474
+
475
475
  yep = Puppet::Parser::Resource::Reference.new(:type => "file", :title => "/tmp/rahness")
476
476
  nope = Puppet::Parser::Resource::Reference.new(:type => "file", :title => "/tmp/fooness")
477
-
477
+
478
478
  assert(scope.function_defined([yep]), "valid resource was not considered defined")
479
479
  assert(! scope.function_defined([nope]), "invalid resource was considered defined")
480
480
  end
@@ -482,7 +482,7 @@ class TestLangFunctions < Test::Unit::TestCase
482
482
  def test_search
483
483
  parser = mkparser
484
484
  scope = mkscope(:parser => parser)
485
-
485
+
486
486
  fun = parser.newdefine("yay::ness")
487
487
  foo = parser.newdefine("foo::bar")
488
488
 
@@ -493,8 +493,8 @@ class TestLangFunctions < Test::Unit::TestCase
493
493
 
494
494
  ffun = ffoo = nil
495
495
  assert_nothing_raised("Search path change did not work") do
496
- ffun = scope.finddefine("ness")
497
- ffoo = scope.finddefine('bar')
496
+ ffun = scope.find_definition("ness")
497
+ ffoo = scope.find_definition('bar')
498
498
  end
499
499
 
500
500
  assert(ffun, "Could not find definition in 'fun' namespace")
@@ -26,15 +26,6 @@ class TestParser < Test::Unit::TestCase
26
26
  parser.file = file
27
27
  parser.parse
28
28
  }
29
-
30
- Puppet::Type.eachtype { |type|
31
- type.each { |obj|
32
- assert(obj.file, "File is not set on %s" % obj.ref)
33
- assert(obj.name, "Name is not set on %s" % obj.ref)
34
- assert(obj.line, "Line is not set on %s" % obj.ref)
35
- }
36
- }
37
- Puppet::Type.allclear
38
29
  }
39
30
  end
40
31
 
@@ -47,9 +38,8 @@ class TestParser < Test::Unit::TestCase
47
38
  ast = parser.parse
48
39
  config = mkcompiler(parser)
49
40
  config.compile
50
- #ast.classes[""].evaluate config.topscope
41
+ #ast.hostclass("").evaluate config.topscope
51
42
  }
52
- Puppet::Type.allclear
53
43
  }
54
44
  end
55
45
 
@@ -293,7 +283,7 @@ class TestParser < Test::Unit::TestCase
293
283
  ret = parser.parse
294
284
  }
295
285
 
296
- ret.classes[""].code.each do |obj|
286
+ ret.hostclass("").code.each do |obj|
297
287
  assert_instance_of(AST::Collection, obj)
298
288
  end
299
289
  end
@@ -318,7 +308,7 @@ class TestParser < Test::Unit::TestCase
318
308
  f.puts %{
319
309
  node nodeA, nodeB {
320
310
  file { "#{other}": ensure => file }
321
-
311
+
322
312
  }
323
313
  }
324
314
  end
@@ -384,13 +374,13 @@ file { "/tmp/yayness":
384
374
  str1 = %{if true { #{exec.call("true")} }}
385
375
  ret = nil
386
376
  assert_nothing_raised {
387
- ret = parser.parse(str1).classes[""].code[0]
377
+ ret = parser.parse(str1).hostclass("").code[0]
388
378
  }
389
379
  assert_instance_of(Puppet::Parser::AST::IfStatement, ret)
390
380
  parser = mkparser
391
381
  str2 = %{if true { #{exec.call("true")} } else { #{exec.call("false")} }}
392
382
  assert_nothing_raised {
393
- ret = parser.parse(str2).classes[""].code[0]
383
+ ret = parser.parse(str2).hostclass("").code[0]
394
384
  }
395
385
  assert_instance_of(Puppet::Parser::AST::IfStatement, ret)
396
386
  assert_instance_of(Puppet::Parser::AST::Else, ret.else)
@@ -402,8 +392,8 @@ file { "/tmp/yayness":
402
392
  assert_nothing_raised {
403
393
  parser.parse %{class myclass { class other {} }}
404
394
  }
405
- assert(parser.classes["myclass"], "Could not find myclass")
406
- assert(parser.classes["myclass::other"], "Could not find myclass::other")
395
+ assert(parser.hostclass("myclass"), "Could not find myclass")
396
+ assert(parser.hostclass("myclass::other"), "Could not find myclass::other")
407
397
 
408
398
  assert_nothing_raised {
409
399
  parser.parse "class base {}
@@ -411,17 +401,17 @@ file { "/tmp/yayness":
411
401
  class deep::sub inherits base {}
412
402
  }"
413
403
  }
414
- sub = parser.classes["container::deep::sub"]
404
+ sub = parser.hostclass("container::deep::sub")
415
405
  assert(sub, "Could not find sub")
416
-
406
+
417
407
  # Now try it with a parent class being a fq class
418
408
  assert_nothing_raised {
419
409
  parser.parse "class container::one inherits container::deep::sub {}"
420
410
  }
421
- sub = parser.classes["container::one"]
411
+ sub = parser.hostclass("container::one")
422
412
  assert(sub, "Could not find one")
423
413
  assert_equal("container::deep::sub", sub.parentclass)
424
-
414
+
425
415
  # Finally, try including a qualified class
426
416
  assert_nothing_raised("Could not include fully qualified class") {
427
417
  parser.parse "include container::deep::sub"
@@ -436,17 +426,17 @@ file { "/tmp/yayness":
436
426
  assert_nothing_raised do
437
427
  out = parser.parse ""
438
428
 
439
- assert_instance_of(Puppet::Parser::Parser::ASTSet, out)
440
- assert_nil(parser.classes[""], "Got a 'main' class when we had no code")
429
+ assert_instance_of(Puppet::Parser::LoadedCode, out)
430
+ assert_nil(parser.hostclass(""), "Got a 'main' class when we had no code")
441
431
  end
442
432
 
443
433
  # Now try something a touch more complicated
444
434
  parser.initvars
445
435
  assert_nothing_raised do
446
436
  out = parser.parse "Exec { path => '/usr/bin:/usr/sbin' }"
447
- assert_instance_of(Puppet::Parser::Parser::ASTSet, out)
448
- assert_equal("", parser.classes[""].classname)
449
- assert_equal("", parser.classes[""].namespace)
437
+ assert_instance_of(Puppet::Parser::LoadedCode, out)
438
+ assert_equal("", parser.hostclass("").classname)
439
+ assert_equal("", parser.hostclass("").namespace)
450
440
  end
451
441
  end
452
442
 
@@ -454,6 +444,9 @@ file { "/tmp/yayness":
454
444
  def test_virtualresources
455
445
  tests = [:virtual]
456
446
  if Puppet.features.rails?
447
+ catalog_cache_class = Puppet::Resource::Catalog.indirection.cache_class
448
+ facts_cache_class = Puppet::Node::Facts.indirection.cache_class
449
+ node_cache_class = Puppet::Node.indirection.cache_class
457
450
  Puppet[:storeconfigs] = true
458
451
  tests << :exported
459
452
  end
@@ -489,8 +482,8 @@ file { "/tmp/yayness":
489
482
  ret = parser.parse("#{at}file { '/tmp/testing': owner => root }")
490
483
  end
491
484
 
492
- assert_instance_of(AST::ASTArray, ret.classes[""].code)
493
- resdef = ret.classes[""].code[0]
485
+ assert_instance_of(AST::ASTArray, ret.hostclass("").code)
486
+ resdef = ret.hostclass("").code[0]
494
487
  assert_instance_of(AST::Resource, resdef)
495
488
  assert_equal("/tmp/testing", resdef.title.value)
496
489
  # We always get an astarray back, so...
@@ -501,16 +494,25 @@ file { "/tmp/yayness":
501
494
  ret = parser.parse("#{at}file { ['/tmp/1', '/tmp/2']: owner => root }")
502
495
  end
503
496
 
504
- ret.classes[""].each do |res|
497
+ ret.hostclass("").each do |res|
505
498
  assert_instance_of(AST::Resource, res)
506
499
  check.call(res, "multiresource")
507
500
  end
508
501
  end
502
+ if Puppet.features.rails?
503
+ Puppet[:storeconfigs] = false
504
+ Puppet::Resource::Catalog.cache_class = catalog_cache_class
505
+ Puppet::Node::Facts.cache_class = facts_cache_class
506
+ Puppet::Node.cache_class = node_cache_class
507
+ end
509
508
  end
510
509
 
511
510
  def test_collections
512
511
  tests = [:virtual]
513
512
  if Puppet.features.rails?
513
+ catalog_cache_class = Puppet::Resource::Catalog.indirection.cache_class
514
+ facts_cache_class = Puppet::Node::Facts.indirection.cache_class
515
+ node_cache_class = Puppet::Node.indirection.cache_class
514
516
  Puppet[:storeconfigs] = true
515
517
  tests << :exported
516
518
  end
@@ -529,10 +531,16 @@ file { "/tmp/yayness":
529
531
  ret = parser.parse("File #{arrow}")
530
532
  end
531
533
 
532
- coll = ret.classes[""].code[0]
534
+ coll = ret.hostclass("").code[0]
533
535
  assert_instance_of(AST::Collection, coll)
534
536
  assert_equal(form, coll.form)
535
537
  end
538
+ if Puppet.features.rails?
539
+ Puppet[:storeconfigs] = false
540
+ Puppet::Resource::Catalog.cache_class = catalog_cache_class
541
+ Puppet::Node::Facts.cache_class = facts_cache_class
542
+ Puppet::Node.cache_class = node_cache_class
543
+ end
536
544
  end
537
545
 
538
546
  def test_collectionexpressions
@@ -543,7 +551,7 @@ file { "/tmp/yayness":
543
551
 
544
552
  res = nil
545
553
  assert_nothing_raised do
546
- res = parser.parse(str).classes[""].code[0]
554
+ res = parser.parse(str).hostclass("").code[0]
547
555
  end
548
556
 
549
557
  assert_instance_of(AST::Collection, res)
@@ -566,7 +574,7 @@ file { "/tmp/yayness":
566
574
 
567
575
  res = nil
568
576
  assert_nothing_raised do
569
- res = parser.parse(str).classes[""].code[0]
577
+ res = parser.parse(str).hostclass("").code[0]
570
578
  end
571
579
 
572
580
  assert_instance_of(AST::Collection, res)
@@ -590,7 +598,7 @@ file { "/tmp/yayness":
590
598
 
591
599
  res = nil
592
600
  assert_nothing_raised("Could not parse '#{test}'") do
593
- res = parser.parse(str).classes[""].code[0]
601
+ res = parser.parse(str).hostclass("").code[0]
594
602
  end
595
603
 
596
604
  assert_instance_of(AST::Collection, res)
@@ -627,14 +635,14 @@ file { "/tmp/yayness":
627
635
  assert(code.length == 1, "Did not get the file")
628
636
  assert_instance_of(Puppet::TransObject, code[0])
629
637
  end
630
-
638
+
631
639
  def test_fully_qualified_definitions
632
640
  parser = mkparser
633
641
 
634
642
  assert_nothing_raised("Could not parse fully-qualified definition") {
635
643
  parser.parse %{define one::two { }}
636
644
  }
637
- assert(parser.definitions["one::two"], "Could not find one::two with no namespace")
645
+ assert(parser.definition("one::two"), "Could not find one::two with no namespace")
638
646
 
639
647
  # Now try using the definition
640
648
  assert_nothing_raised("Could not parse fully-qualified definition usage") {
@@ -693,7 +701,6 @@ file { "/tmp/yayness":
693
701
 
694
702
  manifest = File.join(modpath, "manifest.pp")
695
703
  manifest_texts.each do |txt|
696
- Puppet::Type.allclear
697
704
  File.open(manifest, "w") { |f| f.puts txt }
698
705
 
699
706
  assert_nothing_raised {
@@ -775,7 +782,7 @@ file { "/tmp/yayness":
775
782
  result = parser.parse %{$variable = undef}
776
783
  }
777
784
 
778
- main = result.classes[""].code
785
+ main = result.hostclass("").code
779
786
  children = main.children
780
787
  assert_instance_of(AST::VarDef, main.children[0])
781
788
  assert_instance_of(AST::Undef, main.children[0].value)
@@ -785,17 +792,17 @@ file { "/tmp/yayness":
785
792
  def test_parse
786
793
  parser = mkparser
787
794
 
788
- str = "file { '/tmp/yay': ensure => file }\nclass yay {}\nnode foo {}\ndefine bar {}\n"
795
+ str = "file { '/tmp/yay': ensure => file }\nclass yay {}\nnode foo {}\ndefine bar {}\n"
789
796
  result = nil
790
797
  assert_nothing_raised("Could not parse") do
791
798
  result = parser.parse(str)
792
799
  end
793
- assert_instance_of(Puppet::Parser::Parser::ASTSet, result, "Did not get a ASTSet back from parsing")
800
+ assert_instance_of(Puppet::Parser::LoadedCode, result, "Did not get a ASTSet back from parsing")
794
801
 
795
- assert_instance_of(AST::HostClass, result.classes["yay"], "Did not create 'yay' class")
796
- assert_instance_of(AST::HostClass, result.classes[""], "Did not create main class")
797
- assert_instance_of(AST::Definition, result.definitions["bar"], "Did not create 'bar' definition")
798
- assert_instance_of(AST::Node, result.nodes["foo"], "Did not create 'foo' node")
802
+ assert_instance_of(AST::HostClass, result.hostclass("yay"), "Did not create 'yay' class")
803
+ assert_instance_of(AST::HostClass, result.hostclass(""), "Did not create main class")
804
+ assert_instance_of(AST::Definition, result.definition("bar"), "Did not create 'bar' definition")
805
+ assert_instance_of(AST::Node, result.node("foo"), "Did not create 'foo' node")
799
806
  end
800
807
 
801
808
  # Make sure our node gets added to the node table.
@@ -807,7 +814,7 @@ file { "/tmp/yayness":
807
814
  parser.newnode("mynode", :code => :yay)
808
815
  }
809
816
 
810
- assert_equal(:yay, parser.nodes["mynode"].code)
817
+ assert_equal(:yay, parser.node("mynode").code)
811
818
 
812
819
  # Now make sure that trying to redefine it throws an error.
813
820
  assert_raise(Puppet::ParseError) {
@@ -823,8 +830,8 @@ file { "/tmp/yayness":
823
830
  parser.newnode(:foo)
824
831
 
825
832
  # And make sure we get things back correctly
826
- assert_equal(:foo, parser.nodes["simplenode"].parentclass)
827
- assert_nil(parser.nodes["simplenode"].code)
833
+ assert_equal(:foo, parser.node("simplenode").parentclass)
834
+ assert_nil(parser.node("simplenode").code)
828
835
 
829
836
  # Now make sure that trying to redefine it throws an error.
830
837
  assert_raise(Puppet::ParseError) {
@@ -838,8 +845,8 @@ file { "/tmp/yayness":
838
845
  }
839
846
 
840
847
  names.each do |name|
841
- assert_equal(:yay, parser.nodes[name].code)
842
- assert_equal(:foo, parser.nodes[name].parentclass)
848
+ assert_equal(:yay, parser.node(name).code)
849
+ assert_equal(:foo, parser.node(name).parentclass)
843
850
  # Now make sure that trying to redefine it throws an error.
844
851
  assert_raise(Puppet::ParseError) {
845
852
  parser.newnode(name, {})
@@ -855,7 +862,7 @@ file { "/tmp/yayness":
855
862
  :arguments => ["a", stringobj("b")])
856
863
  }
857
864
 
858
- mydefine = parser.definitions["mydefine"]
865
+ mydefine = parser.definition("mydefine")
859
866
  assert(mydefine, "Could not find definition")
860
867
  assert_equal("", mydefine.namespace)
861
868
  assert_equal("mydefine", mydefine.classname)
@@ -870,9 +877,9 @@ file { "/tmp/yayness":
870
877
  parser.newdefine("other::mydefine", :code => :other,
871
878
  :arguments => ["a", stringobj("b")])
872
879
  }
873
- other = parser.definitions["other::mydefine"]
880
+ other = parser.definition("other::mydefine")
874
881
  assert(other, "Could not find definition")
875
- assert(parser.definitions["other::mydefine"],
882
+ assert(parser.definition("other::mydefine"),
876
883
  "Could not find other::mydefine")
877
884
  assert_equal(:other, other.code)
878
885
  assert_equal("other", other.namespace)
@@ -901,10 +908,10 @@ file { "/tmp/yayness":
901
908
 
902
909
  assert(klass, "Did not return class")
903
910
 
904
- assert(parser.classes["myclass"], "Could not find definition")
905
- assert_equal("myclass", parser.classes["myclass"].classname)
911
+ assert(parser.hostclass("myclass"), "Could not find definition")
912
+ assert_equal("myclass", parser.hostclass("myclass").classname)
906
913
  assert_equal(%w{original code},
907
- parser.classes["myclass"].code.evaluate(scope))
914
+ parser.hostclass("myclass").code.evaluate(scope))
908
915
 
909
916
  # Newclass behaves differently than the others -- it just appends
910
917
  # the code to the existing class.
@@ -914,7 +921,7 @@ file { "/tmp/yayness":
914
921
  end
915
922
  assert(klass, "Did not return class when appending")
916
923
  assert_equal(%w{original code something new},
917
- parser.classes["myclass"].code.evaluate(scope))
924
+ parser.hostclass("myclass").code.evaluate(scope))
918
925
 
919
926
  # Now create the same class name in a different scope
920
927
  assert_nothing_raised {
@@ -922,7 +929,7 @@ file { "/tmp/yayness":
922
929
  :code => mkcode.call(%w{something diff}))
923
930
  }
924
931
  assert(klass, "Did not return class")
925
- other = parser.classes["other::myclass"]
932
+ other = parser.hostclass("other::myclass")
926
933
  assert(other, "Could not find class")
927
934
  assert_equal("other::myclass", other.classname)
928
935
  assert_equal("other::myclass", other.namespace)
@@ -938,7 +945,7 @@ file { "/tmp/yayness":
938
945
  end
939
946
  assert(klass, "Did not return class with no code")
940
947
  assert_equal(%w{yay test},
941
- parser.classes["nocode"].code.evaluate(scope))
948
+ parser.hostclass("nocode").code.evaluate(scope))
942
949
 
943
950
  # Then try merging something into nothing
944
951
  parser.newclass("nocode2", :code => mkcode.call(%w{foo test}))
@@ -949,7 +956,7 @@ file { "/tmp/yayness":
949
956
  end
950
957
  assert(klass, "Did not return class with no code")
951
958
  assert_equal(%w{foo test},
952
- parser.classes["nocode2"].code.evaluate(scope))
959
+ parser.hostclass("nocode2").code.evaluate(scope))
953
960
 
954
961
  # And lastly, nothing and nothing
955
962
  klass = parser.newclass("nocode3")
@@ -959,7 +966,7 @@ file { "/tmp/yayness":
959
966
  klass = parser.newclass("nocode3")
960
967
  end
961
968
  assert(klass, "Did not return class with no code")
962
- assert_nil(parser.classes["nocode3"].code)
969
+ assert_nil(parser.hostclass("nocode3").code)
963
970
  end
964
971
 
965
972
  # Make sure you can't have classes and defines with the same name in the
@@ -997,7 +1004,7 @@ file { "/tmp/yayness":
997
1004
  end
998
1005
  end
999
1006
  end
1000
-
1007
+
1001
1008
  # Now make sure we get appropriate behaviour with parent class conflicts.
1002
1009
  def test_newclass_parentage
1003
1010
  parser = mkparser
@@ -1008,8 +1015,8 @@ file { "/tmp/yayness":
1008
1015
  assert_nothing_raised {
1009
1016
  parser.newclass("sub")
1010
1017
  }
1011
- assert(parser.classes["sub"], "Could not find definition")
1012
- assert_nil(parser.classes["sub"].parentclass)
1018
+ assert(parser.hostclass("sub"), "Could not find definition")
1019
+ assert_nil(parser.hostclass("sub").parentclass)
1013
1020
 
1014
1021
  # Make sure we can't set the parent class to ourself.
1015
1022
  assert_raise(Puppet::ParseError) {
@@ -1023,7 +1030,7 @@ file { "/tmp/yayness":
1023
1030
 
1024
1031
  # Make sure we get the right parent class, and make sure it's not an object.
1025
1032
  assert_equal("base1",
1026
- parser.classes["sub"].parentclass)
1033
+ parser.hostclass("sub").parentclass)
1027
1034
 
1028
1035
  # Now make sure we get a failure if we try to conflict.
1029
1036
  assert_raise(Puppet::ParseError) {
@@ -1032,45 +1039,16 @@ file { "/tmp/yayness":
1032
1039
 
1033
1040
  # Make sure that failure didn't screw us up in any way.
1034
1041
  assert_equal("base1",
1035
- parser.classes["sub"].parentclass)
1042
+ parser.hostclass("sub").parentclass)
1036
1043
  # But make sure we can create a class with a fq parent
1037
1044
  assert_nothing_raised {
1038
1045
  parser.newclass("another", :parent => "one::two::three")
1039
1046
  }
1040
1047
  assert_equal("one::two::three",
1041
- parser.classes["another"].parentclass)
1048
+ parser.hostclass("another").parentclass)
1042
1049
 
1043
1050
  end
1044
1051
 
1045
- def test_fqfind
1046
- parser = mkparser
1047
-
1048
- table = {}
1049
- # Define a bunch of things.
1050
- %w{a c a::b a::b::c a::c a::b::c::d a::b::c::d::e::f c::d}.each do |string|
1051
- table[string] = string
1052
- end
1053
-
1054
- check = proc do |namespace, hash|
1055
- hash.each do |thing, result|
1056
- assert_equal(result, parser.fqfind(namespace, thing, table),
1057
- "Could not find %s in %s" % [thing, namespace])
1058
- end
1059
- end
1060
-
1061
- # Now let's do some test lookups.
1062
-
1063
- # First do something really simple
1064
- check.call "a", "b" => "a::b", "b::c" => "a::b::c", "d" => nil, "::c" => "c"
1065
-
1066
- check.call "a::b", "c" => "a::b::c", "b" => "a::b", "a" => "a"
1067
-
1068
- check.call "a::b::c::d::e", "c" => "a::b::c", "::c" => "c",
1069
- "c::d" => "a::b::c::d", "::c::d" => "c::d"
1070
-
1071
- check.call "", "a" => "a", "a::c" => "a::c"
1072
- end
1073
-
1074
1052
  # Setup a module.
1075
1053
  def mk_module(name, files = {})
1076
1054
  mdir = File.join(@dir, name)
@@ -1105,20 +1083,20 @@ file { "/tmp/yayness":
1105
1083
  parser = mkparser
1106
1084
 
1107
1085
  # Make sure we fail like normal for actually missing classes
1108
- assert_nil(parser.findclass("", "nosuchclass"), "Did not return nil on missing classes")
1086
+ assert_nil(parser.find_hostclass("", "nosuchclass"), "Did not return nil on missing classes")
1109
1087
 
1110
1088
  # test the simple case -- the module class itself
1111
1089
  name = "simple"
1112
1090
  mk_module(name, :init => [name])
1113
1091
 
1114
1092
  # Try to load the module automatically now
1115
- klass = parser.findclass("", name)
1093
+ klass = parser.find_hostclass("", name)
1116
1094
  assert_instance_of(AST::HostClass, klass, "Did not autoload class from module init file")
1117
1095
  assert_equal(name, klass.classname, "Incorrect class was returned")
1118
1096
 
1119
1097
  # Try loading the simple module when we're in something other than the base namespace.
1120
1098
  parser = mkparser
1121
- klass = parser.findclass("something::else", name)
1099
+ klass = parser.find_hostclass("something::else", name)
1122
1100
  assert_instance_of(AST::HostClass, klass, "Did not autoload class from module init file")
1123
1101
  assert_equal(name, klass.classname, "Incorrect class was returned")
1124
1102
 
@@ -1126,7 +1104,7 @@ file { "/tmp/yayness":
1126
1104
  name = "simpdef"
1127
1105
  mk_module(name, :define => true, :init => [name])
1128
1106
 
1129
- klass = parser.finddefine("", name)
1107
+ klass = parser.find_definition("", name)
1130
1108
  assert_instance_of(AST::Definition, klass, "Did not autoload class from module init file")
1131
1109
  assert_equal(name, klass.classname, "Incorrect class was returned")
1132
1110
 
@@ -1137,13 +1115,13 @@ file { "/tmp/yayness":
1137
1115
  mk_module(modname, :init => %w{both both::sub})
1138
1116
 
1139
1117
  # First try it with a namespace
1140
- klass = parser.findclass("both", name)
1118
+ klass = parser.find_hostclass("both", name)
1141
1119
  assert_instance_of(AST::HostClass, klass, "Did not autoload sub class from module init file with a namespace")
1142
1120
  assert_equal("both::sub", klass.classname, "Incorrect class was returned")
1143
1121
 
1144
1122
  # Now try it using the fully qualified name
1145
1123
  parser = mkparser
1146
- klass = parser.findclass("", "both::sub")
1124
+ klass = parser.find_hostclass("", "both::sub")
1147
1125
  assert_instance_of(AST::HostClass, klass, "Did not autoload sub class from module init file with no namespace")
1148
1126
  assert_equal("both::sub", klass.classname, "Incorrect class was returned")
1149
1127
 
@@ -1155,13 +1133,13 @@ file { "/tmp/yayness":
1155
1133
  mk_module(modname, :init => %w{separate}, :sub => %w{separate::sub})
1156
1134
 
1157
1135
  # First try it with a namespace
1158
- klass = parser.findclass("separate", name)
1136
+ klass = parser.find_hostclass("separate", name)
1159
1137
  assert_instance_of(AST::HostClass, klass, "Did not autoload sub class from separate file with a namespace")
1160
1138
  assert_equal("separate::sub", klass.classname, "Incorrect class was returned")
1161
1139
 
1162
1140
  # Now try it using the fully qualified name
1163
1141
  parser = mkparser
1164
- klass = parser.findclass("", "separate::sub")
1142
+ klass = parser.find_hostclass("", "separate::sub")
1165
1143
  assert_instance_of(AST::HostClass, klass, "Did not autoload sub class from separate file with no namespace")
1166
1144
  assert_equal("separate::sub", klass.classname, "Incorrect class was returned")
1167
1145
 
@@ -1173,14 +1151,14 @@ file { "/tmp/yayness":
1173
1151
 
1174
1152
  # First try it with a namespace
1175
1153
  assert_nothing_raised("Could not autoload file when module file is missing") do
1176
- klass = parser.findclass("alone", name)
1154
+ klass = parser.find_hostclass("alone", name)
1177
1155
  end
1178
1156
  assert_instance_of(AST::HostClass, klass, "Did not autoload sub class from alone file with a namespace")
1179
1157
  assert_equal("alone::sub", klass.classname, "Incorrect class was returned")
1180
1158
 
1181
1159
  # Now try it using the fully qualified name
1182
1160
  parser = mkparser
1183
- klass = parser.findclass("", "alone::sub")
1161
+ klass = parser.find_hostclass("", "alone::sub")
1184
1162
  assert_instance_of(AST::HostClass, klass, "Did not autoload sub class from alone file with no namespace")
1185
1163
  assert_equal("alone::sub", klass.classname, "Incorrect class was returned")
1186
1164
 
@@ -1188,25 +1166,25 @@ file { "/tmp/yayness":
1188
1166
  name = "mymod"
1189
1167
  mk_module(name, :define => true, :mydefine => ["mymod::mydefine"])
1190
1168
 
1191
- klass = parser.finddefine("", "mymod::mydefine")
1169
+ klass = parser.find_definition("", "mymod::mydefine")
1192
1170
  assert_instance_of(AST::Definition, klass, "Did not autoload definition from its own file")
1193
1171
  assert_equal("mymod::mydefine", klass.classname, "Incorrect definition was returned")
1194
1172
  end
1195
-
1173
+
1196
1174
  # Make sure class, node, and define methods are case-insensitive
1197
1175
  def test_structure_case_insensitivity
1198
1176
  parser = mkparser
1199
-
1177
+
1200
1178
  result = nil
1201
1179
  assert_nothing_raised do
1202
1180
  result = parser.newclass "Yayness"
1203
1181
  end
1204
- assert_equal(result, parser.findclass("", "yayNess"))
1182
+ assert_equal(result, parser.find_hostclass("", "yayNess"))
1205
1183
 
1206
1184
  assert_nothing_raised do
1207
1185
  result = parser.newdefine "FunTest"
1208
1186
  end
1209
- assert_equal(result, parser.finddefine("", "fUntEst"),
1187
+ assert_equal(result, parser.find_definition("", "fUntEst"),
1210
1188
  "%s was not matched" % "fUntEst")
1211
1189
  end
1212
1190
 
@@ -1215,10 +1193,10 @@ file { "/tmp/yayness":
1215
1193
 
1216
1194
  # We use an exception to cut short the processing to simplify our stubbing
1217
1195
  #Puppet::Module.expects(:find_manifests).with("test", {:cwd => ".", :environment => "something"}).raises(Puppet::ParseError)
1218
- Puppet::Module.expects(:find_manifests).with("test", {:cwd => ".", :environment => "something"}).returns([])
1196
+ Puppet::Parser::Files.expects(:find_manifests).with("test", {:cwd => ".", :environment => "something"}).returns([])
1219
1197
 
1220
1198
  assert_raise(Puppet::ImportError) do
1221
- parser.import("test")
1199
+ parser.import("test")
1222
1200
  end
1223
1201
  end
1224
1202