First CCN RMs working example for Linux
[nepi.git] / test / resources / linux / interface.py
old mode 100644 (file)
new mode 100755 (executable)
index 7b914d2..0f332f3
@@ -1,10 +1,29 @@
 #!/usr/bin/env python
-from neco.execution.ec import ExperimentController 
-from neco.execution.resource import ResourceState
-from neco.resources.linux.node import LinuxNode
-from neco.resources.linux.interface import LinuxInterface
-from neco.resources.linux.channel import LinuxChannel
-from neco.util.sshfuncs import RUNNING, FINISHED
+#
+#    NEPI, a framework to manage network experiments
+#    Copyright (C) 2013 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.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU General Public License for more details.
+#
+#    You should have received a copy of the GNU General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+# Author: Alina Quereilhac <alina.quereilhac@inria.fr>
+
+
+from nepi.execution.ec import ExperimentController 
+from nepi.execution.resource import ResourceState
+from nepi.resources.linux.node import LinuxNode
+from nepi.resources.linux.interface import LinuxInterface
+from nepi.resources.linux.channel import LinuxChannel
 
 from test_utils import skipIfNotAlive
 
@@ -15,15 +34,15 @@ import unittest
 
 class LinuxInterfaceTestCase(unittest.TestCase):
     def setUp(self):
-        self.fedora_host = 'nepi2.pl.sophia.inria.fr'
-        self.fedora_user = 'inria_nepi'
+        self.fedora_host = "nepi2.pl.sophia.inria.fr"
+        self.fedora_user = "inria_nepi"
 
-        self.ubuntu_host = 'roseval.pl.sophia.inria.fr'
-        self.ubuntu_user = 'alina'
+        self.ubuntu_host = "roseval.pl.sophia.inria.fr"
+        self.ubuntu_user = "alina"
 
     @skipIfNotAlive
     def t_deploy(self, host, user):
-        from neco.execution.resource import ResourceFactory
+        from nepi.execution.resource import ResourceFactory
         
         ResourceFactory.register_type(LinuxNode)
         ResourceFactory.register_type(LinuxInterface)
@@ -41,19 +60,17 @@ class LinuxInterfaceTestCase(unittest.TestCase):
         ec.register_connection(iface, node)
         ec.register_connection(iface, chan)
 
-        try:
-            ec.deploy()
+        ec.deploy()
 
-            while not all([ ec.state(guid) == ResourceState.STARTED \
-                    for guid in [node, iface]]):
-                time.sleep(0.5)
+        while not all([ ec.state(guid) == ResourceState.STARTED \
+                for guid in [node, iface]]) and not ec.finished:
+            time.sleep(0.5)
 
-            self.assertTrue(ec.state(node) == ResourceState.STARTED)
-            self.assertTrue(ec.state(iface) == ResourceState.STARTED)
-            self.assertTrue(ec.get(iface, "deviceName") == "eth0")
+        self.assertTrue(ec.state(node) == ResourceState.STARTED)
+        self.assertTrue(ec.state(iface) == ResourceState.STARTED)
+        self.assertTrue(ec.get(iface, "deviceName") == "eth0")
 
-        finally:
-            ec.shutdown()
+        ec.shutdown()
 
     def test_deploy_fedora(self):
         self.t_deploy(self.fedora_host, self.fedora_user)