replacing assertEquals into assertEqual
[nepi.git] / test / resources / planetlab / sfa_node.py
index cd6e6bb..d712de3 100755 (executable)
@@ -4,9 +4,8 @@
 #    Copyright (C) 2013 INRIA
 #
 #    This program is free software: you can redistribute it and/or modify
 #    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.
+#    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
 #
 #    This program is distributed in the hope that it will be useful,
 #    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -37,8 +36,8 @@ class DummyEC(ExperimentController):
 class PLSfaNodeFactoryTestCase(unittest.TestCase):
 
     def test_creation_phase(self):
 class PLSfaNodeFactoryTestCase(unittest.TestCase):
 
     def test_creation_phase(self):
-        self.assertEquals(PlanetlabSfaNode._rtype, "PlanetlabSfaNode")
-        self.assertEquals(len(PlanetlabSfaNode._attributes), 29)
+        self.assertEqual(PlanetlabSfaNode._rtype, "planetlab::sfa::Node")
+        self.assertEqual(len(PlanetlabSfaNode._attributes), 31)
 
 class PLSfaNodeTestCase(unittest.TestCase):
     """
 
 class PLSfaNodeTestCase(unittest.TestCase):
     """
@@ -50,7 +49,7 @@ class PLSfaNodeTestCase(unittest.TestCase):
 
     def setUp(self):
         self.ec = DummyEC()
 
     def setUp(self):
         self.ec = DummyEC()
-        self.username = os.environ.get('SFA_SLICE')
+        self.username = 'inria_lguevgeo'
         self.sfauser = os.environ.get('SFA_USER')
         self.sfaPrivateKey = os.environ.get('SFA_PK')
         
         self.sfauser = os.environ.get('SFA_USER')
         self.sfaPrivateKey = os.environ.get('SFA_PK')
         
@@ -61,7 +60,7 @@ class PLSfaNodeTestCase(unittest.TestCase):
         instanciated, and is an instance of SFAAPI. Check that using
         the same credentials, the same object of the api is used.
         """
         instanciated, and is an instance of SFAAPI. Check that using
         the same credentials, the same object of the api is used.
         """
-        node1 = self.ec.register_resource("PlanetlabSfaNode")
+        node1 = self.ec.register_resource("planetlab::sfa::Node")
         self.ec.set(node1, "hostname", "planetlab2.ionio.gr")
         self.ec.set(node1, "username", self.username)
         self.ec.set(node1, "sfauser", self.sfauser)
         self.ec.set(node1, "hostname", "planetlab2.ionio.gr")
         self.ec.set(node1, "username", self.username)
         self.ec.set(node1, "sfauser", self.sfauser)
@@ -73,10 +72,10 @@ class PLSfaNodeTestCase(unittest.TestCase):
 
         api1 = plnode_rm1.sfaapi
         self.assertIsInstance(api1, SFAAPI)
 
         api1 = plnode_rm1.sfaapi
         self.assertIsInstance(api1, SFAAPI)
-        self.assertEquals(len(api1.reserved()), 0)
-        self.assertEquals(len(api1.blacklisted()), 0)
+        self.assertEqual(len(api1._reserved), 0)
+        self.assertEqual(len(api1._blacklist), 0)
 
 
-        node2 = self.ec.register_resource("PlanetlabSfaNode")
+        node2 = self.ec.register_resource("planetlab::sfa::Node")
         self.ec.set(node2, "hostname", "planetlab2.ionio.gr")
         self.ec.set(node2, "username", self.username)
         self.ec.set(node2, "sfauser", self.sfauser)
         self.ec.set(node2, "hostname", "planetlab2.ionio.gr")
         self.ec.set(node2, "username", self.username)
         self.ec.set(node2, "sfauser", self.sfauser)
@@ -84,15 +83,15 @@ class PLSfaNodeTestCase(unittest.TestCase):
 
         plnode_rm2 = self.ec.get_resource(node2)
         api2 = plnode_rm2.sfaapi
 
         plnode_rm2 = self.ec.get_resource(node2)
         api2 = plnode_rm2.sfaapi
-        self.assertEquals(api1, api2)
+        self.assertEqual(api1, api2)
     
     @skipIfNotSfaCredentials
     def test_discover(self):
         """
         Check that the method do_discover reserve the right node.
         """
     
     @skipIfNotSfaCredentials
     def test_discover(self):
         """
         Check that the method do_discover reserve the right node.
         """
