Added routes to OMF nodes
[nepi.git] / src / nepi / core / execute.py
index 642050b..5e0c5ea 100644 (file)
@@ -1,4 +1,3 @@
-#!/usr/bin/env python
 # -*- coding: utf-8 -*-
 
 from nepi.core.attributes import Attribute, AttributesMap
@@ -84,7 +83,8 @@ class TestbedController(object):
         """Instructs the addition of an address"""
         raise NotImplementedError
 
-    def defer_add_route(self, guid, destination, netprefix, nexthop, metric = 0):
+    def defer_add_route(self, guid, destination, netprefix, nexthop, 
+            metric = 0, device = None):
         """Instructs the addition of a route"""
         raise NotImplementedError
 
@@ -1018,8 +1018,10 @@ class ExperimentController(object):
                         testbed.defer_add_address(guid, address, netprefix, 
                                 broadcast)
                 # routes
-                for (destination, netprefix, nexthop, metric) in data.get_route_data(guid):
-                    testbed.defer_add_route(guid, destination, netprefix, nexthop, metric)
+                for (destination, netprefix, nexthop, metric, device) in \
+                        data.get_route_data(guid):
+                    testbed.defer_add_route(guid, destination, netprefix, nexthop, 
+                            metric, device)
                 # store connections data
                 for (connector_type_name, other_guid, other_connector_type_name) \
                         in data.get_connection_data(guid):
@@ -1116,20 +1118,16 @@ class ExperimentSuite(object):
         self._status = TS.STATUS_ZERO
         self._thread = None
 
-    @property
     def current(self):
         return self._current
 
-    @property
     def status(self):
         return self._status
 
-    @property
     def is_finished(self):
-        return self._status == TS.STATUS_FINISHED
+        return self._status == TS.STATUS_STOPPED
 
-    @property
-    def access_configurations(self):
+    def get_access_configurations(self):
         return self._access_configs.values()
 
     def start(self):
@@ -1141,22 +1139,24 @@ class ExperimentSuite(object):
         if self._thread:
             self._thread.join()
             self._thread = None
-        for controller in self._controllers.values:
+        for controller in self._controllers.values():
             controller.shutdown()
 
     def get_current_access_config(self):
         return self._access_configs[self._current]
 
     def _run_experiment_suite(self):
-        for i in xrange[0, self.repetitions]:
+        for i in xrange(1, self._repetitions):
             self._current = i
             self._run_one_experiment()
-        self._status  = TS.STATUS_FINISHED
+        self._status = TS.STATUS_STOPPED
 
     def _run_one_experiment(self):
+        from nepi.util import proxy
         access_config = proxy.AccessConfiguration()
         for attr in self._access_config.attributes:
-            access_config.set_attribute_value(attr.name, attr.value)
+            if attr.value:
+                access_config.set_attribute_value(attr.name, attr.value)
         access_config.set_attribute_value(DC.DEPLOYMENT_MODE, DC.MODE_DAEMON)
         root_dir = "%s_%d" % (
                 access_config.get_attribute_value(DC.ROOT_DIRECTORY),