5.0 KiB
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 FHTT12345678remover DACM91569513deletar 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 ONUparseServicePort()- Extrai service-port da saída SSHremoveOnu()- 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 removerhandleRemoveOnuCallback()- Callback para seleção de OLThandleConfirmRemoveCallback()- 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
- Irreversibilidade: Ação não pode ser desfeita
- Timeout: Operações longas podem exceder 60s
- Dependência SSH: Requer conectividade estável
- Permissões: Usuário SSH deve ter privilégios admin
Próximas Melhorias
- Log de Auditoria: Registrar todas as remoções
- Backup de Configuração: Salvar config antes de remover
- Remoção em Lote: Remover múltiplas ONUs
- Validação Avançada: Verificar se ONU está offline
Teste da Funcionalidade
Cenário de Teste
- Digite:
remover onu FHTT12345678 - Selecione uma OLT na lista
- Verifique as informações exibidas
- Confirme a remoção
- Aguarde conclusão da operação
Comandos de Teste
remover onu TESTE123456deletar TESTE123456apagar onu TESTE123456remove TESTE123456