summaryrefslogtreecommitdiff
path: root/openstackclient
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 /openstackclient
parenta517b1e9a6bffe590ead966ed19d9314ca6b108f (diff)
parent686a26973809eaba3deb9aed63daddba3bb0521e (diff)
downloadpython-openstackclient-f15a75428de6c75bcff27dc4447962f8eee61bed.tar.gz
Merge "Add "token revoke" for identity v3"
Diffstat (limited to 'openstackclient')
-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
3 files changed, 42 insertions, 0 deletions
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)