sfa settings : sfa_plc category split into sfa_plc and sfa_db
[sfa.git] / sfa / util / PostgreSQL.py
index 7ae9442..de6f9fa 100644 (file)
@@ -4,21 +4,25 @@
 #
 #
 
+import re
+import traceback
+import commands
+from pprint import pformat
+from types import StringTypes, NoneType
+
 import psycopg2
 import psycopg2.extensions
 psycopg2.extensions.register_type(psycopg2.extensions.UNICODE)
 # UNICODEARRAY not exported yet
 psycopg2.extensions.register_type(psycopg2._psycopg.UNICODEARRAY)
 
-import pgdb
-from types import StringTypes, NoneType
-import traceback
-import commands
-import re
-from pprint import pformat
+# allow to run sfa2wsdl if this is missing (for mac)
+import sys
+try: import pgdb
+except: print >> sys.stderr, "WARNING, could not import pgdb"
 
-from sfa.util.faults import *
-from sfa.util.sfalogging import sfa_logger
+from sfa.util.faults import SfaDBError
+from sfa.util.sfalogging import logger
 
 if not psycopg2:
     is8bit = re.compile("[\x80-\xff]").search
@@ -65,22 +69,22 @@ class PostgreSQL:
             if psycopg2:
                 try:
                     # Try UNIX socket first
-                    self.connection = psycopg2.connect(user = self.config.SFA_PLC_DB_USER,
-                                                       password = self.config.SFA_PLC_DB_PASSWORD,
-                                                       database = self.config.SFA_PLC_DB_NAME)
+                    self.connection = psycopg2.connect(user = self.config.SFA_DB_USER,
+                                                       password = self.config.SFA_DB_PASSWORD,
+                                                       database = self.config.SFA_DB_NAME)
                 except psycopg2.OperationalError:
                     # Fall back on TCP
-                    self.connection = psycopg2.connect(user = self.config.SFA_PLC_DB_USER,
-                                                       password = self.config.SFA_PLC_DB_PASSWORD,
-                                                       database = self.config.SFA_PLC_DB_NAME,
-                                                       host = self.config.SFA_PLC_DB_HOST,
-                                                       port = self.config.SFA_PLC_DB_PORT)
+                    self.connection = psycopg2.connect(user = self.config.SFA_DB_USER,
+                                                       password = self.config.SFA_DB_PASSWORD,
+                                                       database = self.config.SFA_DB_NAME,
+                                                       host = self.config.SFA_DB_HOST,
+                                                       port = self.config.SFA_DB_PORT)
                 self.connection.set_client_encoding("UNICODE")
             else:
-                self.connection = pgdb.connect(user = self.config.SFA_PLC_DB_USER,
-                                               password = self.config.SFA_PLC_DB_PASSWORD,
-                                               host = "%s:%d" % (self.config.SFA_PLC_DB_HOST, self.config.SFA_PLC_DB_PORT),
-                                               database = self.config.SFA_PLC_DB_NAME)
+                self.connection = pgdb.connect(user = self.config.SFA_DB_USER,
+                                               password = self.config.SFA_DB_PASSWORD,
+                                               host = "%s:%d" % (self.config.SFA_DB_HOST, self.config.SFA_DB_PORT),
+                                               database = self.config.SFA_DB_NAME)
 
         (self.rowcount, self.description, self.lastrowid) = \
                         (None, None, None)
@@ -179,21 +183,21 @@ class PostgreSQL:
 
             if not params:
                 if self.debug:
-                    sfa_logger.debug('execute0 %r'%query)
+                    logger.debug('execute0 %r'%query)
                 cursor.execute(query)
             elif isinstance(params,dict):
                 if self.debug:
-                    sfa_logger.debug('execute-dict: params=[%r] query=[%r]'%(params,query%params))
+                    logger.debug('execute-dict: params=[%r] query=[%r]'%(params,query%params))
                 cursor.execute(query,params)
             elif isinstance(params,tuple) and len(params)==1:
                 if self.debug:
-                    sfa_logger.debug('execute-tuple %r'%(query%params[0]))
+                    logger.debug('execute-tuple %r'%(query%params[0]))
                 cursor.execute(query,params[0])
             else:
                 param_seq=(params,)
                 if self.debug:
                     for params in param_seq:
-                        sfa_logger.debug('executemany %r'%(query%params))
+                        logger.debug('executemany %r'%(query%params))
                 cursor.executemany(query, param_seq)
             (self.rowcount, self.description, self.lastrowid) = \
                             (cursor.rowcount, cursor.description, cursor.lastrowid)
@@ -203,11 +207,11 @@ class PostgreSQL:
             except:
                 pass
             uuid = commands.getoutput("uuidgen")
-            sfa_logger.error("Database error %s:" % uuid)
-            sfa_logger.error("Exception=%r"%e)
-            sfa_logger.error("Query=%r"%query)
-            sfa_logger.error("Params=%r"%pformat(params))
-            sfa_logger.log_exc("PostgreSQL.execute caught exception")
+            logger.error("Database error %s:" % uuid)
+            logger.error("Exception=%r"%e)
+            logger.error("Query=%r"%query)
+            logger.error("Params=%r"%pformat(params))
+            logger.log_exc("PostgreSQL.execute caught exception")
             raise SfaDBError("Please contact support: %s" % str(e))
 
         return cursor