From: Julien Tribino Date: Fri, 21 Dec 2012 13:11:04 +0000 (+0100) Subject: Improve debug display X-Git-Tag: nepi-3.0.0~135^2~2 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=3872f862d0d3404087c86c0b10cb0a0fc7728818;p=nepi.git Improve debug display --- diff --git a/src/nepi/testbeds/omf/metadata.py b/src/nepi/testbeds/omf/metadata.py index 0f15542d..fc0f2462 100644 --- a/src/nepi/testbeds/omf/metadata.py +++ b/src/nepi/testbeds/omf/metadata.py @@ -388,7 +388,7 @@ testbed_attributes = dict({ "name": "xmppRoot", "help": "Root node of the xmpp server pubsub tree", "type": Attribute.STRING, - "value": "OMF", + "value": "OMF_5.4", "flags": Attribute.ExecReadOnly | Attribute.ExecImmutable, "validation_function": validation.is_string }), diff --git a/src/nepi/testbeds/omf/omf_api.py b/src/nepi/testbeds/omf/omf_api.py index 7b54b4c3..4eea26e4 100644 --- a/src/nepi/testbeds/omf/omf_api.py +++ b/src/nepi/testbeds/omf/omf_api.py @@ -18,7 +18,7 @@ class OmfAPI(object): self._port = port self._password = password self._hostnames = [] - self._xmpp_root = xmpp_root or "OMF" + self._xmpp_root = xmpp_root or "OMF_5.4" self._logger = logging.getLogger("nepi.testbeds.omf") @@ -60,9 +60,13 @@ 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/%s/%s/%s" % (self._host, self._xmpp_root, self._slice, self._user) + print address payload = self._message.newexpfunction(self._user, address) slice_sid = "/%s/%s" % (self._xmpp_root, self._slice) self._client.publish(payload, slice_sid) diff --git a/src/nepi/testbeds/omf/omf_client.py b/src/nepi/testbeds/omf/omf_client.py index 8969f1ad..fd1b9306 100644 --- a/src/nepi/testbeds/omf/omf_client.py +++ b/src/nepi/testbeds/omf/omf_client.py @@ -2,6 +2,7 @@ import logging import sleekxmpp from sleekxmpp.exceptions import IqError, IqTimeout import traceback +import xml.etree.ElementTree as ET class OMFClient(sleekxmpp.ClientXMPP): def __init__(self, jid, password): @@ -164,10 +165,45 @@ class OMFClient(sleekxmpp.ClientXMPP): self._logger.error('Could not unsubscribe %s from node %s\ntraceback:\n%s' \ % (self.boundjid.bare, node, error)) + def _check_for_tag(self, treeroot, namespaces, tag): + for element in treeroot.iter(namespaces+tag): + if element.text: + return element + else : + return None + + def _check_app_event(self, treeroot, namespaces): + message = self._check_for_tag(treeroot, namespaces, 'MESSAGE') + if message is not None : + target = self._check_for_tag(treeroot, namespaces, 'TARGET') + if target is not None : + self._logger.info(target.text + ": APP_EVENT: " + message.text) + + def _check_configure(self, treeroot, namespaces, status): + for message in treeroot.iter(namespaces + status): + reason = self._check_for_tag(treeroot, namespaces, 'REASON') + if reason is not None and reason.text!="ENROLLED" : + target = self._check_for_tag(treeroot, namespaces, 'TARGET') + if target is not None : + path = self._check_for_tag(treeroot, namespaces, 'PATH') + if path is not None : + self._logger.debug(target.text+ ": " +reason.text+ ": " +path.text) + else : + self._logger.debug(target.text+ ": " +reason.text ) + def handle_omf_message(self, iq): + namespaces = "{http://jabber.org/protocol/pubsub}" for i in iq['pubsub_event']['items']: + root = ET.fromstring(str(i)) + self._check_app_event(root, namespaces) + self._check_configure(root, namespaces, "OK") + self._check_configure(root, namespaces, "ERROR") #self._logger.debug(i) - print "" + + +#default_slice-2012-12-20t12.07.02+02.00CONFIGUREDomf.plexus.wlab17default_slicecvlcmodenet/w0/essid + +#default_slice-2012-12-20t12.07.02+02.00FAILED_CONFIGUREomf.plexus.wlab17default_slicegnet/w0/type #2default_slicenodeHandler::NodeHandlerdefault_slice-2012-09-28t16.22.17+02.00INFOOMF Experiment Controller 5.4 (git 529a626)