Changeset 2394 for TI07-MOLES


Ignore:
Timestamp:
11/04/07 12:07:45 (12 years ago)
Author:
lawrence
Message:

Improved error handling, including gross error mailing

Location:
TI07-MOLES/trunk/PythonCode/wsgi
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • TI07-MOLES/trunk/PythonCode/wsgi/Utilities.py

    r2379 r2394  
    1515import urllib 
    1616import logging 
     17import smtplib 
    1718 
    1819class myConfig: 
     
    155156     
    156157 
     158def mailError(recipients,subject,body,sender='ndg@badc.nerc.ac.uk',testing=0,server='localhost'): 
     159    try: 
     160        server=smtplib.SMTP(server) 
     161        server.set_debuglevel(1) 
     162        toaddr=recipients 
     163        fromaddr="From: %s\n"% sender 
     164        message="To: %s\n" % toaddr 
     165        message+=fromaddr 
     166        message+="Subject: %s\n" % subject 
     167        message+=body 
     168        server.sendmail(fromaddr, toaddr, message) 
     169        server.quit() 
     170    except: 
     171        if testing: 
     172            raise 
     173        else: 
     174            #no failing in real life 
     175            pass 
     176         
    157177import unittest 
    158178 
     
    185205        self.assertEqual(idget(self.difxml),'NOCSDAT192') 
    186206     
     207    def testMailError(self): 
     208        target='b.n.lawrence@rl.ac.uk' 
     209        subject='test from Utilities' 
     210        body='some information' 
     211        mailError(target,subject,body,server='outbox.rl.ac.uk',testing=1) 
    187212 
    188213if __name__=="__main__": 
  • TI07-MOLES/trunk/PythonCode/wsgi/ndgPageLayout.py

    r2319 r2394  
    3737        advancedURL=self.config.get('SEARCH','advancedURL') 
    3838        ndgJavascript=self.config.get('layout','ndgJavascript') 
     39        self.mailServer=self.config.get('DEFAULT','mailServer','outbox.rl.ac.uk') 
    3940 
    4041        self.pageStart='''<?xml version="1.0" encoding="utf-8"?> 
     
    8889            else: 
    8990                for i in self.wrapTarget(environ,start_response): response+=str(i) 
    90         except UnicodeEncodeError: 
    91             response+='''<p> Problems with data content, records untranslatable! </p>  
    92             <p>Please eport this error to the badc (badc@rl.ac.uk) with "Discovery UNICODE  
    93             error in the subject line" and cut and paste the url <i>to this message</i>  
    94             in the message body</p>''' 
     91        except Exception,e: 
     92            response+='''<p> Unable to fufill request, probably an error in the metadata record.  
     93            NDG staff have been advised. Please try another search. </p>''' 
     94            body='Error [%s]\n'%e 
     95            body+=str(environ) 
     96            mailError('b.n.lawrence@rl.ac.uk','Discovery/Browse Error',body,server=self.mailServer) 
    9597        if footer: response+=self.footer 
    9698        #currently need to coerce response into a string for flup ... 
  • TI07-MOLES/trunk/PythonCode/wsgi/renderEntity.py

    r2392 r2394  
    141141        #except: pass 
    142142         
    143          
    144         if entity.personnel<>[]: 
    145             for p in entity.personnel: 
    146                 html+='''<tr><td class="line">%s</td><td>%s</td></tr>'''%( 
    147                         p.core['role'],p.toHTML()) 
    148  
    149          
    150143        html+=''' 
    151144                <tr><td class="line">Data Curator<br/></td> 
     
    157150                        <td>%s</td></tr>'''%c.toHTML() 
    158151                         
     152        if entity.personnel<>[]: 
     153            for p in entity.personnel: 
     154                html+='''<tr><td class="line">%s</td><td>%s</td></tr>'''%( 
     155                        p.core['role'],p.toHTML())                
     156                         
    159157        html+='</tbody></table>' 
    160158         
Note: See TracChangeset for help on using the changeset viewer.