summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorTang Chen <tangchen@cn.fujitsu.com>2015-12-14 20:54:03 +0800
committerTang Chen <tangchen@cn.fujitsu.com>2015-12-16 14:14:41 +0800
commit3364855a2283b57ccd09ea6b98ca45aba5dbcccd (patch)
treeb5999ff30e3fe5bef052d75501602d922257585c /openstackclient
parent6158ebb0e02ca2b796df973e71c6a7d5e829c959 (diff)
downloadpython-openstackclient-3364855a2283b57ccd09ea6b98ca45aba5dbcccd.tar.gz
Router: Add "router delete" command using SDK
This patch adds "router delete" command to osc using sdk. Change-Id: I47d0ca7f7984942ffceaeb1c9ac69efd09145f40 Implements: blueprint neutron-client Partial-bug: #1519503
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.