diff --git a/keystoneclient/tests/v3/test_tokens.py b/keystoneclient/tests/v3/test_tokens.py index f608d6d4a..6556a7bd6 100644 --- a/keystoneclient/tests/v3/test_tokens.py +++ b/keystoneclient/tests/v3/test_tokens.py @@ -33,3 +33,10 @@ class TokenTests(utils.TestCase): self.stub_url('DELETE', ['/auth/tokens'], status_code=204) self.client.tokens.revoke_token(token) self.assertRequestHeaderEqual('X-Subject-Token', token_id) + + def test_get_revoked(self): + sample_revoked_response = {'signed': '-----BEGIN CMS-----\nMIIB...'} + self.stub_url('GET', ['auth', 'tokens', 'OS-PKI', 'revoked'], + json=sample_revoked_response) + resp = self.client.tokens.get_revoked() + self.assertEqual(sample_revoked_response, resp) diff --git a/keystoneclient/v3/tokens.py b/keystoneclient/v3/tokens.py index 85735bfc2..aa8ccaf35 100644 --- a/keystoneclient/v3/tokens.py +++ b/keystoneclient/v3/tokens.py @@ -34,3 +34,14 @@ class TokenManager(object): token_id = base.getid(token) headers = {'X-Subject-Token': token_id} return self._client.delete('/auth/tokens', headers=headers) + + def get_revoked(self): + """Get revoked tokens list. + + :returns: A dict containing "signed" which is a CMS formatted string. + :rtype: dict + + """ + + resp, body = self._client.get('/auth/tokens/OS-PKI/revoked') + return body