4
4
# tango-cli.py - Command line client for the RESTful Tango.
5
5
#
6
6
7
+ from __future__ import print_function
8
+ from builtins import range
9
+ from future import standard_library
10
+ standard_library .install_aliases ()
11
+ from builtins import map
12
+ from builtins import str
7
13
import os
8
14
import sys
9
15
12
18
import argparse
13
19
import requests
14
20
import json
15
- import urllib
21
+ import urllib . request , urllib . parse , urllib . error
16
22
17
23
#
18
24
#
95
101
96
102
def checkKey ():
97
103
if (args .key is None ):
98
- print "Key must be specified with -k"
104
+ print ( "Key must be specified with -k" )
99
105
return - 1
100
106
return 0
101
107
102
108
103
109
def checkCourselab ():
104
110
if (args .courselab is None ):
105
- print "Courselab must be specified with -l"
111
+ print ( "Courselab must be specified with -l" )
106
112
return - 1
107
113
return 0
108
114
109
115
110
116
def checkFilename ():
111
117
if (args .filename is None ):
112
- print "Filename must be specified with --filename"
118
+ print ( "Filename must be specified with --filename" )
113
119
return - 1
114
120
return 0
115
121
116
122
117
123
def checkInfiles ():
118
124
if (args .infiles is None ):
119
- print "Input files must be specified with --infiles"
125
+ print ( "Input files must be specified with --infiles" )
120
126
return - 1
121
127
return 0
122
128
123
129
124
130
def checkDeadjobs ():
125
131
if (args .deadJobs is None ):
126
- print "Deadjobs must be specified with --deadJobs"
132
+ print ( "Deadjobs must be specified with --deadJobs" )
127
133
return - 1
128
134
return 0
129
135
@@ -139,11 +145,11 @@ def tango_open():
139
145
response = requests .get (
140
146
'http://%s:%d/open/%s/%s/' %
141
147
(args .server , args .port , args .key , args .courselab ))
142
- print "Sent request to %s:%d/open/%s/%s/" % (args .server , args .port , args .key , args .courselab )
143
- print response .content
148
+ print ( "Sent request to %s:%d/open/%s/%s/" % (args .server , args .port , args .key , args .courselab ) )
149
+ print ( response .text )
144
150
145
151
except Exception as err :
146
- print "Failed to send request to %s:%d/open/%s/%s/" % (args .server , args .port , args .key , args .courselab )
152
+ print ( "Failed to send request to %s:%d/open/%s/%s/" % (args .server , args .port , args .key , args .courselab ) )
147
153
print (str (err ))
148
154
sys .exit (0 )
149
155
@@ -170,11 +176,11 @@ def tango_upload():
170
176
data = f .read (),
171
177
headers = header )
172
178
f .close ()
173
- print "Sent request to %s:%d/upload/%s/%s/ filename=%s" % (args .server , args .port , args .key , args .courselab , args .filename )
174
- print response .content
179
+ print ( "Sent request to %s:%d/upload/%s/%s/ filename=%s" % (args .server , args .port , args .key , args .courselab , args .filename ) )
180
+ print ( response .text )
175
181
176
182
except Exception as err :
177
- print "Failed to send request to %s:%d/upload/%s/%s/ filename=%s" % (args .server , args .port , args .key , args .courselab , args .filename )
183
+ print ( "Failed to send request to %s:%d/upload/%s/%s/ filename=%s" % (args .server , args .port , args .key , args .courselab , args .filename ) )
178
184
print (str (err ))
179
185
sys .exit (0 )
180
186
@@ -208,11 +214,11 @@ def tango_addJob():
208
214
args .key ,
209
215
args .courselab ),
210
216
data = json .dumps (requestObj ))
211
- print "Sent request to %s:%d/addJob/%s/%s/ \t jobObj=%s" % (args .server , args .port , args .key , args .courselab , json .dumps (requestObj ))
212
- print response .content
217
+ print ( "Sent request to %s:%d/addJob/%s/%s/ \t jobObj=%s" % (args .server , args .port , args .key , args .courselab , json .dumps (requestObj ) ))
218
+ print ( response .text )
213
219
214
220
except Exception as err :
215
- print "Failed to send request to %s:%d/addJob/%s/%s/ \t jobObj=%s" % (args .server , args .port , args .key , args .courselab , json .dumps (requestObj ))
221
+ print ( "Failed to send request to %s:%d/addJob/%s/%s/ \t jobObj=%s" % (args .server , args .port , args .key , args .courselab , json .dumps (requestObj ) ))
216
222
print (str (err ))
217
223
sys .exit (0 )
218
224
@@ -231,13 +237,13 @@ def tango_poll():
231
237
args .port ,
232
238
args .key ,
233
239
args .courselab ,
234
- urllib .quote (
240
+ urllib .parse . quote (
235
241
args .outputFile )))
236
- print "Sent request to %s:%d/poll/%s/%s/%s/" % (args .server , args .port , args .key , args .courselab , urllib .quote (args .outputFile ))
237
- print response .content
242
+ print ( "Sent request to %s:%d/poll/%s/%s/%s/" % (args .server , args .port , args .key , args .courselab , urllib .parse . quote (args .outputFile ) ))
243
+ print ( response .text )
238
244
239
245
except Exception as err :
240
- print "Failed to send request to %s:%d/poll/%s/%s/%s/" % (args .server , args .port , args .key , args .courselab , urllib .quote (args .outputFile ))
246
+ print ( "Failed to send request to %s:%d/poll/%s/%s/%s/" % (args .server , args .port , args .key , args .courselab , urllib .parse . quote (args .outputFile ) ))
241
247
print (str (err ))
242
248
sys .exit (0 )
243
249
@@ -252,11 +258,11 @@ def tango_info():
252
258
253
259
response = requests .get (
254
260
'http://%s:%d/info/%s/' % (args .server , args .port , args .key ))
255
- print "Sent request to %s:%d/info/%s/" % (args .server , args .port , args .key )
256
- print response .content
261
+ print ( "Sent request to %s:%d/info/%s/" % (args .server , args .port , args .key ) )
262
+ print ( response .text )
257
263
258
264
except Exception as err :
259
- print "Failed to send request to %s:%d/info/%s/" % (args .server , args .port , args .key )
265
+ print ( "Failed to send request to %s:%d/info/%s/" % (args .server , args .port , args .key ) )
260
266
print (str (err ))
261
267
sys .exit (0 )
262
268
@@ -272,11 +278,11 @@ def tango_jobs():
272
278
response = requests .get (
273
279
'http://%s:%d/jobs/%s/%d/' %
274
280
(args .server , args .port , args .key , args .deadJobs ))
275
- print "Sent request to %s:%d/jobs/%s/%d/" % (args .server , args .port , args .key , args .deadJobs )
276
- print response .content
281
+ print ( "Sent request to %s:%d/jobs/%s/%d/" % (args .server , args .port , args .key , args .deadJobs ) )
282
+ print ( response .text )
277
283
278
284
except Exception as err :
279
- print "Failed to send request to %s:%d/jobs/%s/%d/" % (args .server , args .port , args .key , args .deadJobs )
285
+ print ( "Failed to send request to %s:%d/jobs/%s/%d/" % (args .server , args .port , args .key , args .deadJobs ) )
280
286
print (str (err ))
281
287
sys .exit (0 )
282
288
@@ -291,11 +297,11 @@ def tango_pool():
291
297
292
298
response = requests .get ('http://%s:%d/pool/%s/%s/' %
293
299
(args .server , args .port , args .key , args .image ))
294
- print "Sent request to %s:%d/pool/%s/%s/" % (args .server , args .port , args .key , args .image )
295
- print response .content
300
+ print ( "Sent request to %s:%d/pool/%s/%s/" % (args .server , args .port , args .key , args .image ) )
301
+ print ( response .text )
296
302
297
303
except Exception as err :
298
- print "Failed to send request to %s:%d/pool/%s/%s/" % (args .server , args .port , args .key , args .image )
304
+ print ( "Failed to send request to %s:%d/pool/%s/%s/" % (args .server , args .port , args .key , args .image ) )
299
305
print (str (err ))
300
306
sys .exit (0 )
301
307
@@ -321,11 +327,11 @@ def tango_prealloc():
321
327
args .image ,
322
328
args .num ),
323
329
data = json .dumps (vmObj ))
324
- print "Sent request to %s:%d/prealloc/%s/%s/%s/ \t vmObj=%s" % (args .server , args .port , args .key , args .image , args .num , json .dumps (vmObj ))
325
- print response .content
330
+ print ( "Sent request to %s:%d/prealloc/%s/%s/%s/ \t vmObj=%s" % (args .server , args .port , args .key , args .image , args .num , json .dumps (vmObj ) ))
331
+ print ( response .text )
326
332
327
333
except Exception as err :
328
- print "Failed to send request to %s:%d/prealloc/%s/%s/%s/ \t vmObj=%s" % (args .server , args .port , args .key , args .image , args .num , json .dumps (vmObj ))
334
+ print ( "Failed to send request to %s:%d/prealloc/%s/%s/%s/ \t vmObj=%s" % (args .server , args .port , args .key , args .image , args .num , json .dumps (vmObj ) ))
329
335
print (str (err ))
330
336
sys .exit (0 )
331
337
@@ -343,31 +349,31 @@ def file_to_dict(file):
343
349
344
350
def tango_runJob ():
345
351
if args .runJob is None :
346
- print "Invalid usage: [runJob]"
352
+ print ( "Invalid usage: [runJob]" )
347
353
sys .exit (0 )
348
354
349
355
dir = args .runJob
350
356
infiles = [file for file in os .listdir (
351
357
dir ) if os .path .isfile (os .path .join (dir , file ))]
352
358
files = [os .path .join (dir , file ) for file in infiles ]
353
- args .infiles = map (file_to_dict , infiles )
359
+ args .infiles = list ( map (file_to_dict , infiles ) )
354
360
355
361
args .jobname += "-0"
356
362
args .outputFile += "-0"
357
- for i in xrange (1 , args .numJobs + 1 ):
358
- print "----------------------------------------- STARTING JOB " + str (i ) + " -----------------------------------------"
359
- print "----------- OPEN"
363
+ for i in range (1 , args .numJobs + 1 ):
364
+ print ( "----------------------------------------- STARTING JOB " + str (i ) + " -----------------------------------------" )
365
+ print ( "----------- OPEN" )
360
366
tango_open ()
361
- print "----------- UPLOAD"
367
+ print ( "----------- UPLOAD" )
362
368
for file in files :
363
369
args .filename = file
364
370
tango_upload ()
365
- print "----------- ADDJOB"
371
+ print ( "----------- ADDJOB" )
366
372
length = len (str (i - 1 ))
367
373
args .jobname = args .jobname [:- length ] + str (i )
368
374
args .outputFile = args .outputFile [:- length ] + str (i )
369
375
tango_addJob ()
370
- print "--------------------------------------------------------------------------------------------------\n "
376
+ print ( "--------------------------------------------------------------------------------------------------\n " )
371
377
372
378
373
379
def router ():
@@ -403,7 +409,7 @@ def router():
403
409
try :
404
410
response = requests .get ('http://%s:%d/' % (args .server , args .port ))
405
411
except :
406
- print 'Tango not reachable on %s:%d!\n ' % (args .server , args .port )
412
+ print ( 'Tango not reachable on %s:%d!\n ' % (args .server , args .port ) )
407
413
sys .exit (0 )
408
414
409
415
router ()
0 commit comments