diff --git a/moganclient/osc/v1/server.py b/moganclient/osc/v1/server.py index 6ac3265..20754af 100644 --- a/moganclient/osc/v1/server.py +++ b/moganclient/osc/v1/server.py @@ -284,11 +284,11 @@ class ListServer(command.Lister): return parser @staticmethod - def _networks_formatter(network_info): + def _nics_formatter(nics): return_info = [] - for port_uuid in network_info: + for nics in nics: port_ips = [] - for fixed_ip in network_info[port_uuid]['fixed_ips']: + for fixed_ip in nics['fixed_ips']: port_ips.append(fixed_ip['ip_address']) return_info.append(', '.join(port_ips)) return '; '.join(return_info) @@ -314,7 +314,7 @@ class ListServer(command.Lister): "name", "status", "power_state", - "network_info", + "nics", "image_uuid", "flavor_uuid", "availability_zone", @@ -332,13 +332,13 @@ class ListServer(command.Lister): "uuid", "name", "status", - "network_info", + "nics", "image_uuid", ) data = bc_client.server.list(detailed=True, all_projects=parsed_args.all_projects) - formatters = {'network_info': self._networks_formatter, + formatters = {'nics': self._nics_formatter, 'extra': utils.format_dict} return (column_headers, (utils.get_item_properties( @@ -530,16 +530,10 @@ class ShowServerNetworkInfo(command.Lister): 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', + data = bc_client.server.get_server_nics(server.uuid) + columns = ('network_id', '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)) + (utils.get_item_properties( + nic, columns, formatters=formatters) for nic in data)) diff --git a/moganclient/tests/unit/fakes.py b/moganclient/tests/unit/fakes.py index 551179f..c7116a3 100644 --- a/moganclient/tests/unit/fakes.py +++ b/moganclient/tests/unit/fakes.py @@ -238,10 +238,11 @@ class FakeServer(object): attrs = attrs or {} attrs_data = copy.deepcopy(attrs) networks = attrs_data.pop('networks', []) - network_info = {} + nics = [] for network in networks: - network_info[network.get('uuid')] = {} - attrs_data["network_info"] = network_info + nics.append({'netowrk_id': network.get('uuid'), + 'port_id': uuidutils.generate_uuid()}) + attrs_data["nics"] = nics # Set default attribute server_info = { @@ -253,8 +254,20 @@ class FakeServer(object): "links": [], "name": "server-name-" + uuidutils.generate_uuid( dashed=False), - "network_info": {"net-id-" + uuidutils.generate_uuid( - dashed=False): {}}, + "nics": [{ + "network_id": uuidutils.generate_uuid(), + "port_id": uuidutils.generate_uuid(), + "floating_ip": '', + "port_type": '', + "mac_address": "52:54:00:cc:ed:87", + "fixed_ips": [{ + "subnet_id": uuidutils.generate_uuid(), + "ip_address": "11.0.0.6" + }, { + "subnet_id": uuidutils.generate_uuid(), + "ip_address": "fdaa:67c7:e09e:0:5054:ff:fecc:ed87" + }] + }], "updated_at": None, "uuid": "server-id-" + uuidutils.generate_uuid( dashed=False), diff --git a/moganclient/tests/unit/osc/v1/test_server.py b/moganclient/tests/unit/osc/v1/test_server.py index 902b43a..587a72f 100644 --- a/moganclient/tests/unit/osc/v1/test_server.py +++ b/moganclient/tests/unit/osc/v1/test_server.py @@ -40,7 +40,7 @@ class TestServer(test_base.TestBaremetalComputeV1): 'max_count', 'min_count', 'name', - 'network_info', + 'nics', 'updated_at', 'uuid') @@ -54,7 +54,7 @@ class TestServer(test_base.TestBaremetalComputeV1): 1, 1, fake_server.name, - fake_server.network_info, + fake_server.nics, fake_server.updated_at, fake_server.uuid) @@ -143,7 +143,7 @@ class TestServerCreate(TestServer): 1, 1, fk_server.name, - fk_server.network_info, + fk_server.nics, fk_server.updated_at, fk_server.uuid) self.assertEqual(expected_data, data) @@ -293,26 +293,24 @@ class TestServerList(test_base.TestBaremetalComputeV1): def setUp(self): super(TestServerList, self).setUp() self.cmd = server.ListServer(self.app, None) - fake_return_net = { - "12cffc4a-b845-409e-b589-7c84be4b10d9": { - "fixed_ips": [ - { - "ip_address": "172.24.4.4", - "subnet_id": "a9d47430-f90b-4513-af5f-6315af54de7d" - }, - { - "ip_address": "2001:db8::a", - "subnet_id": "5e7b3e2d-f36f-4e30-874c-16c2d126fe53" - } - ], - "mac_address": "52:54:00:6c:c4:17", - "network": "ade2b658-929b-439f-9528-c47057960942" - } - } + fake_return_net = [{ + "network_id": "f31af5a2-f14d-4007-b2e5-abeb82429b87", + "port_id": "99845c22-6268-46c1-b068-1dbcb8adaf68", + "floating_ip": '', + "port_type": '', + "mac_address": "52:54:00:cc:ed:87", + "fixed_ips": [{ + "subnet_id": "5a324b29-9aca-43d8-a6c3-31986dda95b5", + "ip_address": "172.24.4.4" + }, { + "subnet_id": "9baceab1-40ec-4c53-ad83-530a625bddb1", + "ip_address": "2001:db8::a" + }] + }] self.fake_servers = fakes.FakeServer.create_servers( attrs={'status': 'active', 'power_state': 'power on'}, count=3) for s in self.fake_servers: - setattr(s, 'network_info', fake_return_net) + setattr(s, 'nics', fake_return_net) self.list_columns = ( "UUID", "Name", @@ -661,7 +659,7 @@ class TestServerUnLock(TestServerLockActionBase): mock_update_all, mock_find) -@mock.patch.object(server_mgr.ServerManager, 'get_network_info') +@mock.patch.object(server_mgr.ServerManager, 'get_server_nics') @mock.patch.object(server_mgr.ServerManager, 'get') class TestServerShowNetInfo(TestServer): def setUp(self): diff --git a/moganclient/v1/server.py b/moganclient/v1/server.py index c341bb9..fd16172 100644 --- a/moganclient/v1/server.py +++ b/moganclient/v1/server.py @@ -123,6 +123,6 @@ class ServerManager(base.ManagerWithFind): url = '/servers/%s/states/lock' % base.getid(server_id) return self._update_all(url, data={'target': lock_state}) - def get_network_info(self, server_id): + def get_server_nics(self, server_id): url = '/servers/%s/networks' % base.getid(server_id) - return self._get(url, response_key='ports') + return self._list(url, response_key='nics')