poolparty 0.2.84 → 1.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (642) hide show
  1. data/History.txt +7 -0
  2. data/License.txt +1 -1
  3. data/PostInstall.txt +1 -1
  4. data/README.txt +13 -22
  5. data/Rakefile +26 -35
  6. data/VERSION.yml +4 -0
  7. data/bin/cloud +24 -3
  8. data/bin/cloud-bootstrap +31 -0
  9. data/bin/cloud-configure +36 -20
  10. data/bin/{pool-console → cloud-console} +0 -0
  11. data/bin/cloud-contract +7 -7
  12. data/bin/cloud-describe +28 -0
  13. data/bin/cloud-expand +13 -6
  14. data/bin/cloud-handle-load +3 -3
  15. data/bin/cloud-list +9 -14
  16. data/bin/cloud-osxcopy +6 -5
  17. data/bin/cloud-provision +17 -22
  18. data/bin/cloud-setup-dev +11 -11
  19. data/bin/cloud-show +28 -0
  20. data/bin/cloud-spec +2 -2
  21. data/bin/cloud-ssh +10 -3
  22. data/bin/cloud-start +21 -23
  23. data/bin/cloud-terminate +15 -7
  24. data/bin/cloud-verify +32 -0
  25. data/bin/install-poolparty +216 -0
  26. data/bin/server-butterfly +25 -0
  27. data/bin/server-cloud-elections +37 -0
  28. data/bin/server-ensure-provisioning +33 -0
  29. data/bin/server-get-load +9 -12
  30. data/bin/server-list-active +25 -12
  31. data/bin/server-manage-election +67 -0
  32. data/bin/server-monitor.ru +42 -0
  33. data/bin/server-query-agent +15 -0
  34. data/bin/server-rerun +1 -1
  35. data/bin/server-write-new-nodes +2 -2
  36. data/config/jeweler.rb +52 -0
  37. data/config/requirements.rb +1 -9
  38. data/examples/basic.rb +10 -10
  39. data/examples/deploy.rb +5 -0
  40. data/examples/fairchild.rb +28 -0
  41. data/examples/fairchild_chef.rb +19 -0
  42. data/examples/maize.rb +37 -0
  43. data/examples/paparazzi.conf.erb +21 -0
  44. data/generators/poolspec/poolspec_generator.rb +1 -9
  45. data/generators/poolspec/templates/pool_spec_template.erb +0 -1
  46. data/lib/poolparty/{aska/aska.rb → aska.rb} +19 -28
  47. data/lib/poolparty/base_packages/haproxy.rb +48 -31
  48. data/lib/poolparty/base_packages/heartbeat.rb +6 -62
  49. data/lib/poolparty/base_packages/poolparty.rb +5 -105
  50. data/lib/poolparty/base_packages/ruby.rb +4 -4
  51. data/lib/poolparty/base_packages/runit.rb +1 -1
  52. data/lib/poolparty/core/array.rb +21 -3
  53. data/lib/poolparty/core/hash.rb +45 -10
  54. data/lib/poolparty/core/kernel.rb +30 -8
  55. data/lib/poolparty/core/nil.rb +8 -0
  56. data/lib/poolparty/core/object.rb +34 -25
  57. data/lib/poolparty/core/ordered_hash.rb +99 -0
  58. data/lib/poolparty/core/string.rb +112 -15
  59. data/lib/poolparty/core/symbol.rb +10 -0
  60. data/lib/poolparty/dependencies.rb +49 -0
  61. data/lib/poolparty/dependency_resolver/chef_resolver.rb +237 -0
  62. data/lib/poolparty/dependency_resolver/dependency_resolver.rb +42 -0
  63. data/lib/poolparty/dependency_resolver/dependency_resolver_cloud_extensions.rb +29 -0
  64. data/lib/poolparty/{dependency_resolutions → dependency_resolver}/puppet.rb +34 -29
  65. data/lib/poolparty/dependency_resolver/puppet_resolver.rb +188 -0
  66. data/lib/poolparty/exceptions/MasterException.rb +2 -2
  67. data/lib/poolparty/exceptions/RemoteException.rb +1 -1
  68. data/lib/poolparty/exceptions/dependency_resolver_exception.rb +5 -0
  69. data/lib/poolparty/exceptions/package_exception.rb +7 -0
  70. data/lib/poolparty/extra/deployments.rb +7 -7
  71. data/lib/poolparty/helpers/binary.rb +26 -32
  72. data/lib/poolparty/helpers/console.rb +1 -1
  73. data/lib/poolparty/helpers/display.rb +1 -5
  74. data/lib/poolparty/helpers/hash_printer.rb +44 -0
  75. data/lib/poolparty/helpers/loading.rb +4 -0
  76. data/lib/poolparty/helpers/optioner.rb +39 -25
  77. data/lib/poolparty/lite.rb +30 -0
  78. data/lib/poolparty/modules/callbacks.rb +44 -0
  79. data/lib/poolparty/modules/cloud_dsl.rb +38 -8
  80. data/lib/poolparty/modules/cloud_resourcer.rb +67 -97
  81. data/lib/poolparty/modules/daemonizable.rb +141 -0
  82. data/lib/poolparty/modules/definable_resource.rb +8 -14
  83. data/lib/poolparty/modules/file_writer.rb +25 -17
  84. data/lib/poolparty/modules/pinger.rb +28 -0
  85. data/lib/poolparty/modules/pretty_printer.rb +1 -1
  86. data/lib/poolparty/modules/resourcing_dsl.rb +55 -40
  87. data/lib/poolparty/modules/searchable_paths.rb +91 -0
  88. data/lib/poolparty/modules/thread_pool.rb +107 -106
  89. data/lib/poolparty/modules/user_helpers.rb +20 -0
  90. data/lib/poolparty/monitors/base_monitor.rb +18 -75
  91. data/lib/poolparty/monitors/monitor_rack.rb +123 -0
  92. data/lib/poolparty/monitors/monitors/favicon_monitor.rb +12 -0
  93. data/lib/poolparty/monitors/monitors/load_monitor.rb +9 -0
  94. data/lib/poolparty/monitors/monitors/memory_monitor.rb +9 -9
  95. data/lib/poolparty/monitors/monitors/neighborhood_monitor.rb +77 -0
  96. data/lib/poolparty/monitors/monitors/stats_monitor.rb +187 -0
  97. data/lib/poolparty/monitors/monitors/time_monitor.rb +15 -0
  98. data/lib/poolparty/net/init.rb +10 -0
  99. data/lib/poolparty/net/remote_bases.rb +20 -0
  100. data/lib/poolparty/net/remote_instance.rb +26 -44
  101. data/lib/poolparty/net/remoter/cloud_control.rb +24 -0
  102. data/lib/poolparty/net/remoter/connections.rb +172 -0
  103. data/lib/poolparty/net/remoter/interactive.rb +45 -0
  104. data/lib/poolparty/net/remoter_base.rb +116 -111
  105. data/lib/poolparty/net/remoter_bases/ec2/ec2.rb +245 -0
  106. data/lib/poolparty/net/remoter_bases/ec2/ec2_remote_instance.rb +53 -0
  107. data/lib/poolparty/net/{remote_bases → remoter_bases}/ec2/ec2_response_object.rb +2 -4
  108. data/lib/poolparty/net/remoter_bases/vmrun/utilities/vm_disk.rb +12 -0
  109. data/lib/poolparty/net/remoter_bases/vmrun/utilities/vmx.rb +33 -0
  110. data/lib/poolparty/net/remoter_bases/vmrun/utilities/vmx_file.rb +117 -0
  111. data/lib/poolparty/net/remoter_bases/vmrun/vmrun.rb +158 -0
  112. data/lib/poolparty/net/remoter_bases/vmrun/vmrun_instance.rb +71 -0
  113. data/lib/poolparty/plugins/apache2/apache.rb +340 -0
  114. data/lib/poolparty/plugins/bind.rb +11 -0
  115. data/lib/poolparty/plugins/chef.rb +173 -0
  116. data/lib/poolparty/plugins/chef_deploy.rb +58 -0
  117. data/lib/poolparty/plugins/deploy_directory.rb +49 -0
  118. data/lib/poolparty/plugins/gem_package.rb +61 -0
  119. data/lib/poolparty/plugins/git.rb +41 -24
  120. data/lib/poolparty/plugins/line_in_file.rb +30 -0
  121. data/lib/poolparty/plugins/nanite.rb +41 -0
  122. data/lib/poolparty/plugins/rails_deploy.rb +76 -0
  123. data/lib/poolparty/plugins/svn.rb +56 -39
  124. data/lib/poolparty/poolparty/cloud.rb +137 -167
  125. data/lib/poolparty/poolparty/{base.rb → default.rb} +62 -25
  126. data/lib/poolparty/poolparty/key.rb +78 -0
  127. data/lib/poolparty/poolparty/loggable.rb +28 -27
  128. data/lib/poolparty/poolparty/neighborhoods.rb +102 -0
  129. data/lib/poolparty/poolparty/plugin.rb +53 -18
  130. data/lib/poolparty/poolparty/plugin_model.rb +20 -23
  131. data/lib/poolparty/poolparty/pool.rb +34 -26
  132. data/lib/poolparty/poolparty/poolparty_base_class.rb +190 -0
  133. data/lib/poolparty/poolparty/resource.rb +92 -178
  134. data/lib/poolparty/poolparty/script.rb +32 -20
  135. data/lib/poolparty/poolparty/service.rb +44 -0
  136. data/lib/poolparty/poolparty/template.rb +27 -0
  137. data/lib/poolparty/provision/boot_strapper.rb +164 -0
  138. data/lib/poolparty/provision/configurations/chef.rb +26 -0
  139. data/lib/poolparty/provision/configurations/puppet.rb +28 -0
  140. data/lib/poolparty/provision/dr_configure.rb +142 -0
  141. data/lib/poolparty/resources/cron.rb +51 -0
  142. data/lib/poolparty/resources/directory.rb +36 -0
  143. data/lib/poolparty/resources/exec.rb +47 -0
  144. data/lib/poolparty/resources/file.rb +73 -0
  145. data/lib/poolparty/resources/host.rb +37 -0
  146. data/lib/poolparty/resources/mount.rb +45 -0
  147. data/lib/poolparty/resources/package.rb +41 -0
  148. data/lib/poolparty/resources/remote_file.rb +52 -0
  149. data/lib/poolparty/resources/service.rb +41 -0
  150. data/lib/poolparty/resources/sshkey.rb +49 -0
  151. data/lib/poolparty/resources/symlink.rb +43 -0
  152. data/lib/poolparty/{poolparty/resources/remote_user.rb → resources/user.rb} +1 -5
  153. data/lib/poolparty/resources/variable.rb +34 -0
  154. data/lib/poolparty/resources.rb +42 -0
  155. data/lib/poolparty/schema.rb +79 -0
  156. data/lib/poolparty/templates/apache2/apache2.conf +14 -0
  157. data/lib/poolparty/templates/apache2/base.conf.erb +168 -0
  158. data/lib/poolparty/templates/apache2/browser_fixes.conf.erb +26 -0
  159. data/lib/poolparty/templates/apache2/debian.conf.erb +675 -0
  160. data/lib/poolparty/templates/apache2/default-site.conf.erb +41 -0
  161. data/lib/poolparty/templates/apache2/directory_indexes.conf.erb +101 -0
  162. data/lib/poolparty/templates/apache2/logging-syslog.conf.erb +42 -0
  163. data/lib/poolparty/templates/apache2/mime-extras.conf.erb +211 -0
  164. data/lib/poolparty/templates/apache2/mime-minimal.conf.erb +15 -0
  165. data/lib/poolparty/templates/apache2/mpm-worker.conf.erb +20 -0
  166. data/lib/poolparty/templates/apache2/mpm-worker.erb +20 -0
  167. data/lib/poolparty/templates/apache2/passenger.conf.erb +20 -0
  168. data/lib/poolparty/templates/apache2/php.ini.erb +1253 -0
  169. data/lib/poolparty/templates/apache2/server-status.erb +19 -0
  170. data/lib/poolparty/templates/erlang_cookie_maker +6 -0
  171. data/lib/poolparty/templates/gemrc_template +11 -0
  172. data/lib/poolparty/templates/ha.cf +1 -1
  173. data/lib/poolparty/templates/haproxy.conf +29 -27
  174. data/lib/poolparty/templates/haresources +2 -2
  175. data/lib/poolparty/templates/monitor.ru +16 -0
  176. data/lib/poolparty/templates/php.ini.erb +1253 -0
  177. data/lib/poolparty/templates/puppet/add_puppet_to_hosts +6 -0
  178. data/lib/poolparty/templates/puppet/puppet.conf +2 -0
  179. data/lib/poolparty/templates/puppet/puppetrunner +14 -0
  180. data/lib/poolparty/templates/puppet/site.pp +4 -0
  181. data/lib/poolparty/templates/puppetrunner +11 -5
  182. data/lib/poolparty/verification/verifier_base.rb +17 -0
  183. data/lib/poolparty/verification/verifiers/http_match.rb +43 -0
  184. data/lib/poolparty/verification/verifiers/http_status.rb +59 -0
  185. data/lib/poolparty/verification/verifiers/ping.rb +34 -0
  186. data/lib/poolparty/verification/verify.rb +76 -0
  187. data/lib/poolparty.rb +76 -22
  188. data/lib/poolpartycl.rb +66 -1
  189. data/script/destroy +1 -1
  190. data/script/generate +1 -1
  191. data/spec/bin/bin_spec_helper.rb +7 -0
  192. data/spec/bin/fixtures/bin_cloud_for_test.rb +13 -0
  193. data/spec/bin/server-list-active_spec.rb +24 -0
  194. data/spec/poolparty/aska/aska_spec.rb +5 -5
  195. data/spec/poolparty/base_packages/haproxy_spec.rb +2 -8
  196. data/spec/poolparty/base_packages/heartbeat_spec.rb +3 -26
  197. data/spec/poolparty/bin/console_spec.rb +11 -29
  198. data/spec/poolparty/core/array_spec.rb +20 -3
  199. data/spec/poolparty/core/hash_spec.rb +30 -28
  200. data/spec/poolparty/core/object_spec.rb +2 -3
  201. data/spec/poolparty/core/ordered_hash_spec.rb +48 -0
  202. data/spec/poolparty/core/string_spec.rb +1 -27
  203. data/spec/poolparty/dependencies_spec.rb +11 -0
  204. data/spec/poolparty/dependency_resolver/chef_resolver_spec.rb +107 -0
  205. data/spec/poolparty/dependency_resolver/dependency_resolver_cloud_extensions_spec.rb +122 -0
  206. data/spec/poolparty/dependency_resolver/dependency_resolver_spec.rb +16 -0
  207. data/spec/poolparty/dependency_resolver/puppet_resolver_spec.rb +121 -0
  208. data/spec/poolparty/extra/deployments_spec.rb +9 -5
  209. data/spec/poolparty/fixtures/clouds.json +128 -0
  210. data/spec/poolparty/fixtures/test_template.erb +1 -0
  211. data/spec/poolparty/helpers/binary_spec.rb +1 -1
  212. data/spec/poolparty/helpers/hash_printer_spec.rb +34 -0
  213. data/spec/poolparty/helpers/optioner_spec.rb +1 -1
  214. data/spec/poolparty/id_rsa +27 -0
  215. data/spec/poolparty/modules/cloud_resourcer_spec.rb +26 -111
  216. data/spec/poolparty/modules/definable_resource.rb +1 -1
  217. data/spec/poolparty/modules/file_writer_spec.rb +10 -4
  218. data/spec/poolparty/modules/searchable_paths_spec.rb +76 -0
  219. data/spec/poolparty/monitors/base_monitor_spec.rb +112 -111
  220. data/spec/poolparty/monitors/monitors/cpu_monitor_spec.rb +18 -16
  221. data/spec/poolparty/monitors/monitors/memory_monitor_spec.rb +48 -47
  222. data/spec/poolparty/net/remote_instance_spec.rb +9 -73
  223. data/spec/poolparty/net/remote_spec.rb +287 -310
  224. data/spec/poolparty/net/remoter_base_spec.rb +3 -56
  225. data/spec/poolparty/net/remoter_bases/ec2_mocks_and_stubs.rb +24 -0
  226. data/spec/poolparty/net/remoter_bases/ec2_remote_instance_spec.rb +114 -0
  227. data/spec/poolparty/net/{remote_bases → remoter_bases}/ec2_spec.rb +51 -53
  228. data/spec/poolparty/net/remoter_spec.rb +96 -86
  229. data/spec/poolparty/plugins/chef_spec.rb +7 -0
  230. data/spec/poolparty/plugins/deploydirectory_spec.rb +51 -52
  231. data/spec/poolparty/plugins/git_spec.rb +16 -20
  232. data/spec/poolparty/plugins/line_spec.rb +14 -8
  233. data/spec/poolparty/poolparty/cloud_spec.rb +85 -183
  234. data/spec/poolparty/poolparty/configurers/files/ruby_basic.rb +3 -4
  235. data/spec/poolparty/poolparty/configurers/ruby_spec.rb +7 -23
  236. data/spec/poolparty/poolparty/{base_spec.rb → default_spec.rb} +44 -41
  237. data/spec/poolparty/poolparty/example_spec.rb +43 -11
  238. data/spec/poolparty/poolparty/key_spec.rb +42 -0
  239. data/spec/poolparty/poolparty/neighborhoods_spec.rb +65 -0
  240. data/spec/poolparty/poolparty/plugin_model_spec.rb +14 -24
  241. data/spec/poolparty/poolparty/plugin_spec.rb +25 -96
  242. data/spec/poolparty/poolparty/pool_spec.rb +3 -1
  243. data/spec/poolparty/poolparty/resource_spec.rb +70 -270
  244. data/spec/poolparty/poolparty/script_spec.rb +30 -53
  245. data/spec/poolparty/poolparty/service_spec.rb +5 -0
  246. data/spec/poolparty/poolparty/template_spec.rb +26 -0
  247. data/spec/poolparty/poolparty/test_plugins/webserver.rb +8 -25
  248. data/spec/poolparty/poolparty_base_class_spec.rb +84 -0
  249. data/spec/poolparty/poolparty_spec.rb +7 -4
  250. data/spec/poolparty/resources/cron_spec.rb +44 -0
  251. data/spec/poolparty/resources/directory_spec.rb +40 -0
  252. data/spec/poolparty/resources/exec_spec.rb +37 -0
  253. data/spec/poolparty/resources/file_spec.rb +64 -0
  254. data/spec/poolparty/resources/gem_spec.rb +7 -0
  255. data/spec/poolparty/resources/host_spec.rb +35 -0
  256. data/spec/poolparty/resources/package_spec.rb +26 -0
  257. data/spec/poolparty/resources/service_spec.rb +29 -0
  258. data/spec/poolparty/resources/sshkey_spec.rb +40 -0
  259. data/spec/poolparty/resources/symlink_spec.rb +29 -0
  260. data/spec/poolparty/resources/user_spec.rb +48 -0
  261. data/spec/poolparty/resources/variable_spec.rb +26 -0
  262. data/spec/poolparty/schema_spec.rb +53 -0
  263. data/spec/poolparty/spec_helper.rb +107 -23
  264. data/spec/poolparty/test_spec_helper.rb +13 -0
  265. data/tasks/development.rake +85 -69
  266. data/tasks/poolparty.rake +54 -0
  267. data/tasks/server.rake +41 -39
  268. data/tasks/spec.rake +35 -1
  269. data/test/fixtures/test_template.erb +1 -0
  270. data/test/poolparty/core/array_test.rb +21 -0
  271. data/test/poolparty/core/hash_test.rb +34 -0
  272. data/test/poolparty/core/string_test.rb +29 -0
  273. data/test/poolparty/dependency_resolver/puppet_resolver_test.rb +90 -0
  274. data/test/poolparty/modules/callbacks_test.rb +40 -0
  275. data/test/poolparty/modules/cloud_dsl_test.rb +60 -0
  276. data/test/poolparty/net/remoter_bases/vmrun/vmrun_test.rb +54 -0
  277. data/test/poolparty/net/remoter_test.rb +14 -0
  278. data/test/poolparty/poolparty/neighborhood_test.rb +23 -0
  279. data/test/poolparty/poolparty/poolparty_base_class_test.rb +84 -0
  280. data/test/poolparty/poolparty/template_test.rb +31 -0
  281. data/test/poolparty/provision/boot_strapper_test.rb +6 -0
  282. data/test/poolparty/provision/dr_configure_test.rb +6 -0
  283. data/test/poolparty/verification/verify_test.rb +49 -0
  284. data/test/test_helper.rb +8 -2
  285. data/test/test_poolparty.rb +6 -5
  286. data/vendor/chef/apache2/README.rdoc +59 -0
  287. data/vendor/chef/apache2/attributes/apache.rb +72 -0
  288. data/vendor/chef/apache2/definitions/apache_module.rb +36 -0
  289. data/vendor/chef/apache2/definitions/apache_site.rb +36 -0
  290. data/vendor/chef/apache2/definitions/web_app.rb +45 -0
  291. data/vendor/chef/apache2/files/default/apache2_module_conf_generate.pl +41 -0
  292. data/vendor/chef/apache2/recipes/default.rb +132 -0
  293. data/vendor/chef/apache2/recipes/mod_alias.rb +20 -0
  294. data/vendor/chef/apache2/recipes/mod_auth_basic.rb +20 -0
  295. data/vendor/chef/apache2/recipes/mod_auth_digest.rb +20 -0
  296. data/vendor/chef/apache2/recipes/mod_authn_file.rb +20 -0
  297. data/vendor/chef/apache2/recipes/mod_authnz_ldap.rb +20 -0
  298. data/vendor/chef/apache2/recipes/mod_authz_default.rb +20 -0
  299. data/vendor/chef/apache2/recipes/mod_authz_groupfile.rb +20 -0
  300. data/vendor/chef/apache2/recipes/mod_authz_host.rb +20 -0
  301. data/vendor/chef/apache2/recipes/mod_authz_user.rb +20 -0
  302. data/vendor/chef/apache2/recipes/mod_autoindex.rb +20 -0
  303. data/vendor/chef/apache2/recipes/mod_cgi.rb +20 -0
  304. data/vendor/chef/apache2/recipes/mod_dav.rb +20 -0
  305. data/vendor/chef/apache2/recipes/mod_dav_svn.rb +20 -0
  306. data/vendor/chef/apache2/recipes/mod_deflate.rb +20 -0
  307. data/vendor/chef/apache2/recipes/mod_dir.rb +20 -0
  308. data/vendor/chef/apache2/recipes/mod_env.rb +20 -0
  309. data/vendor/chef/apache2/recipes/mod_expires.rb +20 -0
  310. data/vendor/chef/apache2/recipes/mod_fcgid.rb +35 -0
  311. data/vendor/chef/apache2/recipes/mod_headers.rb +20 -0
  312. data/vendor/chef/apache2/recipes/mod_ldap.rb +20 -0
  313. data/vendor/chef/apache2/recipes/mod_log_config.rb +20 -0
  314. data/vendor/chef/apache2/recipes/mod_mime.rb +20 -0
  315. data/vendor/chef/apache2/recipes/mod_negotiation.rb +20 -0
  316. data/vendor/chef/apache2/recipes/mod_php5.rb +27 -0
  317. data/vendor/chef/apache2/recipes/mod_proxy.rb +20 -0
  318. data/vendor/chef/apache2/recipes/mod_proxy_http.rb +20 -0
  319. data/vendor/chef/apache2/recipes/mod_python.rb +22 -0
  320. data/vendor/chef/apache2/recipes/mod_rewrite.rb +20 -0
  321. data/vendor/chef/apache2/recipes/mod_setenvif.rb +20 -0
  322. data/vendor/chef/apache2/recipes/mod_ssl.rb +20 -0
  323. data/vendor/chef/apache2/recipes/mod_status.rb +20 -0
  324. data/vendor/chef/apache2/templates/default/a2dismod.erb +22 -0
  325. data/vendor/chef/apache2/templates/default/a2dissite.erb +29 -0
  326. data/vendor/chef/apache2/templates/default/a2enmod.erb +37 -0
  327. data/vendor/chef/apache2/templates/default/a2ensite.erb +38 -0
  328. data/vendor/chef/apache2/templates/default/apache2.conf.erb +630 -0
  329. data/vendor/chef/apache2/templates/default/default-site.erb +45 -0
  330. data/vendor/chef/apache2/templates/default/port_apache.erb +2 -0
  331. data/vendor/chef/apache2/templates/default/ports.conf.erb +6 -0
  332. data/vendor/chef/apache2/templates/default/web_app.conf.erb +43 -0
  333. data/vendor/chef/chef-deploy/LICENSE +201 -0
  334. data/vendor/chef/chef-deploy/README.rdoc +24 -0
  335. data/vendor/chef/chef-deploy/Rakefile +57 -0
  336. data/vendor/chef/chef-deploy/TODO +4 -0
  337. data/vendor/chef/chef-deploy/lib/chef-deploy/cached_deploy.rb +230 -0
  338. data/vendor/chef/chef-deploy/lib/chef-deploy/git.rb +132 -0
  339. data/vendor/chef/chef-deploy/lib/chef-deploy/subversion.rb +98 -0
  340. data/vendor/chef/chef-deploy/lib/chef-deploy.rb +183 -0
  341. data/vendor/gems/butterfly/History.txt +4 -0
  342. data/vendor/gems/butterfly/PostInstall.txt +2 -0
  343. data/vendor/gems/butterfly/README.rdoc +48 -0
  344. data/vendor/gems/butterfly/Rakefile +62 -0
  345. data/vendor/gems/butterfly/VERSION.yml +4 -0
  346. data/vendor/gems/butterfly/bin/flutter +4 -0
  347. data/vendor/gems/butterfly/butterfly.gemspec +37 -0
  348. data/vendor/gems/butterfly/examples/config.ru +15 -0
  349. data/vendor/gems/butterfly/examples/my_app.rb +12 -0
  350. data/vendor/gems/butterfly/lib/butterfly.rb +14 -0
  351. data/vendor/gems/butterfly/lib/handler.rb +48 -0
  352. data/vendor/gems/butterfly/lib/request.rb +29 -0
  353. data/vendor/gems/butterfly/lib/response.rb +49 -0
  354. data/vendor/gems/butterfly/script/console +10 -0
  355. data/vendor/gems/butterfly/script/destroy +14 -0
  356. data/vendor/gems/butterfly/script/generate +14 -0
  357. data/vendor/gems/butterfly/test/test_adapter_base.rb +23 -0
  358. data/vendor/gems/butterfly/test/test_butterfly_request.rb +46 -0
  359. data/vendor/gems/butterfly/test/test_butterfly_response.rb +43 -0
  360. data/vendor/gems/butterfly/test/test_butterfly_server.rb +16 -0
  361. data/vendor/gems/butterfly/test/test_default.rb +12 -0
  362. data/vendor/gems/butterfly/test/test_helper.rb +6 -0
  363. data/vendor/gems/dslify/History.txt +4 -0
  364. data/vendor/gems/dslify/Manifest.txt +25 -0
  365. data/vendor/gems/dslify/PostInstall.txt +5 -0
  366. data/vendor/gems/dslify/README.txt +60 -0
  367. data/vendor/gems/dslify/Rakefile +56 -0
  368. data/{config → vendor/gems/dslify/config}/hoe.rb +12 -55
  369. data/vendor/gems/dslify/config/requirements.rb +15 -0
  370. data/vendor/gems/dslify/dslify.gemspec +40 -0
  371. data/vendor/gems/dslify/lib/dslify/dslify.rb +76 -0
  372. data/vendor/gems/dslify/lib/dslify/version.rb +10 -0
  373. data/vendor/gems/dslify/lib/dslify.rb +7 -0
  374. data/vendor/gems/dslify/script/console +10 -0
  375. data/vendor/gems/dslify/script/destroy +14 -0
  376. data/vendor/gems/dslify/script/generate +14 -0
  377. data/{script → vendor/gems/dslify/script}/txt2html +4 -4
  378. data/{setup.rb → vendor/gems/dslify/setup.rb} +3 -3
  379. data/{tasks → vendor/gems/dslify/tasks}/deployment.rake +4 -18
  380. data/vendor/gems/dslify/tasks/environment.rake +7 -0
  381. data/{tasks → vendor/gems/dslify/tasks}/website.rake +0 -0
  382. data/vendor/gems/dslify/test/test_dslify.rb +138 -0
  383. data/vendor/gems/dslify/website/index.html +86 -0
  384. data/vendor/gems/dslify/website/index.txt +83 -0
  385. data/{website → vendor/gems/dslify/website}/javascripts/rounded_corners_lite.inc.js +0 -0
  386. data/{website → vendor/gems/dslify/website}/stylesheets/screen.css +18 -27
  387. data/{website → vendor/gems/dslify/website}/template.html.erb +1 -2
  388. data/vendor/gems/parenting/History.txt +4 -0
  389. data/vendor/gems/parenting/Manifest.txt +14 -0
  390. data/vendor/gems/parenting/PostInstall.txt +2 -0
  391. data/vendor/gems/parenting/README.rdoc +47 -0
  392. data/vendor/gems/parenting/Rakefile +28 -0
  393. data/vendor/gems/parenting/lib/parenting/parenting.rb +61 -0
  394. data/vendor/gems/parenting/lib/parenting.rb +10 -0
  395. data/vendor/gems/parenting/parenting.gemspec +39 -0
  396. data/vendor/gems/parenting/script/console +10 -0
  397. data/vendor/gems/parenting/script/destroy +14 -0
  398. data/vendor/gems/parenting/script/generate +14 -0
  399. data/vendor/gems/parenting/test/file_to_eval.rb +9 -0
  400. data/vendor/gems/parenting/test/test_helper.rb +5 -0
  401. data/vendor/gems/parenting/test/test_parenting.rb +117 -0
  402. data/vendor/gems/suitcase/LICENSE +20 -0
  403. data/vendor/gems/suitcase/README.rdoc +31 -0
  404. data/vendor/gems/suitcase/Rakefile +57 -0
  405. data/vendor/gems/suitcase/VERSION.yml +4 -0
  406. data/vendor/gems/suitcase/lib/suitcase/unzipper.rb +15 -0
  407. data/vendor/gems/suitcase/lib/suitcase/zipper.rb +119 -0
  408. data/vendor/gems/suitcase/lib/suitcase.rb +5 -0
  409. data/vendor/gems/suitcase/suitcase.gemspec +32 -0
  410. data/vendor/gems/suitcase/test/suitcase_test.rb +102 -0
  411. data/vendor/gems/suitcase/test/test_dir/box.rb +1 -0
  412. data/vendor/gems/suitcase/test/test_dir/test.txt +1 -0
  413. data/vendor/gems/suitcase/test/test_helper.rb +12 -0
  414. metadata +370 -343
  415. data/Capfile +0 -1
  416. data/Manifest.txt +0 -414
  417. data/bin/cloud-add-keypair +0 -28
  418. data/bin/cloud-ensure-provisioning +0 -39
  419. data/bin/cloud-maintain +0 -30
  420. data/bin/cloud-refresh +0 -17
  421. data/bin/cloud-run +0 -18
  422. data/bin/cloud-stats +0 -17
  423. data/bin/messenger-get-current-nodes +0 -14
  424. data/bin/pool +0 -31
  425. data/bin/pool-describe +0 -8
  426. data/bin/pool-generate +0 -18
  427. data/bin/pool-init +0 -28
  428. data/bin/pool-list +0 -30
  429. data/bin/pool-start +0 -26
  430. data/bin/server-build-messenger +0 -27
  431. data/bin/server-clean-cert-for +0 -15
  432. data/bin/server-list-responding +0 -24
  433. data/bin/server-start-client +0 -29
  434. data/bin/server-start-master +0 -26
  435. data/bin/server-start-node +0 -32
  436. data/bin/server-stop-client +0 -3
  437. data/bin/server-stop-master +0 -3
  438. data/bin/server-stop-node +0 -3
  439. data/bin/server-update-hosts +0 -49
  440. data/lib/erlang/messenger/Emakefile +0 -1
  441. data/lib/erlang/messenger/Makefile +0 -15
  442. data/lib/erlang/messenger/README +0 -5
  443. data/lib/erlang/messenger/Rakefile +0 -72
  444. data/lib/erlang/messenger/control +0 -11
  445. data/lib/erlang/messenger/ebin/client.app +0 -19
  446. data/lib/erlang/messenger/ebin/client_app.beam +0 -0
  447. data/lib/erlang/messenger/ebin/client_server.beam +0 -0
  448. data/lib/erlang/messenger/ebin/erl_crash.dump +0 -10326
  449. data/lib/erlang/messenger/ebin/master.app +0 -19
  450. data/lib/erlang/messenger/ebin/master_app.beam +0 -0
  451. data/lib/erlang/messenger/ebin/node.app +0 -19
  452. data/lib/erlang/messenger/ebin/node_app.beam +0 -0
  453. data/lib/erlang/messenger/ebin/packager.app +0 -19
  454. data/lib/erlang/messenger/ebin/pm_client.beam +0 -0
  455. data/lib/erlang/messenger/ebin/pm_client_old.beam +0 -0
  456. data/lib/erlang/messenger/ebin/pm_client_rel-0.1.rel +0 -1
  457. data/lib/erlang/messenger/ebin/pm_client_supervisor.beam +0 -0
  458. data/lib/erlang/messenger/ebin/pm_cluster.beam +0 -0
  459. data/lib/erlang/messenger/ebin/pm_event_manager.beam +0 -0
  460. data/lib/erlang/messenger/ebin/pm_master.beam +0 -0
  461. data/lib/erlang/messenger/ebin/pm_master_event_handler.beam +0 -0
  462. data/lib/erlang/messenger/ebin/pm_master_rel-0.1.rel +0 -1
  463. data/lib/erlang/messenger/ebin/pm_master_supervisor.beam +0 -0
  464. data/lib/erlang/messenger/ebin/pm_node.beam +0 -0
  465. data/lib/erlang/messenger/ebin/pm_node_rel-0.1.rel +0 -1
  466. data/lib/erlang/messenger/ebin/pm_node_supervisor.beam +0 -0
  467. data/lib/erlang/messenger/ebin/pm_packager.beam +0 -0
  468. data/lib/erlang/messenger/ebin/pm_spawner.beam +0 -0
  469. data/lib/erlang/messenger/ebin/pm_strings.beam +0 -0
  470. data/lib/erlang/messenger/ebin/utils.beam +0 -0
  471. data/lib/erlang/messenger/include/defines.hrl +0 -27
  472. data/lib/erlang/messenger/lib/eunit/AUTHORS +0 -2
  473. data/lib/erlang/messenger/lib/eunit/CHANGELOG +0 -14
  474. data/lib/erlang/messenger/lib/eunit/COPYING +0 -504
  475. data/lib/erlang/messenger/lib/eunit/Makefile +0 -28
  476. data/lib/erlang/messenger/lib/eunit/NOTES +0 -276
  477. data/lib/erlang/messenger/lib/eunit/README +0 -3
  478. data/lib/erlang/messenger/lib/eunit/doc/edoc-info +0 -3
  479. data/lib/erlang/messenger/lib/eunit/doc/erlang.png +0 -0
  480. data/lib/erlang/messenger/lib/eunit/doc/eunit.html +0 -172
  481. data/lib/erlang/messenger/lib/eunit/doc/index.html +0 -17
  482. data/lib/erlang/messenger/lib/eunit/doc/modules-frame.html +0 -12
  483. data/lib/erlang/messenger/lib/eunit/doc/overview-summary.html +0 -984
  484. data/lib/erlang/messenger/lib/eunit/doc/overview.edoc +0 -980
  485. data/lib/erlang/messenger/lib/eunit/doc/packages-frame.html +0 -11
  486. data/lib/erlang/messenger/lib/eunit/doc/stylesheet.css +0 -55
  487. data/lib/erlang/messenger/lib/eunit/ebin/autoload.beam +0 -0
  488. data/lib/erlang/messenger/lib/eunit/ebin/code_monitor.beam +0 -0
  489. data/lib/erlang/messenger/lib/eunit/ebin/eunit.app +0 -21
  490. data/lib/erlang/messenger/lib/eunit/ebin/eunit.appup +0 -1
  491. data/lib/erlang/messenger/lib/eunit/ebin/eunit.beam +0 -0
  492. data/lib/erlang/messenger/lib/eunit/ebin/eunit_autoexport.beam +0 -0
  493. data/lib/erlang/messenger/lib/eunit/ebin/eunit_data.beam +0 -0
  494. data/lib/erlang/messenger/lib/eunit/ebin/eunit_lib.beam +0 -0
  495. data/lib/erlang/messenger/lib/eunit/ebin/eunit_proc.beam +0 -0
  496. data/lib/erlang/messenger/lib/eunit/ebin/eunit_serial.beam +0 -0
  497. data/lib/erlang/messenger/lib/eunit/ebin/eunit_server.beam +0 -0
  498. data/lib/erlang/messenger/lib/eunit/ebin/eunit_striptests.beam +0 -0
  499. data/lib/erlang/messenger/lib/eunit/ebin/eunit_test.beam +0 -0
  500. data/lib/erlang/messenger/lib/eunit/ebin/eunit_tests.beam +0 -0
  501. data/lib/erlang/messenger/lib/eunit/ebin/eunit_tty.beam +0 -0
  502. data/lib/erlang/messenger/lib/eunit/ebin/file_monitor.beam +0 -0
  503. data/lib/erlang/messenger/lib/eunit/examples/eunit_examples.erl +0 -339
  504. data/lib/erlang/messenger/lib/eunit/examples/fib.erl +0 -19
  505. data/lib/erlang/messenger/lib/eunit/examples/tests.txt +0 -1
  506. data/lib/erlang/messenger/lib/eunit/include/eunit.hrl +0 -313
  507. data/lib/erlang/messenger/lib/eunit/src/Makefile +0 -46
  508. data/lib/erlang/messenger/lib/eunit/src/autoload.erl +0 -388
  509. data/lib/erlang/messenger/lib/eunit/src/code_monitor.erl +0 -243
  510. data/lib/erlang/messenger/lib/eunit/src/eunit.app.src +0 -21
  511. data/lib/erlang/messenger/lib/eunit/src/eunit.appup.src +0 -1
  512. data/lib/erlang/messenger/lib/eunit/src/eunit.erl +0 -196
  513. data/lib/erlang/messenger/lib/eunit/src/eunit_autoexport.erl +0 -102
  514. data/lib/erlang/messenger/lib/eunit/src/eunit_data.erl +0 -798
  515. data/lib/erlang/messenger/lib/eunit/src/eunit_internal.hrl +0 -48
  516. data/lib/erlang/messenger/lib/eunit/src/eunit_lib.erl +0 -682
  517. data/lib/erlang/messenger/lib/eunit/src/eunit_proc.erl +0 -552
  518. data/lib/erlang/messenger/lib/eunit/src/eunit_serial.erl +0 -157
  519. data/lib/erlang/messenger/lib/eunit/src/eunit_server.erl +0 -340
  520. data/lib/erlang/messenger/lib/eunit/src/eunit_striptests.erl +0 -64
  521. data/lib/erlang/messenger/lib/eunit/src/eunit_test.erl +0 -334
  522. data/lib/erlang/messenger/lib/eunit/src/eunit_tests.erl +0 -45
  523. data/lib/erlang/messenger/lib/eunit/src/eunit_tty.erl +0 -272
  524. data/lib/erlang/messenger/lib/eunit/src/file_monitor.erl +0 -409
  525. data/lib/erlang/messenger/lib/eunit/sys.config +0 -9
  526. data/lib/erlang/messenger/lib/eunit/vsn.mk +0 -1
  527. data/lib/erlang/messenger/pm_client_rel-0.1.boot +0 -0
  528. data/lib/erlang/messenger/pm_client_rel-0.1.script +0 -238
  529. data/lib/erlang/messenger/pm_master_rel-0.1.boot +0 -0
  530. data/lib/erlang/messenger/pm_master_rel-0.1.script +0 -239
  531. data/lib/erlang/messenger/pm_node_rel-0.1.boot +0 -0
  532. data/lib/erlang/messenger/pm_node_rel-0.1.script +0 -237
  533. data/lib/erlang/messenger/src/client_app.erl +0 -39
  534. data/lib/erlang/messenger/src/client_server.erl +0 -60
  535. data/lib/erlang/messenger/src/master_app.erl +0 -39
  536. data/lib/erlang/messenger/src/node_app.erl +0 -39
  537. data/lib/erlang/messenger/src/pm_client.erl +0 -49
  538. data/lib/erlang/messenger/src/pm_client_supervisor.erl +0 -38
  539. data/lib/erlang/messenger/src/pm_cluster.erl +0 -61
  540. data/lib/erlang/messenger/src/pm_event_manager.erl +0 -27
  541. data/lib/erlang/messenger/src/pm_master.erl +0 -215
  542. data/lib/erlang/messenger/src/pm_master_event_handler.erl +0 -72
  543. data/lib/erlang/messenger/src/pm_master_supervisor.erl +0 -39
  544. data/lib/erlang/messenger/src/pm_node.erl +0 -200
  545. data/lib/erlang/messenger/src/pm_node_supervisor.erl +0 -38
  546. data/lib/erlang/messenger/src/pm_packager.erl +0 -76
  547. data/lib/erlang/messenger/src/pm_spawner.erl +0 -213
  548. data/lib/erlang/messenger/src/pm_strings.erl +0 -11
  549. data/lib/erlang/messenger/src/utils.erl +0 -73
  550. data/lib/erlang/messenger/useful_snippets +0 -17
  551. data/lib/poolparty/capistrano.rb +0 -18
  552. data/lib/poolparty/config/postlaunchmessage.txt +0 -5
  553. data/lib/poolparty/dependency_resolutions/base.rb +0 -12
  554. data/lib/poolparty/modules/configurable.rb +0 -36
  555. data/lib/poolparty/modules/method_missing_sugar.rb +0 -58
  556. data/lib/poolparty/monitors/monitors/cpu_monitor.rb +0 -15
  557. data/lib/poolparty/monitors/monitors/web_monitor.rb +0 -18
  558. data/lib/poolparty/net/messenger.rb +0 -72
  559. data/lib/poolparty/net/remote.rb +0 -38
  560. data/lib/poolparty/net/remote_bases/ec2.rb +0 -190
  561. data/lib/poolparty/net/remoter.rb +0 -343
  562. data/lib/poolparty/plugins/deploydirectory.rb +0 -71
  563. data/lib/poolparty/plugins/line.rb +0 -77
  564. data/lib/poolparty/plugins/rsyncmirror.rb +0 -26
  565. data/lib/poolparty/poolparty/custom_resource.rb +0 -45
  566. data/lib/poolparty/poolparty/resources/class_package.rb +0 -105
  567. data/lib/poolparty/poolparty/resources/conditional.rb +0 -67
  568. data/lib/poolparty/poolparty/resources/cron.rb +0 -14
  569. data/lib/poolparty/poolparty/resources/custom_service.rb +0 -30
  570. data/lib/poolparty/poolparty/resources/directory.rb +0 -26
  571. data/lib/poolparty/poolparty/resources/exec.rb +0 -28
  572. data/lib/poolparty/poolparty/resources/file.rb +0 -23
  573. data/lib/poolparty/poolparty/resources/gem_package.rb +0 -52
  574. data/lib/poolparty/poolparty/resources/host.rb +0 -14
  575. data/lib/poolparty/poolparty/resources/mount.rb +0 -22
  576. data/lib/poolparty/poolparty/resources/package.rb +0 -24
  577. data/lib/poolparty/poolparty/resources/remote_file.rb +0 -26
  578. data/lib/poolparty/poolparty/resources/service.rb +0 -21
  579. data/lib/poolparty/poolparty/resources/sshkey.rb +0 -23
  580. data/lib/poolparty/poolparty/resources/symlink.rb +0 -25
  581. data/lib/poolparty/poolparty/resources/variable.rb +0 -32
  582. data/lib/poolparty/provisioners/capistrano/capistrano.rb +0 -127
  583. data/lib/poolparty/provisioners/capistrano/capistrano_configurer.rb +0 -58
  584. data/lib/poolparty/provisioners/capistrano/recipies/base.rb +0 -104
  585. data/lib/poolparty/provisioners/capistrano/recipies/master.rb +0 -121
  586. data/lib/poolparty/provisioners/capistrano/recipies/slave.rb +0 -12
  587. data/lib/poolparty/provisioners/provisioner_base.rb +0 -204
  588. data/lib/poolparty/spec/core/string.rb +0 -16
  589. data/lib/poolparty/spec/matchers/a_spec_extensions_base.rb +0 -26
  590. data/lib/poolparty/spec/matchers/have_cron.rb +0 -28
  591. data/lib/poolparty/spec/matchers/have_deploydirectory.rb +0 -15
  592. data/lib/poolparty/spec/matchers/have_directory.rb +0 -31
  593. data/lib/poolparty/spec/matchers/have_exec.rb +0 -28
  594. data/lib/poolparty/spec/matchers/have_file.rb +0 -28
  595. data/lib/poolparty/spec/matchers/have_gempackage.rb +0 -28
  596. data/lib/poolparty/spec/matchers/have_git.rb +0 -28
  597. data/lib/poolparty/spec/matchers/have_host.rb +0 -28
  598. data/lib/poolparty/spec/matchers/have_mount.rb +0 -28
  599. data/lib/poolparty/spec/matchers/have_package.rb +0 -28
  600. data/lib/poolparty/spec/matchers/have_remotefile.rb +0 -28
  601. data/lib/poolparty/spec/matchers/have_rsyncmirror.rb +0 -28
  602. data/lib/poolparty/spec/matchers/have_service.rb +0 -28
  603. data/lib/poolparty/spec/matchers/have_sshkey.rb +0 -28
  604. data/lib/poolparty/spec/matchers/have_symlink.rb +0 -28
  605. data/lib/poolparty/spec/matchers/have_variable.rb +0 -32
  606. data/lib/poolparty/spec/spec/dynamic_matchers.rb +0 -63
  607. data/lib/poolparty/spec/spec/ensure_matchers_exist.rb +0 -7
  608. data/lib/poolparty/spec/templates/have_base.rb +0 -28
  609. data/lib/poolparty/templates/puppet.conf +0 -26
  610. data/lib/poolparty/templates/puppetcleaner +0 -12
  611. data/lib/poolparty/templates/puppetrerun +0 -22
  612. data/lib/poolparty/version.rb +0 -9
  613. data/lib/poolpartyspec.rb +0 -34
  614. data/log/pool.log +0 -0
  615. data/poolparty.gemspec +0 -580
  616. data/spec/poolparty/dependency_resolutions/base_spec.rb +0 -11
  617. data/spec/poolparty/modules/configurable_spec.rb +0 -29
  618. data/spec/poolparty/net/log/pool.log +0 -0
  619. data/spec/poolparty/net/messenger_spec.rb +0 -16
  620. data/spec/poolparty/plugins/svn_spec.rb +0 -16
  621. data/spec/poolparty/poolparty/custom_resource_spec.rb +0 -120
  622. data/spec/poolparty/poolparty/resources/class_package_spec.rb +0 -120
  623. data/spec/poolparty/poolparty/resources/conditional_spec.rb +0 -77
  624. data/spec/poolparty/poolparty/resources/cron_spec.rb +0 -50
  625. data/spec/poolparty/poolparty/resources/directory_spec.rb +0 -40
  626. data/spec/poolparty/poolparty/resources/exec_spec.rb +0 -37
  627. data/spec/poolparty/poolparty/resources/file_spec.rb +0 -40
  628. data/spec/poolparty/poolparty/resources/gem_spec.rb +0 -46
  629. data/spec/poolparty/poolparty/resources/host_spec.rb +0 -28
  630. data/spec/poolparty/poolparty/resources/package_spec.rb +0 -44
  631. data/spec/poolparty/poolparty/resources/remote_file_spec.rb +0 -40
  632. data/spec/poolparty/poolparty/resources/service_spec.rb +0 -45
  633. data/spec/poolparty/poolparty/resources/sshkey_spec.rb +0 -48
  634. data/spec/poolparty/poolparty/resources/symlink_spec.rb +0 -22
  635. data/spec/poolparty/poolparty/resources/user_spec.rb +0 -38
  636. data/spec/poolparty/poolparty/resources/variable_spec.rb +0 -24
  637. data/spec/poolparty/provisioners/capistrano/capistrano_spec.rb +0 -27
  638. data/spec/poolparty/provisioners/provisioner_base_spec.rb +0 -120
  639. data/spec/poolparty/spec/core/string_spec.rb +0 -57
  640. data/website/index.html +0 -107
  641. data/website/index.txt +0 -95
  642. data/website/stylesheets/code.css +0 -29
