diff options
| author | Jenkins <jenkins@review.openstack.org> | 2016-02-17 20:31:07 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2016-02-17 20:31:07 +0000 |
| commit | f15a75428de6c75bcff27dc4447962f8eee61bed (patch) | |
| tree | 11ca13af864206f11e798e0dce5f64626ec0f043 | |
| parent | a517b1e9a6bffe590ead966ed19d9314ca6b108f (diff) | |
| parent | 686a26973809eaba3deb9aed63daddba3bb0521e (diff) | |
| download | python-openstackclient-f15a75428de6c75bcff27dc4447962f8eee61bed.tar.gz | |
Merge "Add "token revoke" for identity v3"
| -rw-r--r-- | doc/source/command-objects/token.rst | 2 | ||||
| -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 | ||||
| -rw-r--r-- | releasenotes/notes/bug-1543226-7d885ecaa3715415.yaml | 5 | ||||
| -rw-r--r-- | setup.cfg | 1 |
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>`_] @@ -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 |
