limpeza
This commit is contained in:
1 parent
2d2e40214b
commit
a88ee59f0d
20 files changed
-2509
No files matched your search
@@ -1,208 +0,0 @@
|
||||
# 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:
|
||||
```bash
|
||||
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
|
||||
```bash
|
||||
show running-config service-port | context-match "gpon SLOT onu ONU_ID"
|
||||
```
|
||||
|
||||
### Remoção da ONU
|
||||
```bash
|
||||
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`
|
||||
Reference in new issue
Block a user