Files
rodrigonet/REMOVE-ONU-FEATURE.md
T
2025-08-08 10:22:27 -03:00

5.0 KiB

Funcionalidade: Remover ONU

Descrição

Nova funcionalidade implementada para remover ONUs completamente das OLTs, incluindo a interface e o service-port.

Como Usar

Comando de Texto

remover onu SERIAL_DA_ONU
remover SERIAL_DA_ONU
deletar onu SERIAL_DA_ONU
apagar SERIAL_DA_ONU

Exemplos

  • remover onu FHTT12345678
  • remover DACM91569513
  • deletar onu ABCD12345678

Fluxo de Operação

1. Comando Inicial

O usuário digita o comando com o serial da ONU que deseja remover.

2. Seleção da OLT

O bot apresenta uma lista das OLTs disponíveis para o usuário escolher onde buscar a ONU.

3. Busca da ONU

O sistema busca a ONU pelo serial na OLT selecionada e localiza:

  • Slot da ONU
  • ONU ID
  • Service-port associado

4. Confirmação

Antes de remover, o bot exibe todas as informações encontradas e pede confirmação:

  • Serial da ONU
  • Localização (slot e ONU ID)
  • Service-port
  • OLT selecionada

5. Remoção

Após confirmação, o sistema executa automaticamente:

config
interface gpon SLOT
no onu ONU_ID
top
no service-port SERVICE_PORT_ID
commit
top
exit
exit

Comandos SSH Executados

Busca do Service-port

show running-config service-port | context-match "gpon SLOT onu ONU_ID"

Remoção da ONU

config
interface gpon 1/1/3          # Exemplo de slot
no onu 0                      # Exemplo de ONU ID
top
no service-port 102           # Exemplo de service-port
commit
top
exit
exit

Recursos de Segurança

Confirmação Obrigatória

  • Sistema exige confirmação explícita antes de remover
  • Exibe todas as informações da ONU antes da remoção
  • Aviso de que a ação não pode ser desfeita

Validação de Dados

  • Verifica se a ONU existe na OLT selecionada
  • Localiza o service-port automaticamente
  • Confirma todas as informações antes de proceder

Processo Controlado

  • Usa shell interativo para manter contexto
  • Timeout de segurança (60 segundos)
  • Logging detalhado de todas as operações

Tratamento de Erros

ONU Não Encontrada

  • Mensagem clara informando que a ONU não foi encontrada
  • Sugestão para verificar serial ou tentar outra OLT

Erro de Conexão

  • Informa problemas de conectividade com a OLT
  • Sugere tentar novamente

Service-port Não Encontrado

  • Caso o service-port não seja localizado
  • Exibe saída dos comandos para diagnóstico

Timeout

  • Processo é interrompido após 60 segundos
  • Conexão é fechada adequadamente

Resultados

Sucesso

✅ ONU Removida com Sucesso!

📱 Serial: FHTT12345678
📍 Localização: Slot 1/1/3, ONU 0
🔌 Service-port: 102
🏢 OLT: DITO

✅ Status: ONU removida completamente
🗑️ Ações realizadas:
• Removida interface ONU
• Removido service-port
• Configuração commitada

💡 A ONU pode ser reconfigurada quando necessário

Erro

❌ Erro na Remoção

📱 Serial: FHTT12345678
📍 Localização: Slot 1/1/3, ONU 0
🔌 Service-port: 102
🏢 OLT: DITO

❌ Erro: [Descrição do erro]

🔄 Verifique o status da ONU ou tente novamente

Arquivos Modificados

1. src/ssh/manager.js

  • findServicePort() - Localiza service-port de uma ONU
  • parseServicePort() - Extrai service-port da saída SSH
  • removeOnu() - Remove ONU completa (shell interativo)
  • removeOnuBySerial() - Processo completo por serial

2. src/nlp/processor.js

  • Adicionado 'remover_onu' aos actionSynonyms
  • Novos padrões regex para comandos de remoção
  • looksLikeOnuSerial() - Valida formato de serial

3. src/bot/handler.js

  • handleRemoverOnu() - Interface para comando remover
  • handleRemoveOnuCallback() - Callback para seleção de OLT
  • handleConfirmRemoveCallback() - Callback para confirmação
  • Atualização da mensagem de help

Considerações Técnicas

Performance

  • Processo otimizado em 3 etapas bem definidas
  • Uso de shell interativo para operações complexas
  • Timeout adequado para operações da OLT

Confiabilidade

  • Validação em todas as etapas
  • Rollback não implementado (por design do equipamento)
  • Logs detalhados para troubleshooting

Usabilidade

  • Interface intuitiva com botões
  • Mensagens claras e informativas
  • Confirmação visual antes da ação

Limitações

  1. Irreversibilidade: Ação não pode ser desfeita
  2. Timeout: Operações longas podem exceder 60s
  3. Dependência SSH: Requer conectividade estável
  4. Permissões: Usuário SSH deve ter privilégios admin

Próximas Melhorias

  1. Log de Auditoria: Registrar todas as remoções
  2. Backup de Configuração: Salvar config antes de remover
  3. Remoção em Lote: Remover múltiplas ONUs
  4. Validação Avançada: Verificar se ONU está offline

Teste da Funcionalidade

Cenário de Teste

  1. Digite: remover onu FHTT12345678
  2. Selecione uma OLT na lista
  3. Verifique as informações exibidas
  4. Confirme a remoção
  5. Aguarde conclusão da operação

Comandos de Teste

  • remover onu TESTE123456
  • deletar TESTE123456
  • apagar onu TESTE123456
  • remove TESTE123456