server/hook.py
changeset 3423 d1356e008b19
parent 3418 7b49fa7e942d
parent 3416 d74c627981e1
child 3659 993997b4b41d
equal deleted inserted replaced
3422:089c4b71ac16 3423:d1356e008b19
    65         try:
    65         try:
    66             iter(obj.events)
    66             iter(obj.events)
    67         except AttributeError:
    67         except AttributeError:
    68             raise
    68             raise
    69         except:
    69         except:
    70             raise Exception('bad .events attribute %s on %s' % (obj.events, obj))
    70             raise Exception('bad .events attribute %s on %s.%s' % (
       
    71                 obj.events, obj.__module__, obj.__name__))
    71         for event in obj.events:
    72         for event in obj.events:
    72             if event not in ALL_HOOKS:
    73             if event not in ALL_HOOKS:
    73                 raise Exception('bad event %s on %s' % (event, obj))
    74                 raise Exception('bad event %s on %s.%s' % (
       
    75                     event, obj.__module__, obj.__name__))
    74         super(HooksRegistry, self).register(obj, **kwargs)
    76         super(HooksRegistry, self).register(obj, **kwargs)
    75 
    77 
    76     def call_hooks(self, event, req=None, **kwargs):
    78     def call_hooks(self, event, req=None, **kwargs):
    77         kwargs['event'] = event
    79         kwargs['event'] = event
    78         for hook in sorted(self.possible_objects(req, **kwargs), key=lambda x: x.order):
    80         for hook in sorted(self.possible_objects(req, **kwargs), key=lambda x: x.order):
    99     if req is None:
   101     if req is None:
   100         # server startup / shutdown event
   102         # server startup / shutdown event
   101         config = kwargs['repo'].config
   103         config = kwargs['repo'].config
   102     else:
   104     else:
   103         config = req.vreg.config
   105         config = req.vreg.config
   104     if enabled_category in config.disabled_hooks_categories:
   106     if cls.category in config.disabled_hooks_categories:
   105         return 0
   107         return 0
   106     return 1
   108     return 1
   107 
   109 
   108 @objectify_selector
   110 @objectify_selector
   109 @lltrace
   111 @lltrace