Skip to content

Commit 0fcd6d7

Browse files
committed
frontend: render new nexthop results
1 parent a0fe5dc commit 0fcd6d7

File tree

1 file changed

+27
-11
lines changed

1 file changed

+27
-11
lines changed

frontend/src/resultsView.js

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,24 +24,24 @@ const resultTemplate = (result, havePeerColumn) => html`
2424
<td><span>${result.med}</span></td>
2525
<td><span>${result.local_pref}</span></td>
2626
<td>
27-
${result?.resolved_nexthop?.ReverseDns !== undefined
28-
? html`<span title=${result.nexthop}>${result?.resolved_nexthop?.ReverseDns}</span>`
27+
${result?.nexthop_resolved?.ReverseDns !== undefined
28+
? html`<span title=${result.nexthop}>${result?.nexthop_resolved?.ReverseDns}</span>`
2929
: html`<span>${result.nexthop}</span>`}
3030
</td>
3131
<td><span>${result.state}</span></td>
3232
</tr>
3333
`;
3434

35-
const resultsTemplate = (query, results, done) => html`
35+
const resultsTemplate = (query, routeResults, done) => html`
3636
${searchTemplate(query)}
3737
3838
<div class="results">
39-
${results.length > 0 ? html`
39+
${routeResults.length > 0 ? html`
4040
<table>
4141
<thead>
4242
<tr>
4343
<th>Router</th>
44-
${results.some(result => result.peer_address) ? html`<th>Peer</th>` : ``}
44+
${routeResults.some(result => result.peer_address) ? html`<th>Peer</th>` : ``}
4545
<th>Prefix</th>
4646
<th>AS Path</th>
4747
<th>Communities</th>
@@ -53,7 +53,7 @@ const resultsTemplate = (query, results, done) => html`
5353
</tr>
5454
</thead>
5555
<tbody>
56-
${results.map(result => resultTemplate(result, results.some(result => result.peer_address)))}
56+
${routeResults.map(result => resultTemplate(result, routeResults.some(result => result.peer_address)))}
5757
</tbody>
5858
</table>
5959
` : ''}
@@ -75,17 +75,25 @@ const errorTemplate = (query, data) => html`
7575

7676
const processResults = (results) => {
7777

78+
const routeResults = results.filter(r => !!r.Route).map(r => r.Route);
79+
console.log(results);
80+
const dnsResults = results.filter(r => !!r.ReverseDns).map(r => r.ReverseDns);
81+
82+
console.log(dnsResults);
83+
const dnsMap = Object.fromEntries(dnsResults.map(r => [r.nexthop, { nexthop_resolved: r.nexthop_resolved }]));
84+
console.log(dnsMap);
85+
7886
// stage 1, combine pre- and post-policy adj-in tables
7987
// start out with PostPolicy
8088
const preAndPostPolicy = {};
8189
const preAndPostPolicyKey = route => `${route.from_client}:${route.peer_address}:${route.net}`;
82-
for (let route of results) {
90+
for (let route of routeResults) {
8391
if (route.table === "PostPolicyAdjIn") {
8492
preAndPostPolicy[preAndPostPolicyKey(route)] = route;
8593
}
8694
}
8795
// add routes which are _only_ in PrePolicy => have not been accepted
88-
for (let route of results) {
96+
for (let route of routeResults) {
8997
if (route.table === "PrePolicyAdjIn") {
9098
const key = preAndPostPolicyKey(route);
9199
if (!preAndPostPolicy[key]) {
@@ -100,7 +108,7 @@ const processResults = (results) => {
100108
for (let route of Object.values(preAndPostPolicy)) {
101109
all[allKey(route)] = route;
102110
}
103-
for (let route of results) {
111+
for (let route of routeResults) {
104112
if (route.table === "LocRib" && route.state === "Accepted") {
105113
const key = allKey(route);
106114
if (all[key])
@@ -109,7 +117,7 @@ const processResults = (results) => {
109117
all[key] = route;
110118
}
111119
}
112-
for (let route of results) {
120+
for (let route of routeResults) {
113121
if (route.table === "LocRib" && route.state === "Active") {
114122
const key = allKey(route);
115123
if (all[key])
@@ -118,7 +126,7 @@ const processResults = (results) => {
118126
all[key] = route;
119127
}
120128
}
121-
for (let route of results) {
129+
for (let route of routeResults) {
122130
if (route.table === "LocRib" && route.state === "Selected") {
123131
const key = allKey(route);
124132
if (all[key])
@@ -143,6 +151,14 @@ const processResults = (results) => {
143151
if (res !== 0) return res;
144152
return 0;
145153
});
154+
155+
// add resolved nexthop data
156+
for (const result of newResults) {
157+
if (result.nexthop in dnsMap) {
158+
Object.assign(result, dnsMap[result.nexthop])
159+
}
160+
}
161+
146162
return newResults;
147163
};
148164

0 commit comments

Comments
 (0)