[PATCH 08/13] Have DHCP handler raise any results correctly.
Matthew W. S. Bell
matthew at bells23.org.uk
Sat Apr 25 18:18:33 UTC 2009
From: Matthew W. S. Bell <mentor at engelbert.(none)>
Signed-off-by: Matthew W. S. Bell <matthew at 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
More information about the netconf-devel
mailing list