feat: add external network name for route list page
Add the name of the external network for the route list page Change-Id: I13ce9af100ac8aa9a611a8d626b0819f37cb67aa
This commit is contained in:
parent
ade5757898
commit
287d787d08
@ -19,6 +19,7 @@ import {
|
|||||||
getSubnetToRouter,
|
getSubnetToRouter,
|
||||||
} from 'resources/neutron/floatingip';
|
} from 'resources/neutron/floatingip';
|
||||||
import { getOptions } from 'utils';
|
import { getOptions } from 'utils';
|
||||||
|
import { getNameRenderByRouter } from 'utils/table';
|
||||||
|
|
||||||
export const routerStatus = {
|
export const routerStatus = {
|
||||||
ACTIVE: t('Active'),
|
ACTIVE: t('Active'),
|
||||||
@ -62,8 +63,26 @@ export const getRouterColumns = (self) => [
|
|||||||
dataIndex: 'externalNetworkId',
|
dataIndex: 'externalNetworkId',
|
||||||
isHideable: true,
|
isHideable: true,
|
||||||
sorter: false,
|
sorter: false,
|
||||||
render: (value) =>
|
render: (value, record) => {
|
||||||
self.getLinkRender('networkDetail', value, { id: value }),
|
if (!value) {
|
||||||
|
return '-';
|
||||||
|
}
|
||||||
|
const { externalNetworkName: name } = record;
|
||||||
|
const routerColumn = {
|
||||||
|
dataIndex: 'name',
|
||||||
|
routeName: self.getRouteName('networkDetail'),
|
||||||
|
idKey: 'id',
|
||||||
|
};
|
||||||
|
const data = { name, id: value };
|
||||||
|
return getNameRenderByRouter(null, routerColumn)(name, data);
|
||||||
|
},
|
||||||
|
stringify: (value, record) => {
|
||||||
|
if (!value) {
|
||||||
|
return '-';
|
||||||
|
}
|
||||||
|
const { externalNetworkName: name } = record;
|
||||||
|
return `${value}(${name || '-'})`;
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: t('External Fixed IP'),
|
title: t('External Fixed IP'),
|
||||||
|
@ -23,6 +23,10 @@ export class RouterStore extends Base {
|
|||||||
return client.neutron.routers;
|
return client.neutron.routers;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get networkClient() {
|
||||||
|
return client.neutron.networks;
|
||||||
|
}
|
||||||
|
|
||||||
get subnetClient() {
|
get subnetClient() {
|
||||||
return client.neutron.subnets;
|
return client.neutron.subnets;
|
||||||
}
|
}
|
||||||
@ -125,8 +129,31 @@ export class RouterStore extends Base {
|
|||||||
return routerItem;
|
return routerItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async updateExternalNetworkForItems(items) {
|
||||||
|
const externalNetworkIds = [];
|
||||||
|
items.forEach((it) => {
|
||||||
|
if (it.external_gateway_info?.network_id) {
|
||||||
|
externalNetworkIds.push(it.external_gateway_info?.network_id);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (externalNetworkIds.length) {
|
||||||
|
const { networks = [] } = await this.networkClient.list({
|
||||||
|
'router:external': 'true',
|
||||||
|
});
|
||||||
|
items.forEach((it) => {
|
||||||
|
if (it.external_gateway_info?.network_id) {
|
||||||
|
const network = networks.find(
|
||||||
|
(n) => n.id === it.external_gateway_info?.network_id
|
||||||
|
);
|
||||||
|
it.external_gateway_info.network_name = network.name;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async listDidFetch(items, allProjects, filters) {
|
async listDidFetch(items, allProjects, filters) {
|
||||||
const { isFirewall } = filters;
|
const { isFirewall } = filters;
|
||||||
|
await this.updateExternalNetworkForItems(items);
|
||||||
if (!isFirewall) {
|
if (!isFirewall) {
|
||||||
return items;
|
return items;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user