git://git.onelab.eu
/
nepi.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
f3f4764
)
box_get removed and replaced for get in testbed_impl
author
Alina Quereilhac
<alina.quereilhac@inria.fr>
Sun, 1 May 2011 17:24:02 +0000
(19:24 +0200)
committer
Alina Quereilhac
<alina.quereilhac@inria.fr>
Sun, 1 May 2011 17:24:02 +0000
(19:24 +0200)
src/nepi/core/testbed_impl.py
patch
|
blob
|
history
src/nepi/testbeds/netns/execute.py
patch
|
blob
|
history
src/nepi/testbeds/ns3/execute.py
patch
|
blob
|
history
src/nepi/testbeds/planetlab/execute.py
patch
|
blob
|
history
test/lib/mock/execute.py
patch
|
blob
|
history
diff --git
a/src/nepi/core/testbed_impl.py
b/src/nepi/core/testbed_impl.py
index
05c7c96
..
25982db
100644
(file)
--- a/
src/nepi/core/testbed_impl.py
+++ b/
src/nepi/core/testbed_impl.py
@@
-323,7
+323,7
@@
class TestbedController(execute.TestbedController):
self._set[guid][time] = dict()
self._set[guid][time][name] = value
self._set[guid][time] = dict()
self._set[guid][time][name] = value
- def
box_
get(self, time, guid, name):
+ def get(self, time, guid, name):
"""
Helper for subclasses, gets an attribute from box definitions
if available. Throws KeyError if the GUID wasn't created
"""
Helper for subclasses, gets an attribute from box definitions
if available. Throws KeyError if the GUID wasn't created
@@
-341,8
+341,6
@@
class TestbedController(execute.TestbedController):
raise AttributeError, "Attribute %s can only be queried during experiment design" % name
return factory.box_attributes.get_attribute_value(name)
raise AttributeError, "Attribute %s can only be queried during experiment design" % name
return factory.box_attributes.get_attribute_value(name)
- #get: NotImplementedError
-
def box_get_route(self, guid, index, attribute):
"""
Helper implementation for get_route, returns information
def box_get_route(self, guid, index, attribute):
"""
Helper implementation for get_route, returns information
diff --git
a/src/nepi/testbeds/netns/execute.py
b/src/nepi/testbeds/netns/execute.py
index
935add1
..
605d410
100644
(file)
--- a/
src/nepi/testbeds/netns/execute.py
+++ b/
src/nepi/testbeds/netns/execute.py
@@
-3,6
+3,7
@@
from constants import TESTBED_ID
from nepi.core import testbed_impl
from constants import TESTBED_ID
from nepi.core import testbed_impl
+from nepi.util.constants import TESTBED_STATUS_CREATED
import os
class TestbedController(testbed_impl.TestbedController):
import os
class TestbedController(testbed_impl.TestbedController):
@@
-24,28
+25,27
@@
class TestbedController(testbed_impl.TestbedController):
self._home_directory = self._attributes.\
get_attribute_value("homeDirectory")
self._netns = self._load_netns_module()
self._home_directory = self._attributes.\
get_attribute_value("homeDirectory")
self._netns = self._load_netns_module()
+ super(TestbedController, self).do_setup()
def set(self, time, guid, name, value):
super(TestbedController, self).set(time, guid, name, value)
def set(self, time, guid, name, value):
super(TestbedController, self).set(time, guid, name, value)
-
# TODO: take on account schedule time for the task
element = self._elements.get(guid)
if element:
setattr(element, name, value)
def get(self, time, guid, name):
# TODO: take on account schedule time for the task
element = self._elements.get(guid)
if element:
setattr(element, name, value)
def get(self, time, guid, name):
+ value = super(TestbedController, self).get(time, guid, name)
# TODO: take on account schedule time for the task
# TODO: take on account schedule time for the task
+ factory_id = self._create[guid]
+ factory = self._factories[factory_id]
+ if factory.box_attributes.is_attribute_design_only(name):
+ return value
element = self._elements.get(guid)
element = self._elements.get(guid)
- if element:
- try:
- if hasattr(element, name):
- # Runtime attribute
- return getattr(element, name)
- else:
- # Try design-time attributes
- return self.box_get(time, guid, name)
- except KeyError, AttributeError:
- return None
+ try:
+ return getattr(element, name)
+ except KeyError, AttributeError:
+ return value
def get_route(self, guid, index, attribute):
# TODO: fetch real data from netns
def get_route(self, guid, index, attribute):
# TODO: fetch real data from netns
diff --git
a/src/nepi/testbeds/ns3/execute.py
b/src/nepi/testbeds/ns3/execute.py
index
a89a6b7
..
936d3ba
100644
(file)
--- a/
src/nepi/testbeds/ns3/execute.py
+++ b/
src/nepi/testbeds/ns3/execute.py
@@
-42,31
+42,32
@@
class TestbedController(testbed_impl.TestbedController):
def set(self, time, guid, name, value):
super(TestbedController, self).set(time, guid, name, value)
# TODO: take on account schedule time for the task
def set(self, time, guid, name, value):
super(TestbedController, self).set(time, guid, name, value)
# TODO: take on account schedule time for the task
- if self._status < TESTBED_STATUS_CREATED or \
- factory.box_attributes.is_attribute_design_only(name):
+ factory_id = self._create[guid]
+ factory = self._factories[factory_id]
+ if factory.box_attributes.is_attribute_design_only(name):
return
element = self._elements[guid]
ns3_value = self._to_ns3_value(guid, name, value)
element.SetAttribute(name, ns3_value)
def get(self, time, guid, name):
return
element = self._elements[guid]
ns3_value = self._to_ns3_value(guid, name, value)
element.SetAttribute(name, ns3_value)
def get(self, time, guid, name):
+ value = super(TestbedController, self).get(time, guid, name)
# TODO: take on account schedule time for the task
# TODO: take on account schedule time for the task
+ factory_id = self._create[guid]
+ factory = self._factories[factory_id]
+ if factory.box_attributes.is_attribute_design_only(name):
+ return value
TypeId = self.ns3.TypeId()
typeid = TypeId.LookupByName(factory_id)
info = TypeId.AttributeInfo()
if not typeid or not typeid.LookupAttributeByName(name, info):
TypeId = self.ns3.TypeId()
typeid = TypeId.LookupByName(factory_id)
info = TypeId.AttributeInfo()
if not typeid or not typeid.LookupAttributeByName(name, info):
- try:
- # Try design-time attributes
- return self.box_get(time, guid, name)
- except KeyError, AttributeError:
- return None
+ raise AttributeError("Invalid attribute %s for element type %d" % \
+ (name, guid))
checker = info.checker
ns3_value = checker.Create()
element = self._elements[guid]
element.GetAttribute(name, ns3_value)
value = ns3_value.SerializeToString(checker)
checker = info.checker
ns3_value = checker.Create()
element = self._elements[guid]
element.GetAttribute(name, ns3_value)
value = ns3_value.SerializeToString(checker)
- factory_id = self._create[guid]
- factory = self._factories[factory_id]
attr_type = factory.box_attributes.get_attribute_type(name)
if attr_type == Attribute.INTEGER:
return int(value)
attr_type = factory.box_attributes.get_attribute_type(name)
if attr_type == Attribute.INTEGER:
return int(value)
diff --git
a/src/nepi/testbeds/planetlab/execute.py
b/src/nepi/testbeds/planetlab/execute.py
index
edbaa9a
..
0f76fbf
100644
(file)
--- a/
src/nepi/testbeds/planetlab/execute.py
+++ b/
src/nepi/testbeds/planetlab/execute.py
@@
-58,6
+58,7
@@
class TestbedController(testbed_impl.TestbedController):
get_attribute_value("authPass")
self.sliceSSHKey = self._attributes.\
get_attribute_value("sliceSSHKey")
get_attribute_value("authPass")
self.sliceSSHKey = self._attributes.\
get_attribute_value("sliceSSHKey")
+ super(TestbedController, self).do_setup()
def do_preconfigure(self):
# Perform resource discovery if we don't have
def do_preconfigure(self):
# Perform resource discovery if we don't have
@@
-107,7
+108,6
@@
class TestbedController(testbed_impl.TestbedController):
# cleanup
del self._to_provision
# cleanup
del self._to_provision
-
def set(self, time, guid, name, value):
super(TestbedController, self).set(time, guid, name, value)
# TODO: take on account schedule time for the task
def set(self, time, guid, name, value):
super(TestbedController, self).set(time, guid, name, value)
# TODO: take on account schedule time for the task
@@
-120,18
+120,17
@@
class TestbedController(testbed_impl.TestbedController):
element.refresh()
def get(self, time, guid, name):
element.refresh()
def get(self, time, guid, name):
+ value = super(TestbedController, self).get(time, guid, name)
# TODO: take on account schedule time for the task
# TODO: take on account schedule time for the task
+ factory_id = self._create[guid]
+ factory = self._factories[factory_id]
+ if factory.box_attributes.is_attribute_design_only(name):
+ return value
element = self._elements.get(guid)
element = self._elements.get(guid)
- if element:
- try:
- if hasattr(element, name):
- # Runtime attribute
- return getattr(element, name)
- else:
- # Try design-time attributes
- return self.box_get(time, guid, name)
- except KeyError, AttributeError:
- return None
+ try:
+ return getattr(element, name)
+ except KeyError, AttributeError:
+ return value
def get_route(self, guid, index, attribute):
# TODO: fetch real data from planetlab
def get_route(self, guid, index, attribute):
# TODO: fetch real data from planetlab
diff --git
a/test/lib/mock/execute.py
b/test/lib/mock/execute.py
index
c714cf2
..
f2b1278
100644
(file)
--- a/
test/lib/mock/execute.py
+++ b/
test/lib/mock/execute.py
@@
-8,21
+8,9
@@
class TestbedController(testbed_impl.TestbedController):
def __init__(self, testbed_version):
super(TestbedController, self).__init__(TESTBED_ID, testbed_version)
def __init__(self, testbed_version):
super(TestbedController, self).__init__(TESTBED_ID, testbed_version)
- def do_setup(self):
- pass
-
def do_configure(self):
pass
def do_configure(self):
pass
- def set(self, time, guid, name, value):
- super(TestbedController, self).set(time, guid, name, value)
-
- def get(self, time, guid, name):
- try:
- return self.box_get(time, guid, name)
- except KeyError, AttributeError:
- return None
-
def get_route(self, guid, index, attribute):
try:
return self.box_get_route(guid, int(index), attribute)
def get_route(self, guid, index, attribute):
try:
return self.box_get_route(guid, int(index), attribute)