fairchild-poolparty 1.1.5 → 1.2.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (385) hide show
  1. data/History.txt +3 -0
  2. data/README.txt +13 -9
  3. data/Rakefile +0 -1
  4. data/VERSION.yml +2 -2
  5. data/bin/cloud +43 -46
  6. data/bin/cloud-bootstrap +33 -23
  7. data/bin/cloud-configure +33 -34
  8. data/bin/cloud-console +31 -9
  9. data/bin/cloud-contract +27 -11
  10. data/bin/cloud-expand +32 -19
  11. data/bin/cloud-list +43 -15
  12. data/bin/cloud-osxcopy +22 -12
  13. data/bin/cloud-provision +39 -24
  14. data/bin/cloud-run +37 -0
  15. data/bin/cloud-setup-dev +31 -20
  16. data/bin/cloud-show +40 -21
  17. data/bin/cloud-ssh +24 -15
  18. data/bin/cloud-start +33 -19
  19. data/bin/cloud-terminate +34 -15
  20. data/bin/cloud-verify +41 -0
  21. data/bin/install-poolparty +22 -0
  22. data/bin/server-cloud-elections +17 -23
  23. data/bin/server-list-active +23 -22
  24. data/bin/server-manage-election +14 -23
  25. data/bin/server-show-stats +1 -1
  26. data/config/jeweler.rb +6 -6
  27. data/examples/basic.rb +13 -14
  28. data/examples/fairchild.rb +25 -20
  29. data/examples/maize.rb +37 -0
  30. data/examples/metavirt_cloud.rb +33 -0
  31. data/examples/simple.rb +13 -0
  32. data/examples/vmrun_cloud.rb +17 -0
  33. data/lib/poolparty/{aska/aska.rb → aska.rb} +3 -0
  34. data/lib/poolparty/core/array.rb +13 -1
  35. data/lib/poolparty/core/exception.rb +1 -1
  36. data/lib/poolparty/core/hash.rb +63 -2
  37. data/lib/poolparty/core/integer.rb +11 -0
  38. data/lib/poolparty/core/object.rb +41 -19
  39. data/lib/poolparty/core/proc.rb +0 -7
  40. data/lib/poolparty/core/string.rb +35 -2
  41. data/lib/poolparty/core/symbol.rb +10 -0
  42. data/lib/poolparty/core/time.rb +6 -0
  43. data/lib/poolparty/dependency_resolver/chef_resolver.rb +40 -41
  44. data/lib/poolparty/dependency_resolver/dependency_resolver.rb +1 -1
  45. data/lib/poolparty/dependency_resolver/dependency_resolver_cloud_extensions.rb +6 -6
  46. data/lib/poolparty/dependency_resolver/puppet.rb +0 -1
  47. data/lib/poolparty/dependency_resolver/puppet_resolver.rb +14 -48
  48. data/lib/poolparty/exceptions/MasterException.rb +2 -2
  49. data/lib/poolparty/extra/duration.rb +96 -0
  50. data/lib/poolparty/helpers/binary.rb +1 -1
  51. data/lib/poolparty/helpers/console.rb +0 -5
  52. data/lib/poolparty/helpers/optioner.rb +18 -13
  53. data/lib/poolparty/installers/base_installer.rb +113 -0
  54. data/lib/poolparty/installers/ec2.rb +141 -0
  55. data/lib/poolparty/installers/vmrun.rb +144 -0
  56. data/lib/poolparty/lite.rb +5 -2
  57. data/lib/poolparty/modules/callbacks.rb +15 -2
  58. data/lib/poolparty/modules/cloud_dsl.rb +10 -8
  59. data/lib/poolparty/modules/cloud_resourcer.rb +39 -59
  60. data/lib/poolparty/modules/daemonizable.rb +4 -5
  61. data/lib/poolparty/modules/definable_resource.rb +6 -7
  62. data/lib/poolparty/modules/file_writer.rb +2 -2
  63. data/lib/poolparty/modules/output.rb +2 -2
  64. data/lib/poolparty/modules/pinger.rb +9 -2
  65. data/lib/poolparty/modules/pretty_printer.rb +1 -1
  66. data/lib/poolparty/modules/resourcing_dsl.rb +1 -29
  67. data/lib/poolparty/modules/searchable_paths.rb +100 -0
  68. data/lib/poolparty/modules/user_helpers.rb +1 -1
  69. data/lib/poolparty/monitors/base_monitor.rb +65 -0
  70. data/lib/poolparty/monitors/monitor_daemon.rb +168 -0
  71. data/lib/poolparty/monitors/monitor_rack.rb +29 -15
  72. data/lib/poolparty/monitors/monitors/{time_monitor.rb → clock_monitor.rb} +7 -2
  73. data/lib/poolparty/monitors/monitors/cloud_monitor.rb +36 -0
  74. data/lib/poolparty/monitors/monitors/elections_monitor.rb +76 -0
  75. data/lib/poolparty/monitors/monitors/neighborhood_monitor.rb +15 -12
  76. data/lib/poolparty/monitors/monitors/stats_monitor.rb +68 -49
  77. data/lib/poolparty/net/init.rb +12 -7
  78. data/lib/poolparty/net/remote_instance.rb +48 -64
  79. data/lib/poolparty/net/remoter/cloud_control.rb +0 -177
  80. data/lib/poolparty/net/remoter/connections.rb +19 -14
  81. data/lib/poolparty/net/remoter/interactive.rb +30 -24
  82. data/lib/poolparty/net/remoter_base.rb +140 -48
  83. data/lib/poolparty/net/remoter_bases/ec2/ec2.rb +119 -71
  84. data/lib/poolparty/net/remoter_bases/ec2/ec2_remote_instance.rb +42 -31
  85. data/lib/poolparty/net/remoter_bases/ec2/ec2_response_object.rb +75 -10
  86. data/lib/poolparty/net/remoter_bases/libvirt/libvirt.rb +73 -0
  87. data/lib/poolparty/net/remoter_bases/libvirt/libvirt_instance.rb +64 -0
  88. data/lib/poolparty/net/remoter_bases/metavirt/metavirt.rb +110 -0
  89. data/lib/poolparty/net/remoter_bases/metavirt/metavirt_instance.rb +37 -0
  90. data/lib/poolparty/net/remoter_bases/vmrun/utilities/vm_disk.rb +1 -1
  91. data/lib/poolparty/net/remoter_bases/vmrun/utilities/vmx.rb +1 -1
  92. data/lib/poolparty/net/remoter_bases/vmrun/utilities/vmx_file.rb +117 -117
  93. data/lib/poolparty/net/remoter_bases/vmrun/vmrun.rb +59 -43
  94. data/lib/poolparty/net/remoter_bases/vmrun/vmrun_instance.rb +37 -21
  95. data/lib/poolparty/plugins/apache2/apache.rb +266 -0
  96. data/lib/poolparty/plugins/apache2/passenger_site.rb +86 -0
  97. data/lib/poolparty/plugins/apache2/php5.rb +40 -0
  98. data/lib/poolparty/plugins/apache2/virtual_host.rb +53 -0
  99. data/lib/poolparty/plugins/authorized_key.rb +29 -0
  100. data/lib/poolparty/plugins/bind.rb +5 -6
  101. data/lib/poolparty/plugins/{chef.rb → chef/chef.rb} +32 -44
  102. data/lib/poolparty/plugins/chef/chef_deploy.rb +55 -0
  103. data/lib/poolparty/plugins/chef/chef_deploy_definition.rb +32 -0
  104. data/lib/poolparty/plugins/chef/chef_library.rb +7 -0
  105. data/lib/poolparty/plugins/chef/chef_recipe.rb +7 -0
  106. data/lib/poolparty/plugins/chef/include_chef_recipe.rb +14 -0
  107. data/lib/poolparty/plugins/deploy_directory.rb +41 -26
  108. data/lib/poolparty/plugins/gem_package.rb +42 -14
  109. data/lib/poolparty/plugins/git.rb +62 -33
  110. data/lib/poolparty/{base_packages → plugins}/haproxy.rb +21 -20
  111. data/lib/poolparty/plugins/heartbeat.rb +16 -0
  112. data/lib/poolparty/plugins/host.rb +39 -0
  113. data/lib/poolparty/plugins/line_in_file.rb +24 -2
  114. data/lib/poolparty/plugins/plugin_template.rb +13 -0
  115. data/lib/poolparty/{base_packages/poolparty.rb → plugins/poolparty_base_packages.rb} +4 -6
  116. data/lib/poolparty/plugins/rails_deploy.rb +128 -0
  117. data/lib/poolparty/{base_packages → plugins}/ruby.rb +3 -3
  118. data/lib/poolparty/plugins/runit.rb +17 -92
  119. data/lib/poolparty/plugins/sshkey.rb +50 -0
  120. data/lib/poolparty/plugins/svn.rb +10 -8
  121. data/lib/poolparty/poolparty/cloud.rb +224 -61
  122. data/lib/poolparty/poolparty/default.rb +22 -15
  123. data/lib/poolparty/poolparty/key.rb +19 -28
  124. data/lib/poolparty/poolparty/neighborhoods.rb +16 -5
  125. data/lib/poolparty/poolparty/plugin.rb +49 -13
  126. data/lib/poolparty/poolparty/pool.rb +32 -9
  127. data/lib/poolparty/poolparty/poolparty_base_class.rb +65 -45
  128. data/lib/poolparty/poolparty/resource.rb +24 -49
  129. data/lib/poolparty/poolparty/service.rb +11 -9
  130. data/lib/poolparty/provision/boot_strapper.rb +48 -37
  131. data/lib/poolparty/provision/configurations/chef.rb +6 -5
  132. data/lib/poolparty/provision/dr_configure.rb +25 -19
  133. data/lib/poolparty/resources/cron.rb +37 -4
  134. data/lib/poolparty/resources/directory.rb +30 -0
  135. data/lib/poolparty/resources/exec.rb +31 -1
  136. data/lib/poolparty/resources/file.rb +54 -12
  137. data/lib/poolparty/resources/group.rb +21 -0
  138. data/lib/poolparty/resources/mount.rb +24 -4
  139. data/lib/poolparty/resources/package.rb +30 -6
  140. data/lib/poolparty/resources/remote_file.rb +33 -1
  141. data/lib/poolparty/resources/service.rb +22 -1
  142. data/lib/poolparty/resources/symlink.rb +37 -2
  143. data/lib/poolparty/resources/user.rb +25 -0
  144. data/lib/poolparty/resources/variable.rb +26 -1
  145. data/lib/poolparty/resources.rb +42 -0
  146. data/lib/poolparty/schema.rb +6 -8
  147. data/lib/poolparty/templates/apache2/apache2.conf +14 -0
  148. data/lib/poolparty/templates/apache2/base.conf.erb +168 -0
  149. data/lib/poolparty/templates/apache2/browser_fixes.conf.erb +26 -0
  150. data/lib/poolparty/templates/apache2/debian.conf.erb +675 -0
  151. data/lib/poolparty/templates/apache2/default-site.conf.erb +41 -0
  152. data/lib/poolparty/templates/apache2/directory_indexes.conf.erb +101 -0
  153. data/lib/poolparty/templates/apache2/logging-syslog.conf.erb +42 -0
  154. data/lib/poolparty/templates/apache2/mime-extras.conf.erb +211 -0
  155. data/lib/poolparty/templates/apache2/mime-minimal.conf.erb +15 -0
  156. data/lib/poolparty/templates/apache2/mpm-worker.conf.erb +20 -0
  157. data/lib/poolparty/templates/apache2/mpm-worker.erb +20 -0
  158. data/lib/poolparty/templates/apache2/passenger.conf.erb +20 -0
  159. data/lib/poolparty/templates/apache2/php.ini.erb +1253 -0
  160. data/lib/poolparty/templates/apache2/server-status.erb +19 -0
  161. data/lib/poolparty/templates/{gemrc → gemrc_template} +0 -0
  162. data/lib/poolparty/templates/haproxy.conf +2 -2
  163. data/lib/poolparty/templates/monitor.ru +13 -0
  164. data/lib/poolparty/templates/php.ini.erb +1253 -0
  165. data/lib/poolparty/verification/verifier_base.rb +10 -0
  166. data/lib/poolparty/verification/verifiers/http_match.rb +43 -0
  167. data/lib/poolparty/verification/verifiers/http_status.rb +59 -0
  168. data/lib/poolparty/verification/verifiers/ping.rb +18 -1
  169. data/lib/poolparty/verification/verify.rb +6 -0
  170. data/lib/poolparty.rb +14 -15
  171. data/lib/poolpartycl.rb +1 -1
  172. data/spec/bin/bin_spec_helper.rb +1 -0
  173. data/spec/bin/fixtures/bin_cloud_for_test.rb +0 -6
  174. data/spec/bin/server-list-active_spec.rb +4 -6
  175. data/spec/poolparty/core/object_spec.rb +1 -62
  176. data/spec/poolparty/core/ordered_hash_spec.rb +7 -7
  177. data/spec/poolparty/core/string_spec.rb +1 -1
  178. data/spec/poolparty/dependency_resolver/chef_resolver_spec.rb +0 -8
  179. data/spec/poolparty/dependency_resolver/dependency_resolver_cloud_extensions_spec.rb +35 -32
  180. data/spec/poolparty/extra/deployments_spec.rb +68 -68
  181. data/spec/poolparty/fixtures/clouds.json +1 -1
  182. data/spec/poolparty/fixtures/fake_key.pub +1 -0
  183. data/spec/poolparty/helpers/optioner_spec.rb +4 -11
  184. data/spec/poolparty/modules/cloud_resourcer_spec.rb +1 -1
  185. data/spec/poolparty/modules/searchable_paths_spec.rb +83 -0
  186. data/spec/poolparty/net/remote_instance_spec.rb +1 -2
  187. data/spec/poolparty/net/remoter_base_spec.rb +7 -11
  188. data/spec/poolparty/net/remoter_bases/ec2_mocks_and_stubs.rb +9 -11
  189. data/spec/poolparty/net/remoter_bases/ec2_remote_instance_spec.rb +6 -56
  190. data/spec/poolparty/net/remoter_bases/ec2_spec.rb +10 -7
  191. data/spec/poolparty/net/remoter_spec.rb +2 -3
  192. data/spec/poolparty/plugins/authorized_key_spec.rb +23 -0
  193. data/spec/poolparty/plugins/deploydirectory_spec.rb +64 -51
  194. data/spec/poolparty/plugins/git_spec.rb +8 -10
  195. data/spec/poolparty/poolparty/cloud_spec.rb +61 -64
  196. data/spec/poolparty/poolparty/configurers/files/ruby_basic.rb +2 -4
  197. data/spec/poolparty/poolparty/configurers/files/ruby_plugins.rb +1 -1
  198. data/spec/poolparty/poolparty/configurers/ruby_spec.rb +1 -6
  199. data/spec/poolparty/poolparty/default_spec.rb +23 -22
  200. data/spec/poolparty/poolparty/example_spec.rb +47 -26
  201. data/spec/poolparty/{base_packages → poolparty}/haproxy_spec.rb +1 -1
  202. data/spec/poolparty/{base_packages → poolparty}/heartbeat_spec.rb +1 -1
  203. data/spec/poolparty/poolparty/key_spec.rb +2 -2
  204. data/spec/poolparty/poolparty/neighborhoods_spec.rb +1 -1
  205. data/spec/poolparty/poolparty/plugin_model_spec.rb +13 -17
  206. data/spec/poolparty/poolparty/plugin_spec.rb +7 -7
  207. data/spec/poolparty/poolparty/pool_spec.rb +4 -10
  208. data/spec/poolparty/poolparty/resource_spec.rb +25 -29
  209. data/spec/poolparty/poolparty/script_spec.rb +1 -4
  210. data/spec/poolparty/poolparty/test_plugins/webserver.rb +27 -25
  211. data/spec/poolparty/resources/file_spec.rb +5 -4
  212. data/spec/poolparty/resources/sshkey_spec.rb +39 -40
  213. data/spec/poolparty/spec_helper.rb +9 -39
  214. data/tasks/poolparty.rake +29 -1
  215. data/tasks/spec.rake +39 -1
  216. data/test/fixtures/fake_clouds.rb +11 -0
  217. data/test/fixtures/metavirt_cloud.json +1 -0
  218. data/test/fixtures/test_key +1 -0
  219. data/test/poolparty/core/array_test.rb +11 -0
  220. data/test/poolparty/core/hash_test.rb +5 -7
  221. data/test/poolparty/core/object_test.rb +29 -0
  222. data/test/poolparty/dependency_resolver/chef_resolver_test.rb +82 -0
  223. data/test/poolparty/dependency_resolver/puppet_resolver_test.rb +5 -26
  224. data/test/poolparty/modules/callbacks_test.rb +1 -1
  225. data/test/poolparty/modules/cloud_dsl_test.rb +10 -8
  226. data/test/poolparty/monitors/test_base_monitor.rb +17 -0
  227. data/test/poolparty/monitors/test_monitor_rack.rb +26 -0
  228. data/test/poolparty/net/remoter_base_test.rb +17 -0
  229. data/test/poolparty/net/remoter_bases/libvirt/libvirt_test.rb +70 -0
  230. data/test/poolparty/net/remoter_bases/metavirt/metavirt_test.rb +81 -0
  231. data/test/poolparty/net/remoter_bases/vmrun/vmrun_test.rb +58 -27
  232. data/test/poolparty/plugins/chef_deploy_test.rb +37 -0
  233. data/test/poolparty/plugins/chef_plugin_test.rb +23 -0
  234. data/test/poolparty/plugins/rails_deploy_test.rb +50 -0
  235. data/test/poolparty/poolparty/cloud_test.rb +65 -0
  236. data/test/poolparty/poolparty/isolated_cloud_test.rb +25 -0
  237. data/test/poolparty/poolparty/neighborhood_test.rb +1 -1
  238. data/test/poolparty/poolparty/plugin_test.rb +19 -0
  239. data/test/poolparty/poolparty/pool_test.rb +22 -0
  240. data/test/poolparty/poolparty/poolparty_base_class_test.rb +53 -15
  241. data/test/poolparty/poolparty/schema_test.rb +13 -0
  242. data/test/poolparty/poolparty/template_test.rb +6 -6
  243. data/test/poolparty/verification/verify_test.rb +7 -3
  244. data/test/test_helper.rb +15 -4
  245. data/test/test_methods.rb +11 -0
  246. data/vendor/chef/apache2/attributes/apache.rb +1 -1
  247. data/vendor/gems/dslify/LICENSE +20 -0
  248. data/vendor/gems/dslify/README.rdoc +33 -0
  249. data/vendor/gems/dslify/Rakefile +56 -0
  250. data/vendor/gems/dslify/VERSION.yml +4 -0
  251. data/vendor/gems/dslify/dslify.gemspec +29 -0
  252. data/vendor/gems/dslify/lib/dslify.rb +81 -0
  253. data/vendor/gems/dslify/test/dslify_test.rb +283 -0
  254. data/vendor/gems/dslify/test/test_helper.rb +7 -0
  255. data/vendor/gems/git-style-binaries/README.markdown +280 -0
  256. data/vendor/gems/git-style-binaries/Rakefile +64 -0
  257. data/vendor/gems/git-style-binaries/VERSION.yml +4 -0
  258. data/vendor/gems/git-style-binaries/doc/EXAMPLES +1 -0
  259. data/vendor/gems/git-style-binaries/doc/gsb-screencast.png +0 -0
  260. data/vendor/gems/git-style-binaries/doc/poolparty-binaries.screenplay +412 -0
  261. data/vendor/gems/git-style-binaries/git-style-binaries.gemspec +78 -0
  262. data/vendor/gems/git-style-binaries/lib/ext/colorize.rb +198 -0
  263. data/vendor/gems/git-style-binaries/lib/ext/core.rb +16 -0
  264. data/vendor/gems/git-style-binaries/lib/git-style-binary/autorunner.rb +21 -0
  265. data/vendor/gems/git-style-binaries/lib/git-style-binary/command.rb +204 -0
  266. data/vendor/gems/git-style-binaries/lib/git-style-binary/commands/help.rb +32 -0
  267. data/vendor/gems/git-style-binaries/lib/git-style-binary/helpers/name_resolver.rb +78 -0
  268. data/vendor/gems/git-style-binaries/lib/git-style-binary/helpers/pager.rb +37 -0
  269. data/vendor/gems/git-style-binaries/lib/git-style-binary/parser.rb +223 -0
  270. data/vendor/gems/git-style-binaries/lib/git-style-binary.rb +88 -0
  271. data/vendor/gems/git-style-binaries/test/fixtures/flickr +4 -0
  272. data/vendor/gems/git-style-binaries/test/fixtures/flickr-download +17 -0
  273. data/vendor/gems/git-style-binaries/test/fixtures/wordpress +42 -0
  274. data/vendor/gems/git-style-binaries/test/fixtures/wordpress-categories +18 -0
  275. data/vendor/gems/git-style-binaries/test/fixtures/wordpress-list +18 -0
  276. data/vendor/gems/git-style-binaries/test/fixtures/wordpress-post +26 -0
  277. data/vendor/gems/git-style-binaries/test/git-style-binary/command_test.rb +17 -0
  278. data/vendor/gems/git-style-binaries/test/git_style_binary_test.rb +21 -0
  279. data/vendor/gems/git-style-binaries/test/running_binaries_test.rb +224 -0
  280. data/vendor/gems/git-style-binaries/test/shoulda_macros/matching_stdio.rb +13 -0
  281. data/vendor/gems/git-style-binaries/test/test_helper.rb +28 -0
  282. data/vendor/gems/parenting/History.txt +4 -0
  283. data/vendor/gems/parenting/Manifest.txt +14 -0
  284. data/vendor/gems/parenting/PostInstall.txt +2 -0
  285. data/vendor/gems/parenting/README.rdoc +47 -0
  286. data/vendor/gems/parenting/Rakefile +28 -0
  287. data/vendor/gems/parenting/lib/parenting/parenting.rb +70 -0
  288. data/vendor/gems/parenting/lib/parenting.rb +10 -0
  289. data/vendor/gems/parenting/parenting.gemspec +39 -0
  290. data/vendor/gems/parenting/script/console +10 -0
  291. data/vendor/gems/parenting/script/destroy +14 -0
  292. data/vendor/gems/parenting/script/generate +14 -0
  293. data/vendor/gems/parenting/test/file_to_eval.rb +9 -0
  294. data/vendor/gems/parenting/test/test_helper.rb +5 -0
  295. data/vendor/gems/parenting/test/test_parenting.rb +117 -0
  296. data/vendor/gems/suitcase/LICENSE +20 -0
  297. data/vendor/gems/suitcase/README.rdoc +31 -0
  298. data/vendor/gems/suitcase/Rakefile +57 -0
  299. data/vendor/gems/suitcase/VERSION.yml +4 -0
  300. data/vendor/gems/suitcase/lib/suitcase/unzipper.rb +15 -0
  301. data/vendor/gems/suitcase/lib/suitcase/zipper.rb +167 -0
  302. data/vendor/gems/suitcase/lib/suitcase.rb +5 -0
  303. data/vendor/gems/suitcase/suitcase.gemspec +32 -0
  304. data/vendor/gems/suitcase/test/suitcase_test.rb +108 -0
  305. data/vendor/gems/suitcase/test/test_dir/box.rb +1 -0
  306. data/vendor/gems/suitcase/test/test_dir/gems/famoseagle-carrot-0.6.0.gem +0 -0
  307. data/vendor/gems/suitcase/test/test_dir/test.txt +1 -0
  308. data/vendor/gems/suitcase/test/test_helper.rb +12 -0
  309. data/vendor/gems/trollop/FAQ.txt +35 -0
  310. data/vendor/gems/trollop/History.txt +97 -0
  311. data/vendor/gems/trollop/Manifest.txt +7 -0
  312. data/vendor/gems/trollop/README.txt +40 -0
  313. data/vendor/gems/trollop/Rakefile +36 -0
  314. data/vendor/gems/trollop/lib/trollop.rb +735 -0
  315. data/vendor/gems/trollop/release-script.txt +13 -0
  316. data/vendor/gems/trollop/test/test_trollop.rb +1042 -0
  317. data/vendor/gems/trollop/www/index.html +167 -0
  318. metadata +205 -150
  319. data/bin/cloud-describe +0 -28
  320. data/bin/cloud-handle-load +0 -27
  321. data/bin/cloud-rsync +0 -28
  322. data/bin/cloud-spec +0 -41
  323. data/bin/messenger-get-current-nodes +0 -14
  324. data/bin/server-become-master +0 -24
  325. data/bin/server-build-messenger +0 -28
  326. data/bin/server-clean-cert-for +0 -15
  327. data/bin/server-provision +0 -32
  328. data/bin/server-start-agent +0 -15
  329. data/bin/server-start-client +0 -29
  330. data/bin/server-start-master +0 -26
  331. data/bin/server-start-node +0 -32
  332. data/bin/server-stop-client +0 -3
  333. data/bin/server-stop-master +0 -3
  334. data/bin/server-stop-node +0 -3
  335. data/bin/server-update-hosts +0 -49
  336. data/examples/poolparty.rb +0 -12
  337. data/lib/poolparty/base_packages/heartbeat.rb +0 -58
  338. data/lib/poolparty/base_packages/runit.rb +0 -21
  339. data/lib/poolparty/capistrano/cloud_tasks.rb +0 -10
  340. data/lib/poolparty/capistrano.rb +0 -54
  341. data/lib/poolparty/config/postlaunchmessage.txt +0 -5
  342. data/lib/poolparty/core/metaid.rb +0 -15
  343. data/lib/poolparty/core/module.rb +0 -40
  344. data/lib/poolparty/extra/deployments.rb +0 -31
  345. data/lib/poolparty/helpers/display.rb +0 -30
  346. data/lib/poolparty/net/messenger.rb +0 -57
  347. data/lib/poolparty/net/remote_bases.rb +0 -21
  348. data/lib/poolparty/plugins/chef_deploy.rb +0 -58
  349. data/lib/poolparty/plugins/dynomite.rb +0 -14
  350. data/lib/poolparty/plugins/nanite.rb +0 -41
  351. data/lib/poolparty/plugins/rsyncmirror.rb +0 -28
  352. data/lib/poolparty/plugins/tokyo_tyrant.rb +0 -23
  353. data/lib/poolparty/poolparty/plugin_model.rb +0 -45
  354. data/lib/poolparty/resources/host.rb +0 -16
  355. data/lib/poolparty/resources/sshkey.rb +0 -27
  356. data/lib/poolparty/services/conditional.rb +0 -46
  357. data/lib/poolparty/spec/core/string.rb +0 -18
  358. data/lib/poolparty/spec/matchers/a_spec_extensions_base.rb +0 -26
  359. data/lib/poolparty/spec/matchers/have_cron.rb +0 -28
  360. data/lib/poolparty/spec/matchers/have_deploydirectory.rb +0 -15
  361. data/lib/poolparty/spec/matchers/have_directory.rb +0 -31
  362. data/lib/poolparty/spec/matchers/have_exec.rb +0 -28
  363. data/lib/poolparty/spec/matchers/have_file.rb +0 -28
  364. data/lib/poolparty/spec/matchers/have_gempackage.rb +0 -28
  365. data/lib/poolparty/spec/matchers/have_git.rb +0 -28
  366. data/lib/poolparty/spec/matchers/have_host.rb +0 -28
  367. data/lib/poolparty/spec/matchers/have_mount.rb +0 -28
  368. data/lib/poolparty/spec/matchers/have_package.rb +0 -28
  369. data/lib/poolparty/spec/matchers/have_remotefile.rb +0 -28
  370. data/lib/poolparty/spec/matchers/have_rsyncmirror.rb +0 -28
  371. data/lib/poolparty/spec/matchers/have_service.rb +0 -28
  372. data/lib/poolparty/spec/matchers/have_sshkey.rb +0 -28
  373. data/lib/poolparty/spec/matchers/have_symlink.rb +0 -28
  374. data/lib/poolparty/spec/matchers/have_variable.rb +0 -32
  375. data/lib/poolparty/spec/spec/dynamic_matchers.rb +0 -63
  376. data/lib/poolparty/spec/spec/ensure_matchers_exist.rb +0 -7
  377. data/lib/poolparty/spec/templates/have_base.rb +0 -28
  378. data/lib/poolparty/spec.rb +0 -31
  379. data/spec/poolparty/core/module_spec.rb +0 -15
  380. data/spec/poolparty/helpers/display_spec.rb +0 -13
  381. data/spec/poolparty/id_rsa +0 -27
  382. data/spec/poolparty/net/messenger_spec.rb +0 -16
  383. data/spec/poolparty/resources/host_spec.rb +0 -35
  384. data/spec/poolparty/services/conditional_spec.rb +0 -52
  385. data/spec/poolparty/spec/core/string_spec.rb +0 -57
