Skip to content

Commit c14e665

Browse files
committed
move postfix deployer to postfix directory
1 parent b6004e0 commit c14e665

File tree

3 files changed

+79
-79
lines changed

3 files changed

+79
-79
lines changed

cmdeploy/src/cmdeploy/deployers.py

Lines changed: 1 addition & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
from .acmetool import AcmetoolDeployer
2323
from .basedeploy import Deployer, Deployment, get_resource
2424
from .opendkim.deployer import OpendkimDeployer
25+
from .postfix.deployer import PostfixDeployer
2526
from .www import build_webpages, find_merge_conflict, get_paths
2627

2728

@@ -251,85 +252,6 @@ def activate(self):
251252
)
252253

253254

254-
def _configure_postfix(config: Config, debug: bool = False) -> bool:
255-
"""Configures Postfix SMTP server."""
256-
need_restart = False
257-
258-
main_config = files.template(
259-
src=get_resource("postfix/main.cf.j2"),
260-
dest="/etc/postfix/main.cf",
261-
user="root",
262-
group="root",
263-
mode="644",
264-
config=config,
265-
disable_ipv6=config.disable_ipv6,
266-
)
267-
need_restart |= main_config.changed
268-
269-
master_config = files.template(
270-
src=get_resource("postfix/master.cf.j2"),
271-
dest="/etc/postfix/master.cf",
272-
user="root",
273-
group="root",
274-
mode="644",
275-
debug=debug,
276-
config=config,
277-
)
278-
need_restart |= master_config.changed
279-
280-
header_cleanup = files.put(
281-
src=get_resource("postfix/submission_header_cleanup"),
282-
dest="/etc/postfix/submission_header_cleanup",
283-
user="root",
284-
group="root",
285-
mode="644",
286-
)
287-
need_restart |= header_cleanup.changed
288-
289-
# Login map that 1:1 maps email address to login.
290-
login_map = files.put(
291-
src=get_resource("postfix/login_map"),
292-
dest="/etc/postfix/login_map",
293-
user="root",
294-
group="root",
295-
mode="644",
296-
)
297-
need_restart |= login_map.changed
298-
299-
return need_restart
300-
301-
302-
class PostfixDeployer(Deployer):
303-
required_users = [("postfix", None, ["opendkim"])]
304-
305-
def __init__(self, config, disable_mail):
306-
self.config = config
307-
self.disable_mail = disable_mail
308-
309-
def install(self):
310-
apt.packages(
311-
name="Install Postfix",
312-
packages="postfix",
313-
)
314-
315-
def configure(self):
316-
self.need_restart = _configure_postfix(self.config)
317-
318-
def activate(self):
319-
restart = False if self.disable_mail else self.need_restart
320-
321-
systemd.service(
322-
name="disable postfix for now"
323-
if self.disable_mail
324-
else "Start and enable Postfix",
325-
service="postfix.service",
326-
running=False if self.disable_mail else True,
327-
enabled=False if self.disable_mail else True,
328-
restarted=restart,
329-
)
330-
self.need_restart = False
331-
332-
333255
def _install_dovecot_package(package: str, arch: str):
334256
arch = "amd64" if arch == "x86_64" else arch
335257
arch = "arm64" if arch == "aarch64" else arch
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
#
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
from pyinfra.operations import apt, files, systemd
2+
3+
from cmdeploy.basedeploy import Deployer, get_resource
4+
5+
6+
class PostfixDeployer(Deployer):
7+
required_users = [("postfix", None, ["opendkim"])]
8+
9+
def __init__(self, config, disable_mail):
10+
self.config = config
11+
self.disable_mail = disable_mail
12+
13+
def install(self):
14+
apt.packages(
15+
name="Install Postfix",
16+
packages="postfix",
17+
)
18+
19+
def configure(self):
20+
config = self.config
21+
need_restart = False
22+
23+
main_config = files.template(
24+
src=get_resource("postfix/main.cf.j2"),
25+
dest="/etc/postfix/main.cf",
26+
user="root",
27+
group="root",
28+
mode="644",
29+
config=config,
30+
disable_ipv6=config.disable_ipv6,
31+
)
32+
need_restart |= main_config.changed
33+
34+
master_config = files.template(
35+
src=get_resource("postfix/master.cf.j2"),
36+
dest="/etc/postfix/master.cf",
37+
user="root",
38+
group="root",
39+
mode="644",
40+
debug=False,
41+
config=config,
42+
)
43+
need_restart |= master_config.changed
44+
45+
header_cleanup = files.put(
46+
src=get_resource("postfix/submission_header_cleanup"),
47+
dest="/etc/postfix/submission_header_cleanup",
48+
user="root",
49+
group="root",
50+
mode="644",
51+
)
52+
need_restart |= header_cleanup.changed
53+
54+
# Login map that 1:1 maps email address to login.
55+
login_map = files.put(
56+
src=get_resource("postfix/login_map"),
57+
dest="/etc/postfix/login_map",
58+
user="root",
59+
group="root",
60+
mode="644",
61+
)
62+
need_restart |= login_map.changed
63+
self.need_restart = need_restart
64+
65+
def activate(self):
66+
restart = False if self.disable_mail else self.need_restart
67+
68+
systemd.service(
69+
name="disable postfix for now"
70+
if self.disable_mail
71+
else "Start and enable Postfix",
72+
service="postfix.service",
73+
running=False if self.disable_mail else True,
74+
enabled=False if self.disable_mail else True,
75+
restarted=restart,
76+
)
77+
self.need_restart = False

0 commit comments

Comments
 (0)