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
@@ -9,8 +9,8 @@ require 'puppettest'
9
9
  require 'puppettest/reporttesting'
10
10
 
11
11
  class TestReports < Test::Unit::TestCase
12
- include PuppetTest
13
- include PuppetTest::Reporttesting
12
+ include PuppetTest
13
+ include PuppetTest::Reporttesting
14
14
 
15
15
  def mkreport
16
16
  # First do some work
@@ -21,7 +21,7 @@ class TestReports < Test::Unit::TestCase
21
21
  # Make every third file
22
22
  File.open(file, "w") { |f| f.puts "" } if i % 3 == 0
23
23
 
24
- objects << Puppet::Type.type(:file).create(
24
+ objects << Puppet::Type.type(:file).new(
25
25
  :path => file,
26
26
  :ensure => "file"
27
27
  )
@@ -44,7 +44,7 @@ class TestReports < Test::Unit::TestCase
44
44
  }
45
45
 
46
46
  # Now make a file for testing logging
47
- file = Puppet::Type.type(:file).create(:path => tempfile(), :ensure => "file")
47
+ file = Puppet::Type.type(:file).new(:path => tempfile(), :ensure => "file")
48
48
  file.finish
49
49
 
50
50
  log = nil
@@ -80,10 +80,10 @@ class TestReports < Test::Unit::TestCase
80
80
  def test_store_report
81
81
  # Create a bunch of log messages in an array.
82
82
  report = Puppet::Transaction::Report.new
83
-
83
+
84
84
  # We have to reuse reporting here because of something going on in the
85
85
  # server/report.rb file
86
- Puppet.settings.use(:main, :reporting)
86
+ Puppet.settings.use(:main, :puppetmasterd)
87
87
 
88
88
  3.times { |i|
89
89
  log = Puppet.warning("Report test message %s" % i)
@@ -97,10 +97,7 @@ class TestReports < Test::Unit::TestCase
97
97
 
98
98
  yaml = YAML.dump(report)
99
99
 
100
- file = nil
101
- assert_nothing_raised {
102
- file = report.process
103
- }
100
+ file = report.process
104
101
 
105
102
  assert(FileTest.exists?(file), "report file did not get created")
106
103
  assert_equal(yaml, File.read(file), "File did not get written")
@@ -146,31 +143,31 @@ class TestReports < Test::Unit::TestCase
146
143
  else
147
144
  $stderr.puts "Install RRD for metric reporting tests"
148
145
  end
149
-
146
+
150
147
  def test_tagmail_parsing
151
148
  report = Object.new
152
149
  report.extend(Puppet::Reports.report(:tagmail))
153
-
150
+
154
151
  passers = File.join(datadir, "reports", "tagmail_passers.conf")
155
152
  assert(FileTest.exists?(passers), "no passers file %s" % passers)
156
-
153
+
157
154
  File.readlines(passers).each do |line|
158
155
  assert_nothing_raised("Could not parse %s" % line.inspect) do
159
156
  report.parse(line)
160
157
  end
161
158
  end
162
-
159
+
163
160
  # Now make sure the failers fail
164
161
  failers = File.join(datadir, "reports", "tagmail_failers.conf")
165
162
  assert(FileTest.exists?(failers), "no failers file %s" % failers)
166
-
163
+
167
164
  File.readlines(failers).each do |line|
168
165
  assert_raise(ArgumentError, "Parsed %s" % line.inspect) do
169
166
  report.parse(line)
170
167
  end
171
168
  end
172
169
  end
173
-
170
+
174
171
  def test_tagmail_parsing_results
175
172
  report = Object.new
176
173
  report.extend(Puppet::Reports.report(:tagmail))
@@ -182,27 +179,27 @@ class TestReports < Test::Unit::TestCase
182
179
  "tag, !other: abuse@domain.com" => [%w{abuse@domain.com}, %w{tag}, %w{other}],
183
180
  "tag, !other, one, !two: abuse@domain.com" => [%w{abuse@domain.com}, %w{tag one}, %w{other two}],
184
181
  "tag: abuse@domain.com, other@domain.com" => [%w{abuse@domain.com other@domain.com}, %w{tag}, []]
185
-
182
+
186
183
  }.each do |line, results|
187
184
  assert_nothing_raised("Failed to parse %s" % line.inspect) do
188
185
  assert_equal(results, report.parse(line).shift, "line %s returned incorrect results %s" % [line.inspect, results.inspect])
189
186
  end
190
187
  end
191
188
  end
192
-
189
+
193
190
  def test_tagmail_matching
194
191
  report = Puppet::Transaction::Report.new
195
192
  Puppet::Util::Log.close
196
193
  [%w{one}, %w{one two}, %w{one two three}, %w{one two three four}].each do |tags|
197
194
  log = Puppet::Util::Log.new(:level => :notice, :message => tags.join(" "), :tags => tags)
198
-
195
+
199
196
  report << log
200
197
  end
201
-
198
+
202
199
  list = report.logs.collect { |l| l.to_report }
203
-
200
+
204
201
  report.extend(Puppet::Reports.report(:tagmail))
