Revision 0155548b kamaki/cli/commands/snf-astakos.py
b/kamaki/cli/commands/snf-astakos.py | ||
---|---|---|
40 | 40 |
from kamaki.cli.command_tree import CommandTree |
41 | 41 |
from kamaki.cli.utils import print_dict, format_size |
42 | 42 |
from kamaki.cli.argument import FlagArgument, ValueArgument |
43 |
from kamaki.cli.argument import CommaSeparatedListArgument |
|
43 | 44 |
from kamaki.cli.logger import get_logger |
44 | 45 |
|
45 | 46 |
snfastakos_cmds = CommandTree('astakos', 'astakosclient CLI') |
... | ... | |
78 | 79 |
self._custom_type('astakos') or 'identity', |
79 | 80 |
self._custom_version('astakos') or '') |
80 | 81 |
base_url = astakos_endpoints['SNF:uiURL'] |
81 |
base_url = ''.join(base_url.split('/ui')) |
|
82 |
base_url = base_url[:-3] |
|
83 |
#base_url = ''.join(base_url.split('/ui')) |
|
82 | 84 |
else: |
83 | 85 |
base_url = self._custom_url('astakos') |
84 | 86 |
if not base_url: |
... | ... | |
262 | 264 |
super(self.__class__, self)._run() |
263 | 265 |
self._run(service_token) |
264 | 266 |
|
265 |
# resources |
|
266 |
# feedback |
|
267 |
# endpoints |
|
268 |
|
|
269 |
# XXX issue_commission, issue_one_commission |
|
270 |
# get_pending_commissions |
|
271 |
# get_commission_info |
|
272 |
# commission_action |
|
273 |
# accept_commission |
|
274 |
# reject_commission |
|
275 |
# resolve_commissions |
|
276 |
|
|
277 | 267 |
|
278 | 268 |
@command(snfastakos_cmds) |
279 | 269 |
class astakos_resources(_astakos_init, _optional_json): |
... | ... | |
293 | 283 |
class astakos_feedback(_astakos_init): |
294 | 284 |
"""Send feedback to astakos server""" |
295 | 285 |
|
296 |
arguments = dict( |
|
297 |
token=ValueArgument('Use this token instead', '--token') |
|
298 |
) |
|
299 |
|
|
300 | 286 |
@errors.generic.all |
301 | 287 |
@astakoserror |
302 | 288 |
def _run(self, msg, more_info=None): |
303 |
self.client.send_feedback( |
|
304 |
self['token'] or self.token, msg, more_info or '') |
|
289 |
self.client.send_feedback(self.token, msg, more_info or '') |
|
305 | 290 |
|
306 | 291 |
def main(self, message, more_info=None): |
307 | 292 |
super(self.__class__, self)._run() |
... | ... | |
312 | 297 |
class astakos_endpoints(_astakos_init, _optional_json): |
313 | 298 |
"""Get endpoints service endpoints""" |
314 | 299 |
|
300 |
arguments = dict(uuid=ValueArgument('User uuid', '--uuid')) |
|
301 |
|
|
302 |
@errors.generic.all |
|
303 |
@astakoserror |
|
304 |
def _run(self): |
|
305 |
self._print( |
|
306 |
self.client.get_endpoints(self.token, self['uuid']), |
|
307 |
print_dict) |
|
308 |
|
|
309 |
def main(self): |
|
310 |
super(self.__class__, self)._run() |
|
311 |
self._run() |
|
312 |
|
|
313 |
|
|
314 |
@command(snfastakos_cmds) |
|
315 |
class astakos_commission(_astakos_init): |
|
316 |
"""Manage commissions (special privileges required)""" |
|
317 |
|
|
318 |
|
|
319 |
@command(snfastakos_cmds) |
|
320 |
class astakos_commission_pending(_astakos_init, _optional_json): |
|
321 |
"""List pending commissions (special privileges required)""" |
|
322 |
|
|
323 |
@errors.generic.all |
|
324 |
@astakoserror |
|
325 |
def _run(self): |
|
326 |
self._print(self.client.get_pending_commissions(self.token)) |
|
327 |
|
|
328 |
def main(self): |
|
329 |
super(self.__class__, self)._run() |
|
330 |
self._run() |
|
331 |
|
|
332 |
|
|
333 |
@command(snfastakos_cmds) |
|
334 |
class astakos_commission_info(_astakos_init, _optional_json): |
|
335 |
"""Get commission info (special privileges required)""" |
|
336 |
|
|
337 |
@errors.generic.all |
|
338 |
@astakoserror |
|
339 |
def _run(self, commission_id): |
|
340 |
commission_id = int(commission_id) |
|
341 |
self._print( |
|
342 |
self.client.get_commission_info(self.token, commission_id), |
|
343 |
print_dict) |
|
344 |
|
|
345 |
def main(self, commission_id): |
|
346 |
super(self.__class__, self)._run() |
|
347 |
self._run(commission_id) |
|
348 |
|
|
349 |
|
|
350 |
@command(snfastakos_cmds) |
|
351 |
class astakos_commission_action(_astakos_init, _optional_json): |
|
352 |
"""Invoke an action in a commission (special privileges required) |
|
353 |
Actions can be accept or reject |
|
354 |
""" |
|
355 |
|
|
356 |
actions = ('accept', 'reject') |
|
357 |
|
|
358 |
@errors.generic.all |
|
359 |
@astakoserror |
|
360 |
def _run(self, commission_id, action): |
|
361 |
commission_id = int(commission_id) |
|
362 |
action = action.lower() |
|
363 |
assert action in self.actions, 'Actions can be %s' % ( |
|
364 |
' or '.join(self.actions)) |
|
365 |
self._print( |
|
366 |
self.client.commission_acction(self.token, commission_id, action), |
|
367 |
print_dict) |
|
368 |
|
|
369 |
def main(self, commission_id, action): |
|
370 |
super(self.__class__, self)._run() |
|
371 |
self._run(commission_id, action) |
|
372 |
|
|
373 |
|
|
374 |
@command(snfastakos_cmds) |
|
375 |
class astakos_commission_accept(_astakos_init): |
|
376 |
"""Accept a pending commission (special privileges required)""" |
|
377 |
|
|
378 |
@errors.generic.all |
|
379 |
@astakoserror |
|
380 |
def _run(self, commission_id): |
|
381 |
commission_id = int(commission_id) |
|
382 |
self.client.accept_commission(self.token, commission_id) |
|
383 |
|
|
384 |
def main(self, commission_id): |
|
385 |
super(self.__class__, self)._run() |
|
386 |
self._run(commission_id) |
|
387 |
|
|
388 |
|
|
389 |
@command(snfastakos_cmds) |
|
390 |
class astakos_commission_reject(_astakos_init): |
|
391 |
"""Reject a pending commission (special privileges required)""" |
|
392 |
|
|
393 |
@errors.generic.all |
|
394 |
@astakoserror |
|
395 |
def _run(self, commission_id): |
|
396 |
commission_id = int(commission_id) |
|
397 |
self.client.reject_commission(self.token, commission_id) |
|
398 |
|
|
399 |
def main(self, commission_id): |
|
400 |
super(self.__class__, self)._run() |
|
401 |
self._run(commission_id) |
|
402 |
|
|
403 |
|
|
404 |
@command(snfastakos_cmds) |
|
405 |
class astakos_commission_resolve(_astakos_init, _optional_json): |
|
406 |
"""Resolve multiple commissions (special privileges required)""" |
|
407 |
|
|
315 | 408 |
arguments = dict( |
316 |
token=ValueArgument('Use this token instead', '--token'), |
|
317 |
uuid=ValueArgument('User uuid', '--uuid') |
|
409 |
accept=CommaSeparatedListArgument( |
|
410 |
'commission ids to accept (e.g. --accept=11,12,13,...', |
|
411 |
'--accept'), |
|
412 |
reject=CommaSeparatedListArgument( |
|
413 |
'commission ids to reject (e.g. --reject=11,12,13,...', |
|
414 |
'--reject'), |
|
318 | 415 |
) |
319 | 416 |
|
320 | 417 |
@errors.generic.all |
321 | 418 |
@astakoserror |
322 | 419 |
def _run(self): |
420 |
print 'accepted ', self['accept'] |
|
421 |
print 'rejected ', self['reject'] |
|
323 | 422 |
self._print( |
324 |
self.client.get_endpoints(
|
|
325 |
self['token'] or self.token, self['uuid']),
|
|
423 |
self.client.resolve_commissions(
|
|
424 |
self.token, self['accept'], self['reject']),
|
|
326 | 425 |
print_dict) |
327 | 426 |
|
328 | 427 |
def main(self): |
329 | 428 |
super(self.__class__, self)._run() |
330 | 429 |
self._run() |
331 | 430 |
|
431 |
# commission pending |
|
432 |
# commission info |
|
433 |
# commission action |
|
434 |
# commission accept |
|
435 |
# commission reject |
|
436 |
# commission resolve |
|
437 |
|
|
438 |
# XXX issue_commission, issue_one_commission |
|
439 |
|
|
332 | 440 |
|
333 | 441 |
@command(snfastakos_cmds) |
334 | 442 |
class astakos_test(_astakos_init): |
... | ... | |
337 | 445 |
@errors.generic.all |
338 | 446 |
@astakoserror |
339 | 447 |
def _run(self, *args): |
340 |
pass |
|
448 |
r = self.client.get_pending_commissions(self.token) |
|
449 |
print r |
|
341 | 450 |
|
342 | 451 |
def main(self, *args): |
343 | 452 |
super(self.__class__, self)._run() |
Also available in: Unified diff