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