summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-02-17 20:31:07 +0000
committerGerrit Code Review <review@openstack.org>2016-02-17 20:31:07 +0000
commitf15a75428de6c75bcff27dc4447962f8eee61bed (patch)
tree11ca13af864206f11e798e0dce5f64626ec0f043
parenta517b1e9a6bffe590ead966ed19d9314ca6b108f (diff)
parent686a26973809eaba3deb9aed63daddba3bb0521e (diff)
downloadpython-openstackclient-f15a75428de6c75bcff27dc4447962f8eee61bed.tar.gz
Merge "Add "token revoke" for identity v3"
-rw-r--r--doc/source/command-objects/token.rst2
-rw-r--r--openstackclient/identity/v3/token.py19
-rw-r--r--openstackclient/tests/identity/v3/fakes.py2
-rw-r--r--openstackclient/tests/identity/v3/test_token.py21
-rw-r--r--releasenotes/notes/bug-1543226-7d885ecaa3715415.yaml5
-rw-r--r--setup.cfg1
6 files changed, 48 insertions, 2 deletions
diff --git a/doc/source/command-objects/token.rst b/doc/source/command-objects/token.rst
index 22260f0d..5e7c7b26 100644
--- a/doc/source/command-objects/token.rst
+++ b/doc/source/command-objects/token.rst
@@ -17,8 +17,6 @@ Issue new token
token revoke
------------
-*Identity version 2 only.*
-
Revoke existing token
.. program:: token revoke
diff --git a/openstackclient/identity/v3/token.py b/openstackclient/identity/v3/token.py
index 588c5218..9ebd1799 100644
--- a/openstackclient/identity/v3/token.py
+++ b/openstackclient/identity/v3/token.py
@@ -173,3 +173,22 @@ class IssueToken(command.ShowOne):
if 'tenant_id' in token:
token['project_id'] = token.pop('tenant_id')
return zip(*sorted(six.iteritems(token)))
+
+
+class RevokeToken(command.Command):
+ """Revoke existing token"""
+
+ def get_parser(self, prog_name):
+ parser = super(RevokeToken, self).get_parser(prog_name)
+ parser.add_argument(
+ 'token',
+ metavar='<token>',
+ help='Token to be deleted',
+ )
+ return parser
+
+ def take_action(self, parsed_args):
+ identity_client = self.app.client_manager.identity
+
+ identity_client.tokens.revoke_token(parsed_args.token)
+ return
diff --git a/openstackclient/tests/identity/v3/fakes.py b/openstackclient/tests/identity/v3/fakes.py
index 9fe341ed..d0a2ef53 100644
--- a/openstackclient/tests/identity/v3/fakes.py
+++ b/openstackclient/tests/identity/v3/fakes.py
@@ -420,6 +420,8 @@ class FakeIdentityv3Client(object):
self.session = mock.Mock()
self.session.auth.auth_ref.service_catalog.resource_class = \
fakes.FakeResource(None, {})
+ self.tokens = mock.Mock()
+ self.tokens.resource_class = fakes.FakeResource(None, {})
self.trusts = mock.Mock()
self.trusts.resource_class = fakes.FakeResource(None, {})
self.users = mock.Mock()
diff --git a/openstackclient/tests/identity/v3/test_token.py b/openstackclient/tests/identity/v3/test_token.py
index 25019e86..b051aacb 100644
--- a/openstackclient/tests/identity/v3/test_token.py
+++ b/openstackclient/tests/identity/v3/test_token.py
@@ -84,3 +84,24 @@ class TestTokenIssue(TestToken):
identity_fakes.user_id,
)
self.assertEqual(datalist, data)
+
+
+class TestTokenRevoke(TestToken):
+
+ TOKEN = 'fob'
+
+ def setUp(self):
+ super(TestTokenRevoke, self).setUp()
+ self.tokens_mock = self.app.client_manager.identity.tokens
+ self.tokens_mock.reset_mock()
+ self.tokens_mock.revoke_token.return_value = True
+ self.cmd = token.RevokeToken(self.app, None)
+
+ def test_token_revoke(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.revoke_token.assert_called_with(self.TOKEN)
diff --git a/releasenotes/notes/bug-1543226-7d885ecaa3715415.yaml b/releasenotes/notes/bug-1543226-7d885ecaa3715415.yaml
new file mode 100644
index 00000000..c7778d0e
--- /dev/null
+++ b/releasenotes/notes/bug-1543226-7d885ecaa3715415.yaml
@@ -0,0 +1,5 @@
+---
+features:
+ - |
+ Add ``token revoke`` command for Identity v3
+ [Bug `1543226 <https://bugs.launchpad.net/bugs/1543226>`_]
diff --git a/setup.cfg b/setup.cfg
index e8100b5f..ea522f9e 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -292,6 +292,7 @@ openstack.identity.v3 =
service_provider_show = openstackclient.identity.v3.service_provider:ShowServiceProvider
token_issue = openstackclient.identity.v3.token:IssueToken
+ token_revoke = openstackclient.identity.v3.token:RevokeToken
trust_create = openstackclient.identity.v3.trust:CreateTrust
trust_delete = openstackclient.identity.v3.trust:DeleteTrust