From e285cc04d6c7bdc9f8373a17c95e03d5dd883d2f Mon Sep 17 00:00:00 2001 From: yzhu Date: Jun 29 2017 19:17:07 +0000 Subject: enable callback plugin for builder --- diff --git a/koji/daemon.py b/koji/daemon.py index 421a2b1..9706437 100644 --- a/koji/daemon.py +++ b/koji/daemon.py @@ -518,13 +518,29 @@ class TaskManager(object): def findHandlers(self, vars): """Find and index task handlers""" for v in vars.values(): - if isinstance(v, type(koji.tasks.BaseTaskHandler)) and issubclass(v, koji.tasks.BaseTaskHandler): - for method in v.Methods: - self.handlers[method] = v + self.registerHandler(v) + + def registerHandler(self, entry): + """register and index task handler""" + if isinstance(entry, type(koji.tasks.BaseTaskHandler)) and issubclass(entry, koji.tasks.BaseTaskHandler): + for method in entry.Methods: + self.handlers[method] = entry + + def registerCallback(self, entry): + """register and index callback plugins""" + if callable(entry) and getattr(entry, 'callbacks', None): + for cbtype in entry.callbacks: + koji.plugin.register_callback(cbtype, entry) + + def registerEntries(self, vars): + """Register task handlers and other plugins""" + for v in vars.values(): + self.registerHandler(v) + self.registerCallback(v) def scanPlugin(self, plugin): """Find task handlers in a plugin""" - self.findHandlers(vars(plugin)) + self.registerEntries(vars(plugin)) def shutdown(self): """Attempt to shut down cleanly"""