X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=src%2Fnepi%2Fresources%2Fnetns%2Fnetnsbase.py;h=3fee62e9a6083a62dfe73520219c0ec10d2b9b91;hb=6285ca51026efb69642eea9dfc7c480e722d84a9;hp=32214600275619d0dd32cc40de62e53770313050;hpb=a92223f91edd2eeb48e1ad70aa4c843d778bfe94;p=nepi.git diff --git a/src/nepi/resources/netns/netnsbase.py b/src/nepi/resources/netns/netnsbase.py index 32214600..3fee62e9 100644 --- a/src/nepi/resources/netns/netnsbase.py +++ b/src/nepi/resources/netns/netnsbase.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,14 +17,14 @@ # 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 NetNSBase(ResourceManager): _rtype = "abstract::netns::Object" - _backend_type = "netns" + _platform = "netns" def __init__(self, ec, guid): super(NetNSBase, self).__init__(ec, guid) @@ -58,7 +57,7 @@ class NetNSBase(ResourceManager): objects to be deployed before proceeding with the deployment """ - raise RuntimeError, "No dependencies defined!" + raise RuntimeError("No dependencies defined!") def _instantiate_object(self): pass @@ -85,7 +84,7 @@ class NetNSBase(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() @@ -94,17 +93,17 @@ class NetNSBase(ResourceManager): def do_start(self): if self.state == ResourceState.READY: - # No need to do anything, simulation.Run() will start every object + # No need to do anything, emulation.Run() will start every object self.info("Starting") self.set_started() else: msg = " Failed " self.error(msg, out, err) - raise RuntimeError, msg + raise RuntimeError(msg) def do_stop(self): if self.state == ResourceState.STARTED: - # No need to do anything, simulation.Destroy() will stop every object + # No need to do anything, emulation.Destroy() will stop every object self.set_stopped() @property @@ -114,30 +113,27 @@ class NetNSBase(ResourceManager): def get(self, name): #flags = Flags.NoWrite | Flags.NoRead | Flags.Design flags = Flags.Design - if self.state in [ResourceState.READY, ResourceState.STARTED] \ + if self._state in [ResourceState.READY, ResourceState.STARTED] \ and not self.has_flag(name, flags): return self.emulation.emu_get(self.uuid, name) value = super(NetNSBase, self).get(name) - if name != "critical": - print name, value, "lalal" return value def set(self, name, value): - #flags = Flags.NoWrite | Flags.NoRead | Flags.Design flags = Flags.Design - if self.has_flag(name, flags): + if (self._state > ResourceState.NEW and \ + self.has_flag(name, Flags.Design)) or \ + self.has_flag(name, Flags.NoWrite): out = err = "" msg = " Cannot change Design only attribue %s" % name self.error(msg, out, err) return - if self.state in [ResourceState.READY, ResourceState.STARTED]: + if self._state in [ResourceState.READY, ResourceState.STARTED]: self.emulation.emu_set(self.uuid, name, value) value = super(NetNSBase, self).set(name, value) - if name != "critical": - print name, value, "IEEEEEEEE:" return value