@@ -2,32 +2,30 @@ require "#{::File.dirname(__FILE__)}/../../test_helper"
2
2
 
3
3
  class TestHashClass < Test::Unit::TestCase
4
4
  context "hash_get" do
5
- before do
5
+ setup do
6
6
  @hsh = {
7
7
  "10.0.0.3" => {"stuff" => "here"},
8
8
  "10.0.0.1" => {"stuff" => "here"},
9
9
  "10.0.0.2" => {"stuff" => "here"}
10
10
  }
11
11
  end
12
- it "should return 0.1 if we are 0.2" do
12
+ should "should return 0.1 if we are 0.2" do
13
13
  assert @hsh.next_sorted_key("10.0.0.1"), "10.0.0.2"
14
14
  assert @hsh.next_sorted_key("10.0.0.2"), "10.0.0.3"
15
15
  assert @hsh.next_sorted_key("10.0.0.3"), "10.0.0.1"
16
16
  assert @hsh.next_sorted_key("10.0.0.1"), "10.0.0.2"
17
17
  end
18
- it "should return self if there is only 1 element" do
18
+ should "should return self if there is only 1 element" do
19
19
  k = {"10.0.0.2" => {"stuff" => "here"}}.next_sorted_key("10.0.0.2")
20
20
  assert k, "10.0.0.2"
