Write mysql file to ~club
This commit is contained in:
parent
c7bd720124
commit
c51107ae2b
28
ceo/mysql.py
28
ceo/mysql.py
|
@ -1,10 +1,36 @@
|
||||||
import os, re, subprocess, ldap, socket
|
import os, re, subprocess, ldap, socket, pwd
|
||||||
from ceo import conf, ldapi, terms, remote, ceo_pb2
|
from ceo import conf, ldapi, terms, remote, ceo_pb2
|
||||||
from ceo.excep import InvalidArgument
|
from ceo.excep import InvalidArgument
|
||||||
|
|
||||||
class MySQLException(Exception):
|
class MySQLException(Exception):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def write_mysql_info(username, password):
|
||||||
|
homedir = pwd.getpwnam(username).pw_dir
|
||||||
|
password_file = '%s/ceo-mysql-info' % homedir
|
||||||
|
if os.path.exists(password_file):
|
||||||
|
os.rename(password_file, password_file + '.old')
|
||||||
|
fd = os.open(password_file, os.O_CREAT|os.O_EXCL|os.O_WRONLY, 0660)
|
||||||
|
fh = os.fdopen(fd, 'w')
|
||||||
|
fh.write("""MySQL Database Information for %(username)s
|
||||||
|
|
||||||
|
Your new MySQL database was created. To connect, use
|
||||||
|
the following options:
|
||||||
|
|
||||||
|
Database: %(username)s
|
||||||
|
Username: %(username)s
|
||||||
|
Password: %(password)s
|
||||||
|
Hostname: localhost
|
||||||
|
|
||||||
|
The command to connect using the MySQL command-line client is
|
||||||
|
|
||||||
|
mysql %(username)s -u %(username)s -p
|
||||||
|
|
||||||
|
This database is only accessible from caffeine.
|
||||||
|
""" % { 'username': username, 'password': password })
|
||||||
|
|
||||||
|
fh.close()
|
||||||
|
|
||||||
def create_mysql(username):
|
def create_mysql(username):
|
||||||
try:
|
try:
|
||||||
request = ceo_pb2.AddMySQLUser()
|
request = ceo_pb2.AddMySQLUser()
|
||||||
|
|
|
@ -60,6 +60,12 @@ class EndPage(WizardPanel):
|
||||||
problem = None
|
problem = None
|
||||||
try:
|
try:
|
||||||
password = mysql.create_mysql(self.state['userid'])
|
password = mysql.create_mysql(self.state['userid'])
|
||||||
|
|
||||||
|
try:
|
||||||
|
mysql.write_mysql_info(self.state['userid'], password)
|
||||||
|
helpfiletext = "Settings written to ~%s/ceo-mysql-info." % self.state['userid']
|
||||||
|
except (KeyError, IOError, OSError), e:
|
||||||
|
helpfiletext = "An error occured writing the settings file: %s" % e
|
||||||
self.headtext.set_text("MySQL database created")
|
self.headtext.set_text("MySQL database created")
|
||||||
self.midtext.set_text("Connection Information: \n"
|
self.midtext.set_text("Connection Information: \n"
|
||||||
"\n"
|
"\n"
|
||||||
|
@ -68,8 +74,8 @@ class EndPage(WizardPanel):
|
||||||
"Hostname: localhost\n"
|
"Hostname: localhost\n"
|
||||||
"Password: %s\n"
|
"Password: %s\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Note: Databases are only accessible from caffeine\n"
|
"%s\n"
|
||||||
% (self.state['userid'], self.state['userid'], password))
|
% (self.state['userid'], self.state['userid'], password, helpfiletext))
|
||||||
except mysql.MySQLException, e:
|
except mysql.MySQLException, e:
|
||||||
self.headtext.set_text("Failed to create MySQL database")
|
self.headtext.set_text("Failed to create MySQL database")
|
||||||
self.midtext.set_text("We failed to create the database. The error was:\n\n%s" % e)
|
self.midtext.set_text("We failed to create the database. The error was:\n\n%s" % e)
|
||||||
|
|
Loading…
Reference in New Issue