Revision 81e8cbf6

b/snf-cyclades-app/synnefo/tools/burnin.py
90 90
class UnauthorizedTestCase(unittest.TestCase):
91 91
    def test_unauthorized_access(self):
92 92
        """Test access without a valid token fails"""
93
        log.info("Authentication test")
94

  
93 95
        falseToken = '12345'
94 96
        c=ComputeClient(API, falseToken)
95 97

  
......
386 388
        server = self.client.create_server(self.servername, self.flavorid,
387 389
                                           self.imageid, self.personality)
388 390

  
391
        log.info("Server id: " + str(server["id"]))
392
        log.info("Server password: " + server["adminPass"])
393
        
389 394
        self.assertEqual(server["name"], self.servername)
390 395
        self.assertEqual(server["flavorRef"], self.flavorid)
391 396
        self.assertEqual(server["imageRef"], self.imageid)
......
397 402
        cls.username = None
398 403
        cls.passwd = server["adminPass"]
399 404

  
405
        
406

  
400 407
    def test_002a_server_is_building_in_list(self):
401 408
        """Test server is in BUILD state, in server list"""
402 409
        
......
431 438
        loginname = image["metadata"]["values"].get("users", None)
432 439
        self.client.update_server_metadata(self.serverid, OS=os)
433 440

  
441
        userlist = loginname.split()
442

  
434 443
        # Determine the username to use for future connections
435 444
        # to this host
436 445
        cls = type(self)
437
        cls.username = loginname
438
        if not cls.username:
446

  
447
        if "root" in userlist:
448
            cls.username = "root"
449
        elif users == None:
439 450
            cls.username = self._connect_loginname(os)
451
        else:
452
            cls.username = choice(userlist)
453

  
440 454
        self.assertIsNotNone(cls.username)
441 455

  
442 456
    def test_002d_verify_server_metadata(self):
......
446 460

  
447 461
        servermeta = self.client.get_server_metadata(self.serverid)
448 462
        imagemeta = self.client.get_image_metadata(self.imageid)
463

  
449 464
        self.assertEqual(servermeta["OS"], imagemeta["os"])
450 465

  
451 466
    def test_003_server_becomes_active(self):
......
498 513
    def test_004_server_has_ipv4(self):
499 514
        """Test active server has a valid IPv4 address"""
500 515

  
501
        log.info("Testing server's IPv4")
516
        log.info("Validate server's IPv4")
502 517

  
503 518
        server = self.client.get_server_details(self.serverid)
504 519
        ipv4 = self._get_ipv4(server)
......
507 522
    def test_005_server_has_ipv6(self):
508 523
        """Test active server has a valid IPv6 address"""
509 524

  
510
        log.info("Testing server's IPv6")
525
        log.info("Validate server's IPv6")
511 526

  
512 527
        server = self.client.get_server_details(self.serverid)
513 528
        ipv6 = self._get_ipv6(server)
......
726 741
        self.username['A'] = None
727 742
        self.password['A'] = serverA["adminPass"]
728 743

  
729
        log.info("Created new server A:")
730
        log.info("Password " + (self.password['A']) + '\n')
744
        log.info("Server A id:" + str(serverA["id"]))
745
        log.info("Server password " + (self.password['A']))
731 746
        
732 747

  
733 748

  
......
770 785
        self.username['B'] = None
771 786
        self.password['B'] = serverB["adminPass"]
772 787

  
773
        log.info("Created new server B:")
774
        log.info("Password " + (self.password['B']) + '\n')
788
        log.info("Server B id: " + str(serverB["id"]))
789
        log.info("Password " + (self.password['B']))
775 790

  
776 791

  
777 792

  
......
846 861

  
847 862
        log.info("Rebooting server A")
848 863

  
849
        self.client.reboot_server(self.serverid['A']) 
864
        self.client.shutdown_server(self.serverid['A']) 
850 865
       
851 866
        fail_tmout = time.time()+self.action_timeout
852 867
        while True:
853 868
            d = self.client.get_server_details(self.serverid['A'])
854 869
            status = d['status']
870
            if status == 'STOPPED':
871
                break
872
            elif time.time() > fail_tmout:
873
                self.assertLess(time.time(), fail_tmout)
874
            else:
875
                time.sleep(self.query_interval)
