def getInstance(cls): from cdb.common.db.impl.dbManager import DbManager try: mgr = DbManager() except DbManager as ex: mgr = ex return mgr
def executeConnectionQuery(cls, query): """ Allows execution of simple SQL based query on the CDB db. :param query: (String) SQL query. :return: query results list. """ connection = None try: connection = DbManager.getInstance().acquireConnection() try: return connection.execute(query) except CdbException as ex: raise except Exception as ex: cls.getLogger().exception('%s' % ex) raise finally: DbManager.getInstance().releaseConnection(connection)
def query(*args, **kwargs): try: dbManager = DbManager.getInstance() session = dbManager.openSession() kwargs['session'] = session try: return func(*args, **kwargs) except CdbException, ex: raise except Exception, ex: cls.getLogger().exception('%s' % ex) raise CdbException(exception=ex)
def transaction(*args, **kwargs): try: dbManager = DbManager.getInstance() session = dbManager.openSession() kwargs['session'] = session try: result = func(*args, **kwargs) session.commit() return result except CdbException, ex: session.rollback() raise except Exception, ex: session.rollback() cls.getLogger().exception('%s' % ex) raise CdbException(exception=ex)
try: session.close() finally: self.lock.release() def acquireConnection(self): """ Get db connection. """ self.lock.acquire() try: return self.engine.connect() finally: self.lock.release() def releaseConnection(self, connection): """ Release db connection. """ self.lock.acquire() try: if connection: connection.close() finally: self.lock.release() ####################################################################### # Testing. if __name__ == '__main__': ConfigurationManager.getInstance().setConsoleLogLevel('debug') mgr = DbManager.getInstance() mgr.acquireConnection() print 'Got connection'
def __init__(self): self.logger = LoggingManager.getInstance().getLogger( self.__class__.__name__) self.dbManager = DbManager.getInstance() self.adminGroupName = None
:param query: (String) SQL query. :return: query results list. """ connection = None try: connection = DbManager.getInstance().acquireConnection() try: return connection.execute(query) except CdbException, ex: raise except Exception, ex: cls.getLogger().exception('%s' % ex) raise finally: DbManager.getInstance().releaseConnection(connection) def loadRelation(self, dbObject, relationName): if not relationName in dir(dbObject): raise InternalError('Relation %s not valid for class %s' % (relationName, dbObject.__class__.__name__)) o = None exec 'o = dbObject.%s' % (relationName) return o def loadRelations(self, dbObject, optionDict): for k in optionDict.keys(): # The optionDict contains key-value pairs of relation name # and a boolean to indicate whether to load that relation if not optionDict[k]: continue