virtualmonkey 0.0.1

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 (178) hide show
  1. data/.document +5 -0
  2. data/LICENSE +20 -0
  3. data/README.rdoc +77 -0
  4. data/Rakefile +51 -0
  5. data/VERSION +1 -0
  6. data/bin/grinder +102 -0
  7. data/bin/mcicp +46 -0
  8. data/bin/monkey +12 -0
  9. data/bin/vary_instance_types +59 -0
  10. data/config/cloud_variables/all_clouds.json +30 -0
  11. data/config/cloud_variables/east.json +9 -0
  12. data/config/cloud_variables/rackspace.json +7 -0
  13. data/config/cloud_variables/west.json +9 -0
  14. data/config/common_inputs/apache_haproxy.json +27 -0
  15. data/config/common_inputs/base.json +5 -0
  16. data/config/common_inputs/ebs_toolbox.json +10 -0
  17. data/config/common_inputs/haproxy.json +15 -0
  18. data/config/common_inputs/lamp.json +30 -0
  19. data/config/common_inputs/mysql.json +24 -0
  20. data/config/common_inputs/none.json +4 -0
  21. data/config/common_inputs/php.json +25 -0
  22. data/config/common_inputs/php_aio_trial_chef_alpha.json +3 -0
  23. data/config/common_inputs/php_app_fe_chef.json +12 -0
  24. data/config/common_inputs/php_elb.json +12 -0
  25. data/config/common_inputs/qstart.json +5 -0
  26. data/config/common_inputs/rails.json +31 -0
  27. data/config/common_inputs/rails_aio_demo_chef_alpha.json +3 -0
  28. data/config/common_inputs/rails_aio_developer_chef_alpha.json +10 -0
  29. data/config/common_inputs/rsgrid.json +10 -0
  30. data/config/common_inputs/tomcat.json +15 -0
  31. data/config/common_inputs/windows_blog_engine.json +3 -0
  32. data/config/common_inputs/windows_net_aio.json +14 -0
  33. data/config/troop/11H1/backup/base.json +10 -0
  34. data/config/troop/11H1/backup/lamp_mysql_50.json +10 -0
  35. data/config/troop/11H1/backup/lamp_mysql_51.json +10 -0
  36. data/config/troop/11H1/backup/loadbalancer-php.json +13 -0
  37. data/config/troop/11H1/backup/loadbalancer.json +14 -0
  38. data/config/troop/11H1/backup/loadbalancer_rails.json +13 -0
  39. data/config/troop/11H1/backup/loadbalancer_tomcat6.json +13 -0
  40. data/config/troop/11H1/backup/mysql50.json +11 -0
  41. data/config/troop/11H1/backup/mysql50_toolbox.json +12 -0
  42. data/config/troop/11H1/backup/mysql51.json +11 -0
  43. data/config/troop/11H1/backup/mysql51_toolbox.json +12 -0
  44. data/config/troop/11H1/backup/php_elb.json +11 -0
  45. data/config/troop/11H1/base.json +10 -0
  46. data/config/troop/11H1/ebs_toolbox.json +12 -0
  47. data/config/troop/11H1/lamp_mysql_50.json +10 -0
  48. data/config/troop/11H1/lamp_mysql_51.json +10 -0
  49. data/config/troop/11H1/loadbalancer-php.json +13 -0
  50. data/config/troop/11H1/loadbalancer.json +17 -0
  51. data/config/troop/11H1/loadbalancer_rails.json +13 -0
  52. data/config/troop/11H1/loadbalancer_tomcat6.json +13 -0
  53. data/config/troop/11H1/mysql50.json +11 -0
  54. data/config/troop/11H1/mysql50_toolbox.json +12 -0
  55. data/config/troop/11H1/mysql51.json +11 -0
  56. data/config/troop/11H1/mysql51_awsdns.json +11 -0
  57. data/config/troop/11H1/mysql51_debug.json +11 -0
  58. data/config/troop/11H1/mysql51_toolbox.json +12 -0
  59. data/config/troop/11H1/php.json +13 -0
  60. data/config/troop/11H1/php_elb.json +11 -0
  61. data/config/troop/11H1/rails.json +13 -0
  62. data/config/troop/11H1/tomcat6.json +13 -0
  63. data/config/troop/chef_quickstart.json +10 -0
  64. data/config/troop/just_elb +10 -0
  65. data/config/troop/lamp_v4.json +10 -0
  66. data/config/troop/patch_test.json +10 -0
  67. data/config/troop/rightlink.json +10 -0
  68. data/config/troop/simple_fail.json +11 -0
  69. data/config/troop/simple_pass.json +11 -0
  70. data/config/troop/windows_blog_engine.json +10 -0
  71. data/config/troop/windows_net_aio.json +10 -0
  72. data/config/troop/windows_quick_start.json +10 -0
  73. data/features/base.rb +31 -0
  74. data/features/db_toolbox.rb +59 -0
  75. data/features/ebs_toolbox.rb +62 -0
  76. data/features/lamp.rb +33 -0
  77. data/features/lb-apache-haproxy.rb +49 -0
  78. data/features/mysql_5.x_v2_v4_from_scratch.rb +71 -0
  79. data/features/mysql_5.x_v2_v4_from_scratch_awsdns.rb +71 -0
  80. data/features/mysql_5.x_v2_v4_from_scratch_dyndns.rb +71 -0
  81. data/features/mysql_v1_upgrade_v2.rb +54 -0
  82. data/features/old_cuke_features/Rakefile +121 -0
  83. data/features/old_cuke_features/Steps-TODO +31 -0
  84. data/features/old_cuke_features/app_state.feature +25 -0
  85. data/features/old_cuke_features/app_test.feature +24 -0
  86. data/features/old_cuke_features/base.feature +16 -0
  87. data/features/old_cuke_features/chef_quickstart.feature +11 -0
  88. data/features/old_cuke_features/db_toolbox.feature +38 -0
  89. data/features/old_cuke_features/ebs_toolbox.feature +39 -0
  90. data/features/old_cuke_features/elb_create_delete.feature +41 -0
  91. data/features/old_cuke_features/elb_generic.feature +27 -0
  92. data/features/old_cuke_features/fe_app_checks.feature +21 -0
  93. data/features/old_cuke_features/just-start.feature +13 -0
  94. data/features/old_cuke_features/lamp.feature +15 -0
  95. data/features/old_cuke_features/lb-apache-haproxy.feature +27 -0
  96. data/features/old_cuke_features/mysql_5.x_v2_v4_from_scratch.feature +33 -0
  97. data/features/old_cuke_features/mysql_5.x_v2_v4_from_scratch_awsdns.feature +33 -0
  98. data/features/old_cuke_features/mysql_5.x_v2_v4_from_scratch_dyndns.feature +33 -0
  99. data/features/old_cuke_features/mysql_chef_premium.feature +27 -0
  100. data/features/old_cuke_features/mysql_chef_premium_from_scratch.feature +37 -0
  101. data/features/old_cuke_features/mysql_v1_upgrade_v2.feature +42 -0
  102. data/features/old_cuke_features/php.feature +27 -0
  103. data/features/old_cuke_features/php_aio_trial_chef_alpha.feature +11 -0
  104. data/features/old_cuke_features/php_chef.feature +21 -0
  105. data/features/old_cuke_features/php_elb.feature +41 -0
  106. data/features/old_cuke_features/rails.feature +26 -0
  107. data/features/old_cuke_features/rails_aio_developer_chef.feature +17 -0
  108. data/features/old_cuke_features/reboot.feature +23 -0
  109. data/features/old_cuke_features/rightlink.feature +19 -0
  110. data/features/old_cuke_features/rsgrid.feature +19 -0
  111. data/features/old_cuke_features/simple.feature +8 -0
  112. data/features/old_cuke_features/simple_fail.feature +9 -0
  113. data/features/old_cuke_features/start-stop.feature +13 -0
  114. data/features/old_cuke_features/step_definitions/app.rb +21 -0
  115. data/features/old_cuke_features/step_definitions/deployment_steps.rb +112 -0
  116. data/features/old_cuke_features/step_definitions/ebs.rb +36 -0
  117. data/features/old_cuke_features/step_definitions/elb.rb +35 -0
  118. data/features/old_cuke_features/step_definitions/lb.rb +22 -0
  119. data/features/old_cuke_features/step_definitions/mysql_steps.rb +84 -0
  120. data/features/old_cuke_features/terminate.feature +7 -0
  121. data/features/old_cuke_features/tomcat6-tests-TODO +29 -0
  122. data/features/old_cuke_features/tomcat6.feature +27 -0
  123. data/features/patch_test.rb +33 -0
  124. data/features/php.rb +54 -0
  125. data/features/php_elb.rb +78 -0
  126. data/features/rails.rb +54 -0
  127. data/features/start_only.rb +26 -0
  128. data/features/tomcat6.rb +54 -0
  129. data/lib/virtualmonkey.rb +28 -0
  130. data/lib/virtualmonkey/application.rb +75 -0
  131. data/lib/virtualmonkey/application_frontend.rb +42 -0
  132. data/lib/virtualmonkey/command.rb +39 -0
  133. data/lib/virtualmonkey/command/clone.rb +50 -0
  134. data/lib/virtualmonkey/command/create.rb +21 -0
  135. data/lib/virtualmonkey/command/destroy.rb +51 -0
  136. data/lib/virtualmonkey/command/list.rb +10 -0
  137. data/lib/virtualmonkey/command/run.rb +76 -0
  138. data/lib/virtualmonkey/command/troop.rb +146 -0
  139. data/lib/virtualmonkey/cuke_monk.rb +184 -0
  140. data/lib/virtualmonkey/deployment_monk.rb +132 -0
  141. data/lib/virtualmonkey/deployment_runner.rb +333 -0
  142. data/lib/virtualmonkey/ebs.rb +161 -0
  143. data/lib/virtualmonkey/ebs_runner.rb +59 -0
  144. data/lib/virtualmonkey/elb_runner.rb +194 -0
  145. data/lib/virtualmonkey/fe_app_runner.rb +7 -0
  146. data/lib/virtualmonkey/file_locations.rb +7 -0
  147. data/lib/virtualmonkey/frontend.rb +124 -0
  148. data/lib/virtualmonkey/http_checks.rb +33 -0
  149. data/lib/virtualmonkey/index.html.erb +109 -0
  150. data/lib/virtualmonkey/lamp_runner.rb +29 -0
  151. data/lib/virtualmonkey/mysql.rb +172 -0
  152. data/lib/virtualmonkey/mysql_runner.rb +108 -0
  153. data/lib/virtualmonkey/mysql_toolbox_runner.rb +51 -0
  154. data/lib/virtualmonkey/patch_runner.rb +46 -0
  155. data/lib/virtualmonkey/php_aio_trial_chef_runner.rb +6 -0
  156. data/lib/virtualmonkey/php_chef_runner.rb +69 -0
  157. data/lib/virtualmonkey/rails_aio_developer_chef_runner.rb +8 -0
  158. data/lib/virtualmonkey/shared_dns.rb +67 -0
  159. data/lib/virtualmonkey/simple.rb +5 -0
  160. data/lib/virtualmonkey/simple_runner.rb +6 -0
  161. data/lib/virtualmonkey/test_case_interface.rb +151 -0
  162. data/lib/virtualmonkey/unified_application.rb +40 -0
  163. data/spec/bug3518.rb +16 -0
  164. data/spec/concurrent_writes_spec.rb +26 -0
  165. data/spec/cuke_job_spec.rb +26 -0
  166. data/spec/ek.rb +28 -0
  167. data/spec/little_ruby.rb +20 -0
  168. data/spec/mini.rb +25 -0
  169. data/spec/monitoring.rb +13 -0
  170. data/spec/release_aws_dns.rb +5 -0
  171. data/spec/release_dns.rb +5 -0
  172. data/spec/release_dyndns.rb +5 -0
  173. data/spec/shared_resources_spec.rb +25 -0
  174. data/spec/spec.opts +1 -0
  175. data/spec/spec_helper.rb +11 -0
  176. data/spec/virtualmonkey_spec.rb +7 -0
  177. data/virtualmonkey.gemspec +265 -0
  178. metadata +428 -0
