From e7b468f7c41563459a4b13da0dff0d8f276bc597 Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Sat, 4 Mar 2017 10:31:41 +0100 Subject: [PATCH] Fixed installation when mysql+amavis enabled. --- modoboa_installer/scripts/__init__.py | 3 +-- modoboa_installer/scripts/amavis.py | 6 ------ modoboa_installer/scripts/modoboa.py | 25 ++++++++++++++++--------- run.py | 2 +- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/modoboa_installer/scripts/__init__.py b/modoboa_installer/scripts/__init__.py index c90c436..33af7d4 100644 --- a/modoboa_installer/scripts/__init__.py +++ b/modoboa_installer/scripts/__init__.py @@ -21,6 +21,5 @@ def install(appname, config): try: getattr(script, appname.capitalize())(config).run() except utils.FatalError as inst: - utils.printcolor(utils.RED, "Failure") - print(inst) + utils.printcolor(u"{}".format(inst), utils.RED) sys.exit(1) diff --git a/modoboa_installer/scripts/amavis.py b/modoboa_installer/scripts/amavis.py index 272816a..d33211e 100644 --- a/modoboa_installer/scripts/amavis.py +++ b/modoboa_installer/scripts/amavis.py @@ -61,12 +61,6 @@ class Amavis(base.Installer): return self.get_file_path( "amavis_{}_{}.sql".format(self.dbengine, version)) - def setup_database(self): - """Additional config.""" - super(Amavis, self).setup_database() - self.backend.grant_access( - self.dbname, self.config.get("modoboa", "dbuser")) - def post_run(self): """Additional tasks.""" with open("/etc/mailname", "w") as fp: diff --git a/modoboa_installer/scripts/modoboa.py b/modoboa_installer/scripts/modoboa.py index 536e0b7..fdaa8d7 100644 --- a/modoboa_installer/scripts/modoboa.py +++ b/modoboa_installer/scripts/modoboa.py @@ -43,6 +43,13 @@ class Modoboa(base.Installer): self.instance_path = config.get("modoboa", "instance_path") self.extensions = config.get("modoboa", "extensions").split() self.devmode = config.getboolean("modoboa", "devmode") + # Sanity check for amavis + self.amavis_enabled = False + if "modoboa-amavis" in self.extensions: + if self.config.getboolean("amavis", "enabled"): + self.amavis_enabled = True + else: + self.extensions.remove("modoboa-amavis") def _setup_venv(self): """Prepare a dedicated virtuelenv.""" @@ -78,14 +85,6 @@ class Modoboa(base.Installer): return shutil.rmtree(target) - # Sanity check for amavis - amavis_enabled = False - if "modoboa-amavis" in self.extensions: - if self.config.getboolean("amavis", "enabled"): - amavis_enabled = True - else: - self.extensions.remove("modoboa-amavis") - prefix = ". {}; ".format( os.path.join(self.venv_path, "bin", "activate")) args = [ @@ -99,7 +98,7 @@ class Modoboa(base.Installer): ] if self.devmode: args = ["--devel"] + args - if amavis_enabled: + if self.amavis_enabled: args += [ "'amavis:{}://{}:{}@{}/{}'".format( self.config.get("database", "engine"), @@ -116,6 +115,14 @@ class Modoboa(base.Installer): if code: raise utils.FatalError(output) + def setup_database(self): + """Additional config.""" + super(Modoboa, self).setup_database() + if not self.amavis_enabled: + return + self.backend.grant_access( + self.config.get("amavis", "dbname"), self.dbuser) + def get_packages(self): """Include extra packages if needed.""" packages = super(Modoboa, self).get_packages() diff --git a/run.py b/run.py index 0fc99c7..c95bc3a 100755 --- a/run.py +++ b/run.py @@ -60,9 +60,9 @@ def main(): ssl_backend = ssl.get_backend(config) if ssl_backend: ssl_backend.create() + scripts.install("amavis", config) scripts.install("modoboa", config) scripts.install("postfix", config) - scripts.install("amavis", config) scripts.install("dovecot", config) utils.printcolor( "Congratulations! You can enjoy Modoboa at https://{} (admin:password)"