Add token delete command for identity v2

Identity v2 has undocumented support for token delete and
keystoneclient also has support.

Change-Id: Ib98d17958ceb88f7b63471691dee71fdb884ce2e
Closes-Bug: #1318442
This commit is contained in:
Terry Howe 2014-05-23 10:17:42 -06:00
parent 870e7ddbcc
commit d6321c0893
4 changed files with 46 additions and 0 deletions

View File

@ -18,6 +18,7 @@
import logging
import six
from cliff import command
from cliff import show
@ -36,3 +37,24 @@ class CreateToken(show.ShowOne):
token = identity_client.service_catalog.get_token()
token['project_id'] = token.pop('tenant_id')
return zip(*sorted(six.iteritems(token)))
class DeleteToken(command.Command):
"""Delete token command"""
log = logging.getLogger(__name__ + '.DeleteToken')
def get_parser(self, prog_name):
parser = super(DeleteToken, self).get_parser(prog_name)
parser.add_argument(
'token',
metavar='<token>',
help='Token to be deleted',
)
return parser
def take_action(self, parsed_args):
self.log.debug('take_action(%s)' % parsed_args)
identity_client = self.app.client_manager.identity
identity_client.tokens.delete(parsed_args.token)
return

View File

@ -90,6 +90,8 @@ class FakeIdentityv2Client(object):
self.services.resource_class = fakes.FakeResource(None, {})
self.tenants = mock.Mock()
self.tenants.resource_class = fakes.FakeResource(None, {})
self.tokens = mock.Mock()
self.tokens.resource_class = fakes.FakeResource(None, {})
self.users = mock.Mock()
self.users.resource_class = fakes.FakeResource(None, {})
self.ec2 = mock.Mock()

View File

@ -54,3 +54,24 @@ class TestTokenCreate(TestToken):
identity_fakes.user_id,
)
self.assertEqual(data, datalist)
class TestTokenDelete(TestToken):
TOKEN = 'fob'
def setUp(self):
super(TestTokenDelete, self).setUp()
self.tokens_mock = self.app.client_manager.identity.tokens
self.tokens_mock.reset_mock()
self.tokens_mock.delete.return_value = True
self.cmd = token.DeleteToken(self.app, None)
def test_token_create(self):
arglist = [self.TOKEN]
verifylist = [('token', self.TOKEN)]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
self.cmd.take_action(parsed_args)
self.tokens_mock.delete.assert_called_with(self.TOKEN)

View File

@ -152,6 +152,7 @@ openstack.identity.v2_0 =
service_show =openstackclient.identity.v2_0.service:ShowService
token_create =openstackclient.identity.v2_0.token:CreateToken
token_delete =openstackclient.identity.v2_0.token:DeleteToken
user_role_list = openstackclient.identity.v2_0.role:ListUserRole