Synchronization fixes:
[nepi.git] / src / nepi / testbeds / planetlab / execute.py
index 38bea7b..d9506f5 100644 (file)
@@ -3,6 +3,7 @@
 
 from constants import TESTBED_ID
 from nepi.core import testbed_impl
+from nepi.util.constants import TIME_NOW
 import os
 import time
 
@@ -30,7 +31,10 @@ class TestbedController(testbed_impl.TestbedController):
             if self.authUser:
                 self._plapi = plcapi.PLCAPI(
                     username = self.authUser,
-                    password = self.authString)
+                    password = self.authString,
+                    hostname = self.plcHost,
+                    urlpattern = self.plcUrl
+                    )
             else:
                 # anonymous access - may not be enough for much
                 self._plapi = plcapi.PLCAPI()
@@ -58,6 +62,10 @@ class TestbedController(testbed_impl.TestbedController):
             get_attribute_value("authPass")
         self.sliceSSHKey = self._attributes.\
             get_attribute_value("sliceSSHKey")
+        self.plcHost = self._attributes.\
+            get_attribute_value("plcHost")
+        self.plcUrl = self._attributes.\
+            get_attribute_value("plcUrl")
         super(TestbedController, self).do_setup()
 
     def do_preconfigure(self):
@@ -108,8 +116,8 @@ class TestbedController(testbed_impl.TestbedController):
         # cleanup
         del self._to_provision
 
-    def set(self, time, guid, name, value):
-        super(TestbedController, self).set(time, guid, name, value)
+    def set(self, guid, name, value, time = TIME_NOW):
+        super(TestbedController, self).set(guid, name, value, time)
         # TODO: take on account schedule time for the task
         element = self._elements[guid]
         if element:
@@ -119,8 +127,8 @@ class TestbedController(testbed_impl.TestbedController):
                 # invoke attribute refresh hook
                 element.refresh()
 
-    def get(self, time, guid, name):
-        value = super(TestbedController, self).get(time, guid, name)
+    def get(self, guid, name, time = TIME_NOW):
+        value = super(TestbedController, self).get(guid, name, time)
         # TODO: take on account schedule time for the task
         factory_id = self._create[guid]
         factory = self._factories[factory_id]
@@ -146,7 +154,7 @@ class TestbedController(testbed_impl.TestbedController):
                 return iface.broadcast
 
         # if all else fails, query box
-        return self.get_address(guid, index, attribute)
+        return super(TestbedController, self).get_address(guid, index, attribute)
 
     def action(self, time, guid, action):
         raise NotImplementedError
@@ -206,6 +214,9 @@ class TestbedController(testbed_impl.TestbedController):
     def _make_tun_iface(self, parameters):
         return self._make_generic(parameters, self._interfaces.TunIface)
 
+    def _make_tap_iface(self, parameters):
+        return self._make_generic(parameters, self._interfaces.TapIface)
+
     def _make_netpipe(self, parameters):
         return self._make_generic(parameters, self._interfaces.NetPipe)
 
@@ -221,4 +232,6 @@ class TestbedController(testbed_impl.TestbedController):
     def _make_nepi_dependency(self, parameters):
         return self._make_generic(parameters, self._app.NepiDependency)
 
+    def _make_ns3_dependency(self, parameters):
+        return self._make_generic(parameters, self._app.NS3Dependency)