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.
- 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)
|