X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=test%2Fresources%2Fplanetlab%2Fsfa_node.py;h=901865b55c041c7c94f4ed5bff5da0b793e0ffb2;hb=d50ba1a08e541ded7a8b322493ebb1d0cc59c6ff;hp=cd6e6bb9eb72a9fa97c49b33551b3b0fb06491b7;hpb=071f62fddeabab808850b303249adaaf84747c4c;p=nepi.git diff --git a/test/resources/planetlab/sfa_node.py b/test/resources/planetlab/sfa_node.py index cd6e6bb9..901865b5 100755 --- a/test/resources/planetlab/sfa_node.py +++ b/test/resources/planetlab/sfa_node.py @@ -37,8 +37,8 @@ class DummyEC(ExperimentController): class PLSfaNodeFactoryTestCase(unittest.TestCase): def test_creation_phase(self): - self.assertEquals(PlanetlabSfaNode._rtype, "PlanetlabSfaNode") - self.assertEquals(len(PlanetlabSfaNode._attributes), 29) + self.assertEquals(PlanetlabSfaNode._rtype, "planetlab::sfa::Node") + self.assertEquals(len(PlanetlabSfaNode._attributes), 31) class PLSfaNodeTestCase(unittest.TestCase): """ @@ -50,7 +50,7 @@ class PLSfaNodeTestCase(unittest.TestCase): 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') @@ -61,7 +61,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. """ - 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) @@ -73,10 +73,10 @@ class PLSfaNodeTestCase(unittest.TestCase): api1 = plnode_rm1.sfaapi self.assertIsInstance(api1, SFAAPI) - self.assertEquals(len(api1.reserved()), 0) - self.assertEquals(len(api1.blacklisted()), 0) + self.assertEquals(len(api1._reserved), 0) + self.assertEquals(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) @@ -91,8 +91,8 @@ class PLSfaNodeTestCase(unittest.TestCase): """ 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) @@ -102,11 +102,14 @@ class PLSfaNodeTestCase(unittest.TestCase): hostname = plnode_rm.get("hostname") self.assertIsNotNone(hostname) - self.assertEquals(plnode_rm.sfaapi.reserved(), set()) + self.assertEquals(len(plnode_rm.sfaapi._reserved), 0) 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.assertEquals(len(plnode_rm.sfaapi._reserved), 1) + self.assertEquals(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): @@ -114,7 +117,7 @@ class PLSfaNodeTestCase(unittest.TestCase): 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) @@ -122,11 +125,9 @@ class PLSfaNodeTestCase(unittest.TestCase): plnode_rm = self.ec.get_resource(node) - self.assertEquals(plnode_rm.sfaapi.reserved(), set()) + self.assertEquals(plnode_rm.sfaapi._reserved, set()) self.assertIsNone(plnode_rm._node_to_provision) - slicename = 'ple.' + self.username.replace('_', '.') - plnode_rm.do_discover() plnode_rm.do_provision() @@ -134,22 +135,15 @@ class PLSfaNodeTestCase(unittest.TestCase): ((out, err), proc) = plnode_rm.execute(cmd) self.assertEquals(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 - 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) @@ -158,7 +152,70 @@ class PLSfaNodeTestCase(unittest.TestCase): 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()