-        node = self.ec.register_resource("PlanetlabSfaNode")
-        self.ec.set(node, "hostname", "planetlab2.ionio.gr")
+        node = self.ec.register_resource("planetlab::sfa::Node")
+        self.ec.set(node, "hostname", "roti.mimuw.edu.pl")
         self.ec.set(node, "username", self.username)
         self.ec.set(node, "sfauser", self.sfauser)
         self.ec.set(node, "sfaPrivateKey", self.sfaPrivateKey)
         self.ec.set(node, "username", self.username)
         self.ec.set(node, "sfauser", self.sfauser)
         self.ec.set(node, "sfaPrivateKey", self.sfaPrivateKey)
@@ -102,11 +101,14 @@ class PLSfaNodeTestCase(unittest.TestCase):
         hostname = plnode_rm.get("hostname")
         self.assertIsNotNone(hostname)
 
         hostname = plnode_rm.get("hostname")
         self.assertIsNotNone(hostname)
 
-        self.assertEquals(plnode_rm.sfaapi.reserved(), set())
+        self.assertEqual(len(plnode_rm.sfaapi._reserved), 0)
 
         plnode_rm.do_discover()
 
         plnode_rm.do_discover()
-        self.assertEquals(plnode_rm.sfaapi.reserved().pop(), 'ple.dbislab.planetlab2.ionio.gr')
-        self.assertEquals(plnode_rm._node_to_provision, 'ple.dbislab.planetlab2.ionio.gr')
+
+        self.assertEqual(len(plnode_rm.sfaapi._reserved), 1)
+        self.assertEqual(plnode_rm._node_to_provision, 'ple.mimuw.roti.mimuw.edu.pl')
+        plnode_rm.sfaapi._reserved = set()
+        plnode_rm.sfaapi._blacklist = set()
 
     @skipIfNotSfaCredentials
     def test_provision(self):
 
     @skipIfNotSfaCredentials
     def test_provision(self):
@@ -114,7 +116,7 @@ class PLSfaNodeTestCase(unittest.TestCase):
         This test checks that the method do_provision add the node in the slice and check
         its well functioning.
         """
         This test checks that the method do_provision add the node in the slice and check
         its well functioning.
         """
-        node = self.ec.register_resource("PlanetlabSfaNode")
+        node = self.ec.register_resource("planetlab::sfa::Node")
         self.ec.set(node, "hostname", "planetlab2.ionio.gr")
         self.ec.set(node, "username", self.username)
         self.ec.set(node, "sfauser", self.sfauser)
         self.ec.set(node, "hostname", "planetlab2.ionio.gr")
         self.ec.set(node, "username", self.username)
         self.ec.set(node, "sfauser", self.sfauser)
@@ -122,34 +124,25 @@ class PLSfaNodeTestCase(unittest.TestCase):
 
         plnode_rm = self.ec.get_resource(node)
 
 
         plnode_rm = self.ec.get_resource(node)
 
-        self.assertEquals(plnode_rm.sfaapi.reserved(), set())
+        self.assertEqual(plnode_rm.sfaapi._reserved, set())
         self.assertIsNone(plnode_rm._node_to_provision)
 
         self.assertIsNone(plnode_rm._node_to_provision)
 
-        slicename = 'ple.' + self.username.replace('_', '.')
-
         plnode_rm.do_discover()
         plnode_rm.do_provision()    
 
         cmd = 'echo "IT WORKED"'
         ((out, err), proc) = plnode_rm.execute(cmd)
         plnode_rm.do_discover()
         plnode_rm.do_provision()    
 
         cmd = 'echo "IT WORKED"'
         ((out, err), proc) = plnode_rm.execute(cmd)
-        self.assertEquals(out.strip(), "IT WORKED")
+        self.assertEqual(out.strip(), "IT WORKED")
 
 
-        urn_to_delete = 'urn:publicid:IDN+ple:dbislab+node+planetlab2.ionio.gr'
-        plnode_rm.sfaapi.remove_resource_from_slice(slicename, urn_to_delete)
-
-        slice_resources = plnode_rm.sfaapi.get_slice_resources(slicename)['resource']
-        if slice_resources:
-            slice_resources_hrn = plnode_rm.sfaapi.get_resources_hrn(slice_resources)
-            self.assertNotIn('planetlab2.ionio.gr', slice_resources_hrn.keys())           
+        plnode_rm.sfaapi._reserved = set()
+        plnode_rm.sfaapi._blacklist = set()
 
     @skipIfNotSfaCredentials
 
     @skipIfNotSfaCredentials