21
21
  end
22
22
  end
23
23
  context "test method_missing" do
24
- it "should be able to call a key on the hash as a method" do
24
+ should "should be able to call a key on the hash as a method" do
25
25
  {:first_name => "bob", :last_name => "frank"}.first_name.should == "bob"
26
26
  end
27
- it "should not return nil if there is no key set in the hash" do
27
+ should "should not return nil if there is no key set in the hash" do
28
28
  hsh = {:first_name => "bob", :last_name => "frank"}
29
- assert false
30
- assert_not_nil hsh.dttte
31
29
  lambda {{:first_name => "bob", :last_name => "frank"}.neighbor}.should raise_error
32
30
  end
33
31
  end
@@ -0,0 +1,29 @@
1
+ require "#{::File.dirname(__FILE__)}/../../test_helper"
2
+
3
+ class RunOnceClass
4
+ attr_reader :apples, :count
5
+ def initialize
6
+ @count = 1
7
+ end
8
+ def run_me
9
+ do_once do
10
+ @count += 1
11
+ @apples = "to apples"
12
+ end
13
+ end
14
+ end
15
+
16
+ class RunOnceTest < Test::Unit::TestCase
17
+ def setup
18
+ @ro = RunOnceClass.new
19
+ end
20
+ def test_apples_should_be_nil
21
+ assert_nil @ro.apples
22
+ assert_equal @ro.count, 1
23
+ end
24
+ def test_apples_should_not_be_nil_when_run
25
+ @ro.run_me
26
+ assert_equal @ro.apples, "to apples"
27
+ assert_equal @ro.count, 2
28
+ end
29
+ end
@@ -0,0 +1,82 @@
1
+ require "#{::File.dirname(__FILE__)}/../../test_helper"
2
+
3
+ class TestChefResolver < Test::Unit::TestCase
4
+ context "from a hash" do
5
+ setup do
6
+ reset!
7
+ @cloud_reference_hash = {
8
+ :options => {:name => "dog", :keypair => "bob", :users => ["ari", "michael"]},
9
+ :resources => [
10
+ {:name => "/etc/motd", :content => "Welcome to the cloud", :pp_type => "file"},
11
+ {:name => "/etc/profile", :content => "profile info", :pp_type => "file"},
12
+ {:name => "/var/www", :pp_type => "directory"},
13
+ {:name => "apache_class", :pp_type => "plugin", :resources => [
14
+ {:name => "/etc/apache2/apache2.conf", :pp_type => "file", :template => "/absolute/path/to/template", :content => "rendered template string"}
15
+ ]}
16
+ ],
17
+ }
18
+ end
19
+
20
+ should "throw an exception if not given a hash" do
21
+ lambda { PoolParty::ChefResolver.compile }.should raise_error
22
+ end
23
+ should "accept a hash" do
24
+ lambda { PoolParty::ChefResolver.compile(@cloud_reference_hash)}.should_not raise_error
25
+ end
26
+ context "compiled" do
27
+ setup do
28
+ reset!
29
+ @dr = ChefResolver.new(@cloud_reference_hash)
30
+ @compiled = @dr.compile
31
+ end
32
+
33
+ should "should print resources in the proper layout" do
34
+ @compiled.should =~ /template \"\/etc\/motd\" do\n\tsource \"\/etc\/motd\.erb\"/
35
+ end
36
+
37
+ should "should print apache into a class definition" do
38
+ # puts "<pre>#{@compiled.to_yaml}</pre>"
39
+ @compiled.should =~ /# apache/
40
+ end
41
+ end
42
+ end
43
+
44
+ context "with a cloud" do
45
+ setup do
46
+ reset!
47
+ @cloud = cloud :hope do
48
+ keypair "bob"
49
+ has_file :name => "/etc/motd", :content => "Welcome to the cloud"
50
+ has_file :name => "/etc/profile", :content => "profile info"
51
+
52
+ has_directory :name => "/var/www"
53
+ has_file :name => "/var/www/index.html", :content => "profile info", :requires => get_directory("/var/www")
54
+
55
+ dependency_resolver "chef"
56
+ # has_package :name => "bash"
57
+ # parent == cloud
58
+ apache do
59
+ # parent == apache
60
+ listen "8080"
61
+ has_file :name => "/etc/apache2/apache2.conf", :template => "#{::File.dirname(__FILE__)}/../../fixtures/test_template.erb", :friends => "bob"
62
+ has_exec :command => "ls /etc/apache2"
63
+ end
64
+ end
65
+ @properties = @cloud.to_properties_hash
66
+
67
+ # puts "<pre>#{@cloud_reference_hash.to_yaml}\n\n#{@properties}</pre>"
68
+ @dr = ChefResolver.new(@properties)
69
+ @compiled = @dr.compile
70
+ end
71
+ should "should compile to a string" do
72
+ # puts "<pre>#{@compiled.to_yaml}</pre>"
73
+ @compiled.class.should == String
74
+ end
75
+ should "should include apache class" do
76
+ @compiled.should =~ /# apache/
77
+ end
78
+ should "should require the file to have the directory (written as file)" do
79
+ @compiled.should =~ /directory \"\/var\/www\"/
80
+ end
81
+ end
82
+ end
@@ -1,10 +1,5 @@
1
1
  require "#{::File.dirname(__FILE__)}/../../test_helper"
