8
8
import requests
9
9
import markdown
10
10
from ce import get_ce_info , get_ce_state
11
- from fetch import cloudapp_fetch , cloudapp_req_headers , cloudapp_res_headers
11
+ from fetch import get_runner_session , cloudapp_fetch , cloudapp_req_headers , cloudapp_res_headers
12
12
13
13
app = Flask (__name__ )
14
14
app .config ['ce_info' ] = None
21
21
cache = Cache (app )
22
22
app .secret_key = "blahblahblah"
23
23
24
+ session = get_runner_session ()
25
+ session .headers .update ({"User-Agent" : "MCN-Lab-Runner/1.0" })
26
+
24
27
class LabException (Exception ):
25
28
"""lab exception"""
26
29
@@ -206,10 +209,8 @@ def score():
206
209
def ex_test ():
207
210
"""Example test"""
208
211
try :
209
- s = requests .Session ()
210
- s .headers .update ({"User-Agent" : "MCN-Lab-Runner/1.0" })
211
212
url = f"https://foo.{ app .config ['base_url' ]} /"
212
- data = cloudapp_fetch (s , url , 7 , 'info' , {"foo" : True })
213
+ data = cloudapp_fetch (session , url , 7 , 'info' , {"foo" : True })
213
214
return jsonify (status = 'success' , data = data )
214
215
except (LabException , requests .RequestException , ValueError ) as e :
215
216
return jsonify (status = 'fail' , error = str (e ))
@@ -218,10 +219,8 @@ def ex_test():
218
219
def ex_test2 ():
219
220
"""Example test"""
220
221
try :
221
- s = requests .Session ()
222
- s .headers .update ({"User-Agent" : "MCN-Lab-Runner/1.0" })
223
222
url = f"https://bar.{ app .config ['base_url' ]} /"
224
- data = cloudapp_fetch (s , url , 7 , 'info' , {"bar" : True })
223
+ data = cloudapp_fetch (session , url , 7 , 'info' , {"bar" : True })
225
224
return jsonify (status = 'success' , data = data )
226
225
except (LabException , requests .RequestException , ValueError ) as e :
227
226
return jsonify (status = 'fail' , error = str (e ))
@@ -231,13 +230,11 @@ def ex_test2():
231
230
def lb_aws ():
232
231
"""Azure LB test"""
233
232
try :
234
- s = requests .Session ()
235
- s .headers .update ({"User-Agent" : "MCN-Lab-Runner/1.0" })
236
233
ns = eph_ns ()
237
234
if not ns :
238
235
raise LabException ("Ephemeral NS not set" )
239
236
url = f"https://{ ns } .{ app .config ['base_url' ]} "
240
- data = cloudapp_fetch (s , url , 7 , 'env' , 'AWS' )
237
+ data = cloudapp_fetch (session , url , 7 , 'env' , 'AWS' )
241
238
return jsonify (status = 'success' , data = data )
242
239
except (LabException , requests .RequestException , ValueError ) as e :
243
240
return jsonify (status = 'fail' , error = str (e ))
@@ -246,13 +243,11 @@ def lb_aws():
246
243
def lb_azure ():
247
244
"""Azure LB test"""
248
245
try :
249
- s = requests .Session ()
250
- s .headers .update ({"User-Agent" : "MCN-Lab-Runner/1.0" })
251
246
ns = eph_ns ()
252
247
if not ns :
253
248
raise LabException ("Ephemeral NS not set" )
254
249
url = f"https://{ ns } .{ app .config ['base_url' ]} "
255
- data = cloudapp_fetch (s , url , 7 , 'env' , 'Azure' )
250
+ data = cloudapp_fetch (session , url , 7 , 'env' , 'Azure' )
256
251
return jsonify (status = 'success' , data = data )
257
252
except (LabException , requests .RequestException , ValueError ) as e :
258
253
return jsonify (status = 'fail' , error = str (e ))
@@ -261,16 +256,14 @@ def lb_azure():
261
256
def route1 ():
262
257
"""First Route Test"""
263
258
try :
264
- s = requests .Session ()
265
- s .headers .update ({"User-Agent" : "MCN-Lab-Runner/1.0" })
266
259
ns = eph_ns ()
267
260
if not ns :
268
261
raise LabException ("Ephemeral NS not set" )
269
262
base_url = app .config ['base_url' ]
270
263
aws_url = f"https://{ ns } .{ base_url } /aws/raw"
271
264
azure_url = f"https://{ ns } .{ base_url } /azure/raw"
272
- aws_data = cloudapp_fetch (s , aws_url , 7 , 'env' , 'AWS' )
273
- azure_data = cloudapp_fetch (s , azure_url , 7 , 'env' , 'Azure' )
265
+ aws_data = cloudapp_fetch (session , aws_url , 7 , 'env' , 'AWS' )
266
+ azure_data = cloudapp_fetch (session , azure_url , 7 , 'env' , 'Azure' )
274
267
data = {
275
268
"aws" : aws_data ,
276
269
"azure" : azure_data
@@ -283,18 +276,16 @@ def route1():
283
276
def route2 ():
284
277
"""First Route Test"""
285
278
try :
286
- s = requests .Session ()
287
- s .headers .update ({"User-Agent" : "MCN-Lab-Runner/1.0" })
288
279
ns = eph_ns ()
289
280
if not ns :
290
281
raise LabException ("Ephemeral NS not set" )
291
282
base_url = app .config ['base_url' ]
292
283
aws_url = f"https://{ ns } .{ base_url } /"
293
284
azure_url = f"https://{ ns } .{ base_url } /"
294
- s .headers ["X-MCN-lab" ] = "aws"
295
- aws_data = cloudapp_fetch (s , aws_url , 7 , 'env' , 'AWS' )
296
- s .headers ["X-MCN-lab" ] = "azure"
297
- azure_data = cloudapp_fetch (s , azure_url , 7 , 'env' , 'Azure' )
285
+ session .headers ["X-MCN-lab" ] = "aws"
286
+ aws_data = cloudapp_fetch (session , aws_url , 7 , 'env' , 'AWS' )
287
+ session .headers ["X-MCN-lab" ] = "azure"
288
+ azure_data = cloudapp_fetch (session , azure_url , 7 , 'env' , 'Azure' )
298
289
data = {
299
290
"aws" : aws_data ,
300
291
"azure" : azure_data
@@ -307,14 +298,12 @@ def route2():
307
298
def manip1 ():
308
299
"""First Manip Test"""
309
300
try :
310
- s = requests .Session ()
311
- s .headers .update ({"User-Agent" : "MCN-Lab-Runner/1.0" })
312
301
ns = eph_ns ()
313
302
if not ns :
314
303
raise LabException ("Ephemeral NS not set" )
315
304
base_url = app .config ['base_url' ]
316
305
url = f"https://{ ns } .{ base_url } /aws/raw"
317
- r_data = cloudapp_fetch (s , url , 5 , 'info' , {"method" : "GET" , "path" : "/raw" })
306
+ r_data = cloudapp_fetch (session , url , 5 , 'info' , {"method" : "GET" , "path" : "/raw" })
318
307
return jsonify (status = 'success' , data = r_data )
319
308
except (LabException , requests .RequestException , ValueError ) as e :
320
309
return jsonify (status = 'fail' , error = str (e ))
@@ -323,15 +312,13 @@ def manip1():
323
312
def manip2 ():
324
313
"""Second Manip Test"""
325
314
try :
326
- s = requests .Session ()
327
- s .headers .update ({"User-Agent" : "MCN-Lab-Runner/1.0" })
328
315
ns = eph_ns ()
329
316
if not ns :
330
317
raise LabException ("Ephemeral NS not set" )
331
318
base_url = app .config ['base_url' ]
332
319
url = f"https://{ ns } .{ base_url } /"
333
320
t_headers = { "x-mcn-namespace" : ns , "x-mcn-src-site" : app .config ["ce_info" ]["site_name" ]}
334
- r_data = cloudapp_req_headers (s , url , 7 , t_headers )
321
+ r_data = cloudapp_req_headers (session , url , 7 , t_headers )
335
322
return jsonify (status = 'success' , data = r_data )
336
323
except (LabException , requests .RequestException , ValueError ) as e :
337
324
return jsonify (status = 'fail' , error = str (e ))
@@ -340,8 +327,6 @@ def manip2():
340
327
def manip3 ():
341
328
"""Third Manip Test"""
342
329
try :
343
- s = requests .Session ()
344
- s .headers .update ({"User-Agent" : "MCN-Lab-Runner/1.0" })
345
330
ns = eph_ns ()
346
331
if not ns :
347
332
raise LabException ("Ephemeral NS not set" )
@@ -350,8 +335,8 @@ def manip3():
350
335
azure_url = f"https://{ ns } .{ base_url } /azure/"
351
336
aws_headers = { "x-mcn-dest-site" : "student-awsnet" }
352
337
azure_headers = { "x-mcn-dest-site" : "student-azurenet" }
353
- aws_data = cloudapp_res_headers (s , aws_url , 7 , aws_headers )
354
- azure_data = cloudapp_res_headers (s , azure_url , 7 , azure_headers )
338
+ aws_data = cloudapp_res_headers (session , aws_url , 7 , aws_headers )
339
+ azure_data = cloudapp_res_headers (session , azure_url , 7 , azure_headers )
355
340
data = {
356
341
"aws" : aws_data ,
357
342
"azure" : azure_data
@@ -364,13 +349,11 @@ def manip3():
364
349
def port1 ():
365
350
"""Friend test"""
366
351
try :
367
- s = requests .Session ()
368
- s .headers .update ({"User-Agent" : "MCN-Lab-Runner/1.0" })
369
352
ns = eph_ns ()
370
353
if not ns :
371
354
raise LabException ("Ephemeral NS not set" )
372
355
url = f"https://{ ns } .{ app .config ['base_url' ]} /"
373
- data = cloudapp_fetch (s , url , 7 , 'info' , {"method" : "GET" , "path" : "/" })
356
+ data = cloudapp_fetch (session , url , 7 , 'info' , {"method" : "GET" , "path" : "/" })
374
357
return jsonify (status = 'success' , data = data )
375
358
except (LabException , requests .RequestException , ValueError ) as e :
376
359
return jsonify (status = 'fail' , error = str (e ))
@@ -379,13 +362,11 @@ def port1():
379
362
def port2 ():
380
363
"""Friend test"""
381
364
try :
382
- s = requests .Session ()
383
- s .headers .update ({"User-Agent" : "MCN-Lab-Runner/1.0" })
384
365
data = request .get_json ()
385
366
print (data )
386
367
eph_ns = data ['userInput' ]
387
368
url = f"https://{ eph_ns } .{ app .config ['base_url' ]} /"
388
- data = cloudapp_fetch (s , url , 7 , 'info' , {"method" : "GET" , "path" : "/" })
369
+ data = cloudapp_fetch (session , url , 7 , 'info' , {"method" : "GET" , "path" : "/" })
389
370
return jsonify (status = 'success' , data = data )
390
371
except (LabException , requests .RequestException , ValueError ) as e :
391
372
return jsonify (status = 'fail' , error = str (e ))
0 commit comments