-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfix-fase1-always-ssh.mjs
More file actions
64 lines (57 loc) · 2.6 KB
/
fix-fase1-always-ssh.mjs
File metadata and controls
64 lines (57 loc) · 2.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/usr/bin/env node
import fs from 'fs';
const file = 'server.js';
let content = fs.readFileSync(file, 'utf8');
// Fix: FASE 1 non deve restituire subito, deve continuare a FASE 1.5
const oldCode = ` // Verifica se l'endpoint è una porta fisica
const endpointIsPhysical = result.endpoint && isPhysicalPort(result.endpoint.ifName);
if (endpointIsPhysical) {
result.elapsed = \`\${Date.now() - t0}ms\`;
console.log(\`[MAC-HYBRID] Found PHYSICAL PORT in NeDi DB: \${result.endpoint?.device} \${result.endpoint?.ifName}\`);
return res.json(result);
}
// Se è VLAN interface, salva info e continua per trovare porta fisica
console.log(\`[MAC-HYBRID] NeDi DB has only VLAN interface (\${result.endpoint?.ifName}), continuing to SSH trace...\`);
if (result.endpoint && !result.vlanResult) {
result.vlanResult = {
device: result.endpoint.device,
deviceIp: result.endpoint.deviceIp,
vlanInterface: result.endpoint.ifName,
vlan: result.endpoint.vlan
};
}`;
const newCode = ` // Salva info NeDi e continua a FASE 1.5 per verifica SSH live
// (i dati NeDi potrebbero essere vecchi!)
console.log(\`[MAC-HYBRID] Found in NeDi DB: \${result.endpoint?.device} \${result.endpoint?.ifName}, verifying with live SSH...\`);
if (result.endpoint && !result.vlanResult) {
result.vlanResult = {
device: result.endpoint.device,
deviceIp: result.endpoint.deviceIp,
vlanInterface: result.endpoint.ifName,
vlan: result.endpoint.vlan
};
}
// Salva come fallback se SSH fallisce
if (!result.dbFallback) {
result.dbFallback = {
device: result.endpoint.device,
deviceIp: result.endpoint.deviceIp,
ifName: result.endpoint.ifName,
vlan: result.endpoint.vlan,
source: 'nedi-db-unverified'
};
}`;
if (content.includes(oldCode)) {
content = content.replace(oldCode, newCode);
fs.writeFileSync(file, content);
console.log('✓ Fix applicato: FASE 1 NeDi non restituisce più subito, continua a FASE 1.5');
} else {
console.log('⚠ Pattern non trovato');
}
// Verifica
const check = fs.readFileSync(file, 'utf8');
if (check.includes('nedi-db-unverified')) {
console.log('✓ Verifica: Nuovo codice presente');
} else {
console.log('✗ Verifica fallita');
}