mirror of
https://github.com/key-networks/ztncui.git
synced 2025-06-06 02:03:45 +02:00
Get network members detail parallelly
This commit is contained in:
parent
8ea2214243
commit
64da7e4849
1 changed files with 31 additions and 14 deletions
|
@ -12,6 +12,34 @@ const util = require('util');
|
|||
|
||||
storage.initSync({dir: 'etc/storage'});
|
||||
|
||||
async function get_network_with_members(nwid) {
|
||||
const [network, member_ids] = await Promise.all([
|
||||
zt.network_detail(nwid),
|
||||
zt.members(nwid)
|
||||
]);
|
||||
const members = await Promise.all(
|
||||
Object.keys(member_ids)
|
||||
.map(id => Promise.all([
|
||||
zt.member_detail(nwid, id),
|
||||
storage.getItem(id)
|
||||
]))
|
||||
).then(results => results.map(([member, name]) => {
|
||||
member.name = name || '';
|
||||
return member;
|
||||
}));
|
||||
return {network, members};
|
||||
}
|
||||
|
||||
async function get_network_member(nwid, memberid) {
|
||||
const [network, member, name] = await Promise.all([
|
||||
zt.network_detail(nwid),
|
||||
zt.member_detail(nwid, memberid),
|
||||
storage.getItem(memberid)
|
||||
]);
|
||||
member.name = name || '';
|
||||
return {network, member};
|
||||
}
|
||||
|
||||
// ZT network controller home page
|
||||
exports.index = async function(req, res) {
|
||||
const navigate =
|
||||
|
@ -52,14 +80,7 @@ exports.network_detail = async function(req, res) {
|
|||
}
|
||||
|
||||
try {
|
||||
const network = await zt.network_detail(req.params.nwid);
|
||||
const member_ids = await zt.members(req.params.nwid);
|
||||
const members = [];
|
||||
for (id in member_ids) {
|
||||
let member = await zt.member_detail(req.params.nwid, id);
|
||||
member.name = await storage.getItem(member.id) || '';
|
||||
members.push(member);
|
||||
}
|
||||
const {network, members} = await get_network_with_members(req.params.nwid);
|
||||
res.render('network_detail', {title: 'Network ' + network.name, navigate: navigate, network: network, members: members});
|
||||
} catch (err) {
|
||||
res.render('network_detail', {title: 'Detail for network', navigate: navigate, error: 'Error resolving detail for network ' + req.params.nwid + ': ' + err});
|
||||
|
@ -437,9 +458,7 @@ exports.member_detail = async function(req, res) {
|
|||
}
|
||||
|
||||
try {
|
||||
const network = await zt.network_detail(req.params.nwid);
|
||||
const member = await zt.member_detail(req.params.nwid, req.params.id);
|
||||
member.name = await storage.getItem(member.id) || '';
|
||||
const {network, member} = await get_network_member(req.params.nwid, req.params.id);
|
||||
navigate.whence = '/controller/network/' + network.nwid + '#members';
|
||||
res.render('member_detail', {title: 'Network member detail', navigate: navigate, network: network, member: member});
|
||||
} catch (err) {
|
||||
|
@ -456,9 +475,7 @@ exports.member_object = async function(req, res) {
|
|||
}
|
||||
|
||||
try {
|
||||
const network = await zt.network_detail(req.params.nwid);
|
||||
const member = await zt.member_detail(req.params.nwid, req.params.id);
|
||||
member.name = await storage.getItem(member.id) || '';
|
||||
const {network, member} = await get_network_member(req.params.nwid, req.params.id);
|
||||
navigate.whence = '/controller/network/' + network.nwid + '#members';
|
||||
res.render(req.params.object, {title: req.params.object, navigate: navigate, network: network, member: member}, function(err, html) {
|
||||
if (err) {
|
||||
|
|
Loading…
Add table
Reference in a new issue