Branch 'dev/boddie-new/combined' - pykolab/setup share/templates

Paul Boddie boddie at kolabsys.com
Sun Sep 14 19:38:28 CEST 2014


 pykolab/setup/services.py      |   23 +++++++++++++++++++----
 pykolab/setup/setup_imap.py    |    6 +++++-
 share/templates/cyrus.conf.tpl |    8 ++++----
 share/templates/imapd.conf.tpl |    6 +++---
 4 files changed, 31 insertions(+), 12 deletions(-)

New commits:
commit da6dcb7886488b2f797c89f2fa33001bef162425
Author: Paul Boddie <paul at boddie.org.uk>
Date:   Sun Sep 14 19:37:30 2014 +0200

    Handle apparent old-style and new-style Cyrus paths.

diff --git a/pykolab/setup/services.py b/pykolab/setup/services.py
index a836a5a..ae4eecd 100644
--- a/pykolab/setup/services.py
+++ b/pykolab/setup/services.py
@@ -142,6 +142,12 @@ def find_file(name, paths):
             return full_path
     return None
 
+def find_path(paths):
+    for path in paths:
+        if exists(path):
+            return path
+    return None
+
 def readfile(filename):
     f = open(filename)
     try:
@@ -450,10 +456,7 @@ def have_mysql_process():
     return have_process_with_file(pidfile)
 
 def get_mysql_defaults():
-    for path in '/etc/mysql/debian.cnf', '/etc/mysql/my.cnf', '/etc/my.cnf':
-        if exists(path):
-            return path
-    return None
+    return find_path(['/etc/mysql/debian.cnf', '/etc/mysql/my.cnf', '/etc/my.cnf'])
 
 def make_mysql_defaults_file(defaults_file):
     utils.multiline_message(
@@ -489,6 +492,18 @@ def have_cyrus_imapd():
 def have_dovecot_imapd():
     return exists('/etc/dovecot')
 
+def get_cyrus_config_base():
+    return find_path(['/var/lib/imap', '/var/lib/cyrus'])
+
+def get_cyrus_spool_base():
+    return find_path(['/var/spool/imap', '/var/spool/cyrus'])
+
+def get_cyrus_sieve_base():
+    return find_path(['/var/lib/imap/sieve', '/var/spool/sieve'])
+
+def get_cyrus_socket_base():
+    return find_path(['/var/lib/imap/socket', '/var/run/cyrus/socket'])
+
 # LDAP-related functions.
 
 def have_slapd():
diff --git a/pykolab/setup/setup_imap.py b/pykolab/setup/setup_imap.py
index e3b5563..5cf60a9 100644
--- a/pykolab/setup/setup_imap.py
+++ b/pykolab/setup/setup_imap.py
@@ -167,6 +167,10 @@ def _execute(*args, **kw):
 
 def get_imap_settings():
     return {
+            "imap_config_dir": get_cyrus_config_base(),
+            "imap_spool_dir": get_cyrus_spool_base(),
+            "imap_sieve_dir": get_cyrus_sieve_base(),
+            "imap_socket_dir": get_cyrus_socket_base(),
             "ldap_servers": conf.get('ldap', 'ldap_uri'),
             "ldap_host": get_host_from_url(conf.get('ldap', 'ldap_uri')),
             "ldap_base": conf.get('ldap', 'base_dn'),
@@ -198,7 +202,7 @@ def configure_cyrus_imapd(imapd_settings):
 
     for template_basename, output_file, settings in [
         ('imapd.conf.tpl', '/etc/imapd.conf', [imapd_settings]),
-        ('cyrus.conf.tpl', '/etc/cyrus.conf', [{}])
+        ('cyrus.conf.tpl', '/etc/cyrus.conf', [imapd_settings])
         ]:
 
         template_file = get_template_path(template_basename)
diff --git a/share/templates/cyrus.conf.tpl b/share/templates/cyrus.conf.tpl
index 9a4a17a..acb1483 100644
--- a/share/templates/cyrus.conf.tpl
+++ b/share/templates/cyrus.conf.tpl
@@ -8,7 +8,7 @@ START {
     idled		cmd="idled"
 }
 
-# UNIX sockets start with a slash and are put into /var/lib/imap/sockets
+# UNIX sockets start with a slash and are put into $imap_socket_dir
 SERVICES {
     # add or remove based on preferences
     imap		cmd="imapd" listen="imap" prefork=5
@@ -17,7 +17,7 @@ SERVICES {
     pop3s		cmd="pop3d -s" listen="pop3s" prefork=1
     sieve		cmd="timsieved" listen="sieve" prefork=0
 
-    ptloader    cmd="ptloader" listen="/var/lib/imap/ptclient/ptsock" prefork=0
+    ptloader    cmd="ptloader" listen="$imap_socket_dir/ptsock" prefork=0
 
     # these are only necessary if receiving/exporting usenet via NNTP
     #nntp		cmd="nntpd" listen="nntp" prefork=3
@@ -25,10 +25,10 @@ SERVICES {
 
     # at least one LMTP is required for delivery
     #lmtp		cmd="lmtpd" listen="lmtp" prefork=0
-    lmtpunix	cmd="lmtpd" listen="/var/lib/imap/socket/lmtp" prefork=1
+    lmtpunix	cmd="lmtpd" listen="$imap_socket_dir/lmtp" prefork=1
 
     # this is only necessary if using notifications
-    notify	cmd="notifyd" listen="/var/lib/imap/socket/notify" proto="udp" prefork=1
+    notify	cmd="notifyd" listen="$imap_socket_dir/notify" proto="udp" prefork=1
 }
 
 EVENTS {
diff --git a/share/templates/imapd.conf.tpl b/share/templates/imapd.conf.tpl
index 874e55a..d029457 100644
--- a/share/templates/imapd.conf.tpl
+++ b/share/templates/imapd.conf.tpl
@@ -1,7 +1,7 @@
-configdirectory: /var/lib/imap
-partition-default: /var/spool/imap
+configdirectory: $imap_config_dir
+partition-default: $imap_spool_dir
 admins: $admins
-sievedir: /var/lib/imap/sieve
+sievedir: $imap_sieve_dir
 sendmail: /usr/sbin/sendmail
 sasl_pwcheck_method: auxprop saslauthd
 sasl_mech_list: PLAIN LOGIN




More information about the commits mailing list