-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathRakefile
70 lines (57 loc) · 1.62 KB
/
Rakefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
require './lib/config'
require './lib/runner'
task :check do
if !ENV['DO_TOKEN'] && !Config.digital_ocean_token
puts "Please set your Digital Ocean API docker in DO_TOKEN or config.yml"
exit
end
unless Config.workers
puts "Please set the amount of tsung workers in config.yml"
exit
end
end
desc "Setup tsung cluster"
task :setup_cluster => [:check] do
runner = Runner.new
puts "Settting up docker tsung swarm cluster with #{runner.workers} workers ..."
runner.create_consul
runner.create_cluster
puts "Cluster created make sure to configure docker to connect to the swarm master:"
puts "eval $(docker-machine env --swarm bench-master)"
end
desc "Teardown tsung cluster"
task :teardown_cluster => [:check] do
puts "Removing swarm cluster"
runner = Runner.new
runner.teardown
end
desc "Setup benchmark target"
task :setup_target => [:check] do
puts "Creating benchmark target machine ..."
runner = Runner.new
runner.create_target
end
desc "Teardown benchmark target"
task :teardown_target => [:check] do
puts "Removing benchmark target machine ...."
runner = Runner.new
runner.teardown_target
end
multitask :setup_all => [:setup_cluster, :setup_target] do
puts "Sawrm cluster and benchmark target are set up."
end
desc "Update and upload config files"
task :update_config => [:check] do
runner = Runner.new
runner.write_config
end
desc "Setup the tsung cluster and the benchmark target"
task :setup => [:setup_all, :update_config] do
Runner.new.info
end
desc "Info"
task :info do
Runner.new.info
end
desc "Teardown everything"
multitask :teardown => [:teardown_target, :teardown_cluster]