Merge "Add support for showing network info of specified server"
This commit is contained in:
commit
aa875a3181
@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
"""Mogan v1 Baremetal server action implementations"""
|
"""Mogan v1 Baremetal server action implementations"""
|
||||||
|
|
||||||
|
import json
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from osc_lib.cli import parseractions
|
from osc_lib.cli import parseractions
|
||||||
@ -436,3 +437,37 @@ class UnLockServer(ServersActionBase):
|
|||||||
def take_action(self, parsed_args):
|
def take_action(self, parsed_args):
|
||||||
self._action_multiple_items(parsed_args, 'unlock', 'set_lock_state',
|
self._action_multiple_items(parsed_args, 'unlock', 'set_lock_state',
|
||||||
lock_state=False)
|
lock_state=False)
|
||||||
|
|
||||||
|
|
||||||
|
class ShowServerNetworkInfo(command.Lister):
|
||||||
|
"""Display baremetal server's network info"""
|
||||||
|
|
||||||
|
def get_parser(self, prog_name):
|
||||||
|
parser = super(ShowServerNetworkInfo, self).get_parser(prog_name)
|
||||||
|
parser.add_argument(
|
||||||
|
'server',
|
||||||
|
metavar='<server>',
|
||||||
|
help=_("Baremetal server to display its network information (name "
|
||||||
|
"or UUID)")
|
||||||
|
)
|
||||||
|
return parser
|
||||||
|
|
||||||
|
def take_action(self, parsed_args):
|
||||||
|
bc_client = self.app.client_manager.baremetal_compute
|
||||||
|
server = utils.find_resource(
|
||||||
|
bc_client.server,
|
||||||
|
parsed_args.server,
|
||||||
|
)
|
||||||
|
data = bc_client.server.get_network_info(server.uuid)
|
||||||
|
info = data._info
|
||||||
|
nics = []
|
||||||
|
for port_id in list(info):
|
||||||
|
nic = {'port_id': port_id}
|
||||||
|
nic.update(info[port_id])
|
||||||
|
nics.append(nic)
|
||||||
|
columns = ('network', 'port_id', 'mac_address', 'fixed_ips',
|
||||||
|
'floatingip', 'port_type')
|
||||||
|
formatters = {'fixed_ips': lambda s: json.dumps(s, indent=4)}
|
||||||
|
return (columns,
|
||||||
|
(utils.get_dict_properties(
|
||||||
|
s, columns, formatters=formatters) for s in nics))
|
||||||
|
@ -636,3 +636,21 @@ class TestServerUnLock(TestServerLockActionBase):
|
|||||||
mock_update_all, mock_find):
|
mock_update_all, mock_find):
|
||||||
self._test_server_lock_more_than_one_partly_failed(
|
self._test_server_lock_more_than_one_partly_failed(
|
||||||
mock_update_all, mock_find)
|
mock_update_all, mock_find)
|
||||||
|
|
||||||
|
|
||||||
|
@mock.patch.object(server_mgr.ServerManager, 'get_network_info')
|
||||||
|
@mock.patch.object(server_mgr.ServerManager, 'get')
|
||||||
|
class TestServerShowNetInfo(TestServer):
|
||||||
|
def setUp(self):
|
||||||
|
super(TestServerShowNetInfo, self).setUp()
|
||||||
|
self.cmd = server.ShowServerNetworkInfo(self.app, None)
|
||||||
|
self.fake_server = fakes.FakeServer.create_one_server()
|
||||||
|
|
||||||
|
def test_server_netinfo_show(self, mock_get, mock_netinfo):
|
||||||
|
args = [self.fake_server.uuid]
|
||||||
|
verify_args = [('server', self.fake_server.uuid)]
|
||||||
|
mock_get.return_value = self.fake_server
|
||||||
|
parsed_args = self.check_parser(self.cmd, args, verify_args)
|
||||||
|
self.cmd.take_action(parsed_args)
|
||||||
|
mock_get.assert_called_once_with(self.fake_server.uuid)
|
||||||
|
mock_netinfo.assert_called_once_with(self.fake_server.uuid)
|
||||||
|
@ -71,3 +71,7 @@ class ServerManager(base.ManagerWithFind):
|
|||||||
def set_lock_state(self, server_id, lock_state):
|
def set_lock_state(self, server_id, lock_state):
|
||||||
url = '/instances/%s/states/lock' % base.getid(server_id)
|
url = '/instances/%s/states/lock' % base.getid(server_id)
|
||||||
return self._update_all(url, data={'target': lock_state})
|
return self._update_all(url, data={'target': lock_state})
|
||||||
|
|
||||||
|
def get_network_info(self, server_id):
|
||||||
|
url = '/instances/%s/networks' % base.getid(server_id)
|
||||||
|
return self._get(url, response_key='ports')
|
||||||
|
@ -47,6 +47,7 @@ openstack.baremetal_compute.v1 =
|
|||||||
baremetal_server_reboot = moganclient.osc.v1.server:RebootServer
|
baremetal_server_reboot = moganclient.osc.v1.server:RebootServer
|
||||||
baremetal_server_update = moganclient.osc.v1.server:UpdateServer
|
baremetal_server_update = moganclient.osc.v1.server:UpdateServer
|
||||||
baremetal_server_unlock = moganclient.osc.v1.server:UnLockServer
|
baremetal_server_unlock = moganclient.osc.v1.server:UnLockServer
|
||||||
|
baremetal_server_netinfo = moganclient.osc.v1.server:ShowServerNetworkInfo
|
||||||
baremetal_availability_zone_list = moganclient.osc.v1.availability_zone:ListAvailabilityZone
|
baremetal_availability_zone_list = moganclient.osc.v1.availability_zone:ListAvailabilityZone
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user