datacom: remove multiplos services-ports
Signed-off-by: Rodrigo Bertoldo de Sousa Martins <rodrigo.sousa.577@gmail.com>
This commit is contained in:
1 parent
0aa2ff478a
commit
dd2d026fa0
2 files changed
+103
-61
No files matched your search
+34
-27
@@ -2330,10 +2330,11 @@ Digite /help para ver todos os comandos disponíveis!
|
||||
|
||||
if (result.success && result.readyForRemoval) {
|
||||
// ONU encontrada - mostrar informações e pedir confirmação
|
||||
// O service-port NÃO é incluído no callback_data pois removeOnu busca todos automaticamente
|
||||
const keyboard = {
|
||||
inline_keyboard: [
|
||||
[
|
||||
{ text: '✅ CONFIRMAR REMOÇÃO', callback_data: `confirm_remove_${oltId}_${result.slot.replace(/\//g, '-')}_${result.onuId}_${result.servicePort}_${serialNumber}` }
|
||||
{ text: '✅ CONFIRMAR REMOÇÃO', callback_data: `confirm_remove_${oltId}_${result.slot.replace(/\//g, '-')}_${result.onuId}_${serialNumber}` }
|
||||
],
|
||||
[
|
||||
{ text: '❌ Cancelar', callback_data: 'cancel_action' }
|
||||
@@ -2341,11 +2342,15 @@ Digite /help para ver todos os comandos disponíveis!
|
||||
]
|
||||
};
|
||||
|
||||
const servicePortsInfo = result.servicePorts && result.servicePorts.length > 1
|
||||
? `🔌 **Service-ports:** ${result.servicePorts.join(', ')} *(${result.servicePorts.length} encontrados — todos serão removidos)*`
|
||||
: `🔌 **Service-port:** ${result.servicePort}`;
|
||||
|
||||
await this.bot.editMessageText(
|
||||
`⚠️ **CONFIRMAÇÃO DE REMOÇÃO**\n\n` +
|
||||
`📱 **Serial:** ${serialNumber}\n` +
|
||||
`📍 **Localização:** Slot ${result.slot}, ONU ${result.onuId}\n` +
|
||||
`🔌 **Service-port:** ${result.servicePort}\n` +
|
||||
`${servicePortsInfo}\n` +
|
||||
`🏢 **OLT:** ${oltId.replace('olt_', '').replace(/_/g, '\\_').toUpperCase()}\n\n` +
|
||||
`⚠️ **ATENÇÃO:** Esta ação não pode ser desfeita!\n` +
|
||||
`A ONU será completamente removida da OLT.\n\n` +
|
||||
@@ -2393,35 +2398,33 @@ Digite /help para ver todos os comandos disponíveis!
|
||||
const chatId = callbackQuery.message.chat.id;
|
||||
console.log(`🔍 handleConfirmRemoveCallback chamado com data: ${data}`);
|
||||
|
||||
const parts = data.split('_'); // confirm_remove_olt_dito_[slot]_[onuId]_[servicePort]_[serialNumber]
|
||||
// Novo formato (sem servicePort): confirm_remove_olt_dito_[slot]_[onuId]_[serialNumber]
|
||||
const parts = data.split('_');
|
||||
console.log(`🔍 Parts: ${JSON.stringify(parts)}`);
|
||||
|
||||
let oltId, slot, onuId, servicePort, serialNumber;
|
||||
let oltId, slot, onuId, serialNumber;
|
||||
|
||||
if (parts.length >= 9 && parts[3] === 'pedro' && parts[4] === 'afonso') {
|
||||
// Caso: confirm_remove_olt_pedro_afonso_slot_onuId_servicePort_serialNumber
|
||||
if (parts.length >= 8 && parts[3] === 'pedro' && parts[4] === 'afonso') {
|
||||
// Caso: confirm_remove_olt_pedro_afonso_slot_onuId_serialNumber
|
||||
oltId = parts[2] + '_' + parts[3] + '_' + parts[4]; // "olt_pedro_afonso"
|
||||
slot = parts[5].replace(/-/g, '/'); // Converter de volta: "1-1-3" -> "1/1/3"
|
||||
slot = parts[5].replace(/-/g, '/');
|
||||
onuId = parts[6];
|
||||
servicePort = parts[7];
|
||||
serialNumber = parts.slice(8).join('_'); // Serial pode ter underscores
|
||||
} else if (parts.length >= 8) {
|
||||
// Caso: confirm_remove_olt_dito_slot_onuId_servicePort_serialNumber
|
||||
serialNumber = parts.slice(7).join('_');
|
||||
} else if (parts.length >= 7) {
|
||||
// Caso: confirm_remove_olt_dito_slot_onuId_serialNumber
|
||||
oltId = parts[2] + '_' + parts[3]; // "olt_dito"
|
||||
slot = parts[4].replace(/-/g, '/'); // Converter de volta: "1-1-3" -> "1/1/3"
|
||||
slot = parts[4].replace(/-/g, '/');
|
||||
onuId = parts[5];
|
||||
servicePort = parts[6];
|
||||
serialNumber = parts.slice(7).join('_'); // Serial pode ter underscores
|
||||
} else {
|
||||
// Fallback - caso não siga o padrão esperado
|
||||
oltId = parts[2];
|
||||
slot = parts[3].replace(/-/g, '/'); // Converter de volta também no fallback
|
||||
onuId = parts[4];
|
||||
servicePort = parts[5];
|
||||
serialNumber = parts.slice(6).join('_');
|
||||
} else {
|
||||
// Fallback
|
||||
oltId = parts[2];
|
||||
slot = parts[3].replace(/-/g, '/');
|
||||
onuId = parts[4];
|
||||
serialNumber = parts.slice(5).join('_');
|
||||
}
|
||||
|
||||
console.log(`🔍 Parsed - oltId: ${oltId}, slot: ${slot}, onuId: ${onuId}, servicePort: ${servicePort}, serialNumber: ${serialNumber}`);
|
||||
console.log(`🔍 Parsed - oltId: ${oltId}, slot: ${slot}, onuId: ${onuId}, serialNumber: ${serialNumber}`);
|
||||
|
||||
await this.bot.answerCallbackQuery(callbackQuery.id);
|
||||
|
||||
@@ -2429,9 +2432,8 @@ Digite /help para ver todos os comandos disponíveis!
|
||||
`🗑️ **Removendo ONU...**\n\n` +
|
||||
`📱 **Serial:** ${serialNumber}\n` +
|
||||
`📍 **Localização:** Slot ${slot}, ONU ${onuId}\n` +
|
||||
`🔌 **Service-port:** ${servicePort}\n` +
|
||||
`🏢 **OLT:** ${oltId.replace('olt_', '').replace(/_/g, '\\_').toUpperCase()}\n\n` +
|
||||
`⏳ Executando comandos de remoção...`,
|
||||
`⏳ Buscando e removendo todos os service-ports...`,
|
||||
{
|
||||
chat_id: chatId,
|
||||
message_id: callbackQuery.message.message_id,
|
||||
@@ -2440,19 +2442,25 @@ Digite /help para ver todos os comandos disponíveis!
|
||||
);
|
||||
|
||||
try {
|
||||
const result = await this.ssh.removeOnu(oltId, slot, onuId, servicePort);
|
||||
const result = await this.ssh.removeOnu(oltId, slot, onuId);
|
||||
|
||||
if (result.success) {
|
||||
const portsRemovidos = result.servicePorts && result.servicePorts.length > 0
|
||||
? result.servicePorts.join(', ')
|
||||
: 'N/A';
|
||||
const portsLabel = result.servicePorts && result.servicePorts.length > 1
|
||||
? `• Removidos ${result.servicePorts.length} service-ports (${portsRemovidos})`
|
||||
: `• Removido service-port ${portsRemovidos}`;
|
||||
|
||||
await this.bot.editMessageText(
|
||||
`✅ **ONU Removida com Sucesso!**\n\n` +
|
||||
`📱 **Serial:** ${serialNumber}\n` +
|
||||
`📍 **Localização:** Slot ${slot}, ONU ${onuId}\n` +
|
||||
`🔌 **Service-port:** ${servicePort}\n` +
|
||||
`🏢 **OLT:** ${oltId.replace('olt_', '').replace(/_/g, '\\_').toUpperCase()}\n\n` +
|
||||
`✅ **Status:** ONU removida completamente\n` +
|
||||
`🗑️ **Ações realizadas:**\n` +
|
||||
`• Removida interface ONU\n` +
|
||||
`• Removido service-port\n` +
|
||||
`${portsLabel}\n` +
|
||||
`• Configuração commitada\n\n` +
|
||||
`💡 A ONU pode ser reconfigurada quando necessário`,
|
||||
{
|
||||
@@ -2466,7 +2474,6 @@ Digite /help para ver todos os comandos disponíveis!
|
||||
`❌ **Erro na Remoção**\n\n` +
|
||||
`📱 **Serial:** ${serialNumber}\n` +
|
||||
`📍 **Localização:** Slot ${slot}, ONU ${onuId}\n` +
|
||||
`🔌 **Service-port:** ${servicePort}\n` +
|
||||
`🏢 **OLT:** ${oltId.replace('olt_', '').replace(/_/g, '\\_').toUpperCase()}\n\n` +
|
||||
`❌ **Erro:** ${result.message}\n\n` +
|
||||
`🔄 Verifique o status da ONU ou tente novamente`,
|
||||
|
||||
Reference in new issue
Block a user