4 ''' Generic ILS event object '''
6 def __init__(self, evt_hash={}):
7 self.code = int(evt_hash['ilsevent'])
8 self.text_code = evt_hash['textcode']
9 self.desc = evt_hash.get('desc') or ''
10 self.payload = evt_hash.get('payload')
11 self.debug = evt_hash.get('stacktrace') or ''
12 self.servertime = evt_hash.get('servertime') or ''
13 self.ilsperm = evt_hash.get('ilsperm')
14 self.ilspermloc = evt_hash.get('ilspermloc')
22 return '%s: %s:%s -> %s %s@%s' % (
23 self.__class__.__name__, self.code, self.text_code, self.desc, self.ilsperm, str(self.ilspermloc))
25 return '%s: %s:%s -> %s' % (
26 self.__class__.__name__, self.code, self.text_code, self.desc)
28 # XXX eventually, add events file parsing...
31 return EventException(unicode(self))
35 def parse_event(evt=None):
36 ''' If the provided evt object is a dictionary object that looks
37 like an ILS event, construct an Event object and return it.
38 Returns None otherwise. '''
40 if isinstance(evt, dict) and 'ilsevent' in evt and 'textcode' in evt:
46 def parse_and_raise(obj=None):
47 ''' Parses with parse_event. If the resulting event is a non-success
48 event, it is converted to an exception and raised. If the resulting
49 event is a success event, the event object is returned. If the
50 object is not an event, the original original object is returned
52 evt = Event.parse_event(obj)
60 class EventException(osrf.ex.OSRFException):
61 ''' A throw-able exception wrapper for events '''