summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2015-12-15 15:42:49 +0000
committerGerrit Code Review <review@openstack.org>2015-12-15 15:42:49 +0000
commit5736d1e00c356b3efaa78b588b6de1d1ac9bea63 (patch)
tree99ea839a35dd3f9a448e662d9c9c46c3543199fb /openstackclient
parent25666684d2832499c59fc31a88966711506342fc (diff)
parent3364855a2283b57ccd09ea6b98ca45aba5dbcccd (diff)
downloadpython-openstackclient-5736d1e00c356b3efaa78b588b6de1d1ac9bea63.tar.gz
Merge "Router: Add "router delete" command using SDK"
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/network/v2/router.py25
-rw-r--r--openstackclient/tests/network/v2/test_router.py29
2 files changed, 54 insertions, 0 deletions
diff --git a/openstackclient/network/v2/router.py b/openstackclient/network/v2/router.py
index 755bf100..0042e93f 100644
--- a/openstackclient/network/v2/router.py
+++ b/openstackclient/network/v2/router.py
@@ -16,6 +16,7 @@
import json
import logging
+from cliff import command
from cliff import lister
from cliff import show
@@ -117,6 +118,30 @@ class CreateRouter(show.ShowOne):
return (tuple(columns), data)
+class DeleteRouter(command.Command):
+ """Delete router(s)"""
+
+ log = logging.getLogger(__name__ + '.DeleteRouter')
+
+ def get_parser(self, prog_name):
+ parser = super(DeleteRouter, self).get_parser(prog_name)
+ parser.add_argument(
+ 'router',
+ metavar="<router>",
+ nargs="+",
+ help=("Router(s) to delete (name or ID)")
+ )
+ return parser
+
+ def take_action(self, parsed_args):
+ self.log.debug('take_action(%s)' % parsed_args)
+ client = self.app.client_manager.network
+ for router in parsed_args.router:
+ obj = client.find_router(router)
+ client.delete_router(obj)
+ return
+
+
class ListRouter(lister.Lister):
"""List routers"""
diff --git a/openstackclient/tests/network/v2/test_router.py b/openstackclient/tests/network/v2/test_router.py
index 5170826c..ccda9d2d 100644
--- a/openstackclient/tests/network/v2/test_router.py
+++ b/openstackclient/tests/network/v2/test_router.py
@@ -88,6 +88,35 @@ class TestCreateRouter(TestRouter):
self.assertEqual(self.data, data)
+class TestDeleteRouter(TestRouter):
+
+ # The router to delete.
+ _router = network_fakes.FakeRouter.create_one_router()
+
+ def setUp(self):
+ super(TestDeleteRouter, self).setUp()
+
+ self.network.delete_router = mock.Mock(return_value=None)
+
+ self.network.find_router = mock.Mock(return_value=self._router)
+
+ # Get the command object to test
+ self.cmd = router.DeleteRouter(self.app, self.namespace)
+
+ def test_delete(self):
+ arglist = [
+ self._router.name,
+ ]
+ verifylist = [
+ ('router', [self._router.name]),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ result = self.cmd.take_action(parsed_args)
+ self.network.delete_router.assert_called_with(self._router)
+ self.assertEqual(None, result)
+
+
class TestListRouter(TestRouter):
# The routers going to be listed up.