Improve debug display
[nepi.git] / src / nepi / testbeds / omf / omf_api.py
index ac7946d..4eea26e 100644 (file)
@@ -8,7 +8,7 @@ from nepi.testbeds.omf.omf_client import OMFClient
 from nepi.testbeds.omf.omf_messages import MessageHandler
 
 class OmfAPI(object):
-    def __init__(self, slice, host, port, password, debug):
+    def __init__(self, slice, host, port, password, xmpp_root = None):
         date = datetime.datetime.now().strftime("%Y-%m-%dt%H.%M.%S")
         tz = -time.altzone if time.daylight != 0 else -time.timezone
         date += "%+06.2f" % (tz / 3600) # timezone difference is in seconds
@@ -18,10 +18,9 @@ class OmfAPI(object):
         self._port = port
         self._password = password
         self._hostnames = []
+        self._xmpp_root = xmpp_root or "OMF_5.4"
 
-        self._logger = logging.getLogger('nepi.testbeds.omfapi')
-        if debug:
-            self._logger.setLevel(logging.DEBUG)
+        self._logger = logging.getLogger("nepi.testbeds.omf")
 
         # OMF xmpp client
         self._client = None
@@ -61,11 +60,15 @@ class OmfAPI(object):
     def _enroll_experiment(self):
         xmpp_node = self._exp_session_id
         self._client.create(xmpp_node)
+        #print "Create experiment sesion id topics !!" 
         self._client.subscribe(xmpp_node)
+        #print "Subscribe to experiment sesion id topics !!" 
 
-        address = "/%s/OMF/%s/%s" % (self._host, self._slice, self._user)
+
+        address = "/%s/%s/%s/%s" % (self._host, self._xmpp_root, self._slice, self._user)
+        print address
         payload = self._message.newexpfunction(self._user, address)
-        slice_sid = "/OMF/%s" % (self._slice)
+        slice_sid = "/%s/%s" % (self._xmpp_root, self._slice)
         self._client.publish(payload, slice_sid)
 
     def _enroll_logger(self):
@@ -80,18 +83,18 @@ class OmfAPI(object):
         self._client.publish(payload, xmpp_node)
 
     def _host_session_id(self, hostname):
-        return "/OMF/%s/%s/%s" % (self._slice, self._user, hostname)
+        return "/%s/%s/%s/%s" % (self._xmpp_root, self._slice, self._user, hostname)
 
     def _host_resource_id(self, hostname):
-        return "/OMF/%s/resources/%s" % (self._slice, hostname)
+        return "/%s/%s/resources/%s" % (self._xmpp_root, self._slice, hostname)
 
     @property
     def _exp_session_id(self):
-        return "/OMF/%s/%s" % (self._slice, self._user)
+        return "/%s/%s/%s" % (self._xmpp_root, self._slice, self._user)
 
     @property
     def _logger_session_id(self):
-        return "/OMF/%s/%s/LOGGER" % (self._slice, self._user)
+        return "/%s/%s/%s/LOGGER" % (self._xmpp_root, self._slice, self._user)
 
     def delete(self, hostname):
         if not hostname in self._hostnames:
@@ -123,8 +126,13 @@ class OmfAPI(object):
         xmpp_node =  self._host_session_id(hostname)
         self._client.publish(payload, xmpp_node)
 
-    def execute(self, hostname, app_id, arguments, path):
-        payload = self._message.executefunction(hostname, app_id, arguments, path)
+    def execute(self, hostname, app_id, arguments, path, env):
+        payload = self._message.executefunction(hostname, app_id, arguments, path, env)
+        xmpp_node =  self._host_session_id(hostname)
+        self._client.publish(payload, xmpp_node)
+
+    def exit(self, hostname, app_id):
+        payload = self._message.exitfunction(hostname, app_id)
         xmpp_node =  self._host_session_id(hostname)
         self._client.publish(payload, xmpp_node)