improved connection management
diff --git a/emuvim/dcemulator/net.py b/emuvim/dcemulator/net.py
index 478c587..13df531 100644
--- a/emuvim/dcemulator/net.py
+++ b/emuvim/dcemulator/net.py
@@ -77,6 +77,18 @@
node2 = self.switches[node2]
if isinstance( node2, Datacenter ):
node2 = node2.switch
+ # try to give containers a default IP
+ if isinstance( node1, Docker ):
+ if not "params1" in params:
+ params["params1"] = {}
+ if not "ip" in params["params1"]:
+ params["params1"]["ip"] = self.getNextIp()
+ if isinstance( node2, Docker ):
+ if not "params2" in params:
+ params["params2"] = {}
+ if not "ip" in params["params2"]:
+ params["params2"]["ip"] = self.getNextIp()
+
return self.mnet.addLink(node1, node2, **params) # TODO we need TCLinks with user defined performance here
def removeLink(self, link=None, node1=None, node2=None):
@@ -99,6 +111,9 @@
"""
return self.mnet.removeDocker(name, **params)
+ def getNextIp(self):
+ return self.mnet.getNextIp()
+
def start(self):
# start
for dc in self.dcs.itervalues():
diff --git a/emuvim/dcemulator/node.py b/emuvim/dcemulator/node.py
index 6adf57c..67ce600 100644
--- a/emuvim/dcemulator/node.py
+++ b/emuvim/dcemulator/node.py
@@ -48,8 +48,8 @@
data center.
"""
# TODO ip management
- d = self.net.addDocker("%s.%s" % (self.name, name), dimage="ubuntu")
- self.net.addLink(d, self.switch, params1={"ip": "10.0.0.254/8"})
+ d = self.net.addDocker("%s" % (name), dimage="ubuntu")
+ self.net.addLink(d, self.switch) #params1={"ip": "10.0.0.254/8"}
self.containers[name] = d
def removeCompute(self, name):
@@ -59,5 +59,5 @@
assert name in self.containers
self.net.removeLink(
link=None, node1=self.containers[name], node2=self.switch)
- self.net.removeDocker("%s.%s" % (self.name, name))
+ self.net.removeDocker("%s" % (name))
del self.containers[name]