From c23451f0a2ca4d844528e1a0abbf980dbfe3750f Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Tue, 4 Nov 2014 16:59:42 +0100 Subject: [PATCH] Load relay domain list if extension is activated. see #631 --- .../stats/management/commands/logparser.py | 27 ++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/modoboa/extensions/stats/management/commands/logparser.py b/modoboa/extensions/stats/management/commands/logparser.py index 8f00ed9a9..2c6907eaa 100644 --- a/modoboa/extensions/stats/management/commands/logparser.py +++ b/modoboa/extensions/stats/management/commands/logparser.py @@ -24,13 +24,17 @@ import re import rrdtool import string from optparse import make_option + from django import db from django.core.management.base import BaseCommand -from modoboa.lib import parameters + +from modoboa.core.extensions import exts_pool from modoboa.extensions.admin.models import Domain +from modoboa.extensions.postfix_relay_domains.models import RelayDomain from modoboa.extensions.stats import Stats from modoboa.extensions.stats.grapher import str2Time, Grapher from modoboa.extensions.stats.graph_templates import MailTraffic +from modoboa.lib import parameters rrdstep = 60 xpoints = 540 @@ -63,9 +67,7 @@ class LogParser(object): self.data = {} self.domains = [] - for dom in Domain.objects.all(): - self.domains += [str(dom.name)] - self.data[str(dom.name)] = {} + self._load_domain_list() self.data["global"] = {} self.workdict = {} @@ -83,6 +85,23 @@ class LogParser(object): self._prev_ho = -1 self.cur_t = 0 + def _load_domain_list(self): + """Load the list of allowed domains. + + Since the relay domains feature is an extension of the admin + panel, we don't use an event to get the list of all supported + domains... + + """ + for dom in Domain.objects.all(): + self.domains += [str(dom.name)] + self.data[str(dom.name)] = {} + if not exts_pool.is_extension_enabled("postfix_relay_domains"): + return + for rdom in RelayDomain.objects.all(): + self.domains += [str(rdom.name)] + self.data[str(rdom.name)] = {} + def _dprint(self, msg): """Print a debug message if required.