205
-
202
+
206
203
  {
207
204
  [%w{abuse@domain.com}, %w{all}, []] => list,
208
205
  [%w{abuse@domain.com}, %w{all}, %w{three}] => list[0..1],
@@ -215,7 +212,7 @@ class TestReports < Test::Unit::TestCase
215
212
  assert_nothing_raised("Could not match with %s" % args.inspect) do
216
213
  results = report.match([args])
217
214
  end
218
-
215
+
219
216
  if expected
220
217
  assert_equal([args[0], expected.join("\n")], results[0], "did get correct results for %s" % args.inspect)
221
218
  else
@@ -13,6 +13,8 @@ class TestTransactions < Test::Unit::TestCase
13
13
  include PuppetTest::Support::Resources
14
14
  include PuppetTest::Support::Utils
15
15
  class Fakeprop <Puppet::Property
16
+ initvars()
17
+
16
18
  attr_accessor :path, :is, :should, :name
17
19
  def should_to_s(value)
18
20
  value.to_s
@@ -23,13 +25,20 @@ class TestTransactions < Test::Unit::TestCase
23
25
  def info(*args)
24
26
  false
25
27
  end
28
+
29
+ def set(value)
30
+ # eh
31
+ end
32
+
33
+ def log(msg)
34
+ end
26
35
  end
27
-
28
-
36
+
37
+
29
38
  def mkgenerator(&block)
30
39
  $finished = []
31
40
  cleanup { $finished = nil }
32
-
41
+
33
42
  # Create a bogus type that generates new instances with shorter
34
43
  type = Puppet::Type.newtype(:generator) do
35
44
  newparam(:name, :namevar => true)
@@ -43,28 +52,28 @@ class TestTransactions < Test::Unit::TestCase
43
52
  cleanup do
44
53
  Puppet::Type.rmtype(:generator)
45
54
  end
46
-
55
+
47
56
  return type
48
57
  end
49
-
58
+
50
59
  # Create a new type that generates instances with shorter names.
51
60
  def mkreducer(&block)
52
61
  type = mkgenerator() do
53
62
  def eval_generate
54
63
  ret = []
55
64
  if title.length > 1
56
- ret << self.class.create(:title => title[0..-2])
65
+ ret << self.class.new(:title => title[0..-2])
57
66
  else
58
67
  return nil
59
68
  end
60
69
  ret
61
70
  end
62
71
  end
63
-
72
+
64
73
  if block
65
74
  type.class_eval(&block)
66
75
  end
67
-
76
+
68
77
  return type
69
78
  end
70
79
 
@@ -72,11 +81,11 @@ class TestTransactions < Test::Unit::TestCase
72
81
  path1 = tempfile()
73
82
  path2 = tempfile()
74
83
  objects = []
75
- objects << Puppet::Type.type(:file).create(
84
+ objects << Puppet::Type.type(:file).new(
76
85
  :path => path1,
77
86
  :content => "yayness"
78
87
  )
79
- objects << Puppet::Type.type(:file).create(
88
+ objects << Puppet::Type.type(:file).new(
80
89
  :path => path2,
81
90
  :content => "booness"
82
91
  )
@@ -117,7 +126,7 @@ class TestTransactions < Test::Unit::TestCase
117
126
  type = Puppet::Type.newtype(name) do
118
127
  newparam(:name) {}
119
128
  end
120
-
129
+
121
130
  cleanup do
122
131
  Puppet::Type.rmtype(name)
123
132
  end
@@ -130,8 +139,8 @@ class TestTransactions < Test::Unit::TestCase
130
139
  end
131
140
 
132
141
  # Now create an instance
133
- inst = type.create :name => "yay"
134
-
142
+ inst = type.new :name => "yay"
143
+
135
144
  # Create a transaction
136
145
  trans = Puppet::Transaction.new(mk_catalog(inst))
137
146
 
@@ -155,15 +164,15 @@ class TestTransactions < Test::Unit::TestCase
155
164
  path = tempfile()
156
165
  firstpath = tempfile()
157
166
  secondpath = tempfile()
158
- file = Puppet::Type.type(:file).create(:title => "file", :path => path, :content => "yayness")
159
- first = Puppet::Type.newexec(:title => "first",
167
+ file = Puppet::Type.type(:file).new(:title => "file", :path => path, :content => "yayness")
168
+ first = Puppet::Type.type(:exec).new(:title => "first",
160
169
  :command => "/bin/echo first > #{firstpath}",
161
- :subscribe => [:file, path],
170
+ :subscribe => Puppet::Resource::Reference.new(:file, path),
162
171
  :refreshonly => true
163
172
  )
164
- second = Puppet::Type.newexec(:title => "second",
173
+ second = Puppet::Type.type(:exec).new(:title => "second",
165
174
  :command => "/bin/echo second > #{secondpath}",
166
- :subscribe => [:exec, "first"],
175
+ :subscribe => Puppet::Resource::Reference.new(:exec, "first"),
167
176
  :refreshonly => true
168
177
  )
169
178
 
@@ -219,13 +228,13 @@ class TestTransactions < Test::Unit::TestCase
219
228
 
220
229
  hash[:name] = tmpfile
221
230
  assert_nothing_raised() {
222
- return Puppet.type(:file).create(hash)
231
+ return Puppet::Type.type(:file).new(hash)
223
232
  }
224
233
  end
225
234
 
226
235
  def newexec(file)
227
236
  assert_nothing_raised() {
228
- return Puppet.type(:exec).create(
237
+ return Puppet::Type.type(:exec).new(
229
238
  :name => "touch %s" % file,
230
239
  :path => "/bin:/usr/bin:/sbin:/usr/sbin",
231
240
  :returns => 0
@@ -301,7 +310,7 @@ class TestTransactions < Test::Unit::TestCase
301
310
  @@tmpfiles << execfile
302
311
 
303
312
  # 'subscribe' expects an array of arrays
304
- exec[:subscribe] = [[file.class.name,file.name]]
313
+ exec[:subscribe] = Puppet::Resource::Reference.new(file.class.name,file.name)
305
314
  exec[:refreshonly] = true
306
315
 
307
316
  assert_nothing_raised() {
@@ -346,13 +355,13 @@ class TestTransactions < Test::Unit::TestCase
346
355
  file[:group] = @groups[0]
347
356
  assert_apply(file)
348
357
 
349
- config = Puppet::Node::Catalog.new
350
- fcomp = Puppet::Type.type(:component).create(:name => "file")
358
+ config = Puppet::Resource::Catalog.new
359
+ fcomp = Puppet::Type.type(:component).new(:name => "file")
351
360
  config.add_resource fcomp
352
361
  config.add_resource file
353
362
  config.add_edge(fcomp, file)
354
363
 
355
- ecomp = Puppet::Type.type(:component).create(:name => "exec")
364
+ ecomp = Puppet::Type.type(:component).new(:name => "exec")
356
365
  config.add_resource ecomp
357
366
  config.add_resource exec
358
367
  config.add_edge(ecomp, exec)
@@ -377,21 +386,21 @@ class TestTransactions < Test::Unit::TestCase
377
386
  path = tempfile()
378
387
  file1 = tempfile()
379
388
  file2 = tempfile()
380
- file = Puppet.type(:file).create(
389
+ file = Puppet::Type.type(:file).new(
381
390
  :path => path,
382
391
  :ensure => "file"
383
392
  )
384
- exec1 = Puppet.type(:exec).create(
393
+ exec1 = Puppet::Type.type(:exec).new(
385
394
  :path => ENV["PATH"],
386
395
  :command => "touch %s" % file1,
387
396
  :refreshonly => true,
388
- :subscribe => [:file, path]
397
+ :subscribe => Puppet::Resource::Reference.new(:file, path)
389
398
  )
390
- exec2 = Puppet.type(:exec).create(
399
+ exec2 = Puppet::Type.type(:exec).new(
391
400
  :path => ENV["PATH"],
392
401
  :command => "touch %s" % file2,
393
402
  :refreshonly => true,
394
- :subscribe => [:file, path]
403
+ :subscribe => Puppet::Resource::Reference.new(:file, path)
395
404
  )
396
405
 
397
406
  assert_apply(file, exec1, exec2)
@@ -404,11 +413,11 @@ class TestTransactions < Test::Unit::TestCase
404
413
  def test_failedrefreshes
405
414
  path = tempfile()
406
415
  newfile = tempfile()
407
- file = Puppet.type(:file).create(
416
+ file = Puppet::Type.type(:file).new(
408
417
  :path => path,
409
418
  :ensure => "file"
410
419
  )
411
- exec1 = Puppet.type(:exec).create(
420
+ exec1 = Puppet::Type.type(:exec).new(
412
421
  :path => ENV["PATH"],
413
422
  :command => "touch /this/cannot/possibly/exist",
414
423
  :logoutput => true,
@@ -416,7 +425,7 @@ class TestTransactions < Test::Unit::TestCase
416
425
  :subscribe => file,
417
426
  :title => "one"
418
427
  )
419
- exec2 = Puppet.type(:exec).create(
428
+ exec2 = Puppet::Type.type(:exec).new(
420
429
  :path => ENV["PATH"],
421
430
  :command => "touch %s" % newfile,
422
431
  :logoutput => true,
@@ -433,18 +442,18 @@ class TestTransactions < Test::Unit::TestCase
433
442
  def test_unscheduled_and_untagged_response
434
443
  Puppet::Type.type(:schedule).mkdefaultschedules
435
444
  Puppet[:ignoreschedules] = false
436
- file = Puppet.type(:file).create(
445
+ file = Puppet::Type.type(:file).new(
437
446
  :name => tempfile(),
438
447
  :ensure => "file",
439
448
  :backup => false
440
449
  )
441
450
 
442
451
  fname = tempfile()
443
- exec = Puppet.type(:exec).create(
452
+ exec = Puppet::Type.type(:exec).new(
444
453
  :name => "touch %s" % fname,
445
454
  :path => "/usr/bin:/bin",
446
455
  :schedule => "monthly",
447
- :subscribe => ["file", file.name]
456
+ :subscribe => Puppet::Resource::Reference.new("file", file.name)
448
457
  )
449
458
 
450
459
  config = mk_catalog(file, exec)
@@ -484,19 +493,19 @@ class TestTransactions < Test::Unit::TestCase
484
493
  end
485
494
 
486
495
  def test_failed_reqs_mean_no_run
487
- exec = Puppet::Type.type(:exec).create(
496
+ exec = Puppet::Type.type(:exec).new(
488
497
  :command => "/bin/mkdir /this/path/cannot/possibly/exit",
489
498
  :title => "mkdir"
490
499
  )
491
500
 
492
- file1 = Puppet::Type.type(:file).create(
501
+ file1 = Puppet::Type.type(:file).new(
493
502
  :title => "file1",
494
503
  :path => tempfile(),
495
504
  :require => exec,
496
505
  :ensure => :file
497
506
  )
498
507
 
499
- file2 = Puppet::Type.type(:file).create(
508
+ file2 = Puppet::Type.type(:file).new(
500
509
  :title => "file2",
501
510
  :path => tempfile(),
502
511
  :require => file1,
@@ -513,208 +522,6 @@ class TestTransactions < Test::Unit::TestCase
513
522
  "File got created even tho its deep dependency failed")
514
523
  end
515
524
  end
516
-
517
- def test_relationship_graph
518
- config = mktree
519
-
520
- config.meta_def(:f) do |name|
521
- self.resource("File[%s]" % name)
522
- end
523
-
524
- {"one" => "two", "File[f]" => "File[c]", "File[h]" => "middle"}.each do |source_ref, target_ref|
525
- source = config.resource(source_ref) or raise "Missing %s" % source_ref
526
- target = config.resource(target_ref) or raise "Missing %s" % target_ref
527
- target[:require] = source
528
- end
529
-
530
- trans = Puppet::Transaction.new(config)
531
-
532
- graph = nil
533
- assert_nothing_raised do
534
- graph = trans.relationship_graph
535
- end
536
-
537
- assert_instance_of(Puppet::Node::Catalog, graph,
538
- "Did not get relationship graph")
539
-
540
- # Make sure all of the components are gone
541
- comps = graph.vertices.find_all { |v| v.is_a?(Puppet::Type::Component)}
542
- assert(comps.empty?, "Deps graph still contains components %s" %
543
- comps.collect { |c| c.ref }.join(","))
544
-
545
- assert_equal([], comps, "Deps graph still contains components")
546
-
547
- # It must be reversed because of how topsort works
548
- sorted = graph.topsort.reverse
549
-
550
- # Now make sure the appropriate edges are there and are in the right order
551
- assert(graph.dependents(config.f(:f)).include?(config.f(:c)),
552
- "c not marked a dep of f")
553
- assert(sorted.index(config.f(:c)) < sorted.index(config.f(:f)),
554
- "c is not before f")
555
-
556
- config.resource("one").each do |o|
557
- config.resource("two").each do |t|
558
- assert(graph.dependents(o).include?(t),
559
- "%s not marked a dep of %s" % [t.ref, o.ref])
560
- assert(sorted.index(t) < sorted.index(o),
561
- "%s is not before %s" % [t.ref, o.ref])
562
- end
563
- end
564
-
565
- trans.catalog.leaves(config.resource("middle")).each do |child|
566
- assert(graph.dependents(config.f(:h)).include?(child),
567
- "%s not marked a dep of h" % [child.ref])
568
- assert(sorted.index(child) < sorted.index(config.f(:h)),
569
- "%s is not before h" % child.ref)
570
- end
571
-
572
- # Lastly, make sure our 'g' vertex made it into the relationship
573
- # graph, since it's not involved in any relationships.
574
- assert(graph.vertex?(config.f(:g)),
575
- "Lost vertexes with no relations")
576
-
577
- # Now make the reversal graph and make sure all of the vertices made it into that
578
- reverse = graph.reversal
579
- %w{a b c d e f g h}.each do |letter|
580
- file = config.f(letter)
581
- assert(reverse.vertex?(file), "%s did not make it into reversal" % letter)
582
- end
583
- end
584
-
585
- # Test pre-evaluation generation
586
- def test_generate
587
- mkgenerator() do
588
- def generate
589
- ret = []
590
- if title.length > 1
591
- ret << self.class.create(:title => title[0..-2])
592
- else
593
- return nil
594
- end
595
- ret
596
- end
597
- end
598
-
599
- yay = Puppet::Type.newgenerator :title => "yay"
600
- rah = Puppet::Type.newgenerator :title => "rah"
601
- config = mk_catalog(yay, rah)
602
- trans = Puppet::Transaction.new(config)
603
-
604
- assert_nothing_raised do
605
- trans.generate
606
- end
607
-
608
- %w{ya ra y r}.each do |name|
609
- assert(trans.catalog.vertex?(Puppet::Type.type(:generator)[name]),
610
- "Generated %s was not a vertex" % name)
611
- assert($finished.include?(name), "%s was not finished" % name)
612
- end
613
-
614
- # Now make sure that cleanup gets rid of those generated types.
615
- assert_nothing_raised do
616
- trans.cleanup
617
- end
618
-
619
- %w{ya ra y r}.each do |name|
620
- assert(!trans.catalog.vertex?(Puppet::Type.type(:generator)[name]),
621
- "Generated vertex %s was not removed from graph" % name)
622
- assert_nil(Puppet::Type.type(:generator)[name],
623
- "Generated vertex %s was not removed from class" % name)
624
- end
625
- end
626
-
627
- # Test mid-evaluation generation.
628
- def test_eval_generate
629
- $evaluated = []
630
- cleanup { $evaluated = nil }
631
- type = mkreducer() do
632
- def evaluate
633
- $evaluated << self.title
634
- return []
635
- end
636
- end
637
-
638
- yay = Puppet::Type.newgenerator :title => "yay"
639
- rah = Puppet::Type.newgenerator :title => "rah", :subscribe => yay
640
- config = mk_catalog(yay, rah)
641
- trans = Puppet::Transaction.new(config)
642
-
643
- trans.prepare
644
-
645
- # Now apply the resources, and make sure they appropriately generate
646
- # things.
647
- assert_nothing_raised("failed to apply yay") do
648
- trans.eval_resource(yay)
649
- end
650
- ya = type["ya"]
651
- assert(ya, "Did not generate ya")
652
- assert(trans.relationship_graph.vertex?(ya),
653
- "Did not add ya to rel_graph")
654
-
655
- # Now make sure the appropriate relationships were added
656
- assert(trans.relationship_graph.edge?(yay, ya),
657
- "parent was not required by child")
658
- assert(! trans.relationship_graph.edge?(ya, rah),
659
- "generated child ya inherited depencency on rah")
660
-
661
- # Now make sure it in turn eval_generates appropriately
662
- assert_nothing_raised("failed to apply yay") do
663
- trans.eval_resource(type["ya"])
664
- end
665
-
666
- %w{y}.each do |name|
667
- res = type[name]
668
- assert(res, "Did not generate %s" % name)
669
- assert(trans.relationship_graph.vertex?(res),
670
- "Did not add %s to rel_graph" % name)
671
- assert($finished.include?("y"), "y was not finished")
672
- end
673
-
674
- assert_nothing_raised("failed to eval_generate with nil response") do
675
- trans.eval_resource(type["y"])
676
- end
677
- assert(trans.relationship_graph.edge?(yay, ya), "no edge was created for ya => yay")
678
-
679
- assert_nothing_raised("failed to apply rah") do
680
- trans.eval_resource(rah)
681
- end
682
-
683
- ra = type["ra"]
684
- assert(ra, "Did not generate ra")
685
- assert(trans.relationship_graph.vertex?(ra),
686
- "Did not add ra to rel_graph" % name)
687
- assert($finished.include?("ra"), "y was not finished")
688
-
689
- # Now make sure this generated resource has the same relationships as
690
- # the generating resource
691
- assert(! trans.relationship_graph.edge?(yay, ra),
692
- "rah passed its dependencies on to its children")
693
- assert(! trans.relationship_graph.edge?(ya, ra),
694
- "children have a direct relationship")
695
-
696
- # Now make sure that cleanup gets rid of those generated types.
697
- assert_nothing_raised do
698
- trans.cleanup
699
- end
700
-
701
- %w{ya ra y r}.each do |name|
702
- assert(!trans.relationship_graph.vertex?(type[name]),
703
- "Generated vertex %s was not removed from graph" % name)
704
- assert_nil(type[name],
705
- "Generated vertex %s was not removed from class" % name)
706
- end
707
-
708
- # Now, start over and make sure that everything gets evaluated.
709
- trans = Puppet::Transaction.new(config)
710
- $evaluated.clear
711
- assert_nothing_raised do
712
- trans.evaluate
713
- end
714
-
715
- assert_equal(%w{yay ya y rah ra r}, $evaluated,
716
- "Not all resources were evaluated or not in the right order")
717
- end
718
525
 
719
526
  # We need to generate resources before we prefetch them, else generated
720
527
  # resources that require prefetching don't work.
@@ -729,7 +536,7 @@ class TestTransactions < Test::Unit::TestCase
729
536
  trans.prepare
730
537
  return
731
538
 
732
- resource = Puppet::Type.type(:file).create :ensure => :present, :path => tempfile()
539
+ resource = Puppet::Type.type(:file).new :ensure => :present, :path => tempfile()
733
540
  other_resource = mock 'generated'
734
541
  def resource.generate
735
542
  [other_resource]
@@ -738,17 +545,17 @@ class TestTransactions < Test::Unit::TestCase
738
545
 
739
546
  config = mk_catalog(yay, rah)
740
547
  trans = Puppet::Transaction.new(config)
741
-
548
+
742
549
  assert_nothing_raised do
743
550
  trans.generate
744
551
  end
745
-
552
+
746
553
  %w{ya ra y r}.each do |name|
747
554
  assert(trans.catalog.vertex?(Puppet::Type.type(:generator)[name]),
748
555
  "Generated %s was not a vertex" % name)
749
556
  assert($finished.include?(name), "%s was not finished" % name)
750
557
  end
751
-
558
+
752
559
  # Now make sure that cleanup gets rid of those generated types.
753
560
  assert_nothing_raised do
754
561
  trans.cleanup
@@ -756,7 +563,7 @@ class TestTransactions < Test::Unit::TestCase
756
563
  end
757
564
 
758
565
  def test_ignore_tags?
759
- config = Puppet::Node::Catalog.new
566
+ config = Puppet::Resource::Catalog.new
760
567
  config.host_config = true
761
568
  transaction = Puppet::Transaction.new(config)
762
569
  assert(! transaction.ignore_tags?, "Ignoring tags when applying a host catalog")
@@ -765,10 +572,10 @@ class TestTransactions < Test::Unit::TestCase
765
572
  transaction = Puppet::Transaction.new(config)
766
573
  assert(transaction.ignore_tags?, "Not ignoring tags when applying a non-host catalog")
767
574
  end
768
-
575
+
769
576
  def test_missing_tags?
770
577
  resource = stub 'resource', :tagged? => true
771
- config = Puppet::Node::Catalog.new
578
+ config = Puppet::Resource::Catalog.new
772
579
 
773
580
  # Mark it as a host config so we don't care which test is first
774
581
  config.host_config = true
@@ -781,7 +588,7 @@ class TestTransactions < Test::Unit::TestCase
781
588
  transaction = Puppet::Transaction.new(config)
782
589
  assert(! transaction.missing_tags?(resource), "Considered a resource to be missing tags when not running a host catalog")
783
590
 
784
- #
591
+ #
785
592
  config.host_config = true
786
593
  transaction = Puppet::Transaction.new(config)
787
594
  assert(! transaction.missing_tags?(resource), "Considered a resource to be missing tags when running a host catalog and all tags are present")
@@ -790,18 +597,18 @@ class TestTransactions < Test::Unit::TestCase
790
597
  resource.stubs :tagged? => false
791
598
  assert(transaction.missing_tags?(resource), "Considered a resource not to be missing tags when running a host catalog and tags are missing")
792
599
  end
793
-
600
+
794
601
  # Make sure changes generated by eval_generated resources have proxies
795
602
  # set to the top-level resource.
796
603
  def test_proxy_resources
797
604
  type = mkreducer do
798
605
  def evaluate
799
606
  return Puppet::Transaction::Change.new(Fakeprop.new(
800
- :path => :path, :is => :is, :should => :should, :name => self.name, :resource => "a parent"), :is)
607
+ :path => :path, :is => "start_value", :should => "desired_value", :name => self.name, :resource => "fake_parent"), :is)
801
608
  end
802
609
  end
803
-
804
- resource = type.create :name => "test"
610
+
611
+ resource = type.new :name => "test"
805
612
  config = mk_catalog(resource)
806
613
  trans = Puppet::Transaction.new(config)
807
614
  trans.prepare
@@ -811,14 +618,14 @@ class TestTransactions < Test::Unit::TestCase
811
618
  end
812
619
 
813
620
  changes = trans.instance_variable_get("@changes")
814
-
621
+
815
622
  assert(changes.length > 0, "did not get any changes")
816
-
623
+
817
624
  changes.each do |change|
818
- assert_equal(resource, change.resource, "change did not get proxy set correctly")
625
+ assert_equal(resource.object_id, change.resource.object_id, "change did not get proxy set correctly")
819
626
  end
820
627
  end
821
-
628
+
822
629
  # Make sure changes in contained files still generate callback events.
823
630
  def test_generated_callbacks
824
631
  dir = tempfile()
@@ -828,12 +635,12 @@ class TestTransactions < Test::Unit::TestCase
828
635
  File.open(file, "w") { |f| f.puts "" }
829
636
  File.chmod(0644, file)
830
637
  File.chmod(0755, dir) # So only the child file causes a change
831
-
832
- dirobj = Puppet::Type.type(:file).create :mode => "755", :recurse => true, :path => dir
833
- exec = Puppet::Type.type(:exec).create :title => "make",
638
+
639
+ dirobj = Puppet::Type.type(:file).new :mode => "755", :recurse => true, :path => dir
640
+ exec = Puppet::Type.type(:exec).new :title => "make",
834
641
  :command => "touch #{maker}", :path => ENV['PATH'], :refreshonly => true,
835
642
  :subscribe => dirobj
836
-
643
+
837
644
  assert_apply(dirobj, exec)
838
645
  assert(FileTest.exists?(maker), "Did not make callback file")
839
646
  end
@@ -861,7 +668,7 @@ class TestTransactions < Test::Unit::TestCase
861
668
  end
862
669
 
863
670
  # Make a graph with some stuff in it.
864
- graph = Puppet::Node::Catalog.new
671
+ graph = Puppet::Resource::Catalog.new
865
672
 
866
673
  # Add a non-triggering edge.
867
674
  a = trigger.new(:a)
@@ -912,29 +719,29 @@ class TestTransactions < Test::Unit::TestCase
912
719
  assert(trans.triggered?(c, :refresh),
913
720
  "Transaction did not store the trigger")
914
721
  end
915
-
722
+
916
723
  def test_set_target
917
- file = Puppet::Type.type(:file).create(:path => tempfile(), :content => "yay")
918
- exec1 = Puppet::Type.type(:exec).create :command => "/bin/echo exec1"
919
- exec2 = Puppet::Type.type(:exec).create :command => "/bin/echo exec2"
724
+ file = Puppet::Type.type(:file).new(:path => tempfile(), :content => "yay")
725
+ exec1 = Puppet::Type.type(:exec).new :command => "/bin/echo exec1"
726
+ exec2 = Puppet::Type.type(:exec).new :command => "/bin/echo exec2"
920
727
  trans = Puppet::Transaction.new(mk_catalog(file, exec1, exec2))
921
-
728
+
922
729
  # First try it with an edge that has no callback
923
730
  edge = Puppet::Relationship.new(file, exec1)
924
731
  assert_nothing_raised { trans.set_trigger(edge) }
925
732
  assert(! trans.targeted?(exec1), "edge with no callback resulted in a target")
926
-
733
+
927
734
  # Now with an edge that has an unsupported callback
928
735
  edge = Puppet::Relationship.new(file, exec1, :callback => :nosuchmethod, :event => :ALL_EVENTS)
929
736
  assert_nothing_raised { trans.set_trigger(edge) }
930
737
  assert(! trans.targeted?(exec1), "edge with invalid callback resulted in a target")
931
-
738
+
932
739
  # Lastly, with an edge with a supported callback
933
740
  edge = Puppet::Relationship.new(file, exec1, :callback => :refresh, :event => :ALL_EVENTS)
934
741
  assert_nothing_raised { trans.set_trigger(edge) }
935
742
  assert(trans.targeted?(exec1), "edge with valid callback did not result in a target")
936
743
  end
937
-
744
+
938
745
  # Testing #401 -- transactions are calling refresh() on classes that don't support it.
939
746
  def test_callback_availability
940
747
  $called = []
@@ -949,18 +756,18 @@ class TestTransactions < Test::Unit::TestCase
949
756
  Puppet::Type.rmtype(:norefresh)
950
757
  end
951
758
 
952
- file = Puppet::Type.type(:file).create :path => tempfile(), :content => "yay"
953
- one = klass.create :name => "one", :subscribe => file
954
-
759
+ file = Puppet::Type.type(:file).new :path => tempfile(), :content => "yay"
760
+ one = klass.new :name => "one", :subscribe => file
761
+
955
762
  assert_apply(file, one)
956
-
763
+
957
764
  assert(! $called.include?(:refresh), "Called refresh when it wasn't set as a method")
958
765
  end
959
766
 
960
767
  # Testing #437 - cyclic graphs should throw failures.
961
768
  def test_fail_on_cycle
962
- one = Puppet::Type.type(:exec).create(:name => "/bin/echo one")
963
- two = Puppet::Type.type(:exec).create(:name => "/bin/echo two")
769
+ one = Puppet::Type.type(:exec).new(:name => "/bin/echo one")
770
+ two = Puppet::Type.type(:exec).new(:name => "/bin/echo two")
964
771
  one[:require] = two
965
772
  two[:require] = one
966
773
 
@@ -983,16 +790,20 @@ class TestTransactions < Test::Unit::TestCase
983
790
  end
984
791
  cleanup { Puppet::Type.rmtype(:failer) }
985
792
 
986
- obj = type.create(:name => "testing")
793
+ obj = type.new(:name => "testing")
987
794
 
988
795
  assert_apply(obj)
989
796
  end
990
-
797
+
991
798
  def test_self_refresh_causes_triggering
992
799
  type = Puppet::Type.newtype(:refresher, :self_refresh => true) do
993
800
  attr_accessor :refreshed, :testing
994
801
  newparam(:name) {}
995
802
  newproperty(:testing) do
803
+ def retrieve
804
+ :eh
805
+ end
806
+
996
807
  def sync
997
808
  # noop
998
809
  :ran_testing
@@ -1003,43 +814,43 @@ class TestTransactions < Test::Unit::TestCase
1003
814
  end
1004
815
  end
1005
816
  cleanup { Puppet::Type.rmtype(:refresher)}
1006
-
1007
- obj = type.create(:name => "yay", :testing => "cool")
1008
-
817
+
818
+ obj = type.new(:name => "yay", :testing => "cool")
819
+
1009
820
  assert(! obj.insync?(obj.retrieve), "fake object is already in sync")
1010
-
821
+
1011
822
  # Now make sure it gets refreshed when the change happens
1012
823
  assert_apply(obj)
1013
824
  assert(obj.refreshed, "object was not refreshed during transaction")
1014
825
  end
1015
-
826
+
1016
827
  # Testing #433
1017
828
  def test_explicit_dependencies_beat_automatic
1018
829
  # Create a couple of different resource sets that have automatic relationships and make sure the manual relationships win
1019
830
  rels = {}
1020
831
  # First users and groups
1021
- group = Puppet::Type.type(:group).create(:name => nonrootgroup.name, :ensure => :present)
1022
- user = Puppet::Type.type(:user).create(:name => nonrootuser.name, :ensure => :present, :gid => group.title)
1023
-
832
+ group = Puppet::Type.type(:group).new(:name => nonrootgroup.name, :ensure => :present)
833
+ user = Puppet::Type.type(:user).new(:name => nonrootuser.name, :ensure => :present, :gid => group.title)
834
+
1024
835
  # Now add the explicit relationship
1025
836
  group[:require] = user
1026
837
  rels[group] = user
1027
838
  # Now files
1028
839
  d = tempfile()
1029
840
  f = File.join(d, "file")
1030
- file = Puppet::Type.type(:file).create(:path => f, :content => "yay")
1031
- dir = Puppet::Type.type(:file).create(:path => d, :ensure => :directory, :require => file)
1032
-
841
+ file = Puppet::Type.type(:file).new(:path => f, :content => "yay")
842
+ dir = Puppet::Type.type(:file).new(:path => d, :ensure => :directory, :require => file)
843
+
1033
844
  rels[dir] = file
1034
845
  rels.each do |after, before|
1035
846
  config = mk_catalog(before, after)
1036
847
  trans = Puppet::Transaction.new(config)
1037
848
  str = "from %s to %s" % [before, after]
1038
-
849
+
1039
850
  assert_nothing_raised("Failed to create graph %s" % str) do
1040
851
  trans.prepare
1041
852
  end
1042
-
853
+
1043
854
  graph = trans.relationship_graph
1044
855
  assert(graph.edge?(before, after), "did not create manual relationship %s" % str)
1045
856
  assert(! graph.edge?(after, before), "created automatic relationship %s" % str)
@@ -1052,12 +863,12 @@ class TestTransactions < Test::Unit::TestCase
1052
863
  path = tempfile
1053
864
  epath = tempfile
1054
865
  spath = tempfile
1055
- file = Puppet::Type.type(:file).create(:path => path, :ensure => :file,
866
+ file = Puppet::Type.type(:file).new(:path => path, :ensure => :file,
1056
867
  :title => "file")
1057
- exec = Puppet::Type.type(:exec).create(:command => "touch %s" % epath,
868
+ exec = Puppet::Type.type(:exec).new(:command => "touch %s" % epath,
1058
869
  :path => ENV["PATH"], :subscribe => file, :refreshonly => true,
1059
870
  :title => 'exec1')
1060
- exec2 = Puppet::Type.type(:exec).create(:command => "touch %s" % spath,
871
+ exec2 = Puppet::Type.type(:exec).new(:command => "touch %s" % spath,
1061
872
  :path => ENV["PATH"], :subscribe => exec, :refreshonly => true,
1062
873
  :title => 'exec2')
1063
874
 
@@ -1090,7 +901,7 @@ class TestTransactions < Test::Unit::TestCase
1090
901
  3.times do |i|
1091
902
  path = tempfile
1092
903
  paths << path
1093
- file = Puppet::Type.type(:file).create(:path => path, :ensure => :absent,
904
+ file = Puppet::Type.type(:file).new(:path => path, :ensure => :absent,
1094
905
  :backup => false, :title => "file%s" % i)
1095
906
  File.open(path, "w") { |f| f.puts "" }
1096
907
  files << file
@@ -1109,11 +920,12 @@ class TestTransactions < Test::Unit::TestCase
1109
920
  end
1110
921
 
1111
922
  def test_flush
1112
- $state = "absent"
923
+ $state = :absent
1113
924
  $flushed = 0
1114
925
  type = Puppet::Type.newtype(:flushtest) do
1115
926
  newparam(:name)
1116
927
  newproperty(:ensure) do
928
+ newvalues :absent, :present, :other
1117
929
  def retrieve
1118
930
  $state
1119
931
  end
@@ -1130,12 +942,12 @@ class TestTransactions < Test::Unit::TestCase
1130
942
 
1131
943
  cleanup { Puppet::Type.rmtype(:flushtest) }
1132
944
 
1133
- obj = type.create(:name => "test", :ensure => "present")
945
+ obj = type.new(:name => "test", :ensure => :present)
1134
946
 
1135
947
  # first make sure it runs through and flushes
1136
948
  assert_apply(obj)
1137
949
 
1138
- assert_equal("present", $state, "Object did not make a change")
950
+ assert_equal(:present, $state, "Object did not make a change")
1139
951
  assert_equal(1, $flushed, "object was not flushed")
1140
952
 
1141
953
  # Now run a noop and make sure we don't flush
@@ -1143,7 +955,7 @@ class TestTransactions < Test::Unit::TestCase
1143
955
  obj[:noop] = true
1144
956
 
1145
957
  assert_apply(obj)
1146
- assert_equal("present", $state, "Object made a change in noop")
958
+ assert_equal(:present, $state, "Object made a change in noop")
1147
959
  assert_equal(1, $flushed, "object was flushed in noop")
1148
960
  end
1149
961
  end