876

  
877
        self.client.start_server(self.serverid['A'])
878

  
879
        while True:
880
            d = self.client.get_server_details(self.serverid['A'])
881
            status = d['status']
855 882
            if status == 'ACTIVE':
856 883
                active = True
857 884
                break
......
859 886
                self.assertLess(time.time(), fail_tmout)
860 887
            else:
861 888
                time.sleep(self.query_interval)
889

  
890

  
862 891
               
863 892
        self.assertTrue(active)
864 893

  
......
895 924

  
896 925
        log.info("Rebooting server B")
897 926

  
898
        self.client.reboot_server(self.serverid['B']) 
927
        self.client.shutdown_server(self.serverid['B']) 
899 928
        
900 929
        fail_tmout = time.time()+self.action_timeout
901 930
        while True:
902 931
            d = self.client.get_server_details(self.serverid['B'])
903 932
            status = d['status']
933
            if status == 'STOPPED':
934
                break
935
            elif time.time() > fail_tmout:
936
                self.assertLess(time.time(), fail_tmout)
937
            else:
938
                time.sleep(self.query_interval)
939

  
940
        self.client.start_server(self.serverid['B'])
941

  
942
        while True:
943
            d = self.client.get_server_details(self.serverid['B'])
944
            status = d['status']
904 945
            if status == 'ACTIVE':
905 946
                active = True
906 947
                break
......
960 1001
        hostip = self._get_ipv4(server)
961 1002
        myPass = self.password['A']
962 1003
        
963
        log.info("SSH in server A: \n")
964
        log.info("Username: " + loginname + '\n') 
965
        log.info("Password " + myPass + '\n')
1004
        log.info("SSH in server A as %s/%s" % (loginname,myPass))
966 1005
        
967 1006
        res = False
968 1007

  
......
996 1035

  
997 1036
        log.info("Setting up interface eth1 for server B")
998 1037

  
1038

  
999 1039
        server = self.client.get_server_details(self.serverid['B'])
1000 1040
        image = self.client.get_image_details(self.imageid)
1001 1041
        os = image['metadata']['values']['os']
......
1013 1053
        hostip = self._get_ipv4(server)
1014 1054
        myPass = self.password['B']
1015 1055

  
1016
        log.info("SSH in server A: \n")
1017
        log.info("Username: " + loginname + '\n') 
1018
        log.info("Password " + myPass + '\n')
1056
        log.info("SSH in server B as %s/%s" % (loginname,myPass))
1019 1057

  
1020 1058
        res = False
1021 1059

  
......
1430 1468
    else:
1431 1469
        test_images = filter(lambda x: x["id"] == opts.force_imageid, DIMAGES)
1432 1470

  
1471
    
1472
    #New folder for log per image
1473
    os.mkdir(TEST_RUN_ID)
1474

  
1433 1475
    for image in test_images:
1434 1476
        imageid = str(image["id"])
1435
        flavorid = choice([f["id"] for f in DFLAVORS if f["disk"] >= 20])
1477
        
1478
        if opts.force_flavorid:
1479
            flavorid = opts.force_flavorid
1480
        else:
1481
            flavorid = choice([f["id"] for f in DFLAVORS if f["disk"] >= 20])
1482

  
1436 1483
        imagename = image["name"]
1437 1484
        
1438 1485
        #Personality dictionary for file injection test
......
1455 1502
        is_windows = imagename.lower().find("windows") >= 0
1456 1503
        
1457 1504

  
1458
    ServerTestCase = _spawn_server_test_case(imageid=imageid, flavorid=flavorid,
1459
                                             imagename=imagename,
1460
                                             personality=personality,
1461
                                             servername=servername,
1462
                                             is_windows=is_windows,
1463
                                             action_timeout=opts.action_timeout,
1464
                                             build_warning=opts.build_warning,
1465
                                             build_fail=opts.build_fail,
1466
                                             query_interval=opts.query_interval,
1467
                                             )
1505
        ServerTestCase = _spawn_server_test_case(imageid=imageid, flavorid=flavorid,
1506
                                                 imagename=imagename,
1507
                                                 personality=personality,
1508
                                                 servername=servername,
1509
                                                 is_windows=is_windows,
1510
                                                 action_timeout=opts.action_timeout,
1511
                                                 build_warning=opts.build_warning,
1512
                                                 build_fail=opts.build_fail,
1513
                                                 query_interval=opts.query_interval,
1514
                                                 )
