Limpeza 2

Signed-off-by: Rodrigo B. de Sousa Martins <rodrigo.sousa.577@gmail.com>
This commit is contained in:
rodrigo committed 2025-08-08 10:35:55 -03:00
1 parent a88ee59f0d
commit d4c37a3f78
8 files changed
-610

No files matched your search

-73
View File
@@ -1,73 +0,0 @@
// Teste de parsing de callbacks
console.log('🧪 Testando parsing de callbacks...\n');
// Simular dados de callback
const testCallbacks = [
'check_signal_olt_dito_DACM91569513',
'check_signal_olt_colmeia_ABCD12345678',
'check_signal_olt_canaa_TEST123456',
'check_signal_olt_canaa2_SERIAL789',
'show_config_olt_dito_1/1/1_10',
'show_config_olt_canaa2_2/2/2_25'
];
function parseCheckSignalCallback(data) {
const parts = data.split('_');
let oltId, serialNumber;
if (parts.length === 5) {
// Caso: check_signal_olt_dito_SERIAL
oltId = parts[2] + '_' + parts[3]; // "olt_dito"
serialNumber = parts[4];
} else if (parts.length === 4) {
// Caso: check_signal_oltid_SERIAL
oltId = parts[2];
serialNumber = parts[3];
} else {
// Tentar reconstruir dinamicamente
oltId = parts.slice(2, -1).join('_');
serialNumber = parts[parts.length - 1];
}
return { oltId, serialNumber };
}
function parseShowConfigCallback(data) {
const parts = data.split('_');
let oltId, slot, onuId;
if (parts.length === 6) {
// Caso: show_config_olt_dito_slot_onuid
oltId = parts[2] + '_' + parts[3]; // "olt_dito"
slot = parts[4];
onuId = parts[5];
} else if (parts.length === 5) {
// Caso: show_config_oltid_slot_onuid
oltId = parts[2];
slot = parts[3];
onuId = parts[4];
} else {
// Tentar reconstruir dinamicamente
onuId = parts[parts.length - 1];
slot = parts[parts.length - 2];
oltId = parts.slice(2, -2).join('_');
}
return { oltId, slot, onuId };
}
testCallbacks.forEach((callback, index) => {
console.log(`${index + 1}. Callback: "${callback}"`);
if (callback.startsWith('check_signal_')) {
const result = parseCheckSignalCallback(callback);
console.log(` Resultado: OLT="${result.oltId}", Serial="${result.serialNumber}"`);
} else if (callback.startsWith('show_config_')) {
const result = parseShowConfigCallback(callback);
console.log(` Resultado: OLT="${result.oltId}", Slot="${result.slot}", ONU="${result.onuId}"`);
}
console.log('');
});
console.log('✅ Teste concluído!');
-120
View File
@@ -1,120 +0,0 @@
// Teste completo do fluxo de Reset ONU
const SSHManager = require('./src/ssh/manager');
async function testCompleteResetFlow() {
console.log('🧪 Teste Completo do Fluxo de Reset ONU\n');
const sshManager = new SSHManager();
// Simular callback data que seria gerado pelo bot
console.log('📝 1. Simulando callback data gerado pelo bot:');
// Exemplo de como seria gerado no handleVerSinal após encontrar ONU
const simulatedResult = {
slot: '1/1/1',
onuId: '5'
};
const oltId = 'olt_dito';
const serialNumber = 'DACM91569513';
const resetCallback = `reset_onu_${oltId}_${simulatedResult.slot}_${simulatedResult.onuId}`;
console.log(` Callback gerado: ${resetCallback}`);
// Teste de parsing do callback
console.log('\n🔍 2. Testando parsing do callback:');
const parts = resetCallback.split('_');
console.log(` Parts: ${JSON.stringify(parts)}`);
let parsedOltId, parsedSlot, parsedOnuId;
if (parts.length === 6) {
parsedOltId = parts[2] + '_' + parts[3];
parsedSlot = parts[4];
parsedOnuId = parts[5];
} else if (parts.length === 5) {
parsedOltId = parts[2];
parsedSlot = parts[3];
parsedOnuId = parts[4];
} else {
parsedOnuId = parts[parts.length - 1];
parsedSlot = parts[parts.length - 2];
parsedOltId = parts.slice(2, -2).join('_');
}
console.log(` ✅ Parsed - OLT: ${parsedOltId}, Slot: ${parsedSlot}, ONU: ${parsedOnuId}`);
// Verificar se a OLT existe
console.log('\n🏢 3. Verificando se a OLT existe:');
const equipment = sshManager.equipamentos.get(parsedOltId);
if (equipment) {
console.log(` ✅ OLT encontrada: ${equipment.name} (${equipment.host})`);
} else {
console.log(` ❌ OLT não encontrada: ${parsedOltId}`);
console.log(' 📋 OLTs disponíveis:');
sshManager.listOLTs().forEach(olt => {
console.log(` - ${olt.id}: ${olt.name}`);
});
return;
}
// Gerar comando que seria executado
console.log('\n💻 4. Comando que seria executado:');
const command = `config terminal && interface gpon ${parsedSlot} && onu-reset onu ${parsedOnuId} && exit`;
console.log(` Comando: ${command}`);
// Simular callback de confirmação
console.log('\n✅ 5. Callback de confirmação:');
const confirmCallback = `confirm_reset_onu_${parsedOltId}_${parsedSlot}_${parsedOnuId}`;
console.log(` Callback: ${confirmCallback}`);
// Testar parsing da confirmação
const confirmParts = confirmCallback.replace('confirm_reset_onu_', '').split('_');
console.log(` Parts após remoção: ${JSON.stringify(confirmParts)}`);
let confirmOltId, confirmSlot, confirmOnuId;
if (confirmParts.length === 4) {
confirmOltId = confirmParts[0] + '_' + confirmParts[1];
confirmSlot = confirmParts[2];
confirmOnuId = confirmParts[3];
} else if (confirmParts.length === 3) {
confirmOltId = confirmParts[0];
confirmSlot = confirmParts[1];
confirmOnuId = confirmParts[2];
} else {
confirmOnuId = confirmParts[confirmParts.length - 1];
confirmSlot = confirmParts[confirmParts.length - 2];
confirmOltId = confirmParts.slice(0, -2).join('_');
}
console.log(` ✅ Confirm Parsed - OLT: ${confirmOltId}, Slot: ${confirmSlot}, ONU: ${confirmOnuId}`);
// Verificar se o método existe
console.log('\n⚙️ 6. Verificando método resetOnuAlternative:');
if (typeof sshManager.resetOnuAlternative === 'function') {
console.log(' ✅ Método resetOnuAlternative encontrado');
// Teste simulado (sem executar)
console.log('\n🎯 7. Teste simulado do método:');
console.log(` Parâmetros: resetOnuAlternative('${confirmOltId}', '${confirmSlot}', '${confirmOnuId}')`);
console.log('\n📊 8. Resultado esperado:');
console.log(' - Conexão na OLT via SSH');
console.log(' - Execução do comando de reset');
console.log(' - Retorno com status de sucesso/erro');
} else {
console.log(' ❌ Método resetOnuAlternative NÃO encontrado');
}
console.log('\n✅ Teste completo finalizado!');
console.log('\n🚀 Para testar no bot:');
console.log(' 1. Digite: ver sinal DACM91569513');
console.log(' 2. Selecione uma OLT');
console.log(' 3. Clique em "🔌 Reiniciar ONU"');
console.log(' 4. Confirme com "✅ SIM, Reiniciar"');
console.log(' 5. Verifique os logs no console');
}
// Executar teste
testCompleteResetFlow().catch(console.error);
-135
View File
@@ -1,135 +0,0 @@
// Teste da funcionalidade de Atualização de Firmware ONU
const SSHManager = require('./src/ssh/manager');
async function testOnuFirmwareUpdate() {
console.log('🧪 Testando funcionalidade de Atualização de Firmware ONU...\n');
const sshManager = new SSHManager();
// Teste 1: Verificar métodos implementados
console.log('⚙️ 1. Verificando métodos implementados:');
if (typeof sshManager.getOnuDetails === 'function') {
console.log(' ✅ Método getOnuDetails encontrado');
} else {
console.log(' ❌ Método getOnuDetails não encontrado');
}
if (typeof sshManager.updateOnuFirmware === 'function') {
console.log(' ✅ Método updateOnuFirmware encontrado');
} else {
console.log(' ❌ Método updateOnuFirmware não encontrado');
}
if (typeof sshManager.parseEquipmentId === 'function') {
console.log(' ✅ Método parseEquipmentId encontrado');
} else {
console.log(' ❌ Método parseEquipmentId não encontrado');
}
// Teste 2: Testar parsing de Equipment ID
console.log('\n🔍 2. Testando parsing de Equipment ID:');
const testOutputs = [
'Equipment ID: DM986-100\nOther info...',
'equipment id : DM986-414\nMore data...',
'Model: DM986-100 Version: 1.0\nExtra info...',
'Some random output without equipment id'
];
testOutputs.forEach((output, index) => {
const equipmentId = sshManager.parseEquipmentId(output);
console.log(` Test ${index + 1}: "${output.substring(0, 30)}..." → Equipment ID: ${equipmentId}`);
});
// Teste 3: Mapear opções de firmware
console.log('\n📦 3. Mapeamento de opções de firmware:');
const firmwareMap = {
'DM986-100': [
'DM986-100-inter.tar (FW INTERMEDIÁRIA)',
'DM986-100-v56.tar (FW ATUAL)',
'DM986-100-R300.tar (FW ROUTER)'
],
'DM986-414': [
'DM986-414-inter.tar (FW INTERMEDIÁRIA)',
'DM986-414-v70.tar (FW ATUAL)'
]
};
Object.entries(firmwareMap).forEach(([model, firmwares]) => {
console.log(` 📱 ${model}:`);
firmwares.forEach(fw => {
console.log(` - ${fw}`);
});
});
// Teste 4: Testar parsing de callbacks
console.log('\n🔄 4. Testando parsing de callbacks de firmware:');
const testCallbacks = [
'update_onu_olt_dito_1/1/1_5',
'firmware_DM986-100-v56.tar_olt_dito_1/1/1_5',
'confirm_firmware_DM986-414-v70.tar_olt_canaa2_2/2/2_10'
];
testCallbacks.forEach(callback => {
console.log(` Callback: ${callback}`);
if (callback.startsWith('update_onu_')) {
const parts = callback.split('_');
let oltId, slot, onuId;
if (parts.length === 6) {
oltId = parts[2] + '_' + parts[3];
slot = parts[4];
onuId = parts[5];
}
console.log(` → Tipo: Update ONU`);
console.log(` → OLT: ${oltId}, Slot: ${slot}, ONU: ${onuId}`);
} else if (callback.startsWith('firmware_')) {
const parts = callback.replace('firmware_', '').split('_');
const firmwareFile = parts[0];
let oltId = parts[1] + '_' + parts[2];
let slot = parts[3];
let onuId = parts[4];
console.log(` → Tipo: Seleção Firmware`);
console.log(` → Firmware: ${firmwareFile}`);
console.log(` → OLT: ${oltId}, Slot: ${slot}, ONU: ${onuId}`);
} else if (callback.startsWith('confirm_firmware_')) {
const parts = callback.replace('confirm_firmware_', '').split('_');
const firmwareFile = parts[0];
let oltId = parts[1] + '_' + parts[2];
let slot = parts[3];
let onuId = parts[4];
console.log(` → Tipo: Confirmação Firmware`);
console.log(` → Firmware: ${firmwareFile}`);
console.log(` → OLT: ${oltId}, Slot: ${slot}, ONU: ${onuId}`);
}
console.log();
});
// Teste 5: Comando de atualização
console.log('📝 5. Exemplo de comando de atualização:');
const slot = '1/1/1';
const onuId = '5';
const firmwareFile = 'DM986-100-v56.tar';
const command = `request firmware onu install ${firmwareFile} interface gpon ${slot} onu ${onuId}`;
console.log(` Comando: ${command}`);
console.log('\n✅ Teste de funcionalidade de firmware concluído!');
console.log('\n🚀 Fluxo de teste no bot:');
console.log(' 1. Digite: "ver sinal DACM91569513"');
console.log(' 2. Clique: "⬆️ Atualizar ONU"');
console.log(' 3. Sistema detecta modelo automaticamente');
console.log(' 4. Escolha opção de firmware');
console.log(' 5. Confirme a atualização');
console.log(' 6. Aguarde o processo completar');
}
// Executar teste
testOnuFirmwareUpdate().catch(console.error);
-37
View File
@@ -1,37 +0,0 @@
const NLPProcessor = require('./src/nlp/processor');
// Teste do processador de linguagem natural
const nlp = new NLPProcessor();
console.log('🧪 Testando o processador de linguagem natural...\n');
const testCases = [
'Desconectar usuario analuciagomes',
'desconectar analuciagomes',
'ver sinal DACM91569513',
'verificar sinal ABCD12345678',
'sinal TESTE123456',
'desconectar cliente joao123',
'kick usuário maria456',
'expulsar cliente teste',
'remover cliente admin',
'desconectar router1',
'desconectar todas conexões',
'listar usuários conectados',
'mostrar clientes',
'ssh juniper',
'conectar concentrador',
'verificar status do concentrador',
'/help',
'/equipamentos',
'ping 131.0.192.254'
];
testCases.forEach((testCase, index) => {
console.log(`${index + 1}. Entrada: "${testCase}"`);
const result = nlp.processMessage(testCase);
console.log(` Resultado:`, result);
console.log('');
});
console.log('✅ Teste concluído!');
-66
View File
@@ -1,66 +0,0 @@
// Teste específico do método resetOnuAlternative
const SSHManager = require('./src/ssh/manager');
async function testResetOnuAlternative() {
console.log('🧪 Testando método resetOnuAlternative...\n');
const sshManager = new SSHManager();
// Verificar se o método existe
console.log('⚙️ Verificando método resetOnuAlternative:');
if (typeof sshManager.resetOnuAlternative === 'function') {
console.log(' ✅ Método resetOnuAlternative encontrado');
} else {
console.log(' ❌ Método resetOnuAlternative não encontrado');
return;
}
// Testar a estrutura do comando
console.log('\n🔍 Estrutura do comando que será executado:');
const slot = '1/1/1';
const onuId = '5';
const command = `config terminal && interface gpon ${slot} && onu-reset onu ${onuId} && exit`;
console.log(` Comando: ${command}`);
// Simular diferentes cenários de parsing
console.log('\n📝 Teste de parsing de callbacks:');
const testCases = [
'reset_onu_olt_dito_1/1/1_5',
'reset_onu_olt_colmeia_2/2/2_10',
'reset_onu_olt_canaa_3/3/3_15',
'reset_onu_olt_canaa2_1/2/3_8'
];
testCases.forEach(callback => {
const parts = callback.split('_');
let oltId, slot, onuId;
if (parts.length === 6) {
oltId = parts[2] + '_' + parts[3];
slot = parts[4];
onuId = parts[5];
} else {
onuId = parts[parts.length - 1];
slot = parts[parts.length - 2];
oltId = parts.slice(2, -2).join('_');
}
console.log(` Callback: ${callback}`);
console.log(` -> OLT: ${oltId}, Slot: ${slot}, ONU: ${onuId}`);
// Mostrar como seria o comando
const cmd = `config terminal && interface gpon ${slot} && onu-reset onu ${onuId} && exit`;
console.log(` -> Comando: ${cmd}`);
console.log();
});
console.log('✅ Testes de estrutura concluídos!');
console.log('\n📋 Diferenças entre as versões:');
console.log(' 🔄 resetOnu (original): Usa shell interativo com detecção de prompts');
console.log(' ⚡ resetOnuAlternative: Usa comando único com operadores &&');
console.log('\n💡 A versão alternativa deve ser mais confiável e evitar timeouts.');
console.log('🚀 Teste no bot usando "ver sinal SERIAL" e clique em "🔌 Reiniciar ONU"');
}
// Executar teste
testResetOnuAlternative().catch(console.error);
-49
View File
@@ -1,49 +0,0 @@
// Teste da versão corrigida do resetOnuAlternative
const SSHManager = require('./src/ssh/manager');
async function testResetOnuFixed() {
console.log('🧪 Testando versão corrigida do resetOnuAlternative...\n');
const sshManager = new SSHManager();
// Verificar OLTs disponíveis
console.log('📋 OLTs disponíveis:');
const olts = sshManager.listOLTs();
olts.forEach(olt => {
console.log(` - ${olt.id}: ${olt.name} (${olt.host})`);
});
console.log('\n🔧 Sequência de comandos que será executada:');
const slot = '1/1/1';
const onuId = '10';
console.log(' 1. config');
console.log(` 2. interface gpon ${slot}`);
console.log(` 3. onu-reset onu ${onuId}`);
console.log(' 4. yes (confirmação)');
console.log(' 5. exit (sai do modo interface: config-gpon-1/1/1 → config)');
console.log(' 6. exit (sai do modo configuração: config → modo normal)');
console.log('\n📝 Diferenças da versão corrigida:');
console.log(' ✅ Usa "config" em vez de "config terminal"');
console.log(' ✅ Executa comandos em sequência, não tudo junto');
console.log(' ✅ Aguarda 2 segundos após onu-reset antes de enviar "yes"');
console.log(' ✅ Adiciona delays entre comandos para estabilidade');
console.log(' ✅ Trata erros de cada comando individualmente');
console.log('\n🎯 Fluxo esperado na OLT:');
console.log(' DM4610-OLT-POP-DITO# config');
console.log(' Entering configuration mode terminal');
console.log(' DM4610-OLT-POP-DITO(config)# interface gpon 1/1/1');
console.log(' DM4610-OLT-POP-DITO(config-gpon-1/1/1)# onu-reset onu 10');
console.log(' Are you sure you want to reset this ONU? [no,yes] yes');
console.log(' DM4610-OLT-POP-DITO(config-gpon-1/1/1)# exit');
console.log(' DM4610-OLT-POP-DITO(config)# exit');
console.log(' DM4610-OLT-POP-DITO#');
console.log('\n✅ Implementação corrigida pronta para teste!');
console.log('🚀 Use o bot: "ver sinal DACM91569513" → "🔌 Reiniciar ONU"');
}
// Executar teste
testResetOnuFixed().catch(console.error);
-70
View File
@@ -1,70 +0,0 @@
// Teste da funcionalidade de Reset ONU
const SSHManager = require('./src/ssh/manager');
async function testResetOnu() {
console.log('🧪 Iniciando teste de Reset ONU...\n');
const sshManager = new SSHManager();
// Teste 1: Verificar se as OLTs estão configuradas
console.log('📋 1. Listando OLTs disponíveis:');
const olts = sshManager.listOLTs();
olts.forEach(olt => {
console.log(` - ${olt.id}: ${olt.name} (${olt.host})`);
});
console.log();
// Teste 2: Testar parsing de callback data
console.log('🔍 2. Testando parsing de callback data:');
const testCallbacks = [
'reset_onu_olt_dito_1/1/1_5',
'reset_onu_olt_colmeia_2/2/2_10',
'reset_onu_olt_canaa_3/3/3_15',
'reset_onu_olt_canaa2_1/2/3_8'
];
testCallbacks.forEach(callback => {
const parts = callback.split('_');
let oltId, slot, onuId;
if (parts.length === 6) {
oltId = parts[2] + '_' + parts[3];
slot = parts[4];
onuId = parts[5];
} else {
onuId = parts[parts.length - 1];
slot = parts[parts.length - 2];
oltId = parts.slice(2, -2).join('_');
}
console.log(` Callback: ${callback}`);
console.log(` -> OLT: ${oltId}, Slot: ${slot}, ONU: ${onuId}`);
console.log();
});
// Teste 3: Verificar se o método resetOnu existe
console.log('⚙️ 3. Verificando método resetOnu:');
if (typeof sshManager.resetOnu === 'function') {
console.log(' ✅ Método resetOnu encontrado');
} else {
console.log(' ❌ Método resetOnu não encontrado');
}
// Teste 4: Simular chamada do método (sem executar)
console.log('\n🔄 4. Simulando estrutura de chamada resetOnu:');
console.log(' Parâmetros esperados: equipmentId, slot, onuId');
console.log(' Exemplo: resetOnu("olt_dito", "1/1/1", "5")');
console.log(' Comandos executados:');
console.log(' 1. config');
console.log(' 2. interface gpon 1/1/1');
console.log(' 3. onu-reset onu 5');
console.log(' 4. yes (confirmação)');
console.log(' 5. exit');
console.log('\n✅ Teste de Reset ONU concluído!');
console.log('📝 Para testar completamente, use o bot com "ver sinal SERIAL"');
console.log(' e clique no botão "🔌 Reiniciar ONU" que aparecerá.');
}
// Executar teste
testResetOnu().catch(console.error);
-60
View File
@@ -1,60 +0,0 @@
// Teste específico para debug do comando "ver sinal"
const BotHandler = require('./src/bot/handler');
// Mock do bot do Telegram
const mockBot = {
sendMessage: async (chatId, message, options) => {
console.log(`📤 MENSAGEM ENVIADA para chat ${chatId}:`);
console.log(` Texto: ${message}`);
if (options) {
console.log(` Opções: ${JSON.stringify(options, null, 2)}`);
}
console.log('');
return { message_id: Date.now() };
}
};
async function testVerSinal() {
console.log('🧪 Testando comando "ver sinal" diretamente...\n');
// Criar handler
const handler = new BotHandler(mockBot);
// Testar método handleVerSinal diretamente
console.log('🎯 Teste 1: Chamando handleVerSinal diretamente');
console.log(' Serial: DACM91569513');
console.log(' ChatId: 123456789\n');
try {
await handler.handleVerSinal(123456789, 'DACM91569513');
console.log('✅ Método handleVerSinal executado sem erros');
} catch (error) {
console.error('❌ Erro no handleVerSinal:', error);
}
console.log('\n🧠 Teste 2: Testando processamento NLP');
const intent = handler.nlp.processMessage('ver sinal DACM91569513');
console.log(' Intent detectado:', intent);
console.log('\n⚙️ Teste 3: Testando executeAction');
const mockUser = { first_name: 'Teste', id: 123456789 };
try {
await handler.executeAction(123456789, intent, mockUser);
console.log('✅ executeAction executado sem erros');
} catch (error) {
console.error('❌ Erro no executeAction:', error);
}
console.log('\n📋 Teste 4: Verificando OLTs disponíveis');
const olts = handler.ssh.listOLTs();
console.log(` OLTs encontradas: ${olts.length}`);
olts.forEach(olt => {
console.log(` - ${olt.id}: ${olt.name} (${olt.host})`);
});
console.log('\n✅ Teste de debug concluído!');
}
// Executar teste
testVerSinal().catch(console.error);