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
This commit is contained in:
Tang Chen 2015-12-14 20:54:03 +08:00
parent 6158ebb0e0
commit 3364855a22
4 changed files with 71 additions and 0 deletions

View File

@ -44,6 +44,22 @@ Create new router
New router name
router delete
--------------
Delete router(s)
.. program:: router delete
.. code:: bash
os router delete
<router> [<router> ...]
.. _router_delete-router:
.. describe:: <router>
Router(s) to delete (name or ID)
router list
-----------

View File

@ -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"""

View File

@ -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.

View File

@ -333,6 +333,7 @@ openstack.network.v2 =
network_set = openstackclient.network.v2.network:SetNetwork
network_show = openstackclient.network.v2.network:ShowNetwork
router_create = openstackclient.network.v2.router:CreateRouter
router_delete = openstackclient.network.v2.router:DeleteRouter
router_list = openstackclient.network.v2.router:ListRouter
openstack.object_store.v1 =