X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=src%2Fnepi%2Fresources%2Fns3%2Fns3base.py;h=26632e0b49ced5c9f8877431567f39beceb0b45a;hb=6285ca51026efb69642eea9dfc7c480e722d84a9;hp=77d68c7bfd046253b2614563e61544c840bf4dbe;hpb=a92223f91edd2eeb48e1ad70aa4c843d778bfe94;p=nepi.git diff --git a/src/nepi/resources/ns3/ns3base.py b/src/nepi/resources/ns3/ns3base.py index 77d68c7b..26632e0b 100644 --- a/src/nepi/resources/ns3/ns3base.py +++ b/src/nepi/resources/ns3/ns3base.py @@ -3,9 +3,8 @@ # Copyright (C) 2014 INRIA # # This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation; # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -18,20 +17,21 @@ # Author: Alina Quereilhac from nepi.execution.resource import ResourceManager, clsinit_copy, \ - ResourceState, reschedule_delay + ResourceState from nepi.execution.attribute import Flags from nepi.execution.trace import TraceAttr @clsinit_copy class NS3Base(ResourceManager): _rtype = "abstract::ns3::Object" - _backend_type = "ns3" + _platform = "ns3" def __init__(self, ec, guid): super(NS3Base, self).__init__(ec, guid) self._uuid = None self._connected = set() self._trace_filename = dict() + self._node = None @property def connected(self): @@ -47,10 +47,12 @@ class NS3Base(ResourceManager): @property def node(self): - from nepi.resources.ns3.ns3node import NS3BaseNode - nodes = self.get_connected(NS3BaseNode.get_rtype()) - if nodes: return nodes[0] - return None + if not self._node: + from nepi.resources.ns3.ns3node import NS3BaseNode + nodes = self.get_connected(NS3BaseNode.get_rtype()) + if nodes: self._node = nodes[0] + + return self._node def trace(self, name, attr = TraceAttr.ALL, block = 512, offset = 0): filename = self._trace_filename.get(name) @@ -80,7 +82,7 @@ class NS3Base(ResourceManager): kwargs = dict() for attr in self._attrs.values(): - if not ( attr.has_flag(Flags.Construct) and attr.has_changed() ): + if not ( attr.has_flag(Flags.Construct) and attr.has_changed ): continue kwargs[attr.name] = attr._value @@ -115,7 +117,7 @@ class NS3Base(ResourceManager): def do_deploy(self): if self._wait_rms(): self.debug("---- RESCHEDULING DEPLOY ----" ) - self.ec.schedule(reschedule_delay, self.deploy) + self.ec.schedule(self.reschedule_delay, self.deploy) else: self.do_discover() self.do_provision() @@ -130,7 +132,7 @@ class NS3Base(ResourceManager): else: msg = "Failed" self.error(msg, out, err) - raise RuntimeError, msg + raise RuntimeError(msg) def do_stop(self): if self.state == ResourceState.STARTED: