Browse Source

Desabilita este cronjob

pull/159/head
Sesostris Vieira 2 years ago
parent
commit
c681050410
  1. 85
      sigi/apps/servicos/jobs/daily/sincroniza_dns.py

85
sigi/apps/servicos/jobs/daily/sincroniza_dns.py

@ -1,5 +1,4 @@
import datetime import datetime
from typing import TypedDict
import docutils.core import docutils.core
import json import json
import shutil import shutil
@ -15,6 +14,7 @@ from sigi.apps.casas.models import Orgao
from sigi.apps.contatos.models import UnidadeFederativa from sigi.apps.contatos.models import UnidadeFederativa
LOG_GERAL = _("Mensagens gerais") LOG_GERAL = _("Mensagens gerais")
IGNORES = ["_psl", "k8s", "www.", "sapl."]
get_iname = lambda d: "-".join(d.split(".")[:-2]) get_iname = lambda d: "-".join(d.split(".")[:-2])
get_sigla_serv = lambda d: "".join(d.split(".")[-2:]).upper() get_sigla_serv = lambda d: "".join(d.split(".")[-2:]).upper()
@ -47,6 +47,19 @@ class Job(DailyJob):
f" Início: {datetime.datetime.now(): %d/%m/%Y %H:%M:%S}" f" Início: {datetime.datetime.now(): %d/%m/%Y %H:%M:%S}"
) )
) )
# TODO: Resolver
print("Este CRON está desativado até resolvermos questões internas")
return
self._log[LOG_GERAL] = get_log_entry()
if (
not settings.REGISTRO_PATH.exists()
or not settings.REGISTRO_PATH.is_dir()
):
self.error(_(f"Arquivos de DNS não encontrados."))
self.report()
return
self._nomes_gerados = { self._nomes_gerados = {
generate_instance_name(o): o generate_instance_name(o): o
@ -57,8 +70,6 @@ class Job(DailyJob):
tipo_servico__modo="R", data_desativacao=None tipo_servico__modo="R", data_desativacao=None
).update(flag_confirmado=False) ).update(flag_confirmado=False)
self._log[LOG_GERAL] = get_log_entry()
for uf in UnidadeFederativa.objects.all(): for uf in UnidadeFederativa.objects.all():
self._log[uf] = get_log_entry() self._log[uf] = get_log_entry()
self.processa_uf(uf) self.processa_uf(uf)
@ -89,8 +100,8 @@ class Job(DailyJob):
except: except:
pass pass
if "_psl" in dominio: if any([i in dominio for i in IGNORES]):
# Ignorar registros _PSL sem fazer log # # Ignorar esses registros sem fazer log #
return return
try: try:
@ -119,6 +130,34 @@ class Job(DailyJob):
) )
return return
except Servico.DoesNotExist: except Servico.DoesNotExist:
# Tenta encontrar um registro desativado para esta instância #
servico = Servico.objects.filter(
tipo_servico=tipo, instancia=iname
).first()
if servico is not None:
# Reativa o servico #
servico.data_desativacao = None
servico.instancia = iname
self.log_reativa(servico)
else:
servico = None
# Tenta encontrar um registro ativo com mesmo domínio #
servico = Servico.objects.filter(
tipo_servico=tipo, url=dominio, data_desativacao=None
).first()
if servico is not None:
self.log_update(servico)
else:
# Tenta encontrar um registro desativado com mesmo domínio #
servico = Servico.objects.filter(
tipo_servico=tipo, url=dominio
).first()
if servico is not None:
servico.instancia = iname
self.log_reativa(servico)
if servico is None:
# Tenta criar o registro #
if iname in self._nomes_gerados: if iname in self._nomes_gerados:
orgao = self._nomes_gerados[iname] orgao = self._nomes_gerados[iname]
log_entry = orgao.municipio.uf log_entry = orgao.municipio.uf
@ -130,33 +169,19 @@ class Job(DailyJob):
flag_confirmado=True, flag_confirmado=True,
) )
self.log_novo(servico) self.log_novo(servico)
else:
if nivel < 4: if servico is None:
# Ignora registros de 3º nível ou abaixo, sem logar # if nivel > 3:
return # Loga registro não encontrado apenas para 4º+ nível #
try:
servico = Servico.objects.get(
tipo_servico=tipo,
url__icontains=dominio,
data_desativacao=None,
)
self.log_update(servico)
except Servico.MultipleObjectsReturned:
self.log_ignore(
dominio,
_("existe mais de um registro no SIGI deste domínio."),
log_entry,
)
return
except Servico.DoesNotExist:
self.log_ignore( self.log_ignore(
dominio, dominio,
_("não parece pertencer a nenhum órgão"), _("não parece pertencer a nenhum órgão"),
log_entry, log_entry,
) )
return else:
# atualiza o serviço no SIGI # atualiza o serviço no SIGI
servico.url = dominio servico.url = dominio
servico.instancia = iname
servico.hospedagem_interlegis = True servico.hospedagem_interlegis = True
servico.data_verificacao = timezone.localtime() servico.data_verificacao = timezone.localtime()
servico.resultado_verificacao = "F" # Funcionando servico.resultado_verificacao = "F" # Funcionando
@ -286,6 +311,16 @@ class Job(DailyJob):
uf = srv.casa_legislativa.municipio.uf uf = srv.casa_legislativa.municipio.uf
self._log[uf]["sumario"]["atualizados"] += 1 self._log[uf]["sumario"]["atualizados"] += 1
def log_reativa(self, srv):
orgao = srv.casa_legislativa
uf = orgao.municipio.uf
msg = _(
f"Instância {srv.instancia} de {srv.tipo_servico.nome} "
f"para {orgao.nome} ({uf.sigla}) reativada no SIGI"
)
self._log[uf]["sumario"]["atualizados"] += 1
self.info(msg, uf)
def log_remove(self, srv): def log_remove(self, srv):
orgao = srv.casa_legislativa orgao = srv.casa_legislativa
uf = orgao.municipio.uf uf = orgao.municipio.uf

Loading…
Cancel
Save