Skip to content

Commit f15a754

Browse files
Jenkinsopenstack-gerrit
authored andcommitted
Merge "Add "token revoke" for identity v3"
2 parents a517b1e + 686a269 commit f15a754

6 files changed

Lines changed: 48 additions & 2 deletions

File tree

doc/source/command-objects/token.rst

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@ Issue new token
1717
token revoke
1818
------------
1919

20-
*Identity version 2 only.*
21-
2220
Revoke existing token
2321

2422
.. program:: token revoke

openstackclient/identity/v3/token.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,3 +173,22 @@ def take_action(self, parsed_args):
173173
if 'tenant_id' in token:
174174
token['project_id'] = token.pop('tenant_id')
175175
return zip(*sorted(six.iteritems(token)))
176+
177+
178+
class RevokeToken(command.Command):
179+
"""Revoke existing token"""
180+
181+
def get_parser(self, prog_name):
182+
parser = super(RevokeToken, self).get_parser(prog_name)
183+
parser.add_argument(
184+
'token',
185+
metavar='<token>',
186+
help='Token to be deleted',
187+
)
188+
return parser
189+
190+
def take_action(self, parsed_args):
191+
identity_client = self.app.client_manager.identity
192+
193+
identity_client.tokens.revoke_token(parsed_args.token)
194+
return

openstackclient/tests/identity/v3/fakes.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -420,6 +420,8 @@ def __init__(self, **kwargs):
420420
self.session = mock.Mock()
421421
self.session.auth.auth_ref.service_catalog.resource_class = \
422422
fakes.FakeResource(None, {})
423+
self.tokens = mock.Mock()
424+
self.tokens.resource_class = fakes.FakeResource(None, {})
423425
self.trusts = mock.Mock()
424426
self.trusts.resource_class = fakes.FakeResource(None, {})
425427
self.users = mock.Mock()

openstackclient/tests/identity/v3/test_token.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,3 +84,24 @@ def test_token_issue_with_domain_id(self):
8484
identity_fakes.user_id,
8585
)
8686
self.assertEqual(datalist, data)
87+
88+
89+
class TestTokenRevoke(TestToken):
90+
91+
TOKEN = 'fob'
92+
93+
def setUp(self):
94+
super(TestTokenRevoke, self).setUp()
95+
self.tokens_mock = self.app.client_manager.identity.tokens
96+
self.tokens_mock.reset_mock()
97+
self.tokens_mock.revoke_token.return_value = True
98+
self.cmd = token.RevokeToken(self.app, None)
99+
100+
def test_token_revoke(self):
101+
arglist = [self.TOKEN]
102+
verifylist = [('token', self.TOKEN)]
103+
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
104+
105+
self.cmd.take_action(parsed_args)
106+
107+
self.tokens_mock.revoke_token.assert_called_with(self.TOKEN)
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
features:
3+
- |
4+
Add ``token revoke`` command for Identity v3
5+
[Bug `1543226 <https://bugs.launchpad.net/bugs/1543226>`_]

setup.cfg

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,7 @@ openstack.identity.v3 =
292292
service_provider_show = openstackclient.identity.v3.service_provider:ShowServiceProvider
293293

294294
token_issue = openstackclient.identity.v3.token:IssueToken
295+
token_revoke = openstackclient.identity.v3.token:RevokeToken
295296

296297
trust_create = openstackclient.identity.v3.trust:CreateTrust
297298
trust_delete = openstackclient.identity.v3.trust:DeleteTrust

0 commit comments

Comments
 (0)