Pular para conteúdo

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