From 381bf1d19190552c650d170a5d9e099feaa78c5d Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Fri, 6 Jun 2014 09:25:07 +0200 Subject: [PATCH] Manually close db connections inside management scripts. fix #557 --- modoboa/core/management/commands/cleanlogs.py | 2 ++ .../admin/management/commands/handle_mailbox_operations.py | 2 ++ modoboa/extensions/amavis/management/commands/amnotify.py | 2 ++ modoboa/extensions/amavis/management/commands/qcleanup.py | 2 ++ .../postfix_autoreply/management/commands/autoreply.py | 2 ++ modoboa/extensions/stats/management/commands/logparser.py | 4 +++- 6 files changed, 13 insertions(+), 1 deletion(-) diff --git a/modoboa/core/management/commands/cleanlogs.py b/modoboa/core/management/commands/cleanlogs.py index 0cf1c8aac..59f3859d9 100644 --- a/modoboa/core/management/commands/cleanlogs.py +++ b/modoboa/core/management/commands/cleanlogs.py @@ -2,6 +2,7 @@ # coding: utf-8 import datetime from optparse import make_option +from django import db from django.core.management.base import BaseCommand from django.utils import timezone from modoboa.core import load_core_settings @@ -42,4 +43,5 @@ class Command(BaseCommand): self.__vprint("Deleting logs older than %d days..." % log_maximum_age) limit = timezone.now() - datetime.timedelta(log_maximum_age) Log.objects.filter(date_created__lt=limit).delete() + db.close_connection() self.__vprint("Done.") diff --git a/modoboa/extensions/admin/management/commands/handle_mailbox_operations.py b/modoboa/extensions/admin/management/commands/handle_mailbox_operations.py index 056b4a55e..e282fb1c6 100644 --- a/modoboa/extensions/admin/management/commands/handle_mailbox_operations.py +++ b/modoboa/extensions/admin/management/commands/handle_mailbox_operations.py @@ -1,6 +1,7 @@ import os import logging from optparse import make_option +from django import db from django.core.management.base import BaseCommand from modoboa.lib import parameters from modoboa.lib.sysutils import exec_cmd @@ -90,3 +91,4 @@ class Command(BaseCommand): self.logger.info('%s succeed', ope) ope.delete() os.unlink(options['pidfile']) + db.close_connection() diff --git a/modoboa/extensions/amavis/management/commands/amnotify.py b/modoboa/extensions/amavis/management/commands/amnotify.py index 1ede77c6e..54846b12e 100644 --- a/modoboa/extensions/amavis/management/commands/amnotify.py +++ b/modoboa/extensions/amavis/management/commands/amnotify.py @@ -1,6 +1,7 @@ #!/usr/bin/env python # coding: utf-8 from optparse import make_option +from django import db from django.core.management.base import BaseCommand, CommandError from django.template.loader import render_to_string from django.core.urlresolvers import reverse @@ -90,3 +91,4 @@ class Command(BaseCommand): continue rcpt = su.mailbox_set.all()[0].full_address self.send_pr_notification(rcpt, reqs) + db.close_connection() diff --git a/modoboa/extensions/amavis/management/commands/qcleanup.py b/modoboa/extensions/amavis/management/commands/qcleanup.py index c31d348f5..a1be4a32d 100644 --- a/modoboa/extensions/amavis/management/commands/qcleanup.py +++ b/modoboa/extensions/amavis/management/commands/qcleanup.py @@ -3,6 +3,7 @@ import time from optparse import make_option +from django import db from django.core.management.base import BaseCommand from modoboa.lib import parameters from modoboa.extensions.amavis import Amavis @@ -63,5 +64,6 @@ class Command(BaseCommand): for maddr in Maddr.objects.all(): if not maddr.msgs_set.count() and not maddr.msgrcpt_set.count(): maddr.delete() + db.close_connection() self.__vprint("Done.") diff --git a/modoboa/extensions/postfix_autoreply/management/commands/autoreply.py b/modoboa/extensions/postfix_autoreply/management/commands/autoreply.py index 3118f6cc9..f91645a4e 100644 --- a/modoboa/extensions/postfix_autoreply/management/commands/autoreply.py +++ b/modoboa/extensions/postfix_autoreply/management/commands/autoreply.py @@ -2,6 +2,7 @@ # coding: utf-8 import sys import datetime +from django import db from django.core.management.base import BaseCommand, CommandError from django.utils import timezone from modoboa.lib import parameters @@ -64,3 +65,4 @@ class Command(BaseCommand): continue send_autoreply(sender, mbox, armessage) + db.close_connection() diff --git a/modoboa/extensions/stats/management/commands/logparser.py b/modoboa/extensions/stats/management/commands/logparser.py index cbcfcb03e..8f00ed9a9 100644 --- a/modoboa/extensions/stats/management/commands/logparser.py +++ b/modoboa/extensions/stats/management/commands/logparser.py @@ -23,8 +23,9 @@ import os import re import rrdtool import string -from django.core.management.base import BaseCommand from optparse import make_option +from django import db +from django.core.management.base import BaseCommand from modoboa.lib import parameters from modoboa.extensions.admin.models import Domain from modoboa.extensions.stats import Stats @@ -357,3 +358,4 @@ class Command(BaseCommand): options["logfile"] = parameters.get_admin("LOGFILE", app="stats") p = LogParser(options, parameters.get_admin("RRD_ROOTDIR", app="stats")) p.process() + db.close_connection()