@@ -22,14 +22,15 @@ def get_args():
22
22
parser .add_argument ("-n" , "--name" , required = True ,
23
23
help = "name to query" ,
24
24
)
25
-
26
25
parser .add_argument ("-H" , "--host" , default = "http://www.deepcompute.com" ,
27
26
help = "host server, default is %(default)s" ,
28
27
)
29
28
parser .add_argument ("--wait" , default = False , action = "store_true" ,
30
29
help = "block until the server gets data" ,
31
30
)
32
-
31
+ parser .add_argument ("--callback" , default = None ,
32
+ help = "the results are sent as a POST request to the given callback" ,
33
+ )
33
34
return parser .parse_args ()
34
35
35
36
def main ():
@@ -41,7 +42,7 @@ def main():
41
42
max_tries = 20
42
43
while not data_available :
43
44
num_tries += 1
44
- resp = client .get_person (args .name )
45
+ resp = client .get_person (args .name , callback = args . callback )
45
46
data_available = resp .get ('data_available' , False )
46
47
if data_available :
47
48
sys .stdout .write ("%s\n " % json .dumps (resp ))
@@ -50,12 +51,20 @@ def main():
50
51
51
52
if not args .wait :
52
53
data = { "data_available" : False , "msg" : "Lookup in progress. Please try again after some time" }
54
+
55
+ if args .callback is not None :
56
+ data ['msg' ] = "Lookup in progress. A POST request will be sent to %s on completion" % args .callback
57
+
53
58
sys .stdout .write ("%s\n " % json .dumps (resp ))
54
59
sys .stdout .flush ()
55
60
return
56
61
57
62
if num_tries >= max_tries :
58
63
data = { "data_available" : False , "msg" : "Lookup took too long. Please try again after some time" }
64
+ if args .callback is not None :
65
+ data ['msg' ] = "Lookup took too long, not waiting anymore. " \
66
+ "However, a POST request will be sent to %s on completion" % args .callback
67
+
59
68
sys .stdout .write ("%s\n " % json .dumps (resp ))
60
69
sys .stdout .flush ()
61
70
return
0 commit comments