summaryrefslogtreecommitdiff
path: root/pykolab
diff options
context:
space:
mode:
authorJeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com>2012-05-05 16:11:07 (GMT)
committerJeroen van Meeuwen (Kolab Systems) <vanmeeuwen@kolabsys.com>2012-05-05 16:11:07 (GMT)
commit0a151c662c67c17cffeee7e80e04a6348f0516af (patch)
tree62eaefad517b2ea52b1ee4c8c035c88656d1d1cb /pykolab
parentb3ff42571c0edab8e5b3c064ba3a488a1b534bab (diff)
downloadpykolab-0a151c662c67c17cffeee7e80e04a6348f0516af.tar.gz
Add freebusy and zpush setup routines
Restart httpd server rather then starting it
Diffstat (limited to 'pykolab')
-rw-r--r--pykolab/setup/setup_freebusy.py129
-rw-r--r--pykolab/setup/setup_roundcube.py4
-rw-r--r--pykolab/setup/setup_zpush.py97
3 files changed, 228 insertions, 2 deletions
diff --git a/pykolab/setup/setup_freebusy.py b/pykolab/setup/setup_freebusy.py
new file mode 100644
index 0000000..6dbecab
--- /dev/null
+++ b/pykolab/setup/setup_freebusy.py
@@ -0,0 +1,129 @@
+# -*- coding: utf-8 -*-
+# Copyright 2010-2012 Kolab Systems AG (http://www.kolabsys.com)
+#
+# Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen a kolabsys.com>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 3 or, at your option, any later version
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Library General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+
+from Cheetah.Template import Template
+import os
+import subprocess
+import sys
+
+import components
+
+import pykolab
+
+from pykolab import utils
+from pykolab.constants import *
+from pykolab.translate import _
+
+log = pykolab.getLogger('pykolab.setup')
+conf = pykolab.getConf()
+
+def __init__():
+ components.register('freebusy', execute, description=description(), after=['mysql','ldap', 'roundcube'])
+
+def description():
+ return _("Setup Free/Busy.")
+
+def execute(*args, **kw):
+ if not os.path.isfile('/etc/kolab/freebusy/config.php'):
+ log.error(_("Free/Busy is not installed on this system"))
+ return
+
+ horde_settings = {
+ 'ldap_base_dn': conf.get('ldap', 'base_dn'),
+ 'ldap_ldap_uri': conf.get('ldap', 'ldap_uri'),
+ 'ldap_service_bind_dn': conf.get('ldap', 'service_bind_dn'),
+ 'ldap_service_bind_pw': conf.get('ldap', 'service_bind_pw'),
+ 'primary_domain': conf.get('kolab', 'primary_domain'),
+ 'roundcube_mysql_password': conf.mysql_roundcube_password
+ }
+
+ want_files = [
+ 'conf.d/10-kolab_conf_base.php',
+ ]
+
+ for want_file in want_files:
+ template_file = None
+ if os.path.isfile('/etc/kolab/templates/horde/%s.tpl' % (want_file)):
+ template_file = '/etc/kolab/templates/horde/%s.tpl' % (want_file)
+ elif os.path.isfile('/usr/share/kolab/templates/horde/%s.tpl' % (want_file)):
+ template_file = '/usr/share/kolab/templates/horde/%s.tpl' % (want_file)
+ elif os.path.isfile(os.path.abspath(os.path.join(__file__, '..', '..', '..', 'share', 'templates', 'horde', '%s.tpl' % (want_file)))):
+ template_file = os.path.abspath(os.path.join(__file__, '..', '..', '..', 'share', 'templates', 'horde', '%s.tpl' % (want_file)))
+
+ if not template_file == None:
+ log.debug(_("Using template file %r") % (template_file), level=8)
+ fp = open(template_file, 'r')
+ template_definition = fp.read()
+ fp.close()
+
+ t = Template(template_definition, searchList=[horde_settings])
+ log.debug(
+ _("Successfully compiled template %r, writing out to %r") % (
+ template_file,
+ '/etc/horde/%s' % (want_file)
+ ),
+ level=8
+ )
+
+ fp = open('/etc/horde/%s' % (want_file), 'w')
+ fp.write(t.__str__())
+ fp.close()
+
+ want_files = [
+ 'config.php',
+ ]
+
+ for want_file in want_files:
+ template_file = None
+ if os.path.isfile('/etc/kolab/templates/freebusy/%s.tpl' % (want_file)):
+ template_file = '/etc/kolab/templates/freebusy/%s.tpl' % (want_file)
+ elif os.path.isfile('/usr/share/kolab/templates/freebusy/%s.tpl' % (want_file)):
+ template_file = '/usr/share/kolab/templates/freebusy/%s.tpl' % (want_file)
+ elif os.path.isfile(os.path.abspath(os.path.join(__file__, '..', '..', '..', 'share', 'templates', 'freebusy', '%s.tpl' % (want_file)))):
+ template_file = os.path.abspath(os.path.join(__file__, '..', '..', '..', 'share', 'templates', 'freebusy', '%s.tpl' % (want_file)))
+
+ if not template_file == None:
+ log.debug(_("Using template file %r") % (template_file), level=8)
+ fp = open(template_file, 'r')
+ template_definition = fp.read()
+ fp.close()
+
+ t = Template(template_definition, searchList=[freebusy_settings])
+ log.debug(
+ _("Successfully compiled template %r, writing out to %r") % (
+ template_file,
+ '/etc/freebusy/%s' % (want_file)
+ ),
+ level=8
+ )
+
+ fp = open('/etc/kolab/freebusy/%s' % (want_file), 'w')
+ fp.write(t.__str__())
+ fp.close()
+
+ if os.path.isfile('/bin/systemctl'):
+ subprocess.call(['/bin/systemctl', 'restart', 'httpd.service'])
+ subprocess.call(['/bin/systemctl', 'enable', 'httpd.service'])
+ elif os.path.isfile('/sbin/service'):
+ subprocess.call(['/sbin/service', 'httpd', 'restart'])
+ subprocess.call(['/sbin/chkconfig', 'httpd', 'on'])
+ else:
+ log.error(_("Could not start and configure to start on boot, the " + \
+ "webserver service."))
+
diff --git a/pykolab/setup/setup_roundcube.py b/pykolab/setup/setup_roundcube.py
index 75c400e..cd6e5d2 100644
--- a/pykolab/setup/setup_roundcube.py
+++ b/pykolab/setup/setup_roundcube.py
@@ -150,10 +150,10 @@ def execute(*args, **kw):
p2.communicate()
if os.path.isfile('/bin/systemctl'):
- subprocess.call(['/bin/systemctl', 'start', 'httpd.service'])
+ subprocess.call(['/bin/systemctl', 'restart', 'httpd.service'])
subprocess.call(['/bin/systemctl', 'enable', 'httpd.service'])
elif os.path.isfile('/sbin/service'):
- subprocess.call(['/sbin/service', 'httpd', 'start'])
+ subprocess.call(['/sbin/service', 'httpd', 'restart'])
subprocess.call(['/sbin/chkconfig', 'httpd', 'on'])
else:
log.error(_("Could not start and configure to start on boot, the " + \
diff --git a/pykolab/setup/setup_zpush.py b/pykolab/setup/setup_zpush.py
new file mode 100644
index 0000000..01739c3
--- /dev/null
+++ b/pykolab/setup/setup_zpush.py
@@ -0,0 +1,97 @@
+# -*- coding: utf-8 -*-
+# Copyright 2010-2012 Kolab Systems AG (http://www.kolabsys.com)
+#
+# Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen a kolabsys.com>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 3 or, at your option, any later version
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Library General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+
+from Cheetah.Template import Template
+import os
+import subprocess
+import sys
+
+import components
+
+import pykolab
+
+from pykolab import utils
+from pykolab.constants import *
+from pykolab.translate import _
+
+log = pykolab.getLogger('pykolab.setup')
+conf = pykolab.getConf()
+
+def __init__():
+ components.register('zpush', execute, description=description(), after=['mysql','ldap'])
+
+def description():
+ return _("Setup zpush.")
+
+def execute(*args, **kw):
+ if not os.path.isfile('/etc/z-push/config.php'):
+ log.error(_("Z-Push is not installed on this system"))
+ return
+
+ zpush_settings = {
+ 'ldap_base_dn': conf.get('ldap', 'base_dn'),
+ 'ldap_ldap_uri': conf.get('ldap', 'ldap_uri'),
+ 'ldap_service_bind_dn': conf.get('ldap', 'service_bind_dn'),
+ 'ldap_service_bind_pw': conf.get('ldap', 'service_bind_pw'),
+ 'imap_server': "localhost"
+ }
+
+
+ want_files = [
+ 'config.php',
+ ]
+
+ for want_file in want_files:
+ template_file = None
+ if os.path.isfile('/etc/kolab/templates/zpush/%s.tpl' % (want_file)):
+ template_file = '/etc/kolab/templates/zpush/%s.tpl' % (want_file)
+ elif os.path.isfile('/usr/share/kolab/templates/zpush/%s.tpl' % (want_file)):
+ template_file = '/usr/share/kolab/templates/zpush/%s.tpl' % (want_file)
+ elif os.path.isfile(os.path.abspath(os.path.join(__file__, '..', '..', '..', 'share', 'templates', 'zpush', '%s.tpl' % (want_file)))):
+ template_file = os.path.abspath(os.path.join(__file__, '..', '..', '..', 'share', 'templates', 'zpush', '%s.tpl' % (want_file)))
+
+ if not template_file == None:
+ log.debug(_("Using template file %r") % (template_file), level=8)
+ fp = open(template_file, 'r')
+ template_definition = fp.read()
+ fp.close()
+
+ t = Template(template_definition, searchList=[zpush_settings])
+ log.debug(
+ _("Successfully compiled template %r, writing out to %r") % (
+ template_file,
+ '/etc/z-push/%s' % (want_file)
+ ),
+ level=8
+ )
+
+ fp = open('/etc/z-push/%s' % (want_file), 'w')
+ fp.write(t.__str__())
+ fp.close()
+
+ if os.path.isfile('/bin/systemctl'):
+ subprocess.call(['/bin/systemctl', 'restart', 'httpd.service'])
+ subprocess.call(['/bin/systemctl', 'enable', 'httpd.service'])
+ elif os.path.isfile('/sbin/service'):
+ subprocess.call(['/sbin/service', 'httpd', 'restart'])
+ subprocess.call(['/sbin/chkconfig', 'httpd', 'on'])
+ else:
+ log.error(_("Could not start and configure to start on boot, the " + \
+ "webserver service."))
+