Importar a rede do SysFTTH¶
Traz a rede física documentada no SysFTTH para o NOC FTTH: POPs, postes, caixas (CTO/CEO), modelos de cabo, cabos com traçado, splitters (inclusive desbalanceados, como 5:95), portas e cascatas. O SysFTTH não é alterado: só se lê uma exportação dele.
Pode repetir
Cada registro do SysFTTH fica ligado ao registro criado aqui. Rodar de novo atualiza o que já veio e traz o que é novo; nada é duplicado nem apagado. Até a virada, o SysFTTH é a fonte: alterações feitas no NOC FTTH em itens importados são sobrescritas na próxima importação.
1. Antes: cadastrar as OLTs¶
OLTs precisam de IP e acesso, que o SysFTTH não tem. Cadastre cada OLT no admin (OLTs → Adicionar) com o mesmo nome que ela tem no SysFTTH (maiúsculas não importam). É pelo nome que o importador liga as portas PON e os splitters a ela. Sem isso, a importação funciona, mas avisa que os splitters ficaram sem origem.
2. Exportar no servidor do SysFTTH¶
São só consultas de leitura. Os clientes saem sem documento, contrato nem endereço.
C=$(docker ps -qf ancestor=postgis/postgis:16-3.4)
rm -rf /tmp/sysftth && mkdir -p /tmp/sysftth
for t in pops olts olt_ports poles cable_models cables cable_fibers cable_reserves ctos splitters splitter_ports splices; do
G=""; docker exec "$C" sh -c "psql -U \"\$POSTGRES_USER\" -d \"\$POSTGRES_DB\" -Atc \"SELECT 1 FROM information_schema.columns WHERE table_name='$t' AND column_name='geom'\"" | grep -q 1 && G=", ST_AsGeoJSON(x.geom)::json AS geom_json"
docker exec -i "$C" sh -c 'psql -U "$POSTGRES_USER" -d "$POSTGRES_DB" -At' > /tmp/sysftth/$t.jsonl <<SQL
SELECT row_to_json(t) FROM (SELECT x.* $G FROM $t x) t;
SQL
done
docker exec -i "$C" sh -c 'psql -U "$POSTGRES_USER" -d "$POSTGRES_DB" -At' > /tmp/sysftth/clients.jsonl <<'SQL'
SELECT row_to_json(t) FROM (SELECT id, name, splitter_port_id, drop_length_km FROM clients) t;
SQL
tar czf /root/sysftth-export.tar.gz -C /tmp/sysftth .
Copie o sysftth-export.tar.gz para o servidor do NOC FTTH (ex.: /opt/noc-ftth/).
3. Simular e importar no servidor do NOC FTTH¶
cd /opt/noc-ftth
docker compose cp sysftth-export.tar.gz web:/tmp/
# Simulação: faz tudo, mostra o relatório e desfaz
docker compose exec web python manage.py importar_sysftth /tmp/sysftth-export.tar.gz --simular
# Para valer (troque pelo seu e-mail: aparece na auditoria)
docker compose exec web python manage.py importar_sysftth /tmp/sysftth-export.tar.gz \
--usuario voce@exemplo.com --relatorio /tmp/relatorio.csv
docker compose cp web:/tmp/relatorio.csv .
O relatório (relatorio.csv, separado por ;, abre no Excel/LibreOffice) traz os avisos e
a lista de clientes do SysFTTH com caixa e porta, para conferência.
Como os dados são convertidos¶
| SysFTTH | NOC FTTH |
|---|---|
ctos tipo FTTH / CEO |
Caixa CTO / CEO. Código = code (ou name, se vazio), em maiúsculas |
poles |
Postes (tipo e material juntos quando iguais) |
cables |
Cabos com traçado; pontas ligadas à caixa/POP a até 25 m de cada extremidade; sem modelo → "Genérico N FO" |
splitters 1:N |
Splitter 1:N; 5:95, 10:90… → 1:2 desbalanceado, com a perda de cada porta |
| Splitter com porta pai | Entrada pela porta do splitter pai (cascata) |
| Splitter com porta da OLT | Entrada direta pela porta PON (o SysFTTH não documenta a fibra da OLT até ele) |
| Emenda fibra → entrada de splitter | Entrada do splitter pela fibra (se não tiver cascata nem PON) |
| Emenda porta de splitter → fibra | Fibra de saída da porta (a porta vira de cascata) |
splitter_ports.status |
Livre, reservada ou defeito. "ocupada" não é copiado: a ocupação vem das ONUs |
clients |
Não viram ONU (não têm MAC): vão para o relatório. As ONUs virão do SysOLT |
olts |
Não são criadas; ligadas pelo nome às OLTs já cadastradas |