Changeset 18:e7d832bdf857 in livinglogic.python.nightshade

Show
Ignore:
Timestamp:
05/19/06 11:31:10 (14 years ago)
Author:
Walter Doerwald <walter@…>
Branch:
default
Message:

Forward Oracle exception with code 20200-20599 as HTTP exceptions.

Files:
2 modified

Legend:

Unmodified
Added
Removed
  • nightshade.py

    r17 r18  
    167167         
    168168        now = getnow() 
    169         if self.pool is not None: 
    170             while 1: 
    171                 connection = self.pool.acquire() 
    172                 cursor = connection.cursor() 
    173                 try: 
    174                     result = self.proc(cursor, *args, **kwargs) 
    175                 except cx_Oracle.DatabaseError, exc: 
    176                     if "ORA-03114" in str(exc): 
    177                         # Drop dead connection and retry 
    178                         self.pool.drop(connection) 
     169        try: 
     170            if self.pool is not None: 
     171                while 1: 
     172                    connection = self.pool.acquire() 
     173                    cursor = connection.cursor() 
     174                    try: 
     175                        result = self.proc(cursor, *args, **kwargs) 
     176                    except cx_Oracle.DatabaseError, exc: 
     177                        if "ORA-03114" in str(exc): 
     178                            # Drop dead connection and retry 
     179                            self.pool.drop(connection) 
     180                        else: 
     181                            raise 
    179182                    else: 
    180                         raise 
     183                        break 
     184            else: 
     185                cursor = self.connection.cursor() 
     186                result = self.proc(cursor, *args, **kwargs) 
     187        except cx_Oracle.DatabaseError, exc: 
     188            if exc.args: 
     189                code = getattr(exc[0], "code", 0) 
     190                if 20200 <= code <= 20599: 
     191                    raise cherrypy.HTTPError(code-20000) 
    181192                else: 
    182                     break 
    183         else: 
    184             cursor = self.connection.cursor() 
    185             result = self.proc(cursor, *args, **kwargs) 
     193                    raise 
    186194 
    187195        # Set HTTP headers from parameters 
  • setup.py

    r16 r18  
    5252tools.setup( 
    5353    name="ll-nightshade", 
    54     version="0.2.3", 
     54    version="0.3", 
    5555    description="Serve the output of TOXIC functions/procedures with CherryPy", 
    5656    long_description=DESCRIPTION,