X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=src%2Femuvim%2Fdcemulator%2Fnet.py;h=8b2c445eea55f0edeaaf3656b87b437df7c12176;hb=refs%2Fchanges%2F77%2F7977%2F9;hp=9e491b3198f6a42f32a1b166265a51e1ca7e6464;hpb=cda16f98f0b1a5e8a6fae4abfc61fb91b4f83ee2;p=osm%2Fvim-emu.git diff --git a/src/emuvim/dcemulator/net.py b/src/emuvim/dcemulator/net.py index 9e491b3..8b2c445 100755 --- a/src/emuvim/dcemulator/net.py +++ b/src/emuvim/dcemulator/net.py @@ -31,7 +31,7 @@ import os import json import networkx as nx from subprocess import Popen -from gevent import monkey +# from gevent import monkey from mininet.net import Containernet from mininet.node import OVSSwitch, OVSKernelSwitch, Docker, RemoteController from mininet.cli import CLI @@ -42,7 +42,7 @@ from emuvim.dcemulator.node import Datacenter, EmulatorCompute from emuvim.dcemulator.resourcemodel import ResourceModelRegistrar # ensure correct functionality of all gevent based REST servers -monkey.patch_all() +# monkey.patch_all() # setup logging LOG = logging.getLogger("dcemulator.net") @@ -385,6 +385,18 @@ class DCNetwork(Containernet): switch_node = self.getNodeByName(src_sw) self._set_vlan_tag(switch_node, src_sw_inport_name, vlan) + def getNodeByName(self, name): + """ + Wraps Containernet's getNodeByName method to avoid + key not found exceptions. + """ + try: + return super(DCNetwork, self).getNodeByName(name) + except BaseException as ex: + LOG.warning("Node not found: {}".format(name)) + LOG.debug("Node not found: {}".format(ex)) + return None + def _addMonitorFlow(self, vnf_src_name, vnf_dst_name, vnf_src_interface=None, vnf_dst_interface=None, tag=None, **kwargs): """