From: Matthew W. S. Bell <men...@engelbert.(none)>
Signed-off-by: Matthew W. S. Bell <matt...@bells23.org.uk> --- src/netconf/ifaces/dhcp/handler.py | 9 ++++++--- src/netconf/ifaces/eni/handler.py | 5 ----- src/netconf/ifaces/handler.py | 6 ++++++ 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/netconf/ifaces/dhcp/handler.py b/src/netconf/ifaces/dhcp/handler.py index fa87106..396d6e9 100644 --- a/src/netconf/ifaces/dhcp/handler.py +++ b/src/netconf/ifaces/dhcp/handler.py @@ -58,12 +58,15 @@ class DHCPHandler(BaseIfaceHandler): # peer, since the dhclient process still holds the old peer's FDs. The # solution is probably to reattach new peers to the old peer pipes... + def cb_result(result): + self._handled_event(e, parent_event) + if cmd.name == 'IFUP': - return self._ifup(cmd, manip, cb_result, verbose) + self._ifup(cmd, manip, cb_result, verbose) elif cmd.name == 'IFDOWN': - return self._ifdown(cmd, manip, cb_result, verbose) + self._ifdown(cmd, manip, cb_result, verbose) - cb_result(BaseIfaceHandler.UnknownCommandError(cmd)) + raise BaseIfaceHandler.UnknownCommandError(cmd) @public def go_away(self, cmd, manip, cb_result, verbose=None): diff --git a/src/netconf/ifaces/eni/handler.py b/src/netconf/ifaces/eni/handler.py index c810947..c9ab0dd 100644 --- a/src/netconf/ifaces/eni/handler.py +++ b/src/netconf/ifaces/eni/handler.py @@ -224,11 +224,6 @@ class EniHandler(BaseIfaceHandler): wait_for_hookrunner) return runner() - @private - def _handled_event(self, result, parent_event): - event = Event('HANDLED', result, self, parent=parent_event) - self._core.pubsub.publish(event) - class IfaceNotDefinedResult(BaseIfaceHandler.CannotHandleResult): @public def __init__(self, iface, eni): diff --git a/src/netconf/ifaces/handler.py b/src/netconf/ifaces/handler.py index 6e86443..2ebf89f 100644 --- a/src/netconf/ifaces/handler.py +++ b/src/netconf/ifaces/handler.py @@ -32,6 +32,7 @@ from netconf.util.access import public, protected, private from netconf.util import logger from netconf.commands import InvalidCommandError from netconf.cmdresult import CannotHandleResult, BusyResult +from netconf.event import Event class BaseIfaceHandler(object, logger.Mixin): @@ -62,6 +63,11 @@ class BaseIfaceHandler(object, logger.Mixin): except AttributeError: return False + @protected + def _handled_event(self, result, parent_event): + event = Event('HANDLED', result, self, parent=parent_event) + self._core.pubsub.publish(event) + @public @purevirtual def go_away(self, cmd, manip, verbose=None): -- 1.6.2.4 _______________________________________________ netconf-devel mailing list netconf-devel@lists.alioth.debian.org http://lists.alioth.debian.org/mailman/listinfo/netconf-devel