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,