2
2
 
3
- class PuppetResolverSpec
4
- plugin :apache do
5
- end
6
- end
7
-
8
3
  class TestPuppetResolver < Test::Unit::TestCase
9
4
  context "from a hash" do
10
5
  setup do
@@ -14,18 +9,12 @@ class TestPuppetResolver < Test::Unit::TestCase
14
9
  :resources => [
15
10
  {:name => "/etc/motd", :content => "Welcome to the cloud", :pp_type => "file"},
16
11
  {:name => "/etc/profile", :content => "profile info", :pp_type => "file"},
17
- {:name => "/var/www", :pp_type => "directory"}
12
+ {:name => "/var/www", :pp_type => "directory"},
13
+ {:name => "apache_class", :pp_type => "plugin", :resources => [
14
+ {:name => "/etc/apache2/apache2.conf", :pp_type => "file", :template => "/absolute/path/to/template", :content => "rendered template string"}
15
+ ]}
18
16
  ],
19
- :services => {
20
- :apache => [{
21
- :options => {:listen => "8080"},
22
- :resources => [
23
- {:name => "/etc/apache2/apache2.conf", :pp_type => "file", :template => "/absolute/path/to/template", :content => "rendered template string"}
24
- ],
25
- :services => {}
26
- }]
27
- }
28
- }
17
+ }
29
18
  end
