summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2014-06-18 15:37:40 +0000
committerGerrit Code Review <review@openstack.org>2014-06-18 15:37:40 +0000
commit1f2189d6ded9a13637608cf13b7e82591c39b99b (patch)
tree8f842b9d2f57320c6a6f10d8c6aab68022ead7cf /openstackclient
parent0b2987fef389603b95b2ba7b788492b8baa56745 (diff)
parentd6321c0893d529af1548da79a985f337bce7069f (diff)
downloadpython-openstackclient-1f2189d6ded9a13637608cf13b7e82591c39b99b.tar.gz
Merge "Add token delete command for identity v2"
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/identity/v2_0/token.py22
-rw-r--r--openstackclient/tests/identity/v2_0/fakes.py2
-rw-r--r--openstackclient/tests/identity/v2_0/test_token.py21
3 files changed, 45 insertions, 0 deletions
diff --git a/openstackclient/identity/v2_0/token.py b/openstackclient/identity/v2_0/token.py
index 55e9f2dd..5cd41bb3 100644
--- a/openstackclient/identity/v2_0/token.py
+++ b/openstackclient/identity/v2_0/token.py
@@ -18,6 +18,7 @@
import logging
import six
+from cliff import command
from cliff import show
@@ -36,3 +37,24 @@ class CreateToken(show.ShowOne):
token = identity_client.service_catalog.get_token()
token['project_id'] = token.pop('tenant_id')
return zip(*sorted(six.iteritems(token)))
+
+
+class DeleteToken(command.Command):
+ """Delete token command"""
+
+ log = logging.getLogger(__name__ + '.DeleteToken')
+
+ def get_parser(self, prog_name):
+ parser = super(DeleteToken, self).get_parser(prog_name)
+ parser.add_argument(
+ 'token',
+ metavar='<token>',
+ help='Token to be deleted',
+ )
+ return parser
+
+ def take_action(self, parsed_args):
+ self.log.debug('take_action(%s)' % parsed_args)
+ identity_client = self.app.client_manager.identity
+ identity_client.tokens.delete(parsed_args.token)
+ return
diff --git a/openstackclient/tests/identity/v2_0/fakes.py b/openstackclient/tests/identity/v2_0/fakes.py
index 8413dd1e..a8438e96 100644
--- a/openstackclient/tests/identity/v2_0/fakes.py
+++ b/openstackclient/tests/identity/v2_0/fakes.py
@@ -130,6 +130,8 @@ class FakeIdentityv2Client(object):
self.services.resource_class = fakes.FakeResource(None, {})
self.tenants = mock.Mock()
self.tenants.resource_class = fakes.FakeResource(None, {})
+ self.tokens = mock.Mock()
+ self.tokens.resource_class = fakes.FakeResource(None, {})
self.users = mock.Mock()
self.users.resource_class = fakes.FakeResource(None, {})
self.ec2 = mock.Mock()
diff --git a/openstackclient/tests/identity/v2_0/test_token.py b/openstackclient/tests/identity/v2_0/test_token.py
index a156cdc6..e1967537 100644
--- a/openstackclient/tests/identity/v2_0/test_token.py
+++ b/openstackclient/tests/identity/v2_0/test_token.py
@@ -54,3 +54,24 @@ class TestTokenCreate(TestToken):
identity_fakes.user_id,
)
self.assertEqual(data, datalist)
+
+
+class TestTokenDelete(TestToken):
+
+ TOKEN = 'fob'
+
+ def setUp(self):
+ super(TestTokenDelete, self).setUp()
+ self.tokens_mock = self.app.client_manager.identity.tokens
+ self.tokens_mock.reset_mock()
+ self.tokens_mock.delete.return_value = True
+ self.cmd = token.DeleteToken(self.app, None)
+
+ def test_token_create(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.delete.assert_called_with(self.TOKEN)