def setUp(self): self._tap0 = Tap() self._tap1 = Tap() self._tap2 = Tap() self._bridge0 = Bridge('src-') self._bridge1 = Bridge('target-') self._bridge2 = Bridge('target2-') self._devices = [ self._tap0, self._tap1, self._tap2, self._bridge0, self._bridge1, self._bridge2 ] # If setUp raise, teardown is not called, so we should either succeed, # or fail without leaving junk around. cleanup = [] try: for iface in self._devices: iface.addDevice() cleanup.append(iface) self._bridge0.addIf(self._tap0.devName) self._bridge1.addIf(self._tap1.devName) self._bridge2.addIf(self._tap2.devName) except: t, v, tb = sys.exc_info() for iface in cleanup: try: iface.delDevice() except Exception: self.log.exception("Error removing device %s" % iface) six.reraise(t, v, tb)