poolparty 0.2.84 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,12 +1,8 @@
1
1
  require File.dirname(__FILE__) + '/../spec_helper'
2
2
 
3
- class TestRemoteClass
3
+ class TestRemoteClass < PoolParty::Remote::RemoteInstance
4
4
  include CloudResourcer
5
5
  include PoolParty::Remote
6
-
7
- def keypair
8
- "fake_keypair"
9
- end
10
6
  end
11
7
 
12
8
  describe "RemoterBase" do
@@ -20,7 +16,8 @@ describe "RemoterBase" do
20
16
  %w(launch_new_instance! terminate_instance describe_instance instances_list).each do |method|
21
17
  eval <<-EOE
22
18
  it "should raise an exception if #{method} is not defined as a method" do
23
- lambda { @tr.#{method} }.should raise_error
19
+ # pending # Weird .should raise_error
20
+ lambda { @tr.class.#{method} }.should raise_error
24
21
  end
25
22
  it "should not raise an exception if #{method} is defined as a method" do
26
23
  lambda {
@@ -33,56 +30,6 @@ describe "RemoterBase" do
33
30
  end
34
31
  EOE
35
32
  end
36
- describe "lists" do
37
- before(:each) do
38
- @tr = TestClass.new
39
- stub_list_of_instances_for(@tr)
40
- end
41
- it "should gather a list of the running instances" do
42
- @tr.list_of_running_instances.map {|a| a.name }.should == ["master", "node1"]
43
- end
44
- it "should be able to gather a list of the pending instances" do
45
- @tr.list_of_pending_instances.map {|a| a.name }.should == ["node3"]
46
- end
47
- it "should be able to gather a list of the terminating instances" do
48
- @tr.list_of_terminating_instances.map {|a| a.name }.should == []
49
- end
50
- it "should be able to gather a list of the non-terminated instances" do
51
- @tr.list_of_nonterminated_instances.map {|a| a.name }.should == ["master", "node1", "node3"]
52
- end
53
- it "should return a list of remote instances" do
54
- @tr.remote_instances_list.first.class.should == PoolParty::Remote::RemoteInstance
55
- end
56
- describe "by keypairs" do
57
- it "should be able to grab all the alist keypairs" do
58
- @tr.list_of_instances("fake_keypair").map {|a| a[:name] }.should == ["master", "node1", "node2", "node3"]
59
- end
60
- it "should be able to grab all the blist keypairs" do
61
- @tr.list_of_instances("blist").map {|a| a[:name] }.should == ["node4"]
62
- end
63
- end
64
- describe "get by name" do
65
- it "should fetch the instance by number " do
66
- @tr.get_instance_by_number(1).name.should == "node1"
67
- end
68
- it "should fetch the master by number 0" do
69
- @tr.get_instance_by_number(0).name.should == "master"
70
- end
71
- it "should not throw a fit if the node doesn't exist" do
72
- lambda {@tr.get_instance_by_number(1000)}.should_not raise_error
73
- end
74
- end
75
- end
76
33
 
77
- describe "adding custom install tasks (like set_hostname, for example)" do
78
- before(:each) do
79
- @master = Object.new
80
- @master.stub!(:ip).and_return "192.68.0.1"
81
- @tr = TestClass.new
82
- @tr.stub!(:master).and_return @master
83
- end
84
- it "should have the method custom_install_tasks" do;@tr.respond_to?(:custom_install_tasks_for).should == true;end
85
- it "should have the method custom_configure_tasks" do;@tr.respond_to?(:custom_configure_tasks_for).should == true;end
86
- end
87
34
  end
88
35
  end
@@ -0,0 +1,24 @@
1
+ class TestEC2Class < Ec2
2
+ include CloudResourcer
3
+ include CloudDsl
4
+ include Dslify
5
+
6
+ default_options PoolParty::Default.default_options.merge({:access_key => "Not an access key",
7
+ :secret_access_key => "not a secret access key", :keypair => 'id_rsa'})
8
+
9
+ def ami;"ami-abc123";end
10
+ def size; "small";end
11
+ def security_group; "default";end
12
+ def ebs_volume_id; "ebs_volume_id";end
13
+ def availabilty_zone; "us-east-1a";end
14
+ def verbose; false; end
15
+ def describe_instances(o={})
16
+ response_list_of_instances
17
+ end
18
+ end
19
+
20
+ class TestEc2RemoteInstance < PoolParty::Remote::Ec2RemoteInstance
21
+ def initialize(opts, p=nil)
22
+ super
23
+ end
24
+ end
@@ -0,0 +1,114 @@
1
+ require File.join(File.dirname(__FILE__), '../../spec_helper')
2
+ require File.dirname(__FILE__) + '/ec2_mocks_and_stubs.rb'
3
+
4
+ include PoolParty::Remote
5
+ # include Aska
6
+
7
+ # require File.dirname(__FILE__) + '/ec2_mocks_and_stubs.rb'
8
+
9
+
10
+ describe "Ec2RemoteInstance" do
11
+ before(:each) do
12
+ @cloud = TestCloud.new :test_remoter_base_cloud
13
+ @ec2 = TestEc2RemoteInstance.new( {:name => "node3"}, TestEC2Class.new(@cloud) )
14
+ # node3 stubbed as {:ip=>"192.168.0.3", :keypair=>"fake_keypair", :status=>"pending", :name=>"node3", :launching_time=>Time.now
15
+ @ec2.my_cloud.stub!(:describe_instances).and_return response_list_of_instances
16
+ end
17
+ it "should require options" do
18
+ lambda {TestEc2RemoteInstance.new()}.should raise_error
19
+ end
20
+ it "should have the name set in the options" do
21
+ @ec2.respond_to?(:name).should == false
22
+ @ec2.options.keys.include?(:name).should == true
23
+ @ec2.name.should == 'node3'
24
+ end
25
+ it "should have access to parent cloud options" do
26
+ @ec2.my_cloud.class.should == TestEC2Class
27
+ @ec2.my_cloud.should respond_to(:describe_instances)
28
+ @ec2.my_cloud.size.should == 'small'
29
+ end
30
+ it "should have instance description hash mapped to methods" do
31
+ # puts "<ol>"
32
+ # @ec2.my_cloud.describe_instances.each{|i| puts "<li>#{i.inspect}</li>"}
33
+ # puts " </ol>"
34
+ @ec2.status.should == 'pending'
35
+ @ec2.name.should == 'node3'
36
+ @ec2.ip.should == '192.168.0.3'
37
+ @ec2.launching_time.should_not be_nil
38
+ @ec2.valid?.should be_true
39
+ end
40
+ it "should not be the master" do
41
+ @ec2.master?.should_not be_true
42
+ end
43
+ end
44
+
45
+
46
+
47
+
48
+
49
+
50
+ describe "Remote Instance" do
51
+ before(:each) do
52
+ setup
53
+ @valid_hash = {:ip => "127.0.0.1", :name => "master"}
54
+ end
55
+
56
+ describe "configurable" do
57
+ it "should set the options sent in the options, overiding passed option with found instance values" do
58
+ @ec2 = TestEc2RemoteInstance.new(@valid_hash)
59
+ @ec2.ip.should == "127.0.0.1"
60
+ end
61
+ it "should set the options sent by the parent" do
62
+ @obj = Object.new
63
+ @obj.stub!(:options).and_return({:dude => "tte"})
64
+ @ec2 = @ec2 = TestEc2RemoteInstance.new(@valid_hash, @obj)
65
+ @ec2.dude.should == "tte"
66
+ end
67
+ it "should not overwrite the options that are already set" do
68
+ @obj = Object.new
69
+ @obj.stub!(:options).and_return({:ip => "172.176.0.1"})
70
+ @ec2 = TestEc2RemoteInstance.new(@valid_hash, @obj)
71
+ @ec2.ip.should == "127.0.0.1"
72
+ end
73
+ end
74
+ it "should create a remote instance with a Hash" do
75
+ @ec2 = TestEc2RemoteInstance.new(@valid_hash)
76
+ @ec2.valid?.should == true
77
+ end
78
+ it "should not be valid if there is no ip associated" do
79
+ @ec2 = TestEc2RemoteInstance.new({:ip => nil})
80
+ @ec2.valid?.should == false
81
+ end
82
+ it "should not be valid if there is no name associated" do
83
+ @ec2 = TestEc2RemoteInstance.new(@valid_hash.merge({:name => nil}))
84
+ @ec2.valid?.should == false
85
+ end
86
+ describe "status" do
87
+ it "should say it is running when the status == running" do
88
+ TestEc2RemoteInstance.new(@valid_hash.merge(:status => "running")).running?.should == true
89
+ end
90
+ it "should say it is terminating when the status == shutting down" do
91
+ TestEc2RemoteInstance.new(@valid_hash.merge(:name => "node4", :status => "shutting")).terminating?.should == true
92
+ end
93
+ it "should say it is terminated when the status == terminated" do
94
+ TestEc2RemoteInstance.new(@valid_hash.merge(:status => "terminated")).terminated?.should == true
95
+ end
96
+ it "should not say it is running when it is pending" do
97
+ TestEc2RemoteInstance.new(@valid_hash.merge(:status => "pending") ).running?.should == false
98
+ end
99
+ end
100
+ describe "methods" do
101
+ before(:each) do
102
+ @ec2 = TestEc2RemoteInstance.new(@valid_hash.merge(:status => "running"))
103
+ end
104
+ it "should give the elapsed time" do
105
+ @ec2.stub!(:launching_time).and_return(30.minutes.ago)
106
+ @ec2.elapsed_runtime.should be >= 1800
107
+ end
108
+ it "should say that it is responding? if responding is not nil" do
109
+ @ec2.running?.should == true
110
+ @ec2.responding?.should == true
111
+ # @ec2.responding.should_not be_nil
112
+ end
113
+ end
114
+ end
@@ -1,35 +1,13 @@
1
1
  require File.dirname(__FILE__) + '/../../spec_helper'
2
-
3
2
  # include Remote
3
+ require File.dirname(__FILE__) + '/ec2_mocks_and_stubs.rb'
4
4
 
5
- class TestEC2Class
6
- include PoolParty::Remote::RemoterBase
7
- include Ec2
8
- include CloudResourcer
9
- include CloudDsl
10
-
11
- def keypair
12
- "fake_keypair"
13
- end
14
-
15
- def ami;"ami-abc123";end
16
- def size; "small";end
17
- def security_group; "default";end
18
- def ebs_volume_id; "ebs_volume_id";end
19
- def availabilty_zone; "us-east-1a";end
20
- def verbose
21
- false
22
- end
23
- def ec2
24
- @ec2 ||= EC2::Base.new( :access_key_id => "not_an_access_key", :secret_access_key => "not_a_secret_access_key")
25
- end
26
- end
27
5
  describe "ec2 remote base" do
28
6
  before(:each) do
29
- setup
30
- @tr = TestEC2Class.new
7
+ @cloud = TestCloud.new :test_remoter_base_cloud
8
+ @tr = TestEC2Class.new(@cloud)
31
9
  stub_remoter_for(@tr)
32
- @tr.stub!(:get_instances_description).and_return response_list_of_instances
10
+ # @tr.stub!(:get_instances_description).and_return response_list_of_instances
33
11
  end
34
12
  %w(launch_new_instance! terminate_instance! describe_instance describe_instances create_snapshot).each do |method|
35
13
  eval <<-EOE
@@ -54,39 +32,43 @@ describe "ec2 remote base" do
54
32
  end
55
33
  describe "launching" do
56
34
  before(:each) do
57
- @tr.ec2.stub!(:run_instances).and_return true
35
+ @ret_hash = {:instance_id => "1", :name => "instance"}
36
+ @tr.ec2({}).stub!(:run_instances).and_return @ret_hash
58
37
  end
59
38
  it "should call run_instances on the ec2 Base class when asking to launch_new_instance!" do
60
- @tr.ec2.should_receive(:run_instances).and_return true
39
+ # @tr.ec2.should_receive(:run_instances).and_return true
61
40
  @tr.launch_new_instance!
62
41
  end
63
42
  it "should use a specific security group if one is specified" do
64
43
  @tr.stub!(:security_group).and_return "web"
65
- @tr.ec2.should_receive(:run_instances).with(hash_including(:group_id => ['web'])).and_return true
66
- @tr.launch_new_instance!
67
- end
68
- it "should use the default security group if none is specified" do
69
- @tr.ec2.should_receive(:run_instances).with(hash_including(:group_id => ['default'])).and_return true
44
+ @tr.ec2.should_receive(:run_instances).and_return @ret_hash
70
45
  @tr.launch_new_instance!
71
46
  end
47
+ # it "should use the default security group if none is specified" do
48
+ # @tr.ec2.should_receive(:run_instances).with(hash_including(:group_id => ['default'])).and_return @ret_hash
49
+ # @tr.launch_new_instance!
50
+ # end
72
51
  it "should get the hash response from EC2ResponseObject" do
73
- EC2ResponseObject.should_receive(:get_hash_from_response).and_return true
74
- @tr.launch_new_instance!
52
+ EC2ResponseObject.should_receive(:get_hash_from_response).and_return @ret_hash
53
+ @tr.launch_new_instance! :keypair => "keys"
75
54
  end
76
55
  end
77
56
  describe "terminating" do
78
57
  it "should call terminate_instance! on ec2 when asking to terminate_instance!" do
79
58
  @tr.ec2.should_receive(:terminate_instances).with(:instance_id => "abc-123").and_return true
80
- @tr.terminate_instance!("abc-123")
59
+ @tr.terminate_instance!({:instance_id => "abc-123"})
81
60
  end
82
61
  end
83
62
  describe "describe_instance" do
84
- it "should call get_instances_description on itself" do
85
- @tr.should_receive(:get_instances_description).and_return {}
86
- @tr.describe_instance
63
+ it "should return a default instance if called with no paramters" do
64
+ @tr.describe_instances(:id => "i-1234").size.should > 0
65
+ end
66
+ it "should return nil if the cloud has no instances" do
67
+ @tr.stub!(:describe_instances).and_return []
68
+ @tr.describe_instance.nil?.should == true
87
69
  end
88
70
  end
89
- describe "get_instances_description" do
71
+ describe "get_instances_description" do #NOTE MF: this test is sorta bogus since it is just checking what we stubbed
90
72
  it "should return a hash" do
91
73
  @tr.describe_instances.class.should == Array
92
74
  end
@@ -97,26 +79,42 @@ describe "ec2 remote base" do
97
79
  @tr.describe_instances[1][:name].should == "node1"
98
80
  end
99
81
  it "should call the third node2" do
100
- @tr.describe_instances[2][:name].should == "terminated_node2"
82
+ @tr.describe_instances[2][:name].should == "node2"
101
83
  end
102
84
  end
103
- describe "create_keypair" do
85
+ describe "elastic_ips" do
104
86
  before(:each) do
105
- Kernel.stub!(:system).with("ec2-add-keypair fake_keypair > #{Base.base_keypair_path}/id_rsa-fake_keypair && chmod 600 #{Base.base_keypair_path}/id_rsa-fake_keypair").and_return true
87
+ @resp = {"requestId"=>"be9bd2e9-4f8c-448f-993d-c21fe537e322", "addressesSet"=>{"item"=>[{"instanceId"=>nil, "publicIp"=>"174.129.212.93"}, {"instanceId"=>nil, "publicIp"=>"182.199.200.201"}]}, "xmlns"=>"http://ec2.amazonaws.com/doc/2008-12-01/"}
88
+ @tr.ec2.stub!(:describe_addresses).and_return @resp
89
+ end
90
+ it "should have the next available elastic_ip" do
91
+ @tr.next_unused_elastic_ip.should == "174.129.212.93"
92
+ end
93
+ it "should use only the elastic ips set on the cloud" do
94
+ @cloud.stub!(:elastic_ips?).and_return true
95
+ @cloud.stub!(:elastic_ips).and_return ["182.199.200.201"]
96
+ @tr.stub!(:cloud).and_return @cloud
97
+ @tr.next_unused_elastic_ip.should == "182.199.200.201"
106
98
  end
107
- it "should send system to the Kernel" do
108
- Kernel.should_receive(:system).with("ec2-add-keypair fake_keypair > #{Base.base_keypair_path}/id_rsa-fake_keypair && chmod 600 #{Base.base_keypair_path}/id_rsa-fake_keypair").and_return true
109
- @tr.create_keypair
99
+ end
100
+ describe "create_keypair" do
101
+ before(:each) do
102
+ Kernel.stub!(:system).with("ec2-add-keypair fake_keypair > #{Default.base_keypair_path}/id_rsa-fake_keypair && chmod 600 #{Default.base_keypair_path}/id_rsa-fake_keypair").and_return true
103
+ # @tr.stub!(:base_keypair_path).and_return "#{ENV["HOME"]}/.ec2"
110
104
  end
111
105
  it "should try to create the directory when making a new keypair" do
112
- FileUtils.should_receive(:mkdir_p).and_return true
113
- ::File.stub!(:directory?).and_return false
114
- @tr.create_keypair
106
+ # FileUtils.should_receive(:mkdir_p).and_return true
107
+ # ::File.stub!(:directory?).and_return false
108
+ # @tr.create_keypair
109
+ pending
110
+ #TODO Fix with new remoter branch
115
111
  end
116
112
  it "should not create a keypair if the keypair is nil" do
117
- Kernel.should_not_receive(:system)
118
- @tr.stub!(:keypair).and_return nil
119
- @tr.create_keypair
113
+ pending
114
+ #TODO Fix with new remoter branch
115
+ # Kernel.should_not_receive(:system)
116
+ # @tr.stub!(:keypair).and_return nil
117
+ # @tr.create_keypair
120
118
  end
121
119
  end
122
120
  describe "create_snapshot" do
@@ -133,4 +131,4 @@ describe "ec2 remote base" do
133
131
  @tr.create_snapshot.should == nil
134
132
  end
135
133
  end
136
- end
134
+ end
@@ -6,7 +6,6 @@ describe "Remoter" do
6
6
  @cloud = cloud :app do;end
7
7
  @tc = TestClass.new
8
8
  @tc.parent = @cloud
9
- ::File.stub!(:exists?).with("#{File.expand_path(Base.base_keypair_path)}/id_rsa-fake_keypair").and_return true
10
9
  @sample_instances_list = [{:ip => "192.168.0.1", :name => "master"}, {:ip => "192.168.0.2", :name => "node1"}]
11
10
  end
12
11
  describe "ssh_string" do
@@ -14,7 +13,7 @@ describe "Remoter" do
14
13
  @tc.ssh_string.should =~ /ssh -o StrictHostKeyChecking=no -l/
15
14
  end
16
15
  it "should have the keypair in the ssh_string" do
17
- @tc.ssh_string.should =~ /#{@tc.keypair}/
16
+ @tc.ssh_string.should =~ /#{@tc.full_keypair_path}/
18
17
  end
19
18
  end
20
19
  describe "ssh_array" do
@@ -31,93 +30,104 @@ describe "Remoter" do
31
30
  @ri.stub!(:ip).and_return "192.168.0.22"
32
31
  end
33
32
  it "should have rsync in the rsync_command" do
34
- @tc.rsync_command.should == "rsync -azP --exclude cache -e '#{@tc.ssh_string} -l #{Base.user}'"
33
+ @tc.rsync_command.should == "rsync -azP --exclude cache -e '#{@tc.ssh_string} -l #{Default.user}'"
35
34
  end
36
35
  it "should be able to rsync storage commands" do
37
- @tc.rsync_storage_files_to_command(@ri).should == "#{@tc.rsync_command} #{Base.storage_directory}/ 192.168.0.22:/var/poolparty"
38
- end
39
- end
40
- describe "launch_and_configure_master!" do
41
- before(:each) do
42
- @tc.stub!(:wait).and_return true
43
- stub_list_from_remote_for(@tc)
44
- stub_remoting_methods_for(@tc)
45
- @tc.stub!(:maximum_instances).and_return 5
46
- @tc.stub!(:list_of_pending_instances).and_return []
47
- @tc.stub!(:list_of_nonterminated_instances).and_return []
48
- @tc.stub!(:list_of_running_instances).and_return []
49
- @tc.stub!(:master).and_return ris.first
50
- @tc.stub!(:after_launched).and_return true
51
- @tc.stub!(:verbose).and_return false
52
- ::File.stub!(:exists?).and_return true
53
-
54
- @pb = PoolParty::Provisioner::Capistrano.new(nil, @tc)
55
- PoolParty::Provisioner::Capistrano.stub!(:new).and_return @pb
56
- @pb.stub!(:setup_runner)
57
- @pb.stub!(:install).and_return true
58
- @pb.stub!(:configure).and_return true
59
- @pb.stub!(:create_roles).and_return true
60
- end
61
- it "should have the method launch_master!" do
62
- @tc.respond_to?(:launch_and_configure_master!).should == true
63
- end
64
- it "should test if it can start a new instance" do
65
- @tc.should_receive(:can_start_a_new_instance?).once.and_return false
66
- end
67
- it "should test if the master is running" do
68
- @tc.should_receive(:is_master_running?).and_return false
69
- end
70
- it "should ask to request_launch_new_instances when the master is not running and we can start a new instance" do
71
- @tc.should_receive(:request_launch_master_instance)
72
- @tc.stub!(:can_start_a_new_instance?).and_return true
73
- @tc.stub!(:is_master_running?).and_return false
74
- end
75
- after(:each) do
76
- @tc.launch_and_configure_master!
77
- end
78
- end
79
- describe "expansions and contractions" do
80
- before(:each) do
81
- @tc = TestClass.new
82
- stub_list_from_remote_for @tc # sets the list of instances to 2
83
- end
84
- describe "list_of_nodes_exceeding_minimum_runtime" do
85
- before(:each) do
86
- @tc.stub!(:minimum_runtime).and_return 3000
87
- end
88
- it "should not be empty" do
89
- @tc.list_of_running_instances.size.should == 2
90
- @tc.list_of_running_instances.first.elapsed_runtime.should be > 3000
91
- @tc.list_of_nodes_exceeding_minimum_runtime.size.should be > 0
92
- end
93
- it "should return a RemoteInstance" do
94
- @tc.list_of_nodes_exceeding_minimum_runtime.first.should be_instance_of(PoolParty::Remote::RemoteInstance)
95
- end
96
- it "are_any_nodes_exceeding_minimum_runtime? should be true" do
97
- @tc.are_any_nodes_exceeding_minimum_runtime?.should == true
98
- end
99
- end
100
-
101
- describe "are_too_few_instances_running?" do
102
- it "should be false if the number of running instances is larger than the minimum instances" do
103
- @tc.stub!(:minimum_instances).and_return 1
104
- @tc.are_too_few_instances_running?.should == false
105
- end
106
- it "should be true if the number of running instances is smaller than the minimum instances" do
107
- @tc.stub!(:minimum_instances).and_return 5
108
- @tc.are_too_few_instances_running?.should == true
109
- end
110
- end
111
- describe "are_too_many_instances_running?" do
112
- it "should be true if the number of running instances is larger than the maximum instances" do
113
- @tc.stub!(:maximum_instances).and_return 1
114
- @tc.are_too_many_instances_running?.should == true
115
- end
116
- it "should be false if the number of running instances is smaller than the maximum instances" do
117
- @tc.stub!(:maximum_instances).and_return 5
118
- @tc.are_too_many_instances_running?.should == false
119
- end
36
+ @tc.rsync_storage_files_to_command(@ri).should == "#{@tc.rsync_command} #{Default.storage_directory}/ 192.168.0.22:/var/poolparty"
120
37
  end
121
38
  end
122
39
 
40
+ # describe "launch_and_configure_master!" do
41
+ # before(:each) do
42
+ # @tc.stub!(:wait).and_return true
43
+ # stub_list_from_remote_for(@tc)
44
+ # stub_remoting_methods_for(@tc)
45
+ # @tc.stub!(:maximum_instances).and_return 5
46
+ # @tc.stub!(:list_of_pending_instances).and_return []
47
+ # @tc.stub!(:list_of_nonterminated_instances).and_return []
48
+ # @tc.stub!(:nodes(:status => "running")).and_return []
49
+ # @tc.stub!(:master).and_return ris.first
50
+ # @tc.stub!(:after_launched).and_return true
51
+ # @tc.stub!(:verbose).and_return false
52
+ # # @tc.stub!(:testing).and_return true #MF
53
+ # ::File.stub!(:exists?).and_return true
54
+ #
55
+ # @pb = PoolParty::Provisioner::Capistrano.new(nil, @tc)
56
+ # PoolParty::Provisioner::Capistrano.stub!(:new).and_return @pb
57
+ # @pb.stub!(:setup_runner)
58
+ # @pb.stub!(:install).and_return true
59
+ # @pb.stub!(:configure).and_return true
60
+ # @pb.stub!(:create_roles).and_return true
61
+ # end
62
+ # it "should have dependency_resolver_command" do
63
+ # @tc.respond_to?(:dependency_resolver_command)
64
+ # @tc.dependency_resolver_command.should match(/puppet/)
65
+ # end
66
+ # it "should have the method launch_master!" do
67
+ # @tc.respond_to?(:launch_and_configure_master!).should == true
68
+ # end
69
+ # it "should test if it can start a new instance" do
70
+ # @tc.should_receive(:can_start_a_new_instance?).once.and_return false
71
+ # end
72
+ # it "should test if the master is running" do
73
+ # @tc.should_receive(:is_master_running?).and_return false
74
+ # end
75
+ # it "should ask to request_launch_new_instances when the master is not running and we can start a new instance" do
76
+ # @tc.should_receive(:request_launch_master_instance)
77
+ # @tc.stub!(:can_start_a_new_instance?).and_return true
78
+ # @tc.stub!(:is_master_running?).and_return false
79
+ # end
80
+ # after(:each) do
81
+ # @tc.launch_and_configure_master!
82
+ # end
83
+ # end
84
+
85
+ # TODO: Move to test unit
86
+ # describe "expansions and contractions" do
87
+ # before(:each) do
88
+ # @tc = TestClass.new
89
+ # @tc.stub!(:nodes).and_return({:ip => "127.0.0.2", :status => "running"},
90
+ # {:ip => "127.0.0.2", :status => "running"})
91
+ # stub_running_remote_instances @tc
92
+ # end
93
+ # describe "list_of_nodes_exceeding_minimum_runtime" do
94
+ # before(:each) do
95
+ # @tc.stub!(:minimum_runtime).and_return 3000
96
+ # end
97
+ # it "should not be empty" do
98
+ # @tc.nodes(:status => "running").size.should == 2
99
+ # @tc.nodes(:status => "running").first.elapsed_runtime.should be > 3000
100
+ # @tc.list_of_nodes_exceeding_minimum_runtime.size.should be > 0
101
+ # end
102
+ # it "should return a RemoteInstance" do
103
+ # @tc.list_of_nodes_exceeding_minimum_runtime.first.should be_instance_of(PoolParty::Remote::RemoteInstance)
104
+ # end
105
+ # it "are_any_nodes_exceeding_minimum_runtime? should be true" do
106
+ # @tc.are_any_nodes_exceeding_minimum_runtime?.should == true
107
+ # end
108
+ # end
109
+ #
110
+ # describe "are_too_few_instances_running?" do
111
+ # it "should be false if the number of running instances is larger than the minimum instances" do
112
+ # @tc.stub!(:minimum_instances).and_return 1
113
+ # @tc.are_too_few_instances_running?.should == false
114
+ # end
115
+ # it "should be true if the number of running instances is smaller than the minimum instances" do
116
+ # @tc.stub!(:minimum_instances).and_return 5
117
+ # @tc.are_too_few_instances_running?.should == true
118
+ # end
119
+ # end
120
+ # describe "are_too_many_instances_running?" do
121
+ # it "should be true if the number of running instances is larger than the maximum instances" do
122
+ # @tc.stub!(:maximum_instances).and_return 1
123
+ # p @tc.nodes
124
+ # @tc.are_too_many_instances_running?.should == true
125
+ # end
126
+ # it "should be false if the number of running instances is smaller than the maximum instances" do
127
+ # @tc.stub!(:maximum_instances).and_return 5
128
+ # @tc.are_too_many_instances_running?.should == false
129
+ # end
130
+ # end
131
+ # end
132
+
123
133
  end
@@ -0,0 +1,7 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ class TestChefSpec < PoolParty::Cloud::Cloud
4
+ end
5
+
6
+ describe "Remote Instance" do
7
+ end