mirror of
https://github.com/chatmail/relay.git
synced 2026-05-18 06:28:57 +00:00
cmdeploy/{postfix,dovecot}/deployer.py: check config before restarting
postfix: also fail on warnings
This commit is contained in:
@@ -37,9 +37,7 @@ class DovecotDeployer(Deployer):
|
|||||||
restart = False if self.disable_mail else self.need_restart
|
restart = False if self.disable_mail else self.need_restart
|
||||||
|
|
||||||
systemd.service(
|
systemd.service(
|
||||||
name="disable dovecot for now"
|
name="Disable dovecot for now" if self.disable_mail else "Start and enable Dovecot",
|
||||||
if self.disable_mail
|
|
||||||
else "Start and enable Dovecot",
|
|
||||||
service="dovecot.service",
|
service="dovecot.service",
|
||||||
running=False if self.disable_mail else True,
|
running=False if self.disable_mail else True,
|
||||||
enabled=False if self.disable_mail else True,
|
enabled=False if self.disable_mail else True,
|
||||||
@@ -145,4 +143,11 @@ def _configure_dovecot(config: Config, debug: bool = False) -> (bool, bool):
|
|||||||
)
|
)
|
||||||
daemon_reload |= restart_conf.changed
|
daemon_reload |= restart_conf.changed
|
||||||
|
|
||||||
|
# Validate dovecot configuration before restart
|
||||||
|
if need_restart:
|
||||||
|
server.shell(
|
||||||
|
name="Validate dovecot configuration",
|
||||||
|
commands=["doveconf -n >/dev/null"],
|
||||||
|
)
|
||||||
|
|
||||||
return need_restart, daemon_reload
|
return need_restart, daemon_reload
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from pyinfra.operations import apt, files, systemd
|
from pyinfra.operations import apt, files, server, systemd
|
||||||
|
|
||||||
from cmdeploy.basedeploy import Deployer, get_resource
|
from cmdeploy.basedeploy import Deployer, get_resource
|
||||||
|
|
||||||
@@ -77,6 +77,14 @@ class PostfixDeployer(Deployer):
|
|||||||
dest="/etc/systemd/system/postfix@.service.d/10_restart.conf",
|
dest="/etc/systemd/system/postfix@.service.d/10_restart.conf",
|
||||||
)
|
)
|
||||||
self.daemon_reload = restart_conf.changed
|
self.daemon_reload = restart_conf.changed
|
||||||
|
|
||||||
|
# Validate postfix configuration before restart
|
||||||
|
if need_restart:
|
||||||
|
server.shell(
|
||||||
|
name="Validate postfix configuration",
|
||||||
|
# Extract stderr and quit with error if non-zero
|
||||||
|
commands=["""bash -c 'w=$(postconf 2>&1 >/dev/null); [[ -z "$w" ]] || { echo "$w"; false; }'"""],
|
||||||
|
)
|
||||||
self.need_restart = need_restart
|
self.need_restart = need_restart
|
||||||
|
|
||||||
def activate(self):
|
def activate(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user