Merge lp:~cgb-cs/appscale/main-no-timeouts into lp:appscale

Proposed by Chris Bunch
Status: Merged
Merge reported by: Navraj Chohan
Merged at revision: not available
Proposed branch: lp:~cgb-cs/appscale/main-no-timeouts
Merge into: lp:appscale
Diff against target: 239 lines (+31/-29)
2 files modified
AppController/lib/app_controller_client.rb (+14/-14)
AppController/lib/user_app_client.rb (+17/-15)
To merge this branch: bzr merge lp:~cgb-cs/appscale/main-no-timeouts
Reviewer Review Type Date Requested Status
Navraj Chohan (community) Approve
Review via email: mp+77628@code.launchpad.net

Description of the change

Eliminating timeouts for AppController and UserAppClient interactions.

To post a comment you must log in.
Revision history for this message
Navraj Chohan (nchohan) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'AppController/lib/app_controller_client.rb'
2--- AppController/lib/app_controller_client.rb 2011-06-15 08:35:38 +0000
3+++ AppController/lib/app_controller_client.rb 2011-09-30 01:24:37 +0000
4@@ -34,12 +34,12 @@
5 @conn.add_method("remove_role", "old_role", "secret")
6 end
7
8- def make_call(time, retry_on_except, callr, ok_to_fail=false)
9+ def make_call(retry_on_except, callr, ok_to_fail=false)
10 refused_count = 0
11 max = 10
12
13 begin
14- Timeout::timeout(time) {
15+ Timeout::timeout(NO_TIMEOUT) {
16 yield if block_given?
17 }
18 rescue Errno::ECONNREFUSED
19@@ -93,7 +93,7 @@
20
21 def set_parameters(locations, creds, apps_to_start)
22 result = ""
23- make_call(10, ABORT_ON_FAIL, "set_parameters") {
24+ make_call(ABORT_ON_FAIL, "set_parameters") {
25 result = conn.set_parameters(locations, creds, apps_to_start, @secret)
26 }
27 abort(result) if result =~ /Error:/
28@@ -101,7 +101,7 @@
29
30 def set_apps(app_names)
31 result = ""
32- make_call(10, ABORT_ON_FAIL, "set_apps") {
33+ make_call(ABORT_ON_FAIL, "set_apps") {
34 result = conn.set_apps(app_names, @secret)
35 }
36 abort(result) if result =~ /Error:/
37@@ -119,42 +119,42 @@
38 end
39
40 def get_status(ok_to_fail=false)
41- make_call(10, !ok_to_fail, "get_status", ok_to_fail) { @conn.status(@secret) }
42+ make_call(!ok_to_fail, "get_status", ok_to_fail) { @conn.status(@secret) }
43 end
44
45 def get_stats(ok_to_fail=false)
46- make_call(10, !ok_to_fail, "get_stats", ok_to_fail) { @conn.get_stats(@secret) }
47+ make_call(!ok_to_fail, "get_stats", ok_to_fail) { @conn.get_stats(@secret) }
48 end
49
50 def stop_app(app_name)
51- make_call(30, RETRY_ON_FAIL, "stop_app") { @conn.stop_app(app_name, @secret) }
52+ make_call(RETRY_ON_FAIL, "stop_app") { @conn.stop_app(app_name, @secret) }
53 end
54
55 def update(app_names)
56- make_call(30, RETRY_ON_FAIL, "update") { @conn.update(app_names, @secret) }
57+ make_call(RETRY_ON_FAIL, "update") { @conn.update(app_names, @secret) }
58 end
59
60 def done()
61- make_call(30, RETRY_ON_FAIL, "done", ok_to_fail=true) { @conn.done(@secret) }
62+ make_call(RETRY_ON_FAIL, "done", ok_to_fail=true) { @conn.done(@secret) }
63 end
64
65 def get_all_public_ips()
66- make_call(30, RETRY_ON_FAIL, "get_all_public_ips") { @conn.get_all_public_ips(@secret) }
67+ make_call(RETRY_ON_FAIL, "get_all_public_ips") { @conn.get_all_public_ips(@secret) }
68 end
69
70 def backup_appscale(backup_info)
71- make_call(NO_TIMEOUT, RETRY_ON_FAIL, "backup_appscale") { @conn.backup_appscale(backup_info, @secret) }
72+ make_call(RETRY_ON_FAIL, "backup_appscale") { @conn.backup_appscale(backup_info, @secret) }
73 end
74
75 def add_role(role)
76- make_call(NO_TIMEOUT, RETRY_ON_FAIL, "add_role") { @conn.add_role(role, @secret) }
77+ make_call(RETRY_ON_FAIL, "add_role") { @conn.add_role(role, @secret) }
78 end
79
80 # CGB - removed timeout here - removing cassandra slave requires it to port
81 # the data it owns to somebody else, which takes ~30 seconds in the trivial
82 # case
83 def remove_role(role)
84- make_call(NO_TIMEOUT, RETRY_ON_FAIL, "remove_role") { @conn.remove_role(role, @secret) }
85+ make_call(RETRY_ON_FAIL, "remove_role") { @conn.remove_role(role, @secret) }
86 end
87
88 def run_neptune_job(nodes, job_data)
89@@ -163,7 +163,7 @@
90 if NEPTUNE_JOBS.include?(type)
91 method_to_call = "neptune_#{type}_run_job"
92 @conn.add_method(method_to_call, "nodes", "job_data", "secret")
93- make_call(30, RETRY_ON_FAIL, "run_neptune_job") { @conn.send(method_to_call.to_sym, nodes, job_data, @secret) }
94+ make_call(RETRY_ON_FAIL, "run_neptune_job") { @conn.send(method_to_call.to_sym, nodes, job_data, @secret) }
95 else
96 not_supported_message = "The job type you specified, '#{type}', is " +
97 "not supported. Supported jobs are #{NEPTUNE_JOBS.join(', ')}."
98
99=== modified file 'AppController/lib/user_app_client.rb'
100--- AppController/lib/user_app_client.rb 2011-05-16 07:56:58 +0000
101+++ AppController/lib/user_app_client.rb 2011-09-30 01:24:37 +0000
102@@ -6,6 +6,8 @@
103 require 'soap/rpc/driver'
104 require 'timeout'
105
106+NO_TIMEOUT = -1
107+
108 class UserAppClient
109 attr_reader :conn, :ip, :secret
110
111@@ -29,10 +31,10 @@
112 @conn.add_method("get_all_apps", "secret")
113 end
114
115- def make_call(timeout, retry_on_except)
116+ def make_call(retry_on_except)
117 result = ""
118 begin
119- Timeout::timeout(timeout) do
120+ Timeout::timeout(NO_TIMEOUT) do
121 begin
122 yield if block_given?
123 end
124@@ -58,7 +60,7 @@
125
126 def commit_new_user(user, encrypted_password, user_type, retry_on_except=true)
127 result = ""
128- make_call(10, retry_on_except) {
129+ make_call(retry_on_except) {
130 result = @conn.commit_new_user(user, encrypted_password, user_type, @secret)
131 }
132
133@@ -78,7 +80,7 @@
134
135 def commit_new_app_name(user, app_name, language, retry_on_except=true)
136 result = ""
137- make_call(10, retry_on_except) {
138+ make_call(retry_on_except) {
139 result = @conn.commit_new_app(user, app_name, language, @secret)
140 }
141
142@@ -98,7 +100,7 @@
143 tar_contents = Base64.encode64(file.read)
144
145 result = ""
146- make_call(300, retry_on_except) {
147+ make_call(retry_on_except) {
148 result = @conn.commit_tar(app_name, tar_contents, @secret)
149 }
150
151@@ -113,7 +115,7 @@
152
153 def change_password(user, new_password, retry_on_except=true)
154 result = ""
155- make_call(10, retry_on_except) {
156+ make_call(retry_on_except) {
157 result = @conn.change_password(user, new_password, @secret)
158 }
159
160@@ -128,7 +130,7 @@
161
162 def delete_app(app, retry_on_except=true)
163 result = ""
164- make_call(10, retry_on_except) {
165+ make_call(retry_on_except) {
166 result = @conn.delete_app(app, @secret)
167 }
168
169@@ -141,7 +143,7 @@
170
171 def does_app_exist?(app, retry_on_except=true)
172 result = ""
173- make_call(10, retry_on_except) {
174+ make_call(retry_on_except) {
175 result = @conn.is_app_enabled(app, @secret)
176 }
177
178@@ -150,7 +152,7 @@
179
180 def does_user_exist?(user, retry_on_except=true)
181 result = ""
182- make_call(10, retry_on_except) {
183+ make_call(retry_on_except) {
184 result = @conn.does_user_exist(user, @secret)
185 }
186
187@@ -159,7 +161,7 @@
188
189 def get_user_data(username, retry_on_except=true)
190 result = ""
191- make_call(10, retry_on_except) {
192+ make_call(retry_on_except) {
193 result = @conn.get_user_data(username, @secret)
194 }
195
196@@ -168,7 +170,7 @@
197
198 def get_app_data(appname, retry_on_except=true)
199 result = ""
200- make_call(10, retry_on_except) {
201+ make_call(retry_on_except) {
202 result = @conn.get_app_data(appname, @secret)
203 }
204
205@@ -177,7 +179,7 @@
206
207 def delete_instance(appname, host, port, retry_on_except=true)
208 result = ""
209- make_call(10, retry_on_except) {
210+ make_call(retry_on_except) {
211 result = @conn.delete_instance(appname, host, port, @secret)
212 }
213
214@@ -186,7 +188,7 @@
215
216 def get_all_apps(retry_on_except=true)
217 result = ""
218- make_call(10, retry_on_except) {
219+ make_call(retry_on_except) {
220 result = @conn.get_all_apps(@secret)
221 }
222
223@@ -195,7 +197,7 @@
224
225 def get_tar(appname, retry_on_except=true)
226 result = ""
227- make_call(300, retry_on_except) {
228+ make_call(retry_on_except) {
229 result = @conn.get_tar(appname, @secret)
230 }
231
232@@ -204,7 +206,7 @@
233
234 def add_instance(appname, host, port, retry_on_except=true)
235 result = ""
236- make_call(10, retry_on_except) {
237+ make_call(retry_on_except) {
238 result = @conn.add_instance(appname, host, port, @secret)
239 }
240

Subscribers

People subscribed via source and target branches