2222from collections import defaultdict
2323import datetime
2424import getopt
25- import inspect
2625import json
2726import logging as logging_
2827import os
@@ -98,24 +97,28 @@ def main():
9897
9998def credentials (options ):
10099 def write_credentials (c , options ):
101- action = inspect .stack ()[0 ][3 ]
102- k = 'Credentials.write'
100+ k = 'Credentials.write_credentials'
103101
104102 R = options ['R' ]
105103 try :
106- c .write_credentials (** R ['R2_obj' ][k ])
104+ x = c .write_credentials (** R ['R2_obj' ][k ])
107105 except Exception as e :
108- print_exception (action , e )
106+ print_exception (k , e )
109107 sys .exit (1 )
110108
111- action = inspect .stack ()[0 ][3 ]
109+ if x is not None :
110+ print ('%s:' % k )
111+ print (x )
112+ else :
113+ print (k )
114+
112115 k = 'Credentials'
113116
114117 R = options ['R' ]
115118 try :
116119 x = Credentials (** R ['R0_obj' ][k ])
117120 except Exception as e :
118- print_exception (action , e )
121+ print_exception (k , e )
119122 sys .exit (1 )
120123
121124 if options ['write' ]:
@@ -165,15 +168,14 @@ def methods(options, class_):
165168
166169
167170def httpclient (options , c ):
168- action = inspect .stack ()[0 ][3 ]
169171 k = 'HTTPClient'
170172
171173 R = options ['R' ]
172174 try :
173175 x = HTTPClient (credentials = c ,
174176 ** R ['R0_obj' ][k ])
175177 except Exception as e :
176- print_exception (action , e )
178+ print_exception (k , e )
177179 sys .exit (1 )
178180
179181 methods (options , x )
@@ -183,7 +185,6 @@ def httpclient(options, c):
183185
184186def logging (options , session ):
185187 def query (api , options ):
186- action = inspect .stack ()[0 ][3 ]
187188 k = 'LoggingService.query'
188189
189190 R = options ['R' ]
@@ -200,18 +201,17 @@ def query(api, options):
200201 try :
201202 r = api .query (data = x , ** R ['R2_obj' ][k ])
202203 except Exception as e :
203- print_exception (action , e )
204+ print_exception (k , e )
204205 sys .exit (1 )
205206
206- print_status (action , r , options )
207+ print_status (k , r , options )
207208 json_ = print_response (r , options , k )
208209 exit_for_http_status (r )
209210
210211 if json_ is not None and options ['id' ] is None and 'queryId' in json_ :
211212 options ['id' ] = json_ ['queryId' ]
212213
213214 def poll (api , options ):
214- action = inspect .stack ()[0 ][3 ]
215215 k = 'LoggingService.poll'
216216
217217 R = options ['R' ]
@@ -221,15 +221,14 @@ def poll(api, options):
221221 params = R ['R1_obj' ][k ],
222222 ** R ['R2_obj' ][k ])
223223 except Exception as e :
224- print_exception (action , e )
224+ print_exception (k , e )
225225 sys .exit (1 )
226226
227- print_status (action , r , options )
227+ print_status (k , r , options )
228228 print_response (r , options , k )
229229 exit_for_http_status (r )
230230
231231 def xpoll (api , options ):
232- action = inspect .stack ()[0 ][3 ]
233232 k = 'LoggingService.xpoll'
234233
235234 R = options ['R' ]
@@ -242,41 +241,38 @@ def xpoll(api, options):
242241 print_response_body (options , k , x )
243242
244243 except Exception as e :
245- print_exception (action , e )
244+ print_exception (k , e )
246245 sys .exit (1 )
247246
248247 def delete (api , options ):
249- action = inspect .stack ()[0 ][3 ]
250248 k = 'LoggingService.delete'
251249
252250 R = options ['R' ]
253251 try :
254252 r = api .delete (query_id = options ['id' ],
255253 ** R ['R2_obj' ][k ])
256254 except Exception as e :
257- print_exception (action , e )
255+ print_exception (k , e )
258256 sys .exit (1 )
259257
260- print_status (action , r , options )
258+ print_status (k , r , options )
261259 print_response (r , options , k )
262260 exit_for_http_status (r )
263261
264262 def write (api , options ):
265- action = inspect .stack ()[0 ][3 ]
266263 k = 'LoggingService.write'
267264
268265 R = options ['R' ]
269- print (action , 'not implemented' )
266+ print (k , 'not implemented' )
270267
271- action = inspect .stack ()[0 ][3 ]
272268 k = 'LoggingService'
273269
274270 R = options ['R' ]
275271 try :
276272 api = LoggingService (session = session ,
277273 ** R ['R0_obj' ][k ])
278274 except Exception as e :
279- print_exception (action , e )
275+ print_exception (k , e )
280276 sys .exit (1 )
281277
282278 if options ['debug' ] > 0 :
@@ -304,21 +300,20 @@ def write(api, options):
304300
305301
306302def event (options , session ):
307- def generic (api , options , func , action , k ):
303+ def generic (api , options , func , k ):
308304 R = options ['R' ]
309305 try :
310306 r = func (channel_id = options ['id' ],
311307 ** R ['R2_obj' ][k ])
312308 except Exception as e :
313- print_exception (action , e )
309+ print_exception (k , e )
314310 sys .exit (1 )
315311
316- print_status (action , r , options )
312+ print_status (k , r , options )
317313 print_response (r , options , k )
318314 exit_for_http_status (r )
319315
320316 def set_filters (api , options ):
321- action = inspect .stack ()[0 ][3 ]
322317 k = 'EventService.set_filters'
323318
324319 R = options ['R' ]
@@ -327,20 +322,18 @@ def set_filters(api, options):
327322 data = R ['R1_obj' ][k ],
328323 ** R ['R2_obj' ][k ])
329324 except Exception as e :
330- print_exception (action , e )
325+ print_exception (k , e )
331326 sys .exit (1 )
332327
333- print_status (action , r , options )
328+ print_status (k , r , options )
334329 print_response (r , options , k )
335330 exit_for_http_status (r )
336331
337332 def get_filters (api , options ):
338- action = inspect .stack ()[0 ][3 ]
339333 k = 'EventService.get_filters'
340- generic (api , options , api .get_filters , action , k )
334+ generic (api , options , api .get_filters , k )
341335
342336 def xpoll (api , options ):
343- action = inspect .stack ()[0 ][3 ]
344337 k = 'EventService.xpoll'
345338
346339 R = options ['R' ]
@@ -350,16 +343,15 @@ def xpoll(api, options):
350343 ack = options ['ack' ],
351344 follow = options ['follow' ],
352345 ** R ['R2_obj' ][k ]):
353- print ('%s:' % action , end = '' , file = sys .stderr )
346+ print ('%s:' % k , end = '' , file = sys .stderr )
354347 event_print_status (options , [x ])
355348 print (file = sys .stderr )
356349 print_response_body (options , k , x )
357350 except Exception as e :
358- print_exception (action , e )
351+ print_exception (k , e )
359352 sys .exit (1 )
360353
361354 def poll (api , options ):
362- action = inspect .stack ()[0 ][3 ]
363355 k = 'EventService.poll'
364356
365357 R = options ['R' ]
@@ -368,32 +360,29 @@ def poll(api, options):
368360 data = R ['R1_obj' ][k ],
369361 ** R ['R2_obj' ][k ])
370362 except Exception as e :
371- print_exception (action , e )
363+ print_exception (k , e )
372364 sys .exit (1 )
373365
374- print_status (action , r , options )
366+ print_status (k , r , options )
375367 print_response (r , options , k )
376368 exit_for_http_status (r )
377369
378370 def ack (api , options ):
379- action = inspect .stack ()[0 ][3 ]
380371 k = 'EventService.ack'
381- generic (api , options , api .ack , action , k )
372+ generic (api , options , api .ack , k )
382373
383374 def nack (api , options ):
384- action = inspect .stack ()[0 ][3 ]
385375 k = 'EventService.nack'
386- generic (api , options , api .nack , action , k )
376+ generic (api , options , api .nack , k )
387377
388- action = inspect .stack ()[0 ][3 ]
389378 k = 'EventService'
390379
391380 R = options ['R' ]
392381 try :
393382 api = EventService (session = session ,
394383 ** R ['R0_obj' ][k ])
395384 except Exception as e :
396- print_exception (action , e )
385+ print_exception (k , e )
397386 sys .exit (1 )
398387
399388 if options ['debug' ] > 0 :
@@ -424,20 +413,19 @@ def nack(api, options):
424413
425414
426415def directory_sync (options , session ):
427- def generic (api , options , func , action , k ):
416+ def generic (api , options , func , k ):
428417 R = options ['R' ]
429418 try :
430419 r = func (** R ['R2_obj' ][k ])
431420 except Exception as e :
432- print_exception (action , e )
421+ print_exception (k , e )
433422 sys .exit (1 )
434423
435- print_status (action , r , options )
424+ print_status (k , r , options )
436425 print_response (r , options , k )
437426 exit_for_http_status (r )
438427
439428 def query (api , options ):
440- action = inspect .stack ()[0 ][3 ]
441429 k = 'DirectorySyncService.query'
442430
443431 R = options ['R' ]
@@ -446,15 +434,14 @@ def query(api, options):
446434 data = R ['R1_obj' ][k ],
447435 ** R ['R2_obj' ][k ])
448436 except Exception as e :
449- print_exception (action , e )
437+ print_exception (k , e )
450438 sys .exit (1 )
451439
452- print_status (action , r , options )
440+ print_status (k , r , options )
453441 print_response (r , options , k )
454442 exit_for_http_status (r )
455443
456444 def count (api , options ):
457- action = inspect .stack ()[0 ][3 ]
458445 k = 'DirectorySyncService.count'
459446
460447 R = options ['R' ]
@@ -463,32 +450,29 @@ def count(api, options):
463450 params = R ['R1_obj' ][k ],
464451 ** R ['R2_obj' ][k ])
465452 except Exception as e :
466- print_exception (action , e )
453+ print_exception (k , e )
467454 sys .exit (1 )
468455
469- print_status (action , r , options )
456+ print_status (k , r , options )
470457 print_response (r , options , k )
471458 exit_for_http_status (r )
472459
473460 def domains (api , options ):
474- action = inspect .stack ()[0 ][3 ]
475461 k = 'DirectorySyncService.domains'
476- generic (api , options , api .domains , action , k )
462+ generic (api , options , api .domains , k )
477463
478464 def attributes (api , options ):
479- action = inspect .stack ()[0 ][3 ]
480465 k = 'DirectorySyncService.attributes'
481- generic (api , options , api .attributes , action , k )
466+ generic (api , options , api .attributes , k )
482467
483- action = inspect .stack ()[0 ][3 ]
484468 k = 'DirectorySyncService'
485469
486470 R = options ['R' ]
487471 try :
488472 api = DirectorySyncService (session = session ,
489473 ** R ['R0_obj' ][k ])
490474 except Exception as e :
491- print_exception (action , e )
475+ print_exception (k , e )
492476 sys .exit (1 )
493477
494478 if options ['debug' ] > 0 :
@@ -924,7 +908,10 @@ def _options_print(opt, last_c, last_m, arg):
924908 last_m = 'query'
925909 elif opt == '--write' :
926910 options ['write' ] = True
927- last_m = 'write'
911+ if last_c == 'Credentials' :
912+ last_m = 'write_credentials'
913+ else :
914+ last_m = 'write'
928915 elif opt == '--start' :
929916 options ['start' ] = arg
930917 options ['start_seconds' ] = process_time (arg )
0 commit comments