X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=src%2Fnepi%2Fresources%2Fomf%2Fchannel.py;h=4b412b79d1fe3b93529fb66311889e5cf18b80de;hb=09ac796bac9aa2c41c5ad830f404fe128fffb22d;hp=b51cd895f426c94e57affe7629db1e4ef4d1da35;hpb=bf43c83ced9389c8fa9468d7c23f67d35af963da;p=nepi.git diff --git a/src/nepi/resources/omf/channel.py b/src/nepi/resources/omf/channel.py index b51cd895..4b412b79 100644 --- a/src/nepi/resources/omf/channel.py +++ b/src/nepi/resources/omf/channel.py @@ -18,15 +18,16 @@ # Author: Alina Quereilhac # Julien Tribino -from nepi.execution.resource import ResourceManager, clsinit, ResourceState, \ - reschedule_delay +from nepi.execution.resource import ResourceManager, clsinit_copy, \ + ResourceState, reschedule_delay from nepi.execution.attribute import Attribute, Flags +from nepi.resources.omf.omf_resource import ResourceGateway, OMFResource from nepi.resources.omf.omf_api import OMFAPIFactory -@clsinit -class OMFChannel(ResourceManager): +@clsinit_copy +class OMFChannel(OMFResource): """ .. class:: Class Args : @@ -51,15 +52,7 @@ class OMFChannel(ResourceManager): """ channel = Attribute("channel", "Name of the application") - xmppSlice = Attribute("xmppSlice","Name of the slice", flags = Flags.Credential) - xmppHost = Attribute("xmppHost", "Xmpp Server",flags = Flags.Credential) - xmppPort = Attribute("xmppPort", "Xmpp Port",flags = Flags.Credential) - xmppPassword = Attribute("xmppPassword", "Xmpp Port",flags = Flags.Credential) cls._register_attribute(channel) - cls._register_attribute(xmppSlice) - cls._register_attribute(xmppHost) - cls._register_attribute(xmppPort) - cls._register_attribute(xmppPassword) def __init__(self, ec, guid): """ @@ -79,8 +72,6 @@ class OMFChannel(ResourceManager): @property def exp_id(self): - if self.ec.exp_id.startswith('exp-'): - return None return self.ec.exp_id def valid_connection(self, guid): @@ -130,19 +121,7 @@ class OMFChannel(ResourceManager): res.append(couple) return res - def discover(self): - """ Discover the availables channels - - """ - pass - - def provision(self): - """ Provision some availables channels - - """ - pass - - def deploy(self): + def do_deploy(self): """ Deploy the RM. It means : Get the xmpp client and send messages using OMF 5.4 protocol to configure the channel. It becomes DEPLOYED after sending messages to configure the channel @@ -156,50 +135,32 @@ class OMFChannel(ResourceManager): if not self._omf_api : msg = "Credentials are not initialzed. XMPP Connections impossible" self.error(msg) - self.fail() - return + raise RuntimeError, msg if not self.get('channel'): msg = "Channel's value is not initialized" self.error(msg) - self.fail() - raise + raise RuntimeError, msg + + self._nodes_guid = self._get_target(self._connections) - self._nodes_guid = self._get_target(self._connections) if self._nodes_guid == "reschedule" : self.ec.schedule("2s", self.deploy) - return False - - try: - for couple in self._nodes_guid: - #print "Couple node/alias : " + couple[0] + " , " + couple[1] - attrval = self.get('channel') - attrname = "net/%s/%s" % (couple[1], 'channel') - self._omf_api.configure(couple[0], attrname, attrval) - except AttributeError: - msg = "Credentials are not initialzed. XMPP Connections impossible" - self.error(msg) - self.fail() - raise - - super(OMFChannel, self).deploy() - - def start(self): - """ Start the RM. It means nothing special for a channel for now - It becomes STARTED as soon as this method starts. - - """ - - super(OMFChannel, self).start() - - def stop(self): - """ Stop the RM. It means nothing special for a channel for now - It becomes STOPPED as soon as this method is called - - """ - super(OMFChannel, self).stop() - - def release(self): + else: + try: + for couple in self._nodes_guid: + #print "Couple node/alias : " + couple[0] + " , " + couple[1] + attrval = self.get('channel') + attrname = "net/%s/%s" % (couple[1], 'channel') + self._omf_api.configure(couple[0], attrname, attrval) + except AttributeError: + msg = "Credentials are not initialzed. XMPP Connections impossible" + self.error(msg) + raise + + super(OMFChannel, self).do_deploy() + + def do_release(self): """ Clean the RM at the end of the experiment and release the API """ @@ -208,5 +169,5 @@ class OMFChannel(ResourceManager): self.get('xmppHost'), self.get('xmppPort'), self.get('xmppPassword'), exp_id = self.exp_id) - super(OMFChannel, self).release() + super(OMFChannel, self).do_release()