30
19
 
31
20
  should "throw an exception if not given a hash" do
@@ -72,12 +61,6 @@ class TestPuppetResolver < Test::Unit::TestCase
72
61
  has_file :name => "/etc/apache2/apache2.conf", :template => "#{::File.dirname(__FILE__)}/../../fixtures/test_template.erb", :friends => "bob"
73
62
  has_exec :command => "ls /etc/apache2"
74
63
  end
75
-
76
- case_of "hostname" do
77
- when_is 'master' do
78
- has_package :name=>'haproxy'
79
- end
80
- end
81
64
  end
82
65
  @properties = @cloud.to_properties_hash
83
66
 
@@ -92,10 +75,6 @@ class TestPuppetResolver < Test::Unit::TestCase
92
75
  should "should include apache class" do
93
76
  @compiled.should =~ /class apache \{/
94
77
  end
95
- should "should include the case statement" do
96
- @compiled.should =~ /case \$hostname \{/
97
- @compiled.should =~ /master : \{/
98
- end
99
78
  should "should require the file to have the directory (written as file)" do
100
79
  @compiled.should =~ /require => File\[\"\/var\/www\"\]/
101
80
  end
@@ -15,7 +15,7 @@ class TestCallbacks < Test::Unit::TestCase
15
15
  context "methods" do
16
16
  setup do
17
17
  @tc = CallbacksTestClass.new
18
- @tc.after_create
18
+ @tc.setup_callbacks
19
19
  end
20
20
 
21
21
  should "have the 4 basic callbacks" do
@@ -4,7 +4,8 @@ class TestCloudDsl < Test::Unit::TestCase
4
4
  context "enabling and disabling" do
5
5
  setup do
6
6
  reset!
7
- @cloud = cloud :test_cloud_dsl
7
+ @cloud = cloud :test_cloud_dsl do
8
+ end
8
9
  end
9
10
  should "not have an option set for hyper_drive" do
10
11
  @cloud.dsl_options[:hyper_drive].should == nil
@@ -21,18 +22,20 @@ class TestCloudDsl < Test::Unit::TestCase
21
22
  end
22
23
 
23
24
  should "be able to check if they are enabled" do
24
- @cloud.enable :hyper_drive
25
- @cloud.enabled?(:hyper_drive).should == true
25
+ @cloud.enable :hyper_slam
26
+ @cloud.enabled?(:hyper_slam).should == true
26
27
  end
27
28
  should "be able to check that they are disabled" do
28
- @cloud.disable :hyper_drive
29
- @cloud.enabled?(:hyper_drive).should == false
29
+ @cloud.disable :hyper_slam
30
+ @cloud.enabled?(:hyper_slam).should == false
30
31
  end
31
32
  end
32
33
  context "calling add_optional_enabled_services" do
33
34
  setup do
34
35
  reset!
35
- @cloud = cloud :test_cloud_dsl_2
36
+ @cloud = cloud :test_cloud_dsl_2 do
37
+ enable :haproxy
38
+ end
36
39
  @cloud.instance_eval "self.class.send :attr_reader, :brains"
37
40
  @cloud.instance_eval "def box;@brains = 'pepper';end"
38
41
  end
@@ -47,10 +50,9 @@ class TestCloudDsl < Test::Unit::TestCase
47
50
  @cloud.brains.should == nil
48
51
  end
49
52
  should "call haproxy when adding enabled serivces" do
50
- @cloud.enable :haproxy
51
53
  @cloud.add_optional_enabled_services
52
54
  klasses = @cloud.plugin_store.map {|a| a.class.to_s.split("::")[-1] }
53
- klasses.include?("HaproxyClass").should == true
55
+ klasses.include?("Haproxy").should == true
54
56
  end
55
57
  end
56
58
 
@@ -0,0 +1,17 @@
1
+ require "#{::File.dirname(__FILE__)}/../../test_helper"
2
+
3
+ class BaseMonitorTest < Test::Unit::TestCase
4
+ context "Available Monitors" do
5
+ should "start out with available monitors" do
6
+ assert Monitors.available.size > 5
7
+ assert Monitors.available.include? Monitors::Load
8
+ end
9
+
10
+ should "have available_monitors" do
11
+ class ExtraFoo < ::Monitors::BaseMonitor; end
12
+ assert Monitors.available.include? ExtraFoo
13
+ end
14
+
15
+ end
16
+
17
+ end
@@ -0,0 +1,26 @@
1
+ require "#{::File.dirname(__FILE__)}/../../test_helper"
2
+ require 'tempfile'
3
+ require 'rack/test'
4
+
5
+
6
+ class MonitorRackTest < Test::Unit::TestCase
7
+ include Rack::Test::Methods
8
+ context "MonitorRack" do
9
+ setup do
10
+ @rackup = ::File.dirname(__FILE__)+"/../../../lib/poolparty/templates/monitor.ru"
11
+ end
12
+
13
+ should "be able to start" do
14
+ tfile = Tempfile.new('monitor_rack.pid')
15
+ output = IO.popen("thin -R #{@rackup} start", 'r')
16
+ # output = IO.popen("uptime", 'r')
17
+ p output.status
18
+ assert $?.success?
19
+
20
+ `thin -R #{tfile.path} stop`
21
+ assert $?.success?
22
+ tfile.unlink
23
+ end
24
+ end
25
+
26
+ end
@@ -0,0 +1,17 @@
1
+ require "#{::File.dirname(__FILE__)}/../../test_helper"
2
+
3
+ class RemoterBaseTest < Test::Unit::TestCase
4
+ context "Available Bases" do
5
+
6
+ should "have global remote_bases" do
7
+ assert !PoolParty::Remote.available.empty?
8
+ assert PoolParty::Remote.available.size >1
9
+ assert PoolParty::Remote.available.include?(PoolParty::Remote::Ec2)
10
+ end
11
+
12
+ should "should return an array of top_level RemoterBase class symbols " do
13
+ assert ::PoolParty::Remote::RemoterBase.available_bases.include?(:ec2)
14
+ end
15
+ end
16
+
17
+ end
@@ -0,0 +1,70 @@
1
+ require "#{::File.dirname(__FILE__)}/../../../../test_helper"
2
+
3
+ # Uncomment the tests for live-testing
4
+ class TestLibvirt < Test::Unit::TestCase
5
+ context "registered as remote base" do
6
+ setup do
7
+ reset!
8
+ @lvcloud = cloud :vurt do
9
+ keypair "#{::File.dirname(__FILE__)}/../../../../fixtures/test_key"
10
+ instances 1
11
+ using :libvirt do
12
+ end
13
+ end
14
+ end
15
+ should "be registered as a remote_base" do
16
+ assert PoolParty::Remote.available.include?(PoolParty::Remote::Libvirt)
17
+ end
18
+ should "be setting the type of remote_base" do
19
+ assert_equal PoolParty::Remote::Libvirt, @lvcloud.libvirt.class
20
+ end
21
+ should "have libvirt as the remoter base" do
22
+ # assert_equal @lvcloud.libvirt.should, @lvcloud.remote_base
23
+ assert_equal @lvcloud.remoter_base, :libvirt
24
+ assert_equal @lvcloud.remote_base.class, PoolParty::Remote::Libvirt
25
+ end
26
+ should "have a keypair" do
27
+ assert_equal 'test_key', @lvcloud.keypair.basename
28
+ assert_equal 'test_key', @lvcloud.keypair_name
29
+ end
30
+ should "be able to initialize without a cloud" do
31
+ assert_nothing_raised do PoolParty::Remote::Libvirt.new end
32
+ end
33
+ # should "start metavirt instance" do
34
+ # @cloud.launch_instance!
35
+ # assert @cloud.metavirt.describe_instances.first[:instance_id]>0
36
+ # end
37
+ # should "be able to terminate the instance" do
38
+ # @cloud.launch_instance!
39
+ # @cloud.terminate_instance!
40
+ # assert @cloud.describe_instances.empty?
41
+ # end
42
+ # teardown do
43
+ # # PoolParty::Remote::metavirt.terminate!(
44
+ # @cloud.describe_instances.each do |inst|
45
+ # @cloud.terminate_instance! inst[:instance_id]
46
+ # end
47
+ # end
48
+ end
49
+
50
+ context "running libvirt" do
51
+ setup do
52
+ @cloud_lv = cloud :lv do
53
+ keypair "#{::File.dirname(__FILE__)}/../../../../fixtures/test_key"
54
+ instances 1
55
+ using :libvirt do
56
+ image_id 'jaunty19'
57
+ end
58
+ end
59
+ end
60
+ should "be setting the type of remote_base" do
61
+ assert_equal PoolParty::Remote::Libvirt, @cloud_lv.remote_base.class
62
+ assert_equal 'jaunty19', @cloud_lv.remote_base.image_id
63
+ assert_equal 'jaunty19', @cloud_lv.libvirt.image_id
64
+ end
65
+ should "be able to describe instances" do
66
+ assert @cloud_lv.describe_instances.class == Array
67
+ end
68
+ end
69
+
70
+ end
@@ -0,0 +1,81 @@
1
+ require "#{::File.dirname(__FILE__)}/../../../../test_helper"
2
+
3
+ # Uncomment the tests for live-testing
4
+ class TestMetavirt < Test::Unit::TestCase
5
+ context "registered as remote base" do
6
+ setup do
7
+ reset!
8
+ @cloud = cloud :metvirt_cld do
9
+ keypair "#{::File.dirname(__FILE__)}/../../../../fixtures/test_key"
10
+ instances 1
11
+ using :metavirt do
12
+ using :vmrun do
13
+ vmx_files ['/path/to/vmx', '/another/path']
14
+ end
15
+ end
16
+ end
17
+ end
18
+ should "be registered as a remote_base" do
19
+ PoolParty::Remote::RemoterBase.available_bases.include?(:vmrun).should == true
20
+ end
21
+ should "be setting the type of remote_base" do
22
+ assert_equal PoolParty::Remote::Vmrun, @cloud.remote_base.remote_base.class
23
+ assert_equal PoolParty::Remote::Metavirt, @cloud.remote_base.class
24
+ end
25
+ should "have metavirt as the remoter base" do
26
+ @cloud.metavirt.should == @cloud.remote_base
27
+ end
28
+ should "have a keypair" do
29
+ assert_equal 'test_key', @cloud.keypair.basename
30
+ assert_equal 'test_key', @cloud.keypair_name
31
+ end
32
+ # should "start metavirt instance" do
33
+ # @cloud.launch_instance!
34
+ # assert @cloud.metavirt.describe_instances.first[:instance_id]>0
35
+ # end
36
+ # should "be able to terminate the instance" do
37
+ # @cloud.launch_instance!
38
+ # @cloud.terminate_instance!
39
+ # assert @cloud.describe_instances.empty?
40
+ # end
41
+ # teardown do
42
+ # # PoolParty::Remote::metavirt.terminate!(
43
+ # @cloud.describe_instances.each do |inst|
44
+ # @cloud.terminate_instance! inst[:instance_id]
45
+ # end
46
+ # end
47
+ end
48
+
49
+ context "running libvirt" do
50
+ setup do
51
+ @cloud_lv = cloud :lv do
52
+ keypair "#{::File.dirname(__FILE__)}/../../../../fixtures/test_key"
53
+ instances 1
54
+ using :metavirt do
55
+ using :libvirt do
56
+ image_id 'jaunty19'
57
+ end
58
+ end
59
+ end
60
+ end
61
+
62
+ should "be setting the type of remote_base" do
63
+ assert_equal PoolParty::Remote::Libvirt, @cloud_lv.remote_base.remote_base.class
64
+ assert_equal PoolParty::Remote::Metavirt, @cloud_lv.remote_base.class
65
+ end
66
+
67
+ should "be able to describe instances" do
68
+ if ENV['LIBVIRT'] # set env variable if you want to actually call out to libvirt
69
+ assert_equal 'jaunty19', @cloud_lv.metavirt.libvirt.image_id
70
+ assert_equal 'jaunty19', @cloud_lv.metavirt.image_id
71
+ end
72
+ end
73
+
74
+ should "use libvirt options from metavirt" do
75
+ assert_equal 'jaunty19', clouds[:lv].metavirt.libvirt.image_id
76
+ assert_not_nil clouds[:lv].metavirt.image_id
77
+ assert_equal clouds[:lv].metavirt.libvirt.image_id, clouds[:lv].metavirt.image_id
78
+ end
79
+ end
80
+
81
+ end
@@ -1,50 +1,81 @@
1
1
  require "#{::File.dirname(__FILE__)}/../../../../test_helper"
2
2
 
3
+ # Comment out this VmwareInstanceclass if you want to actually run vmware
4
+ class VmwareInstance
5
+ def launch!
6
+ { :status => 'running',
7
+ :mac_address => '00:23:6c:93:7b:91',
8
+ :ip => '10.45.10.234',
9
+ :internal_ip => '10.45.10.234',
10
+ :instance_id => vmx_file,
11
+ :keypair => keypair
12
+ }
13
+ end
14
+ end
15
+
16
+ # Uncomment the tests for live-testing
3
17
  class TestVmRun < Test::Unit::TestCase
4
18
  context "registered as remote base" do
5
19
  setup do
6
20
  reset!
7
- $vmx_keys = {
21
+ vmx_keys1 = {
8
22
  ::File.expand_path("~/Documents/vm/Ubuntu32bitVM.vmwarevm/Ubuntu32bitVM.vmx") => "192.168.248.133"
9
23
  }
10
- $vmx_files = $vmx_keys.keys
11
- $ipaddresses = $vmx_keys.values
24
+ @vmx_files = vmx_keys1.keys
25
+ @ipaddresses = vmx_keys1.values
12
26
 
13
27
  @cloud = cloud :test_vm_runner do
14
-
15
28
  using :vmrun do
16
- vmx_hash $vmx_keys
29
+ path_to_binary '/fake/path/to/vmrun'
30
+ vmx_hash vmx_keys1
31
+ end
32
+ end
33
+
34
+ @cloud2 = cloud :files do
35
+ using :vmrun do
36
+ vmx_files ['/path/to/vmx/file', '/another/path']
17
37
  end
18
-
19
- end
38
+ end
39
+
20
40
  end
21
41
  should "be setting the type of remote_base as Vmrun" do
22
42
  @cloud.remote_base.class.should == PoolParty::Remote::Vmrun
23
43
  end
24
44
  should "have the method vmrun as the remoter base" do
25
45
  @cloud.vmrun.should == @cloud.remote_base
26
- end
27
- should "start vmware instance" do
28
- @cloud.launch_instance!
29
- assert @cloud.vmrun.describe_instances.first[:instance_id], $vmx_files.first
30
46
  end
31
- should "have the ip and mac address" do
32
- @cloud.launch_instance!
33
-
34
- vmx_file = @cloud.vmrun.describe_instances.first[:instance_id]
35
- instance = @cloud.vmrun.describe_instance(:vmx_file => vmx_file)
36
-
37
- assert !instance.mac_address.nil?
38
- assert !instance.ip.nil?
39
- end
40
- should "be able to turn off the instance" do
41
- @cloud.launch_instance!
42
- @cloud.terminate_instance!
43
- assert @cloud.describe_instances.empty?
47
+ should "have vmx_files from vmx_hash" do
48
+ @cloud.remote_base.vmx_files.size.should == 1
49
+ @cloud.remote_base.vmx_files.should == @vmx_files
44
50
  end
45
- after :all do
46
- PoolParty::Remote::Vmrun.terminate!(@cloud)
51
+ should "have vmx_files form vmx_files option" do
52
+ @cloud.remote_base.vmx_files == ["~/Documents/vm/Ubuntu32bitVM.vmwarevm/Ubuntu32bitVM.vmx"]
53
+ @cloud2.remote_base.vmx_files == ['/path/to/vmx/file', '/another/path']
47
54
  end
55
+ # should "start vmware instance" do
56
+ # @cloud.launch_instance!
57
+ # assert @cloud.vmrun.describe_instances.first[:instance_id], $vmx_files.first
58
+ # end
59
+ # should "have the ip and mac address" do
60
+ # @cloud.launch_instance!
61
+ #
62
+ # vmx_file = @cloud.vmrun.describe_instances.first[:instance_id]
63
+ # instance = @cloud.vmrun.describe_instance(:vmx_file => vmx_file)
64
+ #
65
+ # assert !instance.mac_address.nil?
66
+ # assert !instance.ip.nil?
67
+ # end
68
+ # should "be able to turn off the instance" do
69
+ # @cloud.launch_instance!
70
+ # @cloud.terminate_instance!
71
+ # assert @cloud.describe_instances.empty?
72
+ # end
73
+ # teardown do
74
+ # # PoolParty::Remote::Vmrun.terminate!(
75
+ # @cloud.describe_instances.each do |inst|
76
+ # @cloud.terminate_instance! inst[:instance_id]
77
+ # end
78
+ # end
48
79
  end
49
80
 
50
- end
81
+ end
@@ -0,0 +1,37 @@
1
+ require "#{::File.dirname(__FILE__)}/../../test_helper"
2
+
3
+ class TestChefDeploy < Test::Unit::TestCase
4
+ context "base usage (chef_deploy)" do
5
+ setup do
6
+ reset!
7
+ @cloud = cloud :test_chef_deploy_cloud do
8
+ has_chef_deploy do
9
+ branch "/var/www"
10
+ repo "git://github.com/auser/paparazzi.git"
11
+ user "www-data"
12
+ end
13
+ end
14
+ @chef_deploy = @cloud.chef_deploys.first
15
+ end
16
+
17
+ should "place a resource on the cloud" do
18
+ assert_equal PoolParty::Plugin::ChefDeploy, @cloud.ordered_resources.first.class
19
+ end
20
+ should "raise if :repo is not passed" do
21
+ assert_raise ReposMissingError do
22
+ cloud :boxy do
23
+ has_chef_deploy do
24
+ branch "/bweee"
25
+ end
26
+ end
27
+ end
28
+ end
29
+ should "have the rails required gems installed" do
30
+ n = @cloud.chef_deploys.first.chef_librarys.map {|a| a.name }.first
31
+ assert_match /chef\-deploy\/lib\/chef\-deploy\.rb/, n
32
+ end
33
+ should "have a chef_deploy_definition" do
34
+ assert_equal @cloud.chef_deploys.first.chef_deploy_definitions.size, 1
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,23 @@
1
+ require "#{::File.dirname(__FILE__)}/../../test_helper"
2
+
3
+ class TestChef < Test::Unit::TestCase
4
+ context "json generation" do
5
+ setup do
6
+ reset!
7
+ cloud :json_this_yo do
8
+ chef do
9
+ json
10
+ end
11
+ end
12
+ @cloud = clouds[:json_this_yo]
13
+ end
14
+
15
+ # TODO: Solidify json generation
16
+ should "include the json file" do
17
+ assert ::Suitcase::Zipper.items.has_key?(:"__p__stringdna.json_chef")
18
+ assert_equal ::Suitcase::Zipper.items[:"__p__stringdna.json_chef"][:content], '{"recipes":["poolparty"]}'
19
+ ::Suitcase::Zipper.build_dir!("#{@cloud.tmp_path}/test_dependencies")
20
+ assert_equal '{"recipes":["poolparty"]}', open("#{@cloud.tmp_path}/test_dependencies/chef/dna.json").read
21
+ end
22
+ end
23
+ end