@@ -0,0 +1,36 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__) , '..','..','spec','spec_helper'))
2
+
3
+ Given /A EBS Toolbox deployment/ do
4
+ raise "FATAL: Please set the environment variable $DEPLOYMENT" unless ENV['DEPLOYMENT']
5
+
6
+ @runner = VirtualMonkey::EBSRunner.new(ENV['DEPLOYMENT'])
7
+ @runner.lookup_scripts
8
+ end
9
+
10
+ Then /^I should set a variation volume size "([^\"]*)"$/ do |size|
11
+ @runner.set_variation_volume_size(size)
12
+ end
13
+
14
+ Then /^I should set a variation mount point "([^\"]*)"$/ do |mnt|
15
+ @runner.set_variation_mount_point(mnt)
16
+ end
17
+
18
+ Then /^I should create a new EBS stripe$/ do
19
+ @runner.create_stripe
20
+ end
21
+
22
+ Then /^I should test the backup script operations$/ do
23
+ @runner.test_backup_script_operations
24
+ end
25
+
26
+ Then /^I should backup the volume$/ do
27
+ @runner.create_backup
28
+ end
29
+
30
+ Then /^I should test the restore operations$/ do
31
+ @runner.test_restore
32
+ end
33
+
34
+ Then /^I should test the restore grow operations$/ do
35
+ @runner.test_restore_grow
36
+ end
@@ -0,0 +1,35 @@
1
+ When /^I create EC2 Elastic Load Balancer$/ do
2
+ @runner.create_elb
3
+ end
4
+
5
+ Then /^I should set a variation ELB_NAME$/ do
6
+ @runner.set_elb_name
7
+ end
8
+
9
+ Then /^I should run EC2 Elastic Load Balancer unified_app checks$/ do
10
+ @runner.run_elb_checks
11
+ end
12
+
13
+ When /^I disconnect all servers from ELB$/ do
14
+ @runner.elb_disconnect_all
15
+ end
16
+
17
+ Then /^I should get a http code (\d+) from ELB$/ do |code|
18
+ @runner.elb_response_code(code)
19
+ end
20
+
21
+ Then /^all instances should be registered with ELB$/ do
22
+ @runner.elb_registration_check(:all)
23
+ end
24
+
25
+ Then /^no instances should be registered with ELB$/ do
26
+ @runner.elb_registration_check(:none)
27
+ end
28
+
29
+ When /^I delete EC2 Elastic Load Balancer$/ do
30
+ @runner.destroy_elb
31
+ end
32
+
33
+ #Then /^the servers should strand with "([^"]*)"$/ do |arg1|
34
+ # pending # express the regexp above with the code you wish you had
35
+ #end
@@ -0,0 +1,22 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__) , '..','..','spec','spec_helper'))
2
+
3
+ Given /^An Apache with HAproxy deployment/ do
4
+ raise "FATAL: Please set the environment variable $DEPLOYMENT" unless ENV['DEPLOYMENT']
5
+ @runner = VirtualMonkey::FeAppRunner.new(ENV['DEPLOYMENT'])
6
+ end
7
+
8
+ Then /^I should run log rotation checks/ do
9
+ @runner.log_rotation_checks
10
+ end
11
+
12
+ Then /^I should run frontend checks/ do
13
+ @runner.frontend_checks
14
+ end
15
+
16
+ Then /^I should cross connect the frontends/ do
17
+ @runner.cross_connect_frontends
18
+ end
19
+
20
+ Then /^I should set a variation LB_HOSTNAME/ do
21
+ @runner.set_lb_hostname
22
+ end
@@ -0,0 +1,84 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__) , '..','..','spec','spec_helper'))
2
+
3
+ Then /I should run mysql checks/ do
4
+ @runner.run_checks
5
+ end
6
+
7
+ Then /I should run mysqlslap stress test/ do
8
+ @runner.run_mysqlslap_check
9
+ end
10
+
11
+ Then /I should check that ulimit was set correctly/ do
12
+ @runner.ulimit_check
13
+ end
14
+
15
+ #Then /I should set a variation backup prefix/ do
16
+ # @runner.set_variation_backup_prefix
17
+ #end
18
+
19
+ Then /I should set a variation bucket/ do
20
+ @runner.set_variation_bucket
21
+ end
22
+
23
+ Then /I should test promotion operations on the deployment/ do
24
+ @runner.run_promotion_operations
25
+ end
26
+
27
+ #Then /I should set a chef variation lineage/ do
28
+ # @runner.set_variation_lineage("chef")
29
+ #end
30
+
31
+ Then /I should set a variation lineage/ do
32
+ @runner.set_variation_lineage
33
+ end
34
+
35
+ Then /^I should set a variation stripe count of "([^\"]*)"$/ do |stripe|
36
+ @runner.set_variation_stripe_count(stripe)
37
+ end
38
+
39
+ # This is a hack - when we get rid of cucumber we can clean this up
40
+ # so we only have one DNS variation method
41
+ Then /^I should set a variation AWSDNS provider/ do
42
+ @runner.setup_dns("virtualmonkey_awsdns")
43
+ end
44
+
45
+ Then /^I should set a variation DNS provider/ do
46
+ @runner.setup_dns("virtualmonkey_dyndns")
47
+ end
48
+
49
+ Then /^I should set a variation MySQL DNS/ do
50
+ @runner.setup_dns("virtualmonkey_shared_resources")
51
+ end
52
+
53
+ Then /^I should create the migration script/ do
54
+ @runner.create_migration_script
55
+ end
56
+
57
+ Then /^I should migrate a new slave/ do
58
+ @runner.migrate_slave
59
+ end
60
+
61
+ Then /^I should init a new v2 slave/ do
62
+ @runner.launch_v2_slave
63
+ end
64
+
65
+ Then /^I should test the new v2 slave/ do
66
+ @runner.run_checks
67
+ end
68
+
69
+ Then /^I should release the dns records for use with other deployments$/ do
70
+ @runner.release_dns
71
+ end
72
+
73
+ #Then /^I should setup master dns to point at server "([^\"]*)"$/ do |server_index|
74
+ # @runner.set_master_dns(server_index)
75
+ #end
76
+
77
+ Then /^I should create master from scratch$/ do
78
+ @runner.create_master
79
+ end
80
+
81
+ Then /^I should run a restore using OPT_DB_RESTORE_TIMESTAMP_OVERRIDE$/ do
82
+ @runner.run_restore_with_timestamp_override
83
+ end
84
+
@@ -0,0 +1,7 @@
1
+ Feature: Terminates all servers in all deployments
2
+ Terminate all
3
+
4
+ Scenario: stop all
5
+
6
+ Given A simple deployment
7
+ Then I should stop the servers
@@ -0,0 +1,29 @@
1
+ This is a list of TODO tests. A centralized place for keeping track of the TODO's.
2
+ If the TODO is from ticket then put in the comment.
3
+ # Add test for operational script application checkout.
4
+ WHen I run SCRIPT
5
+ Then it should exit successfully on all servers
6
+ And ?current directory exists with war file?
7
+ And ?can still query the app_server test?
8
+
9
+
10
+ Put these tests back in
11
+ -# When I run "service haproxy status" on all servers
12
+ -# Then it should exit successfully on all servers
13
+ -
14
+ - When I run "apache2ctl -t" on all servers
15
+ - Then it should exit successfully on all servers
16
+ -
17
+ - When I run "test -e /home/haproxy/haproxy" on all servers
18
+ - Then it should exit successfully on all servers
19
+ -
20
+ - When I run "service haproxy check" on all servers
21
+ - Then it should exit successfully on all servers
22
+
23
+ # Check that jcollectd data is collected - make sure after reboot - #3251
24
+
25
+ # Check that SSL certs are installed correctly #3208
26
+
27
+ # Check apache/ps_count is collected - #3393
28
+
29
+ # modify tomcat templates to include inputs for Xms Xmx values #3302
@@ -0,0 +1,27 @@
1
+ @lb_test
2
+
3
+ Feature: PHP Server Templates
4
+ Tests the PHP servers
5
+
6
+ Scenario: PHP server test
7
+
8
+ Given A frontend with application servers deployment
9
+ Then I should stop the servers
10
+ Then I should set a variation for connecting to shared database host
11
+
12
+ When I launch the "Front End" servers
13
+ Then I should wait for the state of "Front End" servers to be "booting"
14
+ Then I should wait for the state of "Front End" servers to be "operational"
15
+ Then I should set a variation LB_HOSTNAME
16
+ When I launch the "App Server" servers
17
+ Then I should wait for the state of "App Server" servers to be "booting"
18
+ Then I should wait for the state of "App Server" servers to be "operational"
19
+ Then I should cross connect the frontends
20
+
21
+ Then I should run unified application checks
22
+ Then I should run frontend checks
23
+ Then I should run log rotation checks
24
+
25
+ Then I should test reboot operations on the deployment
26
+
27
+ Then I should check that monitoring is enabled
@@ -0,0 +1,33 @@
1
+ #@patch
2
+ #
3
+ # Feature: Base Server Test
4
+ # Tests the base server functions
5
+ #
6
+ # Scenario: base server test
7
+ #
8
+ # Given A simple deployment
9
+ @runner = VirtualMonkey::PatchRunner.new(ENV['DEPLOYMENT'])
10
+
11
+ # Then I should stop the servers
12
+ @runner.behavior(:stop_all)
13
+
14
+ #uncomment this line to test patches from dev bucket
15
+ @runner.behavior(:set_user_data, "RS_patch_url=http://s3.amazonaws.com/rightscale_rightlink_dev")
16
+
17
+ # Then I should launch all servers
18
+ @runner.behavior(:launch_all)
19
+
20
+ # Then I should wait for the state of "all" servers to be "operational"
21
+ @runner.behavior(:wait_for_all, "operational")
22
+
23
+ @runner.behavior(:run_patch_test)
24
+
25
+ # Then I should reboot the servers
26
+ @runner.behavior(:reboot_all)
27
+
28
+ @runner.behavior(:run_patch_test)
29
+
30
+ # Then I should wait for the state of "all" servers to be "operational"
31
+ @runner.behavior(:wait_for_all, "operational")
32
+
33
+
@@ -0,0 +1,54 @@
1
+ #@lb_test
2
+ #
3
+ #Feature: PHP Server Templates
4
+ # Tests the PHP servers
5
+ #
6
+ #Scenario: PHP server test
7
+ #
8
+ # Given A frontend with application servers deployment
9
+ @runner = VirtualMonkey::FeAppRunner.new(ENV['DEPLOYMENT'])
10
+
11
+ # Then I should stop the servers
12
+ @runner.behavior(:stop_all)
13
+
14
+ # Then I should set a variation for connecting to shared database host
15
+ @runner.set_var(:set_master_db_dnsname)
16
+
17
+ # When I launch the "Front End" servers
18
+ @runner.behavior(:launch_set, "Front End")
19
+
20
+ # Then I should wait for the state of "Front End" servers to be "booting"
21
+ @runner.behavior(:wait_for_set, "Front End", "booting")
22
+
23
+ # Then I should wait for the state of "Front End" servers to be "operational"
24
+ @runner.behavior(:wait_for_set, "Front End", "operational")
25
+
26
+ # Then I should set a variation LB_HOSTNAME
27
+ @runner.set_var(:set_lb_hostname)
28
+
29
+ # When I launch the "App Server" servers
30
+ @runner.behavior(:launch_set, "App Server")
31
+
32
+ # Then I should wait for the state of "App Server" servers to be "booting"
33
+ @runner.behavior(:wait_for_set, "App Server", "booting")
34
+
35
+ # Then I should wait for the state of "App Server" servers to be "operational"
36
+ @runner.behavior(:wait_for_set, "App Server", "operational")
37
+
38
+ # Then I should cross connect the frontends
39
+ @runner.behavior(:cross_connect_frontends)
40
+
41
+ # Then I should run unified application checks
42
+ @runner.behavior(:run_unified_application_checks, @runner.send(:app_servers))
43
+
44
+ # Then I should run frontend checks
45
+ @runner.behavior(:frontend_checks)
46
+
47
+ # Then I should run log rotation checks
48
+ @runner.behavior(:log_rotation_checks)
49
+
50
+ # Then I should test reboot operations on the deployment
51
+ @runner.behavior(:run_reboot_operations)
52
+
53
+ # Then I should check that monitoring is enabled
54
+ @runner.behavior(:check_monitoring)
@@ -0,0 +1,78 @@
1
+ #@elb_test
2
+ #
3
+ #Feature: PHP App Server Elastic Load Balancing test
4
+ # Tests the Elastic Load Balancing RightScripts using PHP App Server
5
+ #
6
+ #Scenario: Connect/Disconnect PHP App Server to ELB
7
+ #
8
+ # Given An ELB Test deployment
9
+ @runner = VirtualMonkey::ELBRunner.new(ENV['DEPLOYMENT'])
10
+
11
+ # When I create EC2 Elastic Load Balancer
12
+ @runner.set_var(:create_elb)
13
+
14
+ # Then I should stop the servers
15
+ @runner.set_var(:stop_all)
16
+
17
+ # Then I should set a variation for connecting to shared database host
18
+ @runner.set_var(:set_master_db_dnsname)
19
+
20
+ # Then I should set a variation ELB_NAME
21
+ @runner.set_var(:set_elb_name)
22
+
23
+ # When I launch the "App Server" servers
24
+ @runner.behavior(:launch_set, "App Server")
25
+
26
+ # Then I should wait for the state of "App Server" servers to be "booting"
27
+ @runner.behavior(:wait_for_set, "App Server", "booting")
28
+
29
+ # Then I should wait for the state of "App Server" servers to be "operational"
30
+ @runner.behavior(:wait_for_set, "App Server", "operational")
31
+
32
+ # Then I should run EC2 Elastic Load Balancer unified_app checks
33
+ @runner.behavior(:run_elb_checks)
34
+
35
+ # Then all instances should be registered with ELB
36
+ @runner.behavior(:elb_registration_check, :all)
37
+
38
+ ## Then I should run log rotation checks
39
+ # @runner.behavior(:log_rotation_checks)
40
+ #
41
+ ## Then I should check that monitoring is enabled
42
+ # @runner.behavior(:check_monitoring)
43
+ #
44
+ ## Then I should reboot the servers
45
+ # @runner.behavior(:reboot_all)
46
+ #
47
+ ## Then I should run EC2 Elastic Load Balancer unified_app checks
48
+ # @runner.behavior(:run_elb_checks)
49
+ #
50
+ ## Then all instances should be registered with ELB
51
+ # @runner.behavior(:elb_registration_check, :all)
52
+ #
53
+ ## Then I should run log rotation checks
54
+ # @runner.behavior(:log_rotation_checks)
55
+ #
56
+ ## Then I should check that monitoring is enabled
57
+ # @runner.behavior(:check_monitoring)
58
+ #
59
+ # Then I should stop the servers
60
+ @runner.behavior(:stop_all)
61
+
62
+ # Then no instances should be registered with ELB
63
+ @runner.behavior(:elb_registration_check, :none)
64
+
65
+ # When I delete EC2 Elastic Load Balancer
66
+ @runner.behavior(:destroy_elb)
67
+
68
+ ## When I launch the "App Server" servers
69
+ # @runner.behavior(:launch_set, "App Server")
70
+ #
71
+ ## When I should wait for the state of "App Server" servers to be "booting"
72
+ # @runner.behavior(:wait_for_set, "App Server", "booting")
73
+ #
74
+ ## Then I should wait for the state of "App Server" servers to be "stranded"
75
+ # @runner.behavior(:wait_for_set, "App Server", "stranded")
76
+ #
77
+ ## Then I should stop the servers
78
+ # @runner.behavior(:stop_all)
@@ -0,0 +1,54 @@
1
+ #@lb_test
2
+ #
3
+ #Feature: Rails Server Templates
4
+ # Tests the Rails servers
5
+ #
6
+ #Scenario: Rails server test
7
+ #
8
+ # Given A frontend with application servers deployment
9
+ @runner = VirtualMonkey::FeAppRunner.new(ENV['DEPLOYMENT'])
10
+
11
+ # Then I should stop the servers
12
+ @runner.behavior(:stop_all)
13
+
14
+ # Then I should set a variation for connecting to shared database host
15
+ @runner.set_var(:set_master_db_dnsname)
16
+
17
+ # When I launch the "Front End" servers
18
+ @runner.behavior(:launch_set, "Front End")
19
+
20
+ # Then I should wait for the state of "Front End" servers to be "booting"
21
+ @runner.behavior(:wait_for_set, "Front End", "booting")
22
+
23
+ # Then I should wait for the state of "Front End" servers to be "operational"
24
+ @runner.behavior(:wait_for_set, "Front End", "operational")
25
+
26
+ # Then I should set a variation LB_HOSTNAME
27
+ @runner.set_var(:set_lb_hostname)
28
+
29
+ # When I launch the "App Server" servers
30
+ @runner.behavior(:launch_set, "App Server")
31
+
32
+ # Then I should wait for the state of "App Server" servers to be "booting"
33
+ @runner.behavior(:wait_for_set, "App Server", "booting")
34
+
35
+ # Then I should wait for the state of "App Server" servers to be "operational"
36
+ @runner.behavior(:wait_for_set, "App Server", "operational")
37
+
38
+ # Then I should cross connect the frontends
39
+ @runner.behavior(:cross_connect_frontends)
40
+
41
+ # Then I should run unified application checks
42
+ @runner.behavior(:run_unified_application_checks, @runner.send(:app_servers))
43
+
44
+ # Then I should run frontend checks
45
+ @runner.behavior(:frontend_checks)
46
+
47
+ # Then I should run log rotation checks
48
+ @runner.behavior(:log_rotation_checks)
49
+
50
+ # Then I should test reboot operations on the deployment
51
+ @runner.behavior(:run_reboot_operations)
52
+
53
+ # Then I should check that monitoring is enabled
54
+ @runner.behavior(:check_monitoring)