extras-buildsys/server Config.py,1.8,1.9 DBManager.py,1.2,1.3
Daniel Williams (dcbw)
fedora-extras-commits at redhat.com
Mon Oct 24 15:34:07 UTC 2005
Author: dcbw
Update of /cvs/fedora/extras-buildsys/server
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv21092/server
Modified Files:
Config.py DBManager.py
Log Message:
2005-10-24 Dan Williams <dcbw at redhat.com>
Patch from Jeff Sheltren <sheltren at cs.ucsb.edu>
* server/DBManager.py
server/Config.py
- Add MySQL support
Index: Config.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/Config.py,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- Config.py 19 Oct 2005 13:38:40 -0000 1.8
+++ Config.py 24 Oct 2005 15:34:05 -0000 1.9
@@ -138,6 +138,12 @@
self.set_option("pgdb Engine", "user", "plague")
self.set_option("pgdb Engine", "password", "")
+ self.add_section("mysql Engine")
+ self.set_option("mysql Engine", "host", "localhost")
+ self.set_option("mysql Engine", "database", "plague")
+ self.set_option("mysql Engine", "user", "plague")
+ self.set_option("mysql Engine", "password", "")
+
self.save()
Index: DBManager.py
===================================================================
RCS file: /cvs/fedora/extras-buildsys/server/DBManager.py,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- DBManager.py 17 Oct 2005 21:09:29 -0000 1.2
+++ DBManager.py 24 Oct 2005 15:34:05 -0000 1.3
@@ -199,11 +199,59 @@
return dbcx
+class mysqlEngineClass(BaseDBEngineClass):
+
+ """ MySQL will autoincrement the primary key since we define
+ it as auto_increment """
+
+ def get_uid_field_type(self):
+ return "int(11) NOT NULL auto_increment PRIMARY KEY"
+
+ def get_uid_field_for_insert(self):
+ return ""
+
+ def get_uid_value_for_insert(self):
+ return ""
+
+ def fetchall(self, cursor):
+ """ We need to convert the returned data to a ResultSet object so
+ we can access it as a dict
+ """
+ rows = cursor.fetchall()
+ return [ResultSet(row, cursor.description) for row in rows]
+
+ def fetchone(self, cursor):
+ """ We need to convert the returned data to a ResultSet object so
+ we can access it as a dict
+ """
+ row = cursor.fetchone()
+ if not row:
+ return None
+ return ResultSet(row, cursor.description)
+
+ def _connect(self):
+ try:
+ host = self._cfg.get_str("mysql Engine", "host")
+ database = self._cfg.get_str("mysql Engine", "database")
+ user = self._cfg.get_str("mysql Engine", "user")
+ password = self._cfg.get_str("mysql Engine", "password")
+ except BaseConfig.ConfigError, e:
+ print "Error: bad mysql config options. '%s'" % e
+ os._exit(1)
+
+ try:
+ dbcx = MySQLdb.connect(host=host, db=database, user=user, passwd=password)
+ except StandardError, e:
+ print "Error: %s" % e
+ os._exit(1)
+
+ return dbcx
db_engines = {
'sqlite': sqliteEngineClass,
- 'pgdb': pgdbEngineClass
+ 'pgdb': pgdbEngineClass,
+ 'mysql': mysqlEngineClass
}
# Import our database engines, if any engine
@@ -219,6 +267,11 @@
except ImportError, e:
db_engines['pgdb'] = None
+try:
+ import MySQLdb
+except ImportError, e:
+ db_engines['mysql'] = None
+
class DBManager:
More information about the fedora-extras-commits
mailing list