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