From 93d07cc793ad710d8456ccb732e155ee504ca780 Mon Sep 17 00:00:00 2001 From: Dolph Mathews Date: Fri, 9 Mar 2012 09:59:34 -0600 Subject: [PATCH] List roles for user on CLI (bug 932282) Change-Id: I947d2ff74b0a131e4ecc7d696877aea4d994fe71 --- keystoneclient/v2_0/shell.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/keystoneclient/v2_0/shell.py b/keystoneclient/v2_0/shell.py index 91d0b23c7..b0457805c 100755 --- a/keystoneclient/v2_0/shell.py +++ b/keystoneclient/v2_0/shell.py @@ -180,9 +180,21 @@ def do_service_delete(kc, args): kc.services.delete(args.id) +@utils.arg('--user', metavar='', + help='List roles granted to a user') +@utils.arg('--tenant_id', metavar='', + help='List roles granted on a tenant') def do_role_list(kc, args): - """List all available roles""" - roles = kc.roles.list() + """List all roles, or only those granted to a user.""" + if bool(args.tenant_id) ^ bool(args.user): + print 'User ID and Tenant ID are both required to list granted roles.' + return + + if args.tenant_id and args.user: + roles = kc.roles.roles_for_user(user=args.user, tenant=args.tenant_id) + else: + roles = kc.roles.list() + utils.print_list(roles, ['id', 'name'])