1468 1515

  
1469 1516
    
1470
    NetworkTestCase = _spawn_network_test_case(action_timeout = opts.action_timeout,
1471
                                               imageid = imageid,
1472
                                               flavorid = flavorid,
1473
                                               imagename=imagename,
1474
                                               query_interval = opts.query_interval,
1475
                                               )
1517
        NetworkTestCase = _spawn_network_test_case(action_timeout = opts.action_timeout,
1518
                                                   imageid = imageid,
1519
                                                   flavorid = flavorid,
1520
                                                   imagename=imagename,
1521
                                                   query_interval = opts.query_interval,
1522
                                                   )
1476 1523
    
1477 1524

  
1478
    seq_cases = [UnauthorizedTestCase, ImagesTestCase, FlavorsTestCase, ServersTestCase, ServerTestCase]
1479

  
1480
#    seq_cases = [NetworkTestCase]
1481

  
1482

  
1483
    os.mkdir(TEST_RUN_ID)
1484
    
1485
    for case in seq_cases:
1486
        log_file = TEST_RUN_ID+'/'+'details_'+(case.__name__)+"_"+TEST_RUN_ID+'.log'
1487
        fail_file = TEST_RUN_ID+'/'+'failed_'+(case.__name__)+"_"+TEST_RUN_ID+'.log'
1488
        error_file = TEST_RUN_ID+'/'+'error_'+(case.__name__)+"_"+TEST_RUN_ID+'.log'
1489

  
1490
        f = open(log_file, "w")
1491
        fail = open(fail_file, "w")
1492
        error = open(error_file, "w")
1493

  
1494
        suite = unittest.TestLoader().loadTestsFromTestCase(case)
1495
        runner = unittest.TextTestRunner(f, verbosity=2)
1496
        result = runner.run(suite)
1525
        # seq_cases = [UnauthorizedTestCase, ImagesTestCase, FlavorsTestCase, ServersTestCase, ServerTestCase]
1526
        seq_cases = [NetworkTestCase]
1527
        
1528
        # seq_cases = [UnauthorizedTestCase]
1529
        
1530
        #folder for each image 
1531
        image_folder = TEST_RUN_ID + '/' + imageid 
1532
        os.mkdir(image_folder)
1533

  
1534
        for case in seq_cases:
1535
            log_file = image_folder+'/'+'details_'+(case.__name__)+"_"+TEST_RUN_ID+'.log'
1536
            fail_file = image_folder+'/'+'failed_'+(case.__name__)+"_"+TEST_RUN_ID+'.log'
1537
            error_file = image_folder+'/'+'error_'+(case.__name__)+"_"+TEST_RUN_ID+'.log'
1538

  
1539
            f = open(log_file, "w")
1540
            fail = open(fail_file, "w")
1541
            error = open(error_file, "w")
1542

  
1543
            suite = unittest.TestLoader().loadTestsFromTestCase(case)
1544
            runner = unittest.TextTestRunner(f, verbosity=2)
1545
            result = runner.run(suite)
1497 1546
        
1498
        error.write("Testcases errors: \n\n")
1499
        for res in result.errors:
1500
            error.write(str(res[0])+'\n')
1501
            error.write(str(res[0].__doc__) + '\n')
1502
            error.write('\n')
1547
            error.write("Testcases errors: \n\n")
1548
            for res in result.errors:
1549
                error.write(str(res[0])+'\n')
1550
                error.write(str(res[0].__doc__) + '\n')
1551
                error.write('\n')
1503 1552

  
1504 1553
            
1505
        fail.write("Testcases failures: \n\n")
1506
        for res in result.failures:
1507
            fail.write(str(res[0])+'\n')
1508
            fail.write(str(res[0].__doc__) + '\n')
1509
            fail.write('\n')
1554
                fail.write("Testcases failures: \n\n")
1555
                for res in result.failures:
1556
                    fail.write(str(res[0])+'\n')
1557
                    fail.write(str(res[0].__doc__) + '\n')
1558
                    fail.write('\n')
1510 1559
        
1511 1560

  
1512 1561

  

Also available in: Unified diff