projects
/
osm
/
vim-emu.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Cleanup: Removed depricated Docker build scripts and test scripts.
[osm/vim-emu.git]
/
src
/
emuvim
/
dcemulator
/
node.py
diff --git
a/src/emuvim/dcemulator/node.py
b/src/emuvim/dcemulator/node.py
index
8219761
..
2702bf5
100755
(executable)
--- a/
src/emuvim/dcemulator/node.py
+++ b/
src/emuvim/dcemulator/node.py
@@
-38,7
+38,6
@@
LOG.setLevel(logging.DEBUG)
DCDPID_BASE = 1000 # start of switch dpid's used for data center switches
DCDPID_BASE = 1000 # start of switch dpid's used for data center switches
-
class EmulatorCompute(Docker):
"""
Emulator specific compute node class.
class EmulatorCompute(Docker):
"""
Emulator specific compute node class.
@@
-91,6
+90,7
@@
class EmulatorCompute(Docker):
status["memswap_limit"] = self.memswap_limit
status["state"] = self.dcli.inspect_container(self.dc)["State"]
status["id"] = self.dcli.inspect_container(self.dc)["Id"]
status["memswap_limit"] = self.memswap_limit
status["state"] = self.dcli.inspect_container(self.dc)["State"]
status["id"] = self.dcli.inspect_container(self.dc)["Id"]
+ status["short_id"] = self.dcli.inspect_container(self.dc)["Id"][:12]
status["datacenter"] = (None if self.datacenter is None
else self.datacenter.label)
return status
status["datacenter"] = (None if self.datacenter is None
else self.datacenter.label)
return status
@@
-113,7
+113,7
@@
class Datacenter(object):
self.name = "dc%d" % Datacenter.DC_COUNTER
Datacenter.DC_COUNTER += 1
# use this for user defined names that can be longer than self.name
self.name = "dc%d" % Datacenter.DC_COUNTER
Datacenter.DC_COUNTER += 1
# use this for user defined names that can be longer than self.name
- self.label = label
+ self.label = label
# dict to store arbitrary metadata (e.g. latitude and longitude)
self.metadata = metadata
# path to which resource information should be logged (e.g. for experiments). None = no logging
# dict to store arbitrary metadata (e.g. latitude and longitude)
self.metadata = metadata
# path to which resource information should be logged (e.g. for experiments). None = no logging
@@
-148,7
+148,7
@@
class Datacenter(object):
def start(self):
pass
def start(self):
pass
- def startCompute(self, name, image=None, command=None, network=None, flavor_name="tiny"):
+ def startCompute(self, name, image=None, command=None, network=None, flavor_name="tiny"
, **params
):
"""
Create a new container as compute resource and connect it to this
data center.
"""
Create a new container as compute resource and connect it to this
data center.
@@
-174,15
+174,25
@@
class Datacenter(object):
if len(network) < 1:
network.append({})
if len(network) < 1:
network.append({})
+ # apply hard-set resource limits=0
+ cpu_percentage = params.get('cpu_percent')
+ if cpu_percentage:
+ params['cpu_period'] = self.net.cpu_period
+ params['cpu_quota'] = self.net.cpu_period * float(cpu_percentage)
+
# create the container
d = self.net.addDocker(
"%s" % (name),
dimage=image,
dcmd=command,
datacenter=self,
# create the container
d = self.net.addDocker(
"%s" % (name),
dimage=image,
dcmd=command,
datacenter=self,
- flavor_name=flavor_name
+ flavor_name=flavor_name,
+ environment = {'VNF_NAME':name},
+ **params
)
)
+
+
# apply resource limits to container if a resource model is defined
if self._resource_model is not None:
try:
# apply resource limits to container if a resource model is defined
if self._resource_model is not None:
try: