X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=src%2Fnepi%2Fresources%2Fplanetlab%2Fopenvswitch%2Fovs.py;h=171750fefdf3acd36e541c33a98c1c9c979853c9;hb=23d041fe2f0d9badf6d637009e2d42a4794325c1;hp=a2111f47247b9913a51aa97c7d927b630c79d424;hpb=7a40d6db82dc5fd7de026b39fdc2bc35887c4e07;p=nepi.git diff --git a/src/nepi/resources/planetlab/openvswitch/ovs.py b/src/nepi/resources/planetlab/openvswitch/ovs.py index a2111f47..171750fe 100644 --- a/src/nepi/resources/planetlab/openvswitch/ovs.py +++ b/src/nepi/resources/planetlab/openvswitch/ovs.py @@ -15,8 +15,9 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . # -# Author: Alina Quereilhac +# Authors: Alina Quereilhac # Alexandros Kouvakas +# Julien Tribino from nepi.execution.resource import ResourceManager, clsinit_copy, \ @@ -26,8 +27,6 @@ from nepi.resources.planetlab.node import PlanetlabNode from nepi.resources.linux.application import LinuxApplication import os -reschedule_delay = "0.5s" - @clsinit_copy class OVSSwitch(LinuxApplication): """ @@ -40,11 +39,11 @@ class OVSSwitch(LinuxApplication): """ - _rtype = "OVSSwitch" + _rtype = "planetlab::OVSSwitch" _help = "Runs an OpenVSwitch on a PlanetLab host" - _backend = "planetlab" + _platform = "planetlab" - _authorized_connections = ["PlanetlabNode", "OVSPort", "LinuxNode"] + _authorized_connections = ["planetlab::Node", "planetla::OVSPort", "linux::Node"] @classmethod def _register_attributes(cls): @@ -52,13 +51,13 @@ class OVSSwitch(LinuxApplication): """ bridge_name = Attribute("bridge_name", "Name of the switch/bridge", - flags = Flags.ExecReadOnly) + flags = Flags.Design) virtual_ip_pref = Attribute("virtual_ip_pref", "Virtual IP/PREFIX of the switch", - flags = Flags.ExecReadOnly) + flags = Flags.Design) controller_ip = Attribute("controller_ip", "IP of the controller", - flags = Flags.ExecReadOnly) + flags = Flags.Design) controller_port = Attribute("controller_port", "Port of the controller", - flags = Flags.ExecReadOnly) + flags = Flags.Design) cls._register_attribute(bridge_name) cls._register_attribute(virtual_ip_pref) @@ -132,7 +131,7 @@ class OVSSwitch(LinuxApplication): """ if not self.node or self.node.state < ResourceState.READY: - self.ec.schedule(reschedule_delay, self.deploy) + self.ec.schedule(self.reschedule_delay, self.deploy) return self.do_discover() @@ -296,11 +295,12 @@ class OVSSwitch(LinuxApplication): """ from nepi.resources.planetlab.openvswitch.ovsport import OVSPort - rm = self.get_connected(OVSPort.get_rtype()) + rms = self.get_connected(OVSPort.get_rtype()) - if rm[0].state < ResourceState.RELEASED: - self.ec.schedule(reschedule_delay, self.release) - return + for rm in rms : + if rm.state < ResourceState.RELEASED: + self.ec.schedule(self.reschedule_delay, self.release) + return cmd = "sliver-ovs del-bridge %s" % self.get('bridge_name') (out, err), proc = self.node.run(cmd, self.ovs_checks,