diff options
| author | lin-hua-cheng <os.lcheng@gmail.com> | 2016-02-09 16:49:11 -0800 |
|---|---|---|
| committer | lin-hua-cheng <os.lcheng@gmail.com> | 2016-02-09 16:49:11 -0800 |
| commit | 686a26973809eaba3deb9aed63daddba3bb0521e (patch) | |
| tree | c86b5756a2e790467cf7091ece7d5767696375f8 /openstackclient | |
| parent | 624c39ab1bb060e35253b78c842d41ebc1807ae5 (diff) | |
| download | python-openstackclient-686a26973809eaba3deb9aed63daddba3bb0521e.tar.gz | |
Add "token revoke" for identity v3
Change-Id: Ie631600d02942fe6ce035f31af46abe44e543631
Closes-bug: #1543226
Diffstat (limited to 'openstackclient')
| -rw-r--r-- | openstackclient/identity/v3/token.py | 19 | ||||
| -rw-r--r-- | openstackclient/tests/identity/v3/fakes.py | 2 | ||||
| -rw-r--r-- | openstackclient/tests/identity/v3/test_token.py | 21 |
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 6ad4845d..192d71ee 100644 --- a/openstackclient/tests/identity/v3/test_token.py +++ b/openstackclient/tests/identity/v3/test_token.py @@ -80,3 +80,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) |