-    def test_xdeploy(self):
+    def test_xdeploy1(self):
         """
         """
-        Test with the nodes being discover and provision at the same time.
-        The deploy should fail as the test before, there aren't 4 nodes of 
-        that carachteristics.
+        Test deploy 1 node.
         """
         """
-        node = self.ec.register_resource("PlanetlabSfaNode")
+        node = self.ec.register_resource("planetlab::sfa::Node")
         self.ec.set(node, "hostname", "planetlab2.ionio.gr")
         self.ec.set(node, "username", self.username)
         self.ec.set(node, "sfauser", self.sfauser)
         self.ec.set(node, "hostname", "planetlab2.ionio.gr")
         self.ec.set(node, "username", self.username)
         self.ec.set(node, "sfauser", self.sfauser)
@@ -158,7 +151,70 @@ class PLSfaNodeTestCase(unittest.TestCase):
         self.ec.deploy()
         self.ec.wait_deployed(node)
         state = self.ec.state(node)
         self.ec.deploy()
         self.ec.wait_deployed(node)
         state = self.ec.state(node)
-        self.assertEquals(state, 3)
+        if not self.ec.abort:
+            self.assertIn(state, (3, 4))
+
+        plnode_rm = self.ec.get_resource(1)
+        plnode_rm.sfaapi._reserved = set()
+        plnode_rm.sfaapi._blacklist = set()
+
+    @skipIfNotSfaCredentials
+    def test_xdeploy2(self):
+        """
+        Test deploy 2 nodes. Empty slice.
+        """
+        node1 = self.ec.register_resource("planetlab::sfa::Node")
+        self.ec.set(node1, "hostname", "planetlab3.xeno.cl.cam.ac.uk")
+        self.ec.set(node1, "username", self.username)
+        self.ec.set(node1, "sfauser", self.sfauser)
+        self.ec.set(node1, "sfaPrivateKey", self.sfaPrivateKey)
+
+        node2 = self.ec.register_resource("planetlab::sfa::Node")
+        self.ec.set(node2, "hostname", "planetlab1.cs.vu.nl")
+        self.ec.set(node2, "username", self.username)
+        self.ec.set(node2, "sfauser", self.sfauser)
+        self.ec.set(node2, "sfaPrivateKey", self.sfaPrivateKey)
+
+        node1rm = self.ec.get_resource(node1)
+        node1rm._delete_from_slice()
+
+        self.ec.deploy()
+        self.ec.wait_deployed([node1, node2])
+        state1 = self.ec.state(node1)
+        state2 = self.ec.state(node2)
+        if not self.ec.abort:
+            self.assertIn(state1, (3, 4))
+            self.assertIn(state2, (3, 4))
+
+        plnode_rm = self.ec.get_resource(1)
+        plnode_rm.sfaapi._reserved = set()
+        plnode_rm.sfaapi._blacklist = set()
+
+    @skipIfNotSfaCredentials
+    def test_xdeploy3(self):
+        """
+        Test deploy 2 nodes, already in the slice.
+        """
+        node1 = self.ec.register_resource("planetlab::sfa::Node")
+        self.ec.set(node1, "hostname", "planetlab3.xeno.cl.cam.ac.uk")
+        self.ec.set(node1, "username", self.username)
+        self.ec.set(node1, "sfauser", self.sfauser)
+        self.ec.set(node1, "sfaPrivateKey", self.sfaPrivateKey)
+
+        node2 = self.ec.register_resource("planetlab::sfa::Node")
+        self.ec.set(node2, "hostname", "planetlab1.cs.vu.nl")
+        self.ec.set(node2, "username", self.username)
+        self.ec.set(node2, "sfauser", self.sfauser)
+        self.ec.set(node2, "sfaPrivateKey", self.sfaPrivateKey)
+
+        self.ec.deploy()
+        self.ec.wait_deployed([node1, node2])
+        state1 = self.ec.state(node1)
+        state2 = self.ec.state(node2)
+        if not self.ec.abort:
+            self.assertIn(state1, (3, 4))
+            self.assertIn(state2, (3, 4))
+
 
     def tearDown(self):
         self.ec.shutdown()
 
     def tearDown(self):
         self.ec.shutdown()