virtualmonkey 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/LICENSE +20 -0
- data/README.rdoc +77 -0
- data/Rakefile +51 -0
- data/VERSION +1 -0
- data/bin/grinder +102 -0
- data/bin/mcicp +46 -0
- data/bin/monkey +12 -0
- data/bin/vary_instance_types +59 -0
- data/config/cloud_variables/all_clouds.json +30 -0
- data/config/cloud_variables/east.json +9 -0
- data/config/cloud_variables/rackspace.json +7 -0
- data/config/cloud_variables/west.json +9 -0
- data/config/common_inputs/apache_haproxy.json +27 -0
- data/config/common_inputs/base.json +5 -0
- data/config/common_inputs/ebs_toolbox.json +10 -0
- data/config/common_inputs/haproxy.json +15 -0
- data/config/common_inputs/lamp.json +30 -0
- data/config/common_inputs/mysql.json +24 -0
- data/config/common_inputs/none.json +4 -0
- data/config/common_inputs/php.json +25 -0
- data/config/common_inputs/php_aio_trial_chef_alpha.json +3 -0
- data/config/common_inputs/php_app_fe_chef.json +12 -0
- data/config/common_inputs/php_elb.json +12 -0
- data/config/common_inputs/qstart.json +5 -0
- data/config/common_inputs/rails.json +31 -0
- data/config/common_inputs/rails_aio_demo_chef_alpha.json +3 -0
- data/config/common_inputs/rails_aio_developer_chef_alpha.json +10 -0
- data/config/common_inputs/rsgrid.json +10 -0
- data/config/common_inputs/tomcat.json +15 -0
- data/config/common_inputs/windows_blog_engine.json +3 -0
- data/config/common_inputs/windows_net_aio.json +14 -0
- data/config/troop/11H1/backup/base.json +10 -0
- data/config/troop/11H1/backup/lamp_mysql_50.json +10 -0
- data/config/troop/11H1/backup/lamp_mysql_51.json +10 -0
- data/config/troop/11H1/backup/loadbalancer-php.json +13 -0
- data/config/troop/11H1/backup/loadbalancer.json +14 -0
- data/config/troop/11H1/backup/loadbalancer_rails.json +13 -0
- data/config/troop/11H1/backup/loadbalancer_tomcat6.json +13 -0
- data/config/troop/11H1/backup/mysql50.json +11 -0
- data/config/troop/11H1/backup/mysql50_toolbox.json +12 -0
- data/config/troop/11H1/backup/mysql51.json +11 -0
- data/config/troop/11H1/backup/mysql51_toolbox.json +12 -0
- data/config/troop/11H1/backup/php_elb.json +11 -0
- data/config/troop/11H1/base.json +10 -0
- data/config/troop/11H1/ebs_toolbox.json +12 -0
- data/config/troop/11H1/lamp_mysql_50.json +10 -0
- data/config/troop/11H1/lamp_mysql_51.json +10 -0
- data/config/troop/11H1/loadbalancer-php.json +13 -0
- data/config/troop/11H1/loadbalancer.json +17 -0
- data/config/troop/11H1/loadbalancer_rails.json +13 -0
- data/config/troop/11H1/loadbalancer_tomcat6.json +13 -0
- data/config/troop/11H1/mysql50.json +11 -0
- data/config/troop/11H1/mysql50_toolbox.json +12 -0
- data/config/troop/11H1/mysql51.json +11 -0
- data/config/troop/11H1/mysql51_awsdns.json +11 -0
- data/config/troop/11H1/mysql51_debug.json +11 -0
- data/config/troop/11H1/mysql51_toolbox.json +12 -0
- data/config/troop/11H1/php.json +13 -0
- data/config/troop/11H1/php_elb.json +11 -0
- data/config/troop/11H1/rails.json +13 -0
- data/config/troop/11H1/tomcat6.json +13 -0
- data/config/troop/chef_quickstart.json +10 -0
- data/config/troop/just_elb +10 -0
- data/config/troop/lamp_v4.json +10 -0
- data/config/troop/patch_test.json +10 -0
- data/config/troop/rightlink.json +10 -0
- data/config/troop/simple_fail.json +11 -0
- data/config/troop/simple_pass.json +11 -0
- data/config/troop/windows_blog_engine.json +10 -0
- data/config/troop/windows_net_aio.json +10 -0
- data/config/troop/windows_quick_start.json +10 -0
- data/features/base.rb +31 -0
- data/features/db_toolbox.rb +59 -0
- data/features/ebs_toolbox.rb +62 -0
- data/features/lamp.rb +33 -0
- data/features/lb-apache-haproxy.rb +49 -0
- data/features/mysql_5.x_v2_v4_from_scratch.rb +71 -0
- data/features/mysql_5.x_v2_v4_from_scratch_awsdns.rb +71 -0
- data/features/mysql_5.x_v2_v4_from_scratch_dyndns.rb +71 -0
- data/features/mysql_v1_upgrade_v2.rb +54 -0
- data/features/old_cuke_features/Rakefile +121 -0
- data/features/old_cuke_features/Steps-TODO +31 -0
- data/features/old_cuke_features/app_state.feature +25 -0
- data/features/old_cuke_features/app_test.feature +24 -0
- data/features/old_cuke_features/base.feature +16 -0
- data/features/old_cuke_features/chef_quickstart.feature +11 -0
- data/features/old_cuke_features/db_toolbox.feature +38 -0
- data/features/old_cuke_features/ebs_toolbox.feature +39 -0
- data/features/old_cuke_features/elb_create_delete.feature +41 -0
- data/features/old_cuke_features/elb_generic.feature +27 -0
- data/features/old_cuke_features/fe_app_checks.feature +21 -0
- data/features/old_cuke_features/just-start.feature +13 -0
- data/features/old_cuke_features/lamp.feature +15 -0
- data/features/old_cuke_features/lb-apache-haproxy.feature +27 -0
- data/features/old_cuke_features/mysql_5.x_v2_v4_from_scratch.feature +33 -0
- data/features/old_cuke_features/mysql_5.x_v2_v4_from_scratch_awsdns.feature +33 -0
- data/features/old_cuke_features/mysql_5.x_v2_v4_from_scratch_dyndns.feature +33 -0
- data/features/old_cuke_features/mysql_chef_premium.feature +27 -0
- data/features/old_cuke_features/mysql_chef_premium_from_scratch.feature +37 -0
- data/features/old_cuke_features/mysql_v1_upgrade_v2.feature +42 -0
- data/features/old_cuke_features/php.feature +27 -0
- data/features/old_cuke_features/php_aio_trial_chef_alpha.feature +11 -0
- data/features/old_cuke_features/php_chef.feature +21 -0
- data/features/old_cuke_features/php_elb.feature +41 -0
- data/features/old_cuke_features/rails.feature +26 -0
- data/features/old_cuke_features/rails_aio_developer_chef.feature +17 -0
- data/features/old_cuke_features/reboot.feature +23 -0
- data/features/old_cuke_features/rightlink.feature +19 -0
- data/features/old_cuke_features/rsgrid.feature +19 -0
- data/features/old_cuke_features/simple.feature +8 -0
- data/features/old_cuke_features/simple_fail.feature +9 -0
- data/features/old_cuke_features/start-stop.feature +13 -0
- data/features/old_cuke_features/step_definitions/app.rb +21 -0
- data/features/old_cuke_features/step_definitions/deployment_steps.rb +112 -0
- data/features/old_cuke_features/step_definitions/ebs.rb +36 -0
- data/features/old_cuke_features/step_definitions/elb.rb +35 -0
- data/features/old_cuke_features/step_definitions/lb.rb +22 -0
- data/features/old_cuke_features/step_definitions/mysql_steps.rb +84 -0
- data/features/old_cuke_features/terminate.feature +7 -0
- data/features/old_cuke_features/tomcat6-tests-TODO +29 -0
- data/features/old_cuke_features/tomcat6.feature +27 -0
- data/features/patch_test.rb +33 -0
- data/features/php.rb +54 -0
- data/features/php_elb.rb +78 -0
- data/features/rails.rb +54 -0
- data/features/start_only.rb +26 -0
- data/features/tomcat6.rb +54 -0
- data/lib/virtualmonkey.rb +28 -0
- data/lib/virtualmonkey/application.rb +75 -0
- data/lib/virtualmonkey/application_frontend.rb +42 -0
- data/lib/virtualmonkey/command.rb +39 -0
- data/lib/virtualmonkey/command/clone.rb +50 -0
- data/lib/virtualmonkey/command/create.rb +21 -0
- data/lib/virtualmonkey/command/destroy.rb +51 -0
- data/lib/virtualmonkey/command/list.rb +10 -0
- data/lib/virtualmonkey/command/run.rb +76 -0
- data/lib/virtualmonkey/command/troop.rb +146 -0
- data/lib/virtualmonkey/cuke_monk.rb +184 -0
- data/lib/virtualmonkey/deployment_monk.rb +132 -0
- data/lib/virtualmonkey/deployment_runner.rb +333 -0
- data/lib/virtualmonkey/ebs.rb +161 -0
- data/lib/virtualmonkey/ebs_runner.rb +59 -0
- data/lib/virtualmonkey/elb_runner.rb +194 -0
- data/lib/virtualmonkey/fe_app_runner.rb +7 -0
- data/lib/virtualmonkey/file_locations.rb +7 -0
- data/lib/virtualmonkey/frontend.rb +124 -0
- data/lib/virtualmonkey/http_checks.rb +33 -0
- data/lib/virtualmonkey/index.html.erb +109 -0
- data/lib/virtualmonkey/lamp_runner.rb +29 -0
- data/lib/virtualmonkey/mysql.rb +172 -0
- data/lib/virtualmonkey/mysql_runner.rb +108 -0
- data/lib/virtualmonkey/mysql_toolbox_runner.rb +51 -0
- data/lib/virtualmonkey/patch_runner.rb +46 -0
- data/lib/virtualmonkey/php_aio_trial_chef_runner.rb +6 -0
- data/lib/virtualmonkey/php_chef_runner.rb +69 -0
- data/lib/virtualmonkey/rails_aio_developer_chef_runner.rb +8 -0
- data/lib/virtualmonkey/shared_dns.rb +67 -0
- data/lib/virtualmonkey/simple.rb +5 -0
- data/lib/virtualmonkey/simple_runner.rb +6 -0
- data/lib/virtualmonkey/test_case_interface.rb +151 -0
- data/lib/virtualmonkey/unified_application.rb +40 -0
- data/spec/bug3518.rb +16 -0
- data/spec/concurrent_writes_spec.rb +26 -0
- data/spec/cuke_job_spec.rb +26 -0
- data/spec/ek.rb +28 -0
- data/spec/little_ruby.rb +20 -0
- data/spec/mini.rb +25 -0
- data/spec/monitoring.rb +13 -0
- data/spec/release_aws_dns.rb +5 -0
- data/spec/release_dns.rb +5 -0
- data/spec/release_dyndns.rb +5 -0
- data/spec/shared_resources_spec.rb +25 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +11 -0
- data/spec/virtualmonkey_spec.rb +7 -0
- data/virtualmonkey.gemspec +265 -0
- 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,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
|
+
|
data/features/php.rb
ADDED
@@ -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)
|
data/features/php_elb.rb
ADDED
@@ -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)
|
data/features/rails.rb
ADDED
@@ -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)
|