|
|
@@ -1,161 +0,0 @@
|
|
|
-from django.shortcuts import render
|
|
|
-from .models import *
|
|
|
-
|
|
|
-from datetime import datetime
|
|
|
-import subprocess
|
|
|
-
|
|
|
-from configurazione.views import *
|
|
|
-
|
|
|
-# Create your views here.
|
|
|
-def CheckMailSize(request,DominioId=None):
|
|
|
- #verifica la dimensione delle email.
|
|
|
-
|
|
|
- #evita le verifiche di sicurezza, altrimenti si dovrebbe fare il login,
|
|
|
- #passa direttamente all'acquisizione.
|
|
|
-
|
|
|
- elenco_domini = None
|
|
|
- if DominioId:
|
|
|
- elenco_domini = Domini.objects.filter(tobedeleted=False).filter(id=DominioId)
|
|
|
- else:
|
|
|
- elenco_domini = Domini.objects.filter(tobedeleted=False)
|
|
|
-
|
|
|
- # una volta ottenuto l'elenco dei domini, procediamo con la scansione delle caselle di posta
|
|
|
-
|
|
|
- # costruzione della struttura su cui lavorarea
|
|
|
- pathmail = getConfigurazione("mail_home_structure")
|
|
|
- for ed in elenco_domini:
|
|
|
- print(f"id {ed.id}")
|
|
|
- server = None
|
|
|
- try:
|
|
|
- server = ed.mail_server.server
|
|
|
- except MailServer.DoesNotExist as dnf:
|
|
|
- print("Server non definito - salto")
|
|
|
-
|
|
|
- print(f"server {server}")
|
|
|
-
|
|
|
- #elenco delle email:
|
|
|
- em = User.objects.filter(domain=ed.id).filter(tobedeleted=False).filter(enabled=True)
|
|
|
- print(f"numero di mail: {len(em)}")
|
|
|
- totale_quota = 0
|
|
|
-
|
|
|
- for e in em:
|
|
|
- if server:
|
|
|
- checkto = pathmail.format(**{'server':server,'domain':ed.domain,'mail':e.mail})
|
|
|
- print(f" check to {checkto}")
|
|
|
-
|
|
|
- comando = f'ssh root@{ed.mail_server.ip} du -sm /{ed.mail_server.server}/{ed.domain}/{e.mail}'
|
|
|
- print("c",comando)
|
|
|
- comando = comando.encode('utf-8')
|
|
|
-
|
|
|
- msgrisposta = "CHECKED"
|
|
|
- risposta=""
|
|
|
- quota = 0
|
|
|
- try:
|
|
|
- print("eseguo risposta")
|
|
|
- risposta = subprocess.check_output(comando,shell=True)
|
|
|
- print(f"risposta: {risposta}")
|
|
|
- except subprocess.CalledProcessError as cpe:
|
|
|
- print("Errore risposta")
|
|
|
- quota = 0
|
|
|
- msgrisposta = 'NOTCHECK'
|
|
|
- risposta = "0\t\0"
|
|
|
- else:
|
|
|
- print(risposta)
|
|
|
- risposta = risposta.decode().split('\t')[0]
|
|
|
- quota = risposta
|
|
|
- totale_quota = totale_quota + int(quota)
|
|
|
-
|
|
|
-
|
|
|
- print(f"Quota: {quota}/{totale_quota}")
|
|
|
-
|
|
|
- u = User.objects.get(pk=e.id)
|
|
|
- u.mail_quota = quota
|
|
|
- u.save()
|
|
|
-
|
|
|
- ed.mail_quota = totale_quota
|
|
|
- ed.save()
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- data = {}
|
|
|
- data['elenco_domini'] = elenco_domini
|
|
|
-
|
|
|
- return render(request,"servizi.lista.mail.size.html",data)
|
|
|
-
|
|
|
-
|
|
|
-def CheckHttpSize(request,DominioId=None):
|
|
|
- #verifica la dimensione delle email.
|
|
|
-
|
|
|
- #evita le verifiche di sicurezza, altrimenti si dovrebbe fare il login,
|
|
|
- #passa direttamente all'acquisizione.
|
|
|
-
|
|
|
- elenco_domini = None
|
|
|
- if DominioId:
|
|
|
- elenco_domini = Domini.objects.filter(tobedeleted=False).filter(id=DominioId)
|
|
|
- else:
|
|
|
- elenco_domini = Domini.objects.filter(tobedeleted=False)
|
|
|
-
|
|
|
- # una volta ottenuto l'elenco dei domini, procediamo con la scansione delle caselle di posta
|
|
|
-
|
|
|
- # costruzione della struttura su cui lavorare
|
|
|
- pathmail = getConfigurazione("ftp_home_structure")
|
|
|
- for ed in elenco_domini:
|
|
|
- print(f"id {ed.id}")
|
|
|
- server = None
|
|
|
-
|
|
|
- try:
|
|
|
- server = ed.mail_server.server
|
|
|
- except MailServer.DoesNotExist as dnf:
|
|
|
- print("Server non definito - salto")
|
|
|
-
|
|
|
- print(f"server {server}")
|
|
|
-
|
|
|
- #elenco delle email:
|
|
|
- em = User.objects.filter(domain=ed.id).filter(tobedeleted=False).filter(enabled=True)
|
|
|
- print(f"numero di mail: {len(em)}")
|
|
|
- totale_quota = 0
|
|
|
-
|
|
|
- for e in em:
|
|
|
- if server:
|
|
|
- checkto = pathmail.format(**{'server':server,'domain':ed.domain,'mail':e.mail})
|
|
|
- print(f" check to {checkto}")
|
|
|
-
|
|
|
- comando = f'ssh root@{ed.mail_server.ip} du -sm /{ed.mail_server.server}/{ed.domain}/{e.mail}'
|
|
|
- print("c",comando)
|
|
|
- comando = comando.encode('utf-8')
|
|
|
-
|
|
|
- msgrisposta = "CHECKED"
|
|
|
- risposta=""
|
|
|
- quota = 0
|
|
|
- try:
|
|
|
- print("eseguo risposta")
|
|
|
- risposta = subprocess.check_output(comando,shell=True)
|
|
|
- print(f"risposta: {risposta}")
|
|
|
- except subprocess.CalledProcessError as cpe:
|
|
|
- print("Errore risposta")
|
|
|
- quota = 0
|
|
|
- msgrisposta = 'NOTCHECK'
|
|
|
- risposta = "0\t\0"
|
|
|
- else:
|
|
|
- print(risposta)
|
|
|
- risposta = risposta.decode().split('\t')[0]
|
|
|
- quota = risposta
|
|
|
- totale_quota = totale_quota + int(quota)
|
|
|
-
|
|
|
-
|
|
|
- print(f"Quota: {quota}/{totale_quota}")
|
|
|
-
|
|
|
- u = User.objects.get(pk=e.id)
|
|
|
- u.mail_quota = quota
|
|
|
- u.save()
|
|
|
-
|
|
|
- ed.mail_quota = totale_quota
|
|
|
- ed.save()
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- data = {}
|
|
|
- data['elenco_domini'] = elenco_domini
|
|
|
-
|
|
|
- return render(request,"servizi.lista.http.size.html",data)
|
|
|
-
|