@@ -1,409 +0,0 @@
1
- %% This library is free software; you can redistribute it and/or modify
2
- %% it under the terms of the GNU Lesser General Public License as
3
- %% published by the Free Software Foundation; either version 2 of the
4
- %% License, or (at your option) any later version.
5
- %%
6
- %% This library is distributed in the hope that it will be useful, but
7
- %% WITHOUT ANY WARRANTY; without even the implied warranty of
8
- %% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
9
- %% Lesser General Public License for more details.
10
- %%
11
- %% You should have received a copy of the GNU Lesser General Public
12
- %% License along with this library; if not, write to the Free Software
13
- %% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
14
- %% USA
15
- %%
16
- %% $Id: file_monitor.erl 250 2008-08-23 09:12:02Z rcarlsson $
17
- %%
18
- %% @private (for now)
19
- %% @author Richard Carlsson <richardc@it.uu.se>
20
- %% @copyright 2006 Richard Carlsson
21
- %% @doc Erlang file monitoring service
22
-
23
- %% The behaviour of this service is inspired by the open source FAM
24
- %% daemon [http://oss.sgi.com/projects/fam/].
25
-
26
- -module(file_monitor).
27
-
28
- -export([start/0, start/1, start/2, stop/0, stop/1, monitor_file/2,
29
- monitor_file/3, monitor_dir/2, monitor_dir/3, demonitor/1,
30
- demonitor/2]).
31
-
32
- -export([main/1]). %% private
33
-
34
- -include_lib("kernel/include/file.hrl").
35
-
36
- -define(POLL_TIME, 5000). % default; change with option poll_time
37
- -define(SERVER, file_monitor).
38
-
39
- %% NOTE: paths should be absolute, but this is not checked
40
-
41
- %% We don't change the paths, e.g. from relative to absolute, but we
42
- %% make sure that the path is a flat string and return it to the caller.
43
-
44
- monitor_file(Path, Pid) ->
45
- monitor_file(?SERVER, Path, Pid).
46
-
47
- monitor_file(Server, Path, Pid) ->
48
- monitor(Server, file, filename:flatten(Path), Pid).
49
-
50
- monitor_dir(Path, Pid) ->
51
- monitor_dir(?SERVER, Path, Pid).
52
-
53
- monitor_dir(Server, Path, Pid) ->
54
- monitor(Server, dir, filename:flatten(Path), Pid).
55
-
56
- monitor(Server, Type, Path, Pid) when is_pid(Pid) ->
57
- {ok, Ref} = command(Server, {monitor, {Type, Path}, Pid}),
58
- {ok, Path, Ref}.
59
-
60
- demonitor(Ref) ->
61
- demonitor(?SERVER, Ref).
62
-
63
- demonitor(Server, Ref) ->
64
- ok = command(Server, {demonitor, Ref}).
65
-
66
-
67
- command(Server, Cmd) ->
68
- ServerPid = ensure_started(Server),
69
- ServerPid ! {command, self(), Cmd},
70
- receive
71
- {ServerPid, Result} -> Result
72
- end.
73
-
74
-
75
- stop() ->
76
- stop(?SERVER).
77
-
78
- stop(Server) ->
79
- Server ! stop,
80
- ok.
81
-
82
- ensure_started(Name) when is_atom(Name) ->
83
- start(Name, []);
84
- ensure_started(Pid) when is_pid(Pid) ->
85
- Pid.
86
-
87
- start() ->
88
- start([]).
89
-
90
- start(Options) ->
91
- start(?SERVER, Options).
92
-
93
- start(Name, Options) ->
94
- case whereis(Name) of
95
- undefined ->
96
- Parent = self(),
97
- Pid = spawn(fun () -> server_init(Name, Parent, Options) end),
98
- receive
99
- {Pid, ok} -> Pid;
100
- {Pid, error} -> throw(no_server)
101
- end;
102
- Pid -> Pid
103
- end.
104
-
105
- -record(state, {name, time, dirs, files, clients, refs}).
106
-
107
- server_init(undefined = Name, Parent, Options) ->
108
- %% anonymous server
109
- server_init_1(Name, Parent, Options);
110
- server_init(Name, Parent, Options) ->
111
- case catch register(Name, self()) of
112
- true ->
113
- server_init_1(Name, Parent, Options);
114
- _ ->
115
- Parent ! {self(), error},
116
- exit(failed)
117
- end.
118
-
119
- server_init_1(Name, Parent, Options) ->
120
- Parent ! {self(), ok},
121
- server(set_timer(init_state(Name, Options))).
122
-
123
- init_state(Name, Options) ->
124
- Time = case proplists:get_value(poll_time, Options) of
125
- N when is_integer(N), N >= 100 -> N;
126
- _ -> ?POLL_TIME
127
- end,
128
- #state{name = Name,
129
- time = Time,
130
- dirs = dict:new(),
131
- files = dict:new(),
132
- clients = dict:new(),
133
- refs = dict:new()}.
134
-
135
- server(St) -> ?MODULE:main(St).
136
-
137
- %% @private
138
- main(St) ->
139
- receive
140
- {command, From, {monitor, Object, Pid}} when is_pid(Pid) ->
141
- {Ref, St1} = new_monitor(Object, Pid, St),
142
- server_reply(From, {ok, Ref}),
143
- server(add_client(Pid, St1));
144
- {command, From, {demonitor, Ref}} ->
145
- server_reply(From, ok),
146
- server(delete_monitor(Ref, St));
147
- stop ->
148
- exit(normal);
149
- time ->
150
- server(set_timer(poll(St)));
151
- {'DOWN', _Ref, process, Pid, _Info} ->
152
- server(purge_pid(Pid, del_client(Pid, St)));
153
- _ ->
154
- server(St)
155
- end.
156
-
157
- server_reply(To, Msg) ->
158
- To ! {self(), Msg}.
159
-
160
- set_timer(St) ->
161
- erlang:send_after(St#state.time, self(), time),
162
- St.
163
-
164
-
165
- %% client monitoring (once a client, always a client - until death)
166
-
167
- add_client(Pid, St) ->
168
- case dict:is_key(Pid, St#state.clients) of
169
- true ->
170
- St;
171
- false ->
172
- Ref = erlang:monitor(process, Pid),
173
- St#state{clients = dict:store(Pid, Ref, St#state.clients)}
174
- end.
175
-
176
- del_client(Pid, St) ->
177
- case dict:find(Pid, St#state.clients) of
178
- {ok, Ref} ->
179
- erlang:demonitor(Ref, [flush]),
180
- St#state{clients = dict:erase(Pid, St#state.clients)};
181
- error ->
182
- St
183
- end.
184
-
185
-
186
- -record(monitor, {pid, reference}).
187
-
188
- -record(entry, {info = undefined, files = [], monitors = sets:new()}).
189
-
190
- new_monitor(Object, Pid, St) ->
191
- Ref = make_ref(),
192
- Monitor = #monitor{pid = Pid, reference = Ref},
193
- new_monitor(Object, Monitor, Ref,
194
- St#state{refs = dict:store(Ref, {Pid, Object},
195
- St#state.refs)}).
196
-
197
- %% We must separate the namespaces for files and dirs, since we can't
198
- %% trust the users to keep them distinct; there may be simultaneous file
199
- %% and dir monitors for the same path.
200
-
201
- new_monitor({file, Path}, Monitor, Ref, St) ->
202
- {Ref, St#state{files = add_monitor(Path, Monitor, file,
203
- St#state.files)}};
204
- new_monitor({dir, Path}, Monitor, Ref, St) ->
205
- {Ref, St#state{dirs = add_monitor(Path, Monitor, dir,
206
- St#state.dirs)}}.
207
-
208
- %% Adding a new monitor forces an immediate poll of the file, such that
209
- %% previous monitors only see any real change, while the new monitor
210
- %% either gets {exists, ...} or {error, ...}.
211
-
212
- add_monitor(Path, Monitor, Type, Dict) ->
213
- Entry = case dict:find(Path, Dict) of
214
- {ok, OldEntry} -> poll_file(Path, OldEntry, Type);
215
- error -> new_entry(Path, Type)
216
- end,
217
- event(#entry{}, dummy_entry(Entry, Monitor), Type, Path),
218
- NewEntry = Entry#entry{monitors =
219
- sets:add_element(Monitor,
220
- Entry#entry.monitors)},
221
- dict:store(Path, NewEntry, Dict).
222
-
223
- dummy_entry(Entry, Monitor) ->
224
- Entry#entry{monitors = sets:add_element(Monitor, sets:new())}.
225
-
226
- new_entry(Path, Type) ->
227
- refresh_entry(Path, #entry{monitors = sets:new()}, Type).
228
-
229
- %% deleting a monitor by reference
230
-
231
- delete_monitor(Ref, St) ->
232
- case dict:find(Ref, St#state.refs) of
233
- {ok, {_Pid, Object}} ->
234
- St1 = St#state{refs = dict:erase(Ref, St#state.refs)},
235
- delete_monitor_1(Ref, Object, St1);
236
- error ->
237
- St
238
- end.
239
-
240
- delete_monitor_1(Ref, {file, Path}, St) ->
241
- St#state{files = delete_monitor_2(Path, Ref, St#state.files)};
242
- delete_monitor_1(Ref, {dir, Path}, St) ->
243
- St#state{dirs = delete_monitor_2(Path, Ref, St#state.dirs)}.
244
-
245
- delete_monitor_2(Path, Ref, Dict) ->
246
- case dict:find(Path, Dict) of
247
- {ok, Entry} ->
248
- purge_empty_sets(
249
- dict:store(Path, purge_monitor_ref(Ref, Entry), Dict));
250
- error ->
251
- Dict
252
- end.
253
-
254
- purge_monitor_ref(Ref, Entry) ->
255
- Entry#entry{monitors =
256
- sets:filter(fun (#monitor{reference = R})
257
- when R == Ref -> false;
258
- (_) -> true
259
- end,
260
- Entry#entry.monitors)}.
261
-
262
- %% purging monitors belonging to dead clients
263
-
264
- purge_pid(Pid, St) ->
265
- Files = dict:map(fun (_Path, Entry) ->
266
- purge_monitor_pid(Pid, Entry)
267
- end,
268
- St#state.files),
269
- Dirs = dict:map(fun (_Path, Entry) ->
270
- purge_monitor_pid(Pid, Entry)
271
- end,
272
- St#state.dirs),
273
- Refs = dict:filter(fun (_Ref, {P, _})
274
- when P == Pid -> false;
275
- (_, _) -> true
276
- end,
277
- St#state.refs),
278
- St#state{refs = Refs,
279
- files = purge_empty_sets(Files),
280
- dirs = purge_empty_sets(Dirs)}.
281
-
282
- purge_monitor_pid(Pid, Entry) ->
283
- Entry#entry{monitors =
284
- sets:filter(fun (#monitor{pid = P})
285
- when P == Pid -> false;
286
- (_) -> true
287
- end,
288
- Entry#entry.monitors)}.
289
-
290
- purge_empty_sets(Dict) ->
291
- dict:filter(fun (_Path, Entry) ->
292
- sets:size(Entry#entry.monitors) > 0
293
- end, Dict).
294
-
295
-
296
- %% generating events upon state changes
297
-
298
- %% Message formats:
299
- %% {exists, Path, Type, #file_info{}, Files}
300
- %% {changed, Path, Type, #file_info{}, Files}
301
- %% {error, Path, Type, Info}
302
- %%
303
- %% Type is dir or file. If Type is file, Files is always []. If Type is
304
- %% dir, Files is a list of {added, FileName} and {deleted, FileName},
305
- %% where FileName is relative to dir, without any path component.
306
- %%
307
- %% When a new monitor is installed for a path, an initial {exists,...}
308
- %% or {error,...} message will be sent to the monitor owner.
309
- %%
310
- %% Subsequent events will be either {changed,...} or {error,...}.
311
-
312
- event(#entry{info = Info}, #entry{info = Info}, _Type, _Path) ->
313
- %% no change in state
314
- ok;
315
- event(#entry{info = undefined}, #entry{info = NewInfo}=Entry,
316
- Type, Path)
317
- when not is_atom(NewInfo) ->
318
- %% file or directory exists, for a fresh monitor
319
- Files = [{added, F} || F <- Entry#entry.files],
320
- cast({exists, Path, Type, NewInfo, Files}, Entry#entry.monitors);
321
- event(_OldEntry, #entry{info = NewInfo}=Entry, Type, Path)
322
- when is_atom(NewInfo) ->
323
- %% file is not available
324
- cast({error, Path, Type, NewInfo}, Entry#entry.monitors);
325
- event(_OldEntry, Entry, file, Path) ->
326
- %% a normal file has changed
327
- cast({changed, Path, file, Entry#entry.info, []},
328
- Entry#entry.monitors);
329
- event(#entry{info = OldInfo}, #entry{info = NewInfo}=Entry, dir, Path)
330
- when is_atom(OldInfo) ->
331
- %% a directory has suddenly become available
332
- Files = [{added, F} || F <- Entry#entry.files],
333
- cast({changed, Path, dir, NewInfo, Files}, Entry#entry.monitors);
334
- event(OldEntry, #entry{info = NewInfo}=Entry, dir, Path) ->
335
- %% a directory has changed
336
- Files = diff_lists(Entry#entry.files, OldEntry#entry.files),
337
- cast({changed, Path, dir, NewInfo, Files}, Entry#entry.monitors).
338
-
339
-
340
- poll(St) ->
341
- St#state{files = dict:map(fun (Path, Entry) ->
342
- poll_file(Path, Entry, file)
343
- end,
344
- St#state.files),
345
- dirs = dict:map(fun (Path, Entry) ->
346
- poll_file(Path, Entry, dir)
347
- end,
348
- St#state.dirs)}.
349
-
350
- poll_file(Path, Entry, Type) ->
351
- NewEntry = refresh_entry(Path, Entry, Type),
352
- event(Entry, NewEntry, Type, Path),
353
- NewEntry.
354
-
355
- refresh_entry(Path, Entry, Type) ->
356
- Info = get_file_info(Path),
357
- Files = case Type of
358
- dir when not is_atom(Info) -> get_dir_files(Path);
359
- _ -> []
360
- end,
361
- Entry#entry{info = Info, files = Files}.
362
-
363
-
364
- %% We clear some fields of the file_info so that we only trigger on real
365
- %% changes; see the //kernel/file.erl manual and file.hrl for details.
366
-
367
- get_file_info(Path) ->
368
- case file:read_file_info(Path) of
369
- {ok, Info} ->
370
- Info#file_info{access = undefined,
371
- atime = undefined};
372
- {error, Error} ->
373
- Error % posix error code as atom
374
- end.
375
-
376
- %% Listing the members of a directory; note that it yields the empty
377
- %% list if it fails - this is not the place for error detection.
378
-
379
- get_dir_files(Path) ->
380
- case file:list_dir(Path) of
381
- {ok, Files} -> lists:sort(Files);
382
- {error, _} -> []
383
- end.
384
-
385
- %% both lists must be sorted for this diff to work
386
-
387
- diff_lists([F1 | Fs1], [F2 | _]=Fs2) when F1 < F2 ->
388
- [{added, F1} | diff_lists(Fs1, Fs2)];
389
- diff_lists([F1 | _]=Fs1, [F2 | Fs2]) when F1 > F2 ->
390
- [{deleted, F2} | diff_lists(Fs1, Fs2)];
391
- diff_lists([_ | Fs1], [_ | Fs2]) ->
392
- diff_lists(Fs1, Fs2);
393
- diff_lists([F | Fs1], Fs2) ->
394
- [{added, F} | diff_lists(Fs1, Fs2)];
395
- diff_lists(Fs1, [F | Fs2]) ->
396
- [{deleted, F} | diff_lists(Fs1, Fs2)];
397
- diff_lists([], []) ->
398
- [].
399
-
400
-
401
- %% Multicasting events to clients
402
-
403
- cast(Msg, Monitors) ->
404
- sets:fold(fun (#monitor{pid = Pid, reference = Ref}, Msg) ->
405
- %%erlang:display({file_monitor, Ref, Msg}),
406
- Pid ! {file_monitor, Ref, Msg},
407
- Msg % note that this is a fold, not a map
408
- end,
409
- Msg, Monitors).
@@ -1,9 +0,0 @@
1
- [
2
- {kernel,
3
- [{error_logger,
4
- {file, "priv/eunit.log"}}]},
5
- {sasl,
6
- [{sasl_error_logger, false},
7
- {error_logger_mf_dir, "."},
8
- {error_logger_mf_maxfiles, 20},
9
- {error_logger_mf_maxbytes, 1000000}]}].
@@ -1 +0,0 @@
1
- EUNIT_VSN = 2.0 beta 1
@@ -1,238 +0,0 @@
1
- %% script generated at {2008,11,23} {3,48,11}
2
- {script,
3
- {"client","0.1"},
4
- [{preLoaded,[erlang,erl_prim_loader,prim_file,prim_inet,init,otp_ring0]},
5
- {progress,preloaded},
6
- {path,
7
- ["/opt/local/lib/erlang/lib/kernel-2.12.5/ebin",
8
- "/opt/local/lib/erlang/lib/stdlib-1.15.5/ebin"]},
9
- {primLoad,[error_handler]},
10
- {kernel_load_completed},
11
- {progress,kernel_load_completed},
12
- {path,["/opt/local/lib/erlang/lib/kernel-2.12.5/ebin"]},
13
- {primLoad,
14
- [zlib,wrap_log_reader,user_sup,user_drv,user,seq_trace,rpc,ram_file,
15
- prim_zip,pg2,packages,os,net_kernel,net_adm,net,kernel_config,
16
- kernel,inet_udp,inet_tcp_dist,inet_tcp,inet_sctp,inet_res,
17
- inet_parse,inet_hosts,inet_gethost_native,inet_dns,inet_db,
18
- inet_config,inet6_udp,inet6_tcp_dist,inet6_tcp,inet,
19
- hipe_unified_loader,heart,group,global_search,global_group,global,
20
- gen_udp,gen_tcp,gen_sctp,file_server,file_io_server,file,erts_debug,
21
- error_logger,erl_reply,erl_epmd,erl_distribution,erl_ddll,
22
- erl_boot_server,dist_util,dist_ac,disk_log_sup,disk_log_server,
23
- disk_log_1,disk_log,code_server,code,auth,application_starter,
24
- application_master,application_controller,application]},
25
- {path,["/opt/local/lib/erlang/lib/stdlib-1.15.5/ebin"]},
26
- {primLoad,
27
- [zip,win32reg,unicode,timer,sys,supervisor_bridge,supervisor,string,
28
- sofs,slave,shell_default,shell,sets,regexp,re,random,queue,qlc_pt,
29
- qlc,proplists,proc_lib,pool,pg,otp_internal,ordsets,orddict,
30
- ms_transform,math,log_mf_h,lists,lib,io_lib_pretty,io_lib_fread,
31
- io_lib_format,io_lib,io,gen_server,gen_fsm,gen_event,gen,gb_trees,
32
- gb_sets,filename,filelib,file_sorter,eval_bits,ets,escript,
33
- error_logger_tty_h,error_logger_file_h,erl_tar,erl_scan,erl_pp,
34
- erl_posix_msg,erl_parse,erl_lint,erl_internal,erl_expand_records,
35
- erl_eval,erl_compile,erl_bits,epp,edlin_expand,edlin,digraph_utils,
36
- digraph,dict,dets_v9,dets_v8,dets_utils,dets_sup,dets_server,dets,
37
- calendar,c,beam_lib,base64,array]},
38
- {path,["/opt/local/lib/erlang/lib/inets-5.0.12/ebin"]},
39
- {primLoad,
40
- [tftp_sup,tftp_logger,tftp_lib,tftp_file,tftp_engine,tftp_binary,
41
- tftp,mod_trace,mod_security_server,mod_security,mod_responsecontrol,
42
- mod_range,mod_log,mod_include,mod_htaccess,mod_head,mod_get,mod_esi,
43
- mod_disk_log,mod_dir,mod_cgi,mod_browser,mod_auth_server,
44
- mod_auth_plain,mod_auth_mnesia,mod_auth_dets,mod_auth,mod_alias,
45
- mod_actions,inets_sup,inets_service,inets_app,inets,httpd_util,
46
- httpd_sup,httpd_socket,httpd_script_env,httpd_response,
47
- httpd_request_handler,httpd_request,httpd_misc_sup,httpd_manager,
48
- httpd_log,httpd_instance_sup,httpd_file,httpd_example,httpd_esi,
49
- httpd_conf,httpd_cgi,httpd_acceptor_sup,httpd_acceptor,httpd,
50
- httpc_sup,httpc_response,httpc_request,httpc_profile_sup,
51
- httpc_manager,httpc_handler_sup,httpc_handler,http_util,http_uri,
52
- http_transport,http_response,http_request,http_cookie,http_chunk,
53
- http,ftp_sup,ftp_response,ftp_progress,ftp]},
54
- {path,["/opt/local/lib/erlang/lib/crypto-1.5.3/ebin"]},
55
- {primLoad,[crypto_sup,crypto_server,crypto_app,crypto]},
56
- {path,["/opt/local/lib/erlang/lib/sasl-2.1.5.4/ebin"]},
57
- {primLoad,
58
- [systools_relup,systools_rc,systools_make,systools_lib,systools,
59
- sasl_report_tty_h,sasl_report_file_h,sasl_report,sasl,
60
- release_handler_1,release_handler,rb_format_supp,rb,overload,
61
- misc_supp,format_lib_supp,erlsrv,alarm_handler]},
62
- {path,
63
- ["/Users/petegolibersuch/Development/ruby/poolparty/lib/erlang/messenger/ebin"]},
64
- {primLoad,
65
- [utils,pm_client_supervisor,pm_client,client_server,client_app]},
66
- {progress,modules_loaded},
67
- {path,
68
- ["/opt/local/lib/erlang/lib/kernel-2.12.5/ebin",
69
- "/opt/local/lib/erlang/lib/stdlib-1.15.5/ebin",
70
- "/opt/local/lib/erlang/lib/inets-5.0.12/ebin",
71
- "/opt/local/lib/erlang/lib/crypto-1.5.3/ebin",
72
- "/opt/local/lib/erlang/lib/sasl-2.1.5.4/ebin",
73
- "/Users/petegolibersuch/Development/ruby/poolparty/lib/erlang/messenger/ebin"]},
74
- {kernelProcess,heart,{heart,start,[]}},
75
- {kernelProcess,error_logger,{error_logger,start_link,[]}},
76
- {kernelProcess,application_controller,
77
- {application_controller,start,
78
- [{application,kernel,
79
- [{description,"ERTS CXC 138 10"},
80
- {vsn,"2.12.5"},
81
- {id,[]},
82
- {modules,
83
- [application,application_controller,application_master,
84
- application_starter,auth,code,packages,code_server,
85
- dist_util,erl_boot_server,erl_distribution,
86
- erl_prim_loader,erl_reply,erlang,error_handler,
87
- error_logger,file,file_server,file_io_server,
88
- prim_file,prim_zip,global,global_group,global_search,
89
- group,heart,hipe_unified_loader,inet6_tcp,
90
- inet6_tcp_dist,inet6_udp,inet_config,inet_hosts,
91
- inet_gethost_native,inet_tcp_dist,init,kernel,
92
- kernel_config,net,net_adm,net_kernel,os,ram_file,rpc,
93
- user,user_drv,user_sup,disk_log,disk_log_1,
94
- disk_log_server,disk_log_sup,dist_ac,erl_ddll,
95
- erl_epmd,erts_debug,gen_tcp,gen_udp,gen_sctp,
96
- prim_inet,inet,inet_db,inet_dns,inet_parse,inet_res,
97
- inet_tcp,inet_udp,inet_sctp,pg2,seq_trace,
98
- wrap_log_reader,zlib,otp_ring0]},
99
- {registered,
100
- [application_controller,erl_reply,auth,boot_server,
101
- code_server,disk_log_server,disk_log_sup,
102
- erl_prim_loader,error_logger,file_server_2,
103
- fixtable_server,global_group,global_name_server,heart,
104
- init,kernel_config,kernel_sup,net_kernel,net_sup,rex,
105
- user,os_server,ddll_server,erl_epmd,inet_db,pg2]},
106
- {applications,[]},
107
- {included_applications,[]},
108
- {env,[{error_logger,tty}]},
109
- {start_phases,undefined},
110
- {maxT,infinity},
111
- {maxP,infinity},
112
- {mod,{kernel,[]}}]}]}},
113
- {progress,init_kernel_started},
114
- {apply,
115
- {application,load,
116
- [{application,stdlib,
117
- [{description,"ERTS CXC 138 10"},
118
- {vsn,"1.15.5"},
119
- {id,[]},
120
- {modules,
121
- [array,base64,beam_lib,c,calendar,dets,dets_server,
122
- dets_sup,dets_utils,dets_v8,dets_v9,dict,digraph,
123
- digraph_utils,edlin,edlin_expand,epp,eval_bits,
124
- erl_bits,erl_compile,erl_eval,erl_expand_records,
125
- erl_internal,erl_lint,erl_parse,erl_posix_msg,erl_pp,
126
- erl_scan,erl_tar,error_logger_file_h,
127
- error_logger_tty_h,escript,ets,file_sorter,filelib,
128
- filename,gb_trees,gb_sets,gen,gen_event,gen_fsm,
129
- gen_server,io,io_lib,io_lib_format,io_lib_fread,
130
- io_lib_pretty,lib,lists,log_mf_h,math,ms_transform,
131
- orddict,ordsets,otp_internal,pg,pool,proc_lib,
132
- proplists,qlc,qlc_pt,queue,random,re,regexp,sets,
133
- shell,shell_default,slave,sofs,string,supervisor,
134
- supervisor_bridge,sys,timer,unicode,win32reg,zip]},
135
- {registered,
136
- [timer_server,rsh_starter,take_over_monitor,
137
- pool_master,dets]},
138
- {applications,[kernel]},
139
- {included_applications,[]},
140
- {env,[]},
141
- {start_phases,undefined},
142
- {maxT,infinity},
143
- {maxP,infinity}]}]}},
144
- {apply,
145
- {application,load,
146
- [{application,inets,
147
- [{description,"INETS CXC 138 49"},
148
- {vsn,"5.0.12"},
149
- {id,[]},
150
- {modules,
151
- [inets,inets_sup,inets_app,inets_service,ftp,
152
- ftp_progress,ftp_response,ftp_sup,http,httpc_handler,
153
- httpc_handler_sup,httpc_manager,httpc_profile_sup,
154
- httpc_request,httpc_response,httpc_sup,http_cookie,
155
- http_uri,http_chunk,http_request,http_response,
156
- http_transport,http_util,httpd,httpd_acceptor,
157
- httpd_acceptor_sup,httpd_cgi,httpd_conf,httpd_esi,
158
- httpd_example,httpd_file,httpd_instance_sup,httpd_log,
159
- httpd_manager,httpd_misc_sup,httpd_request,
160
- httpd_request_handler,httpd_response,httpd_script_env,
161
- httpd_socket,httpd_sup,httpd_util,mod_actions,
162
- mod_alias,mod_auth,mod_auth_dets,mod_auth_mnesia,
163
- mod_auth_plain,mod_auth_server,mod_browser,mod_cgi,
164
- mod_dir,mod_disk_log,mod_esi,mod_get,mod_head,
165
- mod_htaccess,mod_include,mod_log,mod_range,
166
- mod_responsecontrol,mod_security,mod_security_server,
167
- mod_trace,tftp,tftp_binary,tftp_engine,tftp_file,
168
- tftp_lib,tftp_logger,tftp_sup]},
169
- {registered,[inets_sup,httpc_manager]},
170
- {applications,[kernel,stdlib]},
171
- {included_applications,[]},
172
- {env,[]},
173
- {start_phases,undefined},
174
- {maxT,infinity},
175
- {maxP,infinity},
176
- {mod,{inets_app,[]}}]}]}},
177
- {apply,
178
- {application,load,
179
- [{application,crypto,
180
- [{description,"CRYPTO version 1"},
181
- {vsn,"1.5.3"},
182
- {id,[]},
183
- {modules,[crypto,crypto_app,crypto_sup,crypto_server]},
184
- {registered,[crypto_sup,crypto_server]},
185
- {applications,[kernel,stdlib]},
186
- {included_applications,[]},
187
- {env,[]},
188
- {start_phases,undefined},
189
- {maxT,infinity},
190
- {maxP,infinity},
191
- {mod,{crypto_app,[]}}]}]}},
192
- {apply,
193
- {application,load,
194
- [{application,sasl,
195
- [{description,"SASL CXC 138 11"},
196
- {vsn,"2.1.5.4"},
197
- {id,[]},
198
- {modules,
199
- [sasl,alarm_handler,format_lib_supp,misc_supp,overload,
200
- rb,rb_format_supp,release_handler,release_handler_1,
201
- erlsrv,sasl_report,sasl_report_tty_h,
202
- sasl_report_file_h,systools,systools_make,systools_rc,
203
- systools_relup,systools_lib]},
204
- {registered,
205
- [sasl_sup,alarm_handler,overload,release_handler]},
206
- {applications,[kernel,stdlib]},
207
- {included_applications,[]},
208
- {env,[{sasl_error_logger,tty},{errlog_type,all}]},
209
- {start_phases,undefined},
210
- {maxT,infinity},
211
- {maxP,infinity},
212
- {mod,{sasl,[]}}]}]}},
213
- {apply,
214
- {application,load,
215
- [{application,client,
216
- [{description,"Client Server for PoolParty"},
217
- {vsn,"0.1"},
218
- {id,[]},
219
- {modules,
220
- [client_app,pm_client,client_server,
221
- pm_client_supervisor,utils]},
222
- {registered,[client_server,pm_client_supervisor]},
223
- {applications,[kernel,stdlib]},
224
- {included_applications,[]},
225
- {env,[]},
226
- {start_phases,[]},
227
- {maxT,infinity},
228
- {maxP,infinity},
229
- {mod,{client_app,[]}}]}]}},
230
- {progress,applications_loaded},
231
- {apply,{application,start_boot,[kernel,permanent]}},
232
- {apply,{application,start_boot,[stdlib,permanent]}},
233
- {apply,{application,start_boot,[inets,permanent]}},
234
- {apply,{application,start_boot,[crypto,permanent]}},
235
- {apply,{application,start_boot,[sasl,permanent]}},
236
- {apply,{application,start_boot,[client,permanent]}},
237
- {apply,{c,erlangrc,[]}},
238
- {progress,started}]}.