Example #1
0
 def getInstance(cls):
     from cdb.common.db.impl.dbManager import DbManager
     try:
         mgr = DbManager()
     except DbManager as ex:
         mgr = ex
     return mgr
Example #2
0
    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)
Example #3
0
 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)
Example #4
0
 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)
Example #5
0
        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'
Example #6
0
 def __init__(self):
     self.logger = LoggingManager.getInstance().getLogger(
         self.__class__.__name__)
     self.dbManager = DbManager.getInstance()
     self.adminGroupName = None
Example #7
0
        :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