f6b3e695ba7a67beab44e70017a8a94f7412e9ba
[mspang/pyceo.git] / ceo / mysql.py
1 import os, re, subprocess, ldap, socket
2 from ceo import conf, ldapi, terms, remote, ceo_pb2
3 from ceo.excep import InvalidArgument
4
5 class MySQLException(Exception):
6     pass
7
8 def create_mysql(username):
9     try:
10         request = ceo_pb2.AddMySQLUser()
11         request.username = username
12
13         out = remote.run_remote('mysql', request.SerializeToString())
14
15         response = ceo_pb2.AddMySQLUserResponse()
16         response.ParseFromString(out)
17
18         if any(message.status != 0 for message in response.messages):
19             raise MySQLException('\n'.join(message.message for message in response.messages))
20
21         return response.password
22     except remote.RemoteException, e:
23         raise MySQLException(e)
24