-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCapfile.parser
More file actions
92 lines (74 loc) · 3.57 KB
/
Capfile.parser
File metadata and controls
92 lines (74 loc) · 3.57 KB
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
SERVER_ADDR = "ec2-75-101-214-44.compute-1.amazonaws.com"
JAVA_HOME = "/usr/lib/jvm/java-6-sun"
role :workers, "ec2-72-44-56-197.compute-1.amazonaws.com", "ec2-67-202-15-230.compute-1.amazonaws.com", "ec2-75-101-172-215.compute-1.amazonaws.com", "ec2-174-129-170-178.compute-1.amazonaws.com", "ec2-174-129-148-165.compute-1.amazonaws.com", "ec2-72-44-55-164.compute-1.amazonaws.com", "ec2-75-101-169-200.compute-1.amazonaws.com", "ec2-75-101-172-28.compute-1.amazonaws.com", "ec2-174-129-130-202.compute-1.amazonaws.com", "ec2-72-44-54-123.compute-1.amazonaws.com", "ec2-75-101-171-28.compute-1.amazonaws.com", "ec2-174-129-143-128.compute-1.amazonaws.com", "ec2-174-129-153-185.compute-1.amazonaws.com", "ec2-174-129-134-245.compute-1.amazonaws.com", "ec2-174-129-102-1.compute-1.amazonaws.com", "ec2-174-129-109-100.compute-1.amazonaws.com", "ec2-174-129-138-13.compute-1.amazonaws.com", "ec2-174-129-159-153.compute-1.amazonaws.com", "ec2-72-44-49-139.compute-1.amazonaws.com", "ec2-174-129-107-184.compute-1.amazonaws.com"
role :scheduler, SERVER_ADDR
role :server, SERVER_ADDR
set :user, 'agorbunov'
set :password, '123456'
EXAMPLE_DIR = "parser-with-blocking-queue"
TARGET_DIR = "bolivar"
NODE = "node-unit.jar"
SCHEDULER = "scheduler-unit.jar"
JARS = [NODE, SCHEDULER]
DSO_BOOT = "dso-boot.linux.java-6.10.jar"
TC_DIR = "terracotta-3.0.0"
CONFIG = "tc-config.xml"
MISC = "misc"
DOWNLOADED_LOGS = "downloaded-logs"
def scp(src, dst)
body = File.open(src, "rb") { |f| f.read }
run "mkdir -p #{TARGET_DIR}"
put(body, File.join(TARGET_DIR, dst))
end
def target(dir)
File.join(TARGET_DIR, dir)
end
task :show_workers, :roles => :workers do
workers = find_servers(:roles => :workers)
print workers.length
end
desc "Build the project from sources"
task :build do
system("cd #{EXAMPLE_DIR} && mvn clean package && mvn package -P Worker")
end
desc "Uploads tc-config.xml to all nodes"
task :upload_config do
scp(File.join(EXAMPLE_DIR, CONFIG), CONFIG)
end
task :upload_jars do
JARS.each { |jar| scp(File.join(EXAMPLE_DIR, "target", jar), jar) }
scp(File.join(MISC, DSO_BOOT), DSO_BOOT)
end
task :upload_tc do
tc_tar = TC_DIR + ".tar.gz"
scp(File.join(MISC, tc_tar), tc_tar)
run "cd #{TARGET_DIR} && tar xzf #{tc_tar}"
end
task :upload_all do
# upload config
scp(File.join(EXAMPLE_DIR, CONFIG), CONFIG)
# upload jars
JARS.each { |jar| scp(File.join(EXAMPLE_DIR, "target", jar), jar) }
scp(File.join(MISC, DSO_BOOT), DSO_BOOT)
# upload and unpack terracotta
tc_tar = TC_DIR + ".tar.gz"
scp(File.join(MISC, tc_tar), tc_tar)
run "cd #{TARGET_DIR} && tar xzf #{tc_tar}"
end
task :run_workers, :roles => :workers do
run "rm -f #{DOWNLOADED_LOGS}/*"
run "java -Xms512m -Xmx512m -Xbootclasspath/p:#{TARGET_DIR}/#{DSO_BOOT} -Dtc.install-root=#{File.join(TARGET_DIR, TC_DIR)} -Dtc.server=#{SERVER_ADDR} -Dtc.config=#{TARGET_DIR}/tc-config.xml -DtypeOfWork=parsing -jar #{TARGET_DIR}/#{NODE} 2>&1"
end
task :run_scheduler, :roles => :scheduler do
workers = find_servers(:roles => :workers)
run "java -Xbootclasspath/p:#{TARGET_DIR}/#{DSO_BOOT} -Dtc.install-root=#{File.join(TARGET_DIR, TC_DIR)} -Dtc.server=#{SERVER_ADDR} -Dtc.config=#{TARGET_DIR}/tc-config.xml -DlocalDir=/var/www/html/logs -DhttpUrl=http://#{SERVER_ADDR}/html/logs/ -DdownloadedDir=#{DOWNLOADED_LOGS} -DcountWorkers=#{workers.length} -jar #{TARGET_DIR}/#{SCHEDULER} 2>&1"
end
task :run_server, :roles => :server do
run "export JAVA_HOME=#{JAVA_HOME} && #{File.join(TARGET_DIR, TC_DIR, "bin", "start-tc-server.sh")} > /dev/null 2>&1 &"
end
task :kill do
run "killall -9 java"
end
task :clean do
run "rm -rf #{TARGET_DIR}"
end