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
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
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):
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:
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)