Merge branch 'master' of https://github.com/stevenvanrossem/son-emu
[osm/vim-emu.git] / emuvim / dcemulator / net.py
index 8379cd3..324c4d3 100755 (executable)
@@ -5,9 +5,9 @@ Distributed Cloud Emulator (dcemulator)
 import logging
 
 from mininet.net import Dockernet
 import logging
 
 from mininet.net import Dockernet
-from mininet.node import Controller, OVSKernelSwitch, Switch, Docker, Host
+from mininet.node import Controller, OVSSwitch, OVSKernelSwitch, Switch, Docker, Host, RemoteController
 from mininet.cli import CLI
 from mininet.cli import CLI
-from mininet.log import setLogLevel, info
+from mininet.log import setLogLevel, info, debug
 from mininet.link import TCLink, Link
 import networkx as nx
 from monitoring import DCNetworkMonitor
 from mininet.link import TCLink, Link
 import networkx as nx
 from monitoring import DCNetworkMonitor
@@ -27,9 +27,11 @@ class DCNetwork(Dockernet):
         self.dcs = {}
         # create a Mininet/Dockernet network
         # call original Docker.__init__ and setup default controller
         self.dcs = {}
         # create a Mininet/Dockernet network
         # call original Docker.__init__ and setup default controller
+        #Dockernet.__init__(
+        #    self, controller=RemoteController, switch=OVSKernelSwitch, **kwargs)
         Dockernet.__init__(
             self, controller=RemoteController, switch=OVSKernelSwitch, **kwargs)
         Dockernet.__init__(
             self, controller=RemoteController, switch=OVSKernelSwitch, **kwargs)
-        #self.addController('c0')
+        self.addController('c0', controller=RemoteController)
 
         # graph of the complete DC network
         self.DCNetwork_graph=nx.DiGraph()
 
         # graph of the complete DC network
         self.DCNetwork_graph=nx.DiGraph()
@@ -97,15 +99,15 @@ class DCNetwork(Dockernet):
         """
         Wrapper for addDocker method to use custom container class.
         """
         """
         Wrapper for addDocker method to use custom container class.
         """
-        self.DCNetwork_graph.add_node(name)
-        return Dockernet.addDocker(self, name, cls=EmulatorCompute, **params)
+        self.DCNetwork_graph.add_node(label)
+        return Dockernet.addDocker(self, label, cls=EmulatorCompute, **params)
 
 
-    def removeDocker( self, name, **params ):
+    def removeDocker( self, label, **params ):
         """
         Wrapper for removeDocker method to update graph.
         """
         """
         Wrapper for removeDocker method to update graph.
         """
-        self.DCNetwork_graph.remove_node(name)
-        return Dockernet.removeDocker(self, name, **params)
+        self.DCNetwork_graph.remove_node(label)
+        return Dockernet.removeDocker(self, label, **params)
 
     def addSwitch( self, name, add_to_graph=True, **params ):
         """
 
     def addSwitch( self, name, add_to_graph=True, **params ):
         """
@@ -148,10 +150,10 @@ class DCNetwork(Dockernet):
             next_node = self.getNodeByName(next_hop)
 
             if next_hop == vnf_dst_name:
             next_node = self.getNodeByName(next_hop)
 
             if next_hop == vnf_dst_name:
-                return 0
+                return "path added between {0} and {1}".format(vnf_src_name, vnf_dst_name)
             elif not isinstance( next_node, OVSSwitch ):
             elif not isinstance( next_node, OVSSwitch ):
-                logging.info("Next node: {0} is not a switch".format(next_hop1))
-                return 0
+                logging.info("Next node: {0} is not a switch".format(next_hop))
+                return "Next node: {0} is not a switch".format(next_hop)
 
 
             switch_inport = self.DCNetwork_graph[current_hop][next_hop]['dst_port']
 
 
             switch_inport = self.DCNetwork_graph[current_hop][next_hop]['dst_port']
@@ -177,4 +179,4 @@ class DCNetwork(Dockernet):
 
             current_hop = next_hop
 
 
             current_hop = next_hop
 
-        return 1
\ No newline at end of file
+        return "destination node: {0} not reached".format(vnf_dst_name)
\ No newline at end of file