Revision 84b0517f kamaki/cli/commands/snf-astakos.py

b/kamaki/cli/commands/snf-astakos.py
31 31
# interpreted as representing official policies, either expressed
32 32
# or implied, of GRNET S.A.command
33 33

  
34
from json import loads
35

  
34 36
from astakosclient import AstakosClient, AstakosClientException
35 37

  
36 38
from kamaki.cli import command
......
428 430
        super(self.__class__, self)._run()
429 431
        self._run()
430 432

  
431
# commission pending
432
# commission info
433
# commission action
434
# commission accept
435
# commission reject
436
# commission resolve
433

  
434
@command(snfastakos_cmds)
435
class astakos_commission_issue(_astakos_init, _optional_json):
436
    """Issue commissions as a json string (special privileges required)
437
    Parameters:
438
    holder      -- user's id (string)
439
    source      -- commission's source (ex system) (string)
440
    provisions  -- resources with their quantity (json-dict from string to int)
441
    name        -- description of the commission (string)
442
    """
443

  
444
    arguments = dict(
445
        force=FlagArgument('Force commission', '--force'),
446
        accept=FlagArgument('Do not wait for verification', '--accept')
447
    )
448

  
449
    @errors.generic.all
450
    @astakoserror
451
    def _run(
452
            self, holder, source, provisions, name=''):
453
        provisions = loads(provisions)
454
        self._print(self.client.issue_one_commission(
455
            self.token, holder, source, provisions, name,
456
            self['force'], self['accept']))
457

  
458
    def main(self, holder, source, provisions, name=''):
459
        super(self.__class__, self)._run()
460
        self._run(holder, source, provisions, name)
461

  
462

  
463
@command(snfastakos_cmds)
464
class astakos_commission_issuejson(_astakos_init, _optional_json):
465
    """Issue commissions as a json string (special privileges required)"""
466

  
467
    @errors.generic.all
468
    @astakoserror
469
    def _run(self, info_json):
470
        infodict = loads(info_json)
471
        self._print(self.client.issue_commission(self.token, infodict))
472

  
473
    def main(self, info_json):
474
        super(self.__class__, self)._run()
475
        self._run(info_json)
437 476

  
438 477
# XXX issue_commission, issue_one_commission
439 478

  

Also available in: Unified diff