datacom: faz verificação de existencia da ONU ao adicionar_FIX
Signed-off-by: Rodrigo Bertoldo de Sousa Martins <rodrigo.sousa.577@gmail.com>
This commit is contained in:
1 parent
235e0c0d43
commit
c4caa1c063
1 file changed
+25
-2
+25
-2
@@ -3327,6 +3327,7 @@ Digite /help para ver todos os comandos disponíveis!
|
||||
onuData: {
|
||||
tipo: 'datacom',
|
||||
location: tsLocation,
|
||||
oltId,
|
||||
oltHost: oltEquipment ? oltEquipment.host : '',
|
||||
serial: serialNumber,
|
||||
portaAlias: slot
|
||||
@@ -6106,11 +6107,33 @@ Digite /help para ver todos os comandos disponíveis!
|
||||
|
||||
const olts = oltsResult.data?.dados?.dados || oltsResult.data?.dados || [];
|
||||
|
||||
// Encontrar OLT pelo SSID (IP de gerência)
|
||||
// 1. Tentar por SSID (IP de gerência)
|
||||
let oltEncontrada = olts.find(o => o.ssid === onuData.oltHost);
|
||||
|
||||
// 2. Para Datacom: buscar por keyword do oltId no nome da OLT
|
||||
if (!oltEncontrada && onuData.oltId) {
|
||||
const keyword = onuData.oltId.replace(/^olt_/, '').replace(/_/g, ' ').toLowerCase();
|
||||
const keywords = keyword.split(' ').filter(k => k.length > 2);
|
||||
oltEncontrada = olts.find(o => {
|
||||
const nome = (o.nome || '').toLowerCase();
|
||||
return keywords.every(k => nome.includes(k));
|
||||
});
|
||||
// Se não encontrou com todos, tenta com qualquer um
|
||||
if (!oltEncontrada) {
|
||||
oltEncontrada = olts.find(o => {
|
||||
const nome = (o.nome || '').toLowerCase();
|
||||
return keywords.some(k => nome.includes(k));
|
||||
});
|
||||
}
|
||||
if (oltEncontrada) {
|
||||
console.log(`✅ OLT encontrada por nome: "${oltEncontrada.nome}" (keyword: "${keyword}")`);
|
||||
}
|
||||
}
|
||||
|
||||
// 3. Fallback: primeira OLT disponível
|
||||
if (!oltEncontrada && olts.length > 0) {
|
||||
oltEncontrada = olts[0];
|
||||
console.log(`⚠️ OLT não encontrada por SSID "${onuData.oltHost}", usando a primeira: ${oltEncontrada.nome}`);
|
||||
console.log(`⚠️ OLT não identificada — usando a primeira disponível: ${oltEncontrada.nome}`);
|
||||
}
|
||||
|
||||
if (!oltEncontrada) {
|
||||
|
||||
Reference in new issue
Block a user