Changeset View
Changeset View
Standalone View
Standalone View
pykolab/setup/setup_mta.py
Show First 20 Lines • Show All 363 Lines • ▼ Show 20 Lines | amavisd_settings = { | ||||
'ldap_filter': "(|(mail=%m)(alias=%m))", | 'ldap_filter': "(|(mail=%m)(alias=%m))", | ||||
'ldap_base_dn': conf.get('ldap', 'base_dn'), | 'ldap_base_dn': conf.get('ldap', 'base_dn'), | ||||
'clamdsock': '/var/spool/amavisd/clamd.sock', | 'clamdsock': '/var/spool/amavisd/clamd.sock', | ||||
} | } | ||||
template_file = None | template_file = None | ||||
# On RPM installations, Amavis configuration is contained within a single file. | # On RPM installations, Amavis configuration is contained within a single file. | ||||
if os.path.isfile("/etc/amavisd/amavisd.conf"): | amavisconf_paths = [ | ||||
"/etc/amavisd.conf", | |||||
"/etc/amavis/amavisd.conf", | |||||
"/etc/amavisd/amavisd.conf" | |||||
] | |||||
amavis_conf = '' | |||||
for amavisconf_path in amavisconf_paths: | |||||
if os.path.isfile(amavisconf_path): | |||||
amavis_conf = amavisconf_path | |||||
break | |||||
if os.path.isfile(amavis_conf): | |||||
if os.path.isfile('/etc/kolab/templates/amavisd.conf.tpl'): | if os.path.isfile('/etc/kolab/templates/amavisd.conf.tpl'): | ||||
template_file = '/etc/kolab/templates/amavisd.conf.tpl' | template_file = '/etc/kolab/templates/amavisd.conf.tpl' | ||||
elif os.path.isfile('/usr/share/kolab/templates/amavisd.conf.tpl'): | elif os.path.isfile('/usr/share/kolab/templates/amavisd.conf.tpl'): | ||||
template_file = '/usr/share/kolab/templates/amavisd.conf.tpl' | template_file = '/usr/share/kolab/templates/amavisd.conf.tpl' | ||||
elif os.path.isfile(os.path.abspath(os.path.join(__file__, '..', '..', '..', 'share', 'templates', 'amavisd.conf.tpl'))): | elif os.path.isfile(os.path.abspath(os.path.join(__file__, '..', '..', '..', 'share', 'templates', 'amavisd.conf.tpl'))): | ||||
template_file = os.path.abspath(os.path.join(__file__, '..', '..', '..', 'share', 'templates', 'amavisd.conf.tpl')) | template_file = os.path.abspath(os.path.join(__file__, '..', '..', '..', 'share', 'templates', 'amavisd.conf.tpl')) | ||||
if not template_file == None: | if not template_file == None: | ||||
fp = open(template_file, 'r') | fp = open(template_file, 'r') | ||||
template_definition = fp.read() | template_definition = fp.read() | ||||
fp.close() | fp.close() | ||||
if os.path.isfile('/etc/clamd.d/amavisd.conf'): | if os.path.isfile('/etc/clamd.d/amavisd.conf'): | ||||
amavisdconf_content = file('/etc/clamd.d/amavisd.conf') | amavisdconf_content = file('/etc/clamd.d/amavisd.conf') | ||||
for line in amavisdconf_content: | for line in amavisdconf_content: | ||||
if line.startswith('LocalSocket'): | if line.startswith('LocalSocket'): | ||||
amavisd_settings['clamdsock'] = line[len('LocalSocket '):].strip() | amavisd_settings['clamdsock'] = line[len('LocalSocket '):].strip() | ||||
t = Template(template_definition, searchList=[amavisd_settings]) | t = Template(template_definition, searchList=[amavisd_settings]) | ||||
fp = None | fp = None | ||||
if os.path.isdir('/etc/amavisd'): | fp = open(amavis_conf, 'w') | ||||
fp = open('/etc/amavisd/amavisd.conf', 'w') | |||||
elif os.path.isdir('/etc/amavis'): | |||||
fp = open('/etc/amavis/amavisd.conf', 'w') | |||||
elif os.path.isfile('/etc/amavisd.conf'): | |||||
fp = open('/etc/amavisd.conf', 'w') | |||||
if not fp == None: | if not fp == None: | ||||
fp.write(t.__str__()) | fp.write(t.__str__()) | ||||
fp.close() | fp.close() | ||||
else: | else: | ||||
log.error(_("Could not write out Amavis configuration file amavisd.conf")) | log.error(_("Could not write out Amavis configuration file amavisd.conf")) | ||||
return | return | ||||
Show All 22 Lines | """ % { | ||||
if os.path.isfile('/etc/default/wallace'): | if os.path.isfile('/etc/default/wallace'): | ||||
myaugeas = Augeas() | myaugeas = Augeas() | ||||
setting = os.path.join('/files/etc/default/wallace','START') | setting = os.path.join('/files/etc/default/wallace','START') | ||||
if not myaugeas.get(setting) == 'yes': | if not myaugeas.get(setting) == 'yes': | ||||
myaugeas.set(setting,'yes') | myaugeas.set(setting,'yes') | ||||
myaugeas.save() | myaugeas.save() | ||||
myaugeas.close() | myaugeas.close() | ||||
amavisservice = 'amavisd.service' | |||||
clamavservice = 'clamd@amavisd.service' | |||||
if os.path.isfile('/usr/lib/systemd/system/amavis.service'): | |||||
amavisservice = 'amavis.service' | |||||
if os.path.isfile('/usr/lib/systemd/system/clamd.service'): | |||||
clamavservice = 'clamd.service' | |||||
if os.path.isfile('/bin/systemctl'): | if os.path.isfile('/bin/systemctl'): | ||||
subprocess.call(['systemctl', 'restart', 'postfix.service']) | subprocess.call(['systemctl', 'restart', 'postfix.service']) | ||||
subprocess.call(['systemctl', 'restart', 'amavisd.service']) | subprocess.call(['systemctl', 'restart', amavisservice]) | ||||
subprocess.call(['systemctl', 'restart', 'clamd@amavisd.service']) | subprocess.call(['systemctl', 'restart', clamavservice]) | ||||
subprocess.call(['systemctl', 'restart', 'wallace.service']) | subprocess.call(['systemctl', 'restart', 'wallace.service']) | ||||
elif os.path.isfile('/sbin/service'): | elif os.path.isfile('/sbin/service'): | ||||
subprocess.call(['service', 'postfix', 'restart']) | subprocess.call(['service', 'postfix', 'restart']) | ||||
subprocess.call(['service', 'amavisd', 'restart']) | subprocess.call(['service', 'amavisd', 'restart']) | ||||
subprocess.call(['service', 'clamd.amavisd', 'restart']) | subprocess.call(['service', 'clamd.amavisd', 'restart']) | ||||
subprocess.call(['service', 'wallace', 'restart']) | subprocess.call(['service', 'wallace', 'restart']) | ||||
elif os.path.isfile('/usr/sbin/service'): | elif os.path.isfile('/usr/sbin/service'): | ||||
subprocess.call(['/usr/sbin/service','postfix','restart']) | subprocess.call(['/usr/sbin/service','postfix','restart']) | ||||
subprocess.call(['/usr/sbin/service','amavis','restart']) | subprocess.call(['/usr/sbin/service','amavis','restart']) | ||||
subprocess.call(['/usr/sbin/service','clamav-daemon','restart']) | subprocess.call(['/usr/sbin/service','clamav-daemon','restart']) | ||||
subprocess.call(['/usr/sbin/service','wallace','restart']) | subprocess.call(['/usr/sbin/service','wallace','restart']) | ||||
else: | else: | ||||
log.error(_("Could not start the postfix, clamav and amavisd services services.")) | log.error(_("Could not start the postfix, clamav and amavisd services services.")) | ||||
if os.path.isfile('/bin/systemctl'): | if os.path.isfile('/bin/systemctl'): | ||||
subprocess.call(['systemctl', 'enable', 'postfix.service']) | subprocess.call(['systemctl', 'enable', 'postfix.service']) | ||||
subprocess.call(['systemctl', 'enable', 'amavisd.service']) | subprocess.call(['systemctl', 'enable', amavisservice]) | ||||
subprocess.call(['systemctl', 'enable', 'clamd@amavisd.service']) | subprocess.call(['systemctl', 'enable', clamavservice]) | ||||
subprocess.call(['systemctl', 'enable', 'wallace.service']) | subprocess.call(['systemctl', 'enable', 'wallace.service']) | ||||
elif os.path.isfile('/sbin/chkconfig'): | elif os.path.isfile('/sbin/chkconfig'): | ||||
subprocess.call(['chkconfig', 'postfix', 'on']) | subprocess.call(['chkconfig', 'postfix', 'on']) | ||||
subprocess.call(['chkconfig', 'amavisd', 'on']) | subprocess.call(['chkconfig', 'amavisd', 'on']) | ||||
subprocess.call(['chkconfig', 'clamd.amavisd', 'on']) | subprocess.call(['chkconfig', 'clamd.amavisd', 'on']) | ||||
subprocess.call(['chkconfig', 'wallace', 'on']) | subprocess.call(['chkconfig', 'wallace', 'on']) | ||||
elif os.path.isfile('/usr/sbin/update-rc.d'): | elif os.path.isfile('/usr/sbin/update-rc.d'): | ||||
subprocess.call(['/usr/sbin/update-rc.d', 'postfix', 'defaults']) | subprocess.call(['/usr/sbin/update-rc.d', 'postfix', 'defaults']) | ||||
subprocess.call(['/usr/sbin/update-rc.d', 'amavis', 'defaults']) | subprocess.call(['/usr/sbin/update-rc.d', 'amavis', 'defaults']) | ||||
subprocess.call(['/usr/sbin/update-rc.d', 'clamav-daemon', 'defaults']) | subprocess.call(['/usr/sbin/update-rc.d', 'clamav-daemon', 'defaults']) | ||||
subprocess.call(['/usr/sbin/update-rc.d', 'wallace', 'defaults']) | subprocess.call(['/usr/sbin/update-rc.d', 'wallace', 'defaults']) | ||||
else: | else: | ||||
log.error(_("Could not configure to start on boot, the " + \ | log.error(_("Could not configure to start on boot, the " + \ | ||||
"postfix, clamav and amavisd services.")) | "postfix, clamav and amavisd services.")) |