From 57c40ffa3fbf7992c3a6c0d6bbfb711ecafd20cf Mon Sep 17 00:00:00 2001 From: Nicolas Emiliani Date: Tue, 6 Nov 2007 15:15:42 -0300 Subject: [PATCH] Se agregan try y catch al _write_config del iphandler --- pymin/services/ip/__init__.py | 53 +++++++++++++++++++++++------------ 1 file changed, 35 insertions(+), 18 deletions(-) diff --git a/pymin/services/ip/__init__.py b/pymin/services/ip/__init__.py index 881f695..0c0ea5f 100644 --- a/pymin/services/ip/__init__.py +++ b/pymin/services/ip/__init__.py @@ -177,35 +177,52 @@ class IpHandler(Restorable, ConfigWriter, TransactionalHandler): def _write_config(self): r"_write_config() -> None :: Execute all commands." for device in self.devices.values(): - call(self._render_config('route_flush', dict(dev=device.name)), shell=True) - call(self._render_config('ip_flush', dict(dev=device.name)), shell=True) + try: + call(self._render_config('route_flush', dict(dev=device.name)), shell=True) + except ExecutionError, e: + print e + try: + call(self._render_config('ip_flush', dict(dev=device.name)), shell=True) + except ExecutionError, e: + print e for address in device.addrs.values(): broadcast = address.broadcast if broadcast is None: broadcast = '+' - call(self._render_config('ip_add', dict( + try: + call(self._render_config('ip_add', dict( dev = device.name, addr = address.ip, netmask = address.netmask, peer = address.peer, broadcast = broadcast, - ) - ), shell=True) + ) + ), shell=True) + except ExecutionError, e: + print e for route in device.routes: - call(self._render_config('route_add', dict( - dev = device.name, - net_addr = route.net_addr, - prefix = route.prefix, - gateway = route.gateway, - ) - ), shell=True) - + try: + call(self._render_config('route_add', dict( + dev = device.name, + net_addr = route.net_addr, + prefix = route.prefix, + gateway = route.gateway, + ) + ), shell=True) + except ExecutionError, e: + print e if self.hops: - call('ip route del default', shell=True) - call(self._render_config('hop', dict( - hops = self.hops, - ) - ), shell=True) + try: + call('ip route del default', shell=True) + except ExecutionError, e: + print e + try: + call(self._render_config('hop', dict( + hops = self.hops, + ) + ), shell=True) + except ExecutionError, e: + print e def handle_timer(self): -- 2.43.0