mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-22 06:28:41 +02:00
End of ticket #26
This commit is contained in:
@@ -1,15 +1,11 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from mailng.lib import db
|
||||
from django.conf import settings
|
||||
from mailng.lib import db, parameters
|
||||
|
||||
if __name__ == "__main__":
|
||||
conn = db.getconnection("amavis_quarantine")
|
||||
try:
|
||||
max_messages_age = getattr(settings, "MAX_MESSAGES_AGE")
|
||||
except AttributeError:
|
||||
max_messages_age = 14
|
||||
max_messages_age = parameters.get("amavis_quarantine", "MAX_MESSAGES_AGE")
|
||||
|
||||
print "Deleting messages older than %d days..." % max_messages_age
|
||||
db.execute(conn, """
|
||||
|
||||
@@ -2,25 +2,18 @@ import socket
|
||||
import re
|
||||
import struct
|
||||
import string
|
||||
from django.conf import settings
|
||||
|
||||
def getParam(param, default=None):
|
||||
try:
|
||||
res = getattr(settings, param)
|
||||
except AttributeError:
|
||||
res = default
|
||||
return res
|
||||
from mailng.lib import parameters
|
||||
|
||||
class AMrelease(object):
|
||||
def __init__(self):
|
||||
mode = getParam('AM_PDP_MODE', "unix")
|
||||
mode = parameters.get("amavis_quarantine", "AM_PDP_MODE")
|
||||
if mode == "inet":
|
||||
host = getParam('AM_PDP_HOST', 'localhost')
|
||||
port = getParam('AM_PDP_PORT', '9998')
|
||||
host = parameters.get("amavis_quarantine", 'AM_PDP_HOST')
|
||||
port = parameters.get("amavis_quarantine", 'AM_PDP_PORT')
|
||||
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
self.sock.connect((host, int(port)))
|
||||
else:
|
||||
path = getParam('AM_PDP_SOCKET', '/var/amavis/amavisd.sock')
|
||||
path = parameters.get("amavis_quarantine", 'AM_PDP_SOCKET')
|
||||
self.sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
|
||||
self.sock.connect(path)
|
||||
|
||||
|
||||
@@ -27,6 +27,16 @@ def init():
|
||||
events.register("UserMenuDisplay", menu)
|
||||
parameters.register("amavis_quarantine", "MAX_MESSAGES_AGE", "int", 14,
|
||||
help=_("Quarantine messages maximum age (in days) before deletion"))
|
||||
parameters.register("amavis_quarantine", "AM_PDP_MODE", "list", "unix",
|
||||
values=[("inet", "inet"), ("unix", "unix")],
|
||||
help="")
|
||||
parameters.register("amavis_quarantine", "AM_PDP_HOST", "string", "localhost",
|
||||
help="")
|
||||
parameters.register("amavis_quarantine", "AM_PDP_PORT", "int", 9998,
|
||||
help="")
|
||||
parameters.register("amavis_quarantine", "AM_PDP_SOCKET", "string",
|
||||
"/var/amavis/amavisd.sock",
|
||||
help="")
|
||||
|
||||
def urls():
|
||||
return (r'^mailng/quarantine/',
|
||||
|
||||
@@ -9,7 +9,7 @@ functionality into Postfix.
|
||||
"""
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.utils.translation import ugettext as _
|
||||
from mailng.lib import events
|
||||
from mailng.lib import events, parameters
|
||||
from mailng import main
|
||||
from models import Transport, Alias
|
||||
|
||||
@@ -22,6 +22,9 @@ def init():
|
||||
|
||||
events.register("UserMenuDisplay", menu)
|
||||
|
||||
parameters.register("postfix_autoreply", "AUTOREPLIES_TIMEOUT", "int", 86400,
|
||||
help=_("Timeout in seconds between two auto-replies to the same recipient"))
|
||||
|
||||
def urls():
|
||||
return ()
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ import time
|
||||
import datetime
|
||||
import rrdtool
|
||||
from django.utils.translation import ugettext as _
|
||||
from mailng.lib import getoption
|
||||
from mailng.lib import parameters
|
||||
|
||||
traffic_avg_template = {
|
||||
'name' : 'traffic',
|
||||
@@ -55,8 +55,8 @@ tpl = {'traffic':traffic_avg_template,
|
||||
|
||||
class Grapher(object):
|
||||
def __init__(self):
|
||||
self.rrd_rootdir = getoption("RRD_ROOTDIR", "/tmp")
|
||||
self.img_rootdir = getoption("IMG_ROOTDIR", "/tmp")
|
||||
self.rrd_rootdir = parameters.get("stats", "RRD_ROOTDIR")
|
||||
self.img_rootdir = parameters.get("stats", "IMG_ROOTDIR")
|
||||
|
||||
def process(self, target, suffix, start, end, tpl=traffic_avg_template):
|
||||
rrdfile = "%s/%s.rrd" % (self.rrd_rootdir, target)
|
||||
|
||||
@@ -7,7 +7,7 @@ import re
|
||||
import rrdtool
|
||||
import string, pdb
|
||||
from optparse import OptionParser
|
||||
from mailng.lib import getoption
|
||||
from mailng.lib import parameters
|
||||
from mailng.admin.models import Domain
|
||||
import grapher
|
||||
|
||||
@@ -276,8 +276,8 @@ class LogParser(object):
|
||||
G.make_defaults(dom, tpl=grapher.size_avg_template)
|
||||
|
||||
if __name__ == "__main__":
|
||||
log_file = getoption("LOGFILE", "/var/log/maillog")
|
||||
rrd_rootdir = getoption("RRD_ROOTDIR", "/tmp")
|
||||
log_file = parameters.get("stats", "LOGFILE")
|
||||
rrd_rootdir = parameters.get("stats", "RRD_ROOTDIR")
|
||||
|
||||
parser = OptionParser()
|
||||
parser.add_option("-l","--logFile", default=log_file,
|
||||
|
||||
@@ -18,7 +18,6 @@ from django.contrib.auth.decorators \
|
||||
import login_required, user_passes_test, permission_required
|
||||
from extensions.stats.grapher import Grapher, tpl
|
||||
from extensions.stats.logparser import str2Time
|
||||
from mailng.lib import getoption
|
||||
|
||||
graph_types = ['AVERAGE', 'MAX']
|
||||
|
||||
@@ -50,7 +49,8 @@ def menu(**kwargs):
|
||||
]
|
||||
if kwargs["target"] == "admin_menu_box":
|
||||
return [
|
||||
{"name" : _("Statistics"),
|
||||
{"name" : "stats",
|
||||
"label" : _("Statistics"),
|
||||
"url" : reverse('fullindex'),
|
||||
"img" : "/static/pics/graph.png"}
|
||||
]
|
||||
@@ -93,7 +93,7 @@ def graph_display(request,dom_id,graph_t=graph_types):
|
||||
"page" : "Domain statistics", "graph" : graph_nature,
|
||||
"domain": domain, "domains" : domains, "messages" : errors,
|
||||
"types" : graph_type, "tmp_path" : tmp_path,
|
||||
"img_rootdir" : getoption("IMG_ROOTDIR", "/tmp")})
|
||||
"img_rootdir" : parameters.get("stats", "IMG_ROOTDIR")})
|
||||
|
||||
@login_required
|
||||
@user_passes_test(lambda u: u.is_superuser)
|
||||
@@ -115,7 +115,7 @@ def adminindex(request):
|
||||
"graphs" : graph_list,
|
||||
"periods" : ["day", "week", "month", "year","Custom"],
|
||||
"period" : period, "cal" : CH_print,
|
||||
"img_rootdir" : getoption("IMG_ROOTDIR", "/tmp")})
|
||||
"img_rootdir" : parameters.get("stats", "IMG_ROOTDIR")})
|
||||
|
||||
@login_required
|
||||
@user_passes_test(lambda u: u.is_superuser)
|
||||
@@ -149,7 +149,7 @@ def custom_period(request):
|
||||
"start" : start_ref,
|
||||
"end" : end_ref,
|
||||
"messages" : ["Custom period not selected"],
|
||||
"img_rootdir" : getoption("IMG_ROOTDIR", "/tmp")})
|
||||
"img_rootdir" : parameters.get("stats", "IMG_ROOTDIR")})
|
||||
|
||||
period_name = "%s_%s" %(start.replace('/',''),end.replace('/',''))
|
||||
G = Grapher()
|
||||
@@ -170,7 +170,7 @@ def custom_period(request):
|
||||
"start" : start_ref,
|
||||
"end" : end_ref,
|
||||
"messages" : None,
|
||||
"img_rootdir" : getoption("IMG_ROOTDIR", "/tmp")})
|
||||
"img_rootdir" : parameters.get("stats", "IMG_ROOTDIR")})
|
||||
|
||||
|
||||
@login_required
|
||||
@@ -187,4 +187,4 @@ def index(request, dom_id=None):
|
||||
"graphs" : graph_list,
|
||||
"periods" : ["day", "week", "month", "year","Custom"],
|
||||
"period" : period,
|
||||
"img_rootdir" : getoption("IMG_ROOTDIR", "/tmp")})
|
||||
"img_rootdir" : parameters.get("stats", "IMG_ROOTDIR")})
|
||||
|
||||
Reference in New Issue
Block a user