summaryrefslogtreecommitdiffstats
path: root/pykolab
diff options
context:
space:
mode:
Diffstat (limited to 'pykolab')
-rw-r--r--pykolab/setup/setup_mysql.py105
-rw-r--r--pykolab/setup/setup_roundcube.py3
-rw-r--r--pykolab/setup/setup_syncroton.py13
3 files changed, 72 insertions, 49 deletions
diff --git a/pykolab/setup/setup_mysql.py b/pykolab/setup/setup_mysql.py
index 807bc7f..d5e62a0 100644
--- a/pykolab/setup/setup_mysql.py
+++ b/pykolab/setup/setup_mysql.py
@@ -49,6 +49,14 @@ def cli_options():
)
mysql_group.add_option(
+ "--mysqlhost",
+ dest="mysqlhost",
+ action="store",
+ default='127.0.0.1',
+ help=_("The MySQL host address.")
+ )
+
+ mysql_group.add_option(
"--mysqlrootpw",
dest="mysqlrootpw",
action="store",
@@ -70,45 +78,46 @@ def execute(*args, **kw): # noqa: C901
]
# on CentOS7, there is MariaDB instead of MySQL
- mysqlservice = 'mysqld.service'
- if os.path.isfile('/usr/lib/systemd/system/mariadb.service'):
- mysqlservice = 'mariadb.service'
- elif os.path.isfile('/usr/lib/systemd/system/mysql.service'):
- mysqlservice = 'mysql.service'
- if not os.path.isfile('/usr/lib/systemd/system/' + mysqlservice):
- # on Debian Jessie, systemctl restart mysql
- mysqlservice = 'mysql'
-
- if os.path.isfile('/bin/systemctl'):
- subprocess.call(['/bin/systemctl', 'restart', mysqlservice])
- elif os.path.isfile('/sbin/service'):
- subprocess.call(['/sbin/service', 'mysqld', 'restart'])
- elif os.path.isfile('/usr/sbin/service'):
- subprocess.call(['/usr/sbin/service', 'mysql', 'restart'])
- else:
- log.error(_("Could not start the MySQL database service."))
-
- if os.path.isfile('/bin/systemctl'):
- subprocess.call(['/bin/systemctl', 'enable', mysqlservice])
- elif os.path.isfile('/sbin/chkconfig'):
- subprocess.call(['/sbin/chkconfig', 'mysqld', 'on'])
- elif os.path.isfile('/usr/sbin/update-rc.d'):
- subprocess.call(['/usr/sbin/update-rc.d', 'mysql', 'defaults'])
- else:
- log.error(
- _("Could not configure to start on boot, the MySQL database service.")
- )
+ if conf.mysqlserver != 'existing':
+ mysqlservice = 'mysqld.service'
+ if os.path.isfile('/usr/lib/systemd/system/mariadb.service'):
+ mysqlservice = 'mariadb.service'
+ elif os.path.isfile('/usr/lib/systemd/system/mysql.service'):
+ mysqlservice = 'mysql.service'
+ if not os.path.isfile('/usr/lib/systemd/system/' + mysqlservice):
+ # on Debian Jessie, systemctl restart mysql
+ mysqlservice = 'mysql'
+
+ if os.path.isfile('/bin/systemctl'):
+ subprocess.call(['/bin/systemctl', 'restart', mysqlservice])
+ elif os.path.isfile('/sbin/service'):
+ subprocess.call(['/sbin/service', 'mysqld', 'restart'])
+ elif os.path.isfile('/usr/sbin/service'):
+ subprocess.call(['/usr/sbin/service', 'mysql', 'restart'])
+ else:
+ log.error(_("Could not start the MySQL database service."))
+
+ if os.path.isfile('/bin/systemctl'):
+ subprocess.call(['/bin/systemctl', 'enable', mysqlservice])
+ elif os.path.isfile('/sbin/chkconfig'):
+ subprocess.call(['/sbin/chkconfig', 'mysqld', 'on'])
+ elif os.path.isfile('/usr/sbin/update-rc.d'):
+ subprocess.call(['/usr/sbin/update-rc.d', 'mysql', 'defaults'])
+ else:
+ log.error(
+ _("Could not configure to start on boot, the MySQL database service.")
+ )
- log.info(_("Waiting for at most 30 seconds for MySQL/MariaDB to settle..."))
- max_wait = 30
- while max_wait > 0:
- for socket_path in socket_paths:
- if os.path.exists(socket_path):
- max_wait = 0
+ log.info(_("Waiting for at most 30 seconds for MySQL/MariaDB to settle..."))
+ max_wait = 30
+ while max_wait > 0:
+ for socket_path in socket_paths:
+ if os.path.exists(socket_path):
+ max_wait = 0
- if max_wait > 0:
- max_wait = max_wait - 1
- time.sleep(1)
+ if max_wait > 0:
+ max_wait = max_wait - 1
+ time.sleep(1)
options = {
1: "Existing MySQL server (with root password already set).",
@@ -116,14 +125,17 @@ def execute(*args, **kw): # noqa: C901
}
answer = 0
- if len([x for x in socket_paths if os.path.exists(x)]) > 0:
- if conf.mysqlserver:
- if conf.mysqlserver == 'existing':
- answer = 1
- elif conf.mysqlserver == 'new':
- answer = 2
- if answer == 0:
- answer = utils.ask_menu(_("What MySQL server are we setting up?"), options)
+ if conf.mysqlserver != 'existing':
+ if len([x for x in socket_paths if os.path.exists(x)]) > 0:
+ if conf.mysqlserver:
+ if conf.mysqlserver == 'existing':
+ answer = 1
+ elif conf.mysqlserver == 'new':
+ answer = 2
+ if answer == 0:
+ answer = utils.ask_menu(_("What MySQL server are we setting up?"), options)
+ else:
+ answer = 1
if answer == "1" or answer == 1:
if not conf.mysqlrootpw:
@@ -214,7 +226,8 @@ def execute(*args, **kw): # noqa: C901
[mysql]
user=root
password='%s'
-""" % (mysql_root_password)
+host=%s
+""" % (mysql_root_password, conf.mysqlhost)
fp = open('/tmp/kolab-setup-my.cnf', 'w')
os.chmod('/tmp/kolab-setup-my.cnf', 600)
diff --git a/pykolab/setup/setup_roundcube.py b/pykolab/setup/setup_roundcube.py
index 1be5cb6..36c7aa7 100644
--- a/pykolab/setup/setup_roundcube.py
+++ b/pykolab/setup/setup_roundcube.py
@@ -232,7 +232,8 @@ def execute(*args, **kw):
[mysql]
user=root
password='%s'
-""" % (mysql_root_password)
+host=%s
+""" % (mysql_root_password, conf.mysqlhost)
fp = open('/tmp/kolab-setup-my.cnf', 'w')
os.chmod('/tmp/kolab-setup-my.cnf', 600)
diff --git a/pykolab/setup/setup_syncroton.py b/pykolab/setup/setup_syncroton.py
index 5b9f915..446577f 100644
--- a/pykolab/setup/setup_syncroton.py
+++ b/pykolab/setup/setup_syncroton.py
@@ -33,12 +33,20 @@ from pykolab.translate import _
log = pykolab.getLogger('pykolab.setup')
conf = pykolab.getConf()
+
def __init__():
- components.register('syncroton', execute, description=description(), after=['mysql','ldap','roundcube'])
+ components.register(
+ 'syncroton',
+ execute,
+ description=description(),
+ after=['mysql','ldap','roundcube']
+ )
+
def description():
return _("Setup Syncroton.")
+
def execute(*args, **kw):
schema_files = []
for root, directories, filenames in os.walk('/usr/share/doc/'):
@@ -71,7 +79,8 @@ def execute(*args, **kw):
[mysql]
user=root
password='%s'
-""" % (mysql_root_password)
+host=%s
+""" % (mysql_root_password, conf.mysqlhost)
fp = open('/tmp/kolab-setup-my.cnf', 'w')
os.chmod('/tmp/kolab-setup-my.cnf', 0600)