Beispiel #1
0
 def tearDown(self):
     '''
     This method will be ran after EVERY unit test.
     '''
     self.__connector.disconnect()
     dbConfigurator = DBConfigurator("")
     dbConfigurator.dropDatabase("ClusterServerDBTest")
 def disconnectFromClusterServer(self):
     """
     Closes the connection with the cluster server and drops the databases.
     Args:
         haltVMServers: if True, the virtual machine servers will be halted immediately. If false, they will be
         halted until all their virtual machines have been shut down.
     Returns:
         Nothing
     @attention: DO NOT call this method inside a network thread (i.e. inside the web callback). If you do so,
     your application will hang.
     """
     # Send a halt packet to the cluster server
     p = self.__pHandler.createHaltPacket(self.__haltVMServers)
     self.__manager.sendPacket(self.__clusterServerIP, self.__clusterServerPort, p)
     # Stop the update request thread
     self.__updateRequestThread.stop()
     # Close the database connections
     self.__commandsDBConnector.disconnect()
     self.__writer.disconnect()
     # Stop the network service
     self.__manager.stopNetworkService()
     # Delete the status database
     dbConfigurator = DBConfigurator(self.__rootsPassword)
     dbConfigurator.dropDatabase(self.__statusDatabaseName)
     dbConfigurator.dropDatabase(self.__commandsDatabaseName)    
Beispiel #3
0
 def disconnectFromClusterServer(self):
     """
     Closes the connection with the cluster server and drops the databases.
     Args:
         haltVMServers: if True, the virtual machine servers will be halted immediately. If false, they will be
         halted until all their virtual machines have been shut down.
     Returns:
         Nothing
     @attention: DO NOT call this method inside a network thread (i.e. inside the web callback). If you do so,
     your application will hang.
     """
     # Send a halt packet to the cluster server
     p = self.__pHandler.createHaltPacket(self.__haltVMServers)
     self.__manager.sendPacket(self.__clusterServerIP,
                               self.__clusterServerPort, p)
     # Stop the update request thread
     self.__updateRequestThread.stop()
     # Close the database connections
     self.__commandsDBConnector.disconnect()
     self.__writer.disconnect()
     # Stop the network service
     self.__manager.stopNetworkService()
     # Delete the status database
     dbConfigurator = DBConfigurator(self.__rootsPassword)
     dbConfigurator.dropDatabase(self.__statusDatabaseName)
     dbConfigurator.dropDatabase(self.__commandsDatabaseName)
 def tearDown(self):
     '''
     This method will be ran after EVERY unit test.
     '''
     self.__connector.disconnect()
     dbConfigurator = DBConfigurator("")
     dbConfigurator.dropDatabase("ClusterServerDBTest")
Beispiel #5
0
class CommandsDBTests(unittest.TestCase):
    def setUp(self):
        # Create the database
        self.__dbConfigurator = DBConfigurator("")
        self.__dbConfigurator.runSQLScript("CommandsDBTest",
                                           "./CommandsDBTest.sql")
        # Add a user to it
        self.__dbConfigurator.addUser("cygnuscloud", "cygnuscloud",
                                      "CommandsDBTest")
        self.__connector = CommandsDatabaseConnector("cygnuscloud",
                                                     "cygnuscloud",
                                                     "CommandsDBTest", 1)
        self.__connector.connect()

    def tearDown(self):
        self.__connector.disconnect()
        self.__dbConfigurator.dropDatabase("CommandsDBTest")

    def test_addAndRemoveCommands(self):
        self.__connector.addCommand(1, 0, "command arguments")
        result = self.__connector.popCommand()
        expectedResult = (1, 0, 'command arguments')
        self.assertEquals(result[0][0], expectedResult[0],
                          "either addCommand or popCommand does not work")
        self.assertEquals(result[1], expectedResult[1],
                          "either addCommand or popCommand does not work")
        self.assertEquals(result[2], expectedResult[2],
                          "either addCommand or popCommand does not work")
        result = self.__connector.addCommand(1, 1, "command2 arguments")
        self.assertEquals(result, None, "addCommand does not work")
        self.__connector.addCommand(2, 2, "command4 arguments")
        self.__connector.addCommand(3, 3, "command5 arguments")
        expectedResults = [(2, 2, "command4 arguments"),
                           (3, 3, "command5 arguments")]
        for expectedResult in expectedResults:
            result = self.__connector.popCommand()
            self.assertEquals(result[0][0], expectedResult[0],
                              "either addCommand or popCommand does not work")
            self.assertEquals(result[1], expectedResult[1],
                              "either addCommand or popCommand does not work")
            self.assertEquals(result[2], expectedResult[2],
                              "either addCommand or popCommand does not work")

    def test_addAndRemoveCommandOutputs(self):
        commandID = self.__connector.addCommand(1, 0, "command arguments")
        self.__connector.popCommand()
        self.__connector.addCommandOutput(commandID, 0, "commandOutput")
        result = self.__connector.getCommandOutput(commandID)
        expectedResult = (0, "commandOutput")
        self.assertEquals(
            result, expectedResult,
            "either addCommandOutput or getCommandOutput does not work")
 def closeNetworkAndDBConnections(self):
     """
     Cierra las conexiones con las bases de datos
     Argumentos:
         Ninguno
     Devuelve:
         Nada
     """
     # Detener el servicio de red
     self.__manager.stopNetworkService()
     # Borrar las bases de datos de comandos y de estado
     dbConfigurator = DBConfigurator(self.__rootsPassword)
     dbConfigurator.dropDatabase(self.__commandsDatabaseName)    
 def disconnectFromMainServer(self):
     # Discard all the incoming packets and the scheduled updates
     self.__stopped = True
     # Stop the update request thread
     self.__updateRequestThread.stop()
     # Close the database connections
     self.__reader.disconnect()
     self.__writer.disconnect()
     # Stop the network service
     self.__manager.stopNetworkService()
     # Delete the status database
     dbConfigurator = DBConfigurator(self.__rootsPassword)
     dbConfigurator.dropDatabase(self.__databaseName)
Beispiel #8
0
 def disconnectFromMainServer(self):
     # Discard all the incoming packets and the scheduled updates
     self.__stopped = True
     # Stop the update request thread
     self.__updateRequestThread.stop()
     # Close the database connections
     self.__reader.disconnect()
     self.__writer.disconnect()
     # Stop the network service
     self.__manager.stopNetworkService()
     # Delete the status database
     dbConfigurator = DBConfigurator(self.__rootsPassword)
     dbConfigurator.dropDatabase(self.__databaseName)
 def closeNetworkAndDBConnections(self):
     """
     Cierra las conexiones con las bases de datos
     Argumentos:
         Ninguno
     Devuelve:
         Nada
     """
     # Detener el servicio de red
     self.__manager.stopNetworkService()
     # Borrar las bases de datos de comandos y de estado
     dbConfigurator = DBConfigurator(self.__rootsPassword)
     dbConfigurator.dropDatabase(self.__commandsDatabaseName)
class CommandsDBTests(unittest.TestCase):
    
    def setUp(self):
        # Create the database
        self.__dbConfigurator = DBConfigurator("")
        self.__dbConfigurator.runSQLScript("CommandsDBTest", "./CommandsDBTest.sql")
        # Add a user to it
        self.__dbConfigurator.addUser("cygnuscloud", "cygnuscloud", "CommandsDBTest")
        self.__connector = CommandsDatabaseConnector("cygnuscloud", "cygnuscloud", "CommandsDBTest", 1)     
        self.__connector.connect()   
        
    def tearDown(self):
        self.__connector.disconnect()
        self.__dbConfigurator.dropDatabase("CommandsDBTest")
        
    def test_addAndRemoveCommands(self):
        self.__connector.addCommand(1, 0, "command arguments")
        result = self.__connector.popCommand()
        expectedResult = (1, 0, 'command arguments')
        self.assertEquals(result[0][0], expectedResult[0], "either addCommand or popCommand does not work")
        self.assertEquals(result[1], expectedResult[1], "either addCommand or popCommand does not work")
        self.assertEquals(result[2], expectedResult[2], "either addCommand or popCommand does not work")
        result = self.__connector.addCommand(1, 1, "command2 arguments")
        self.assertEquals(result, None, "addCommand does not work")
        self.__connector.addCommand(2, 2, "command4 arguments")
        self.__connector.addCommand(3, 3, "command5 arguments")
        expectedResults = [(2, 2, "command4 arguments"), (3, 3, "command5 arguments")]
        for expectedResult in expectedResults :
            result = self.__connector.popCommand()
            self.assertEquals(result[0][0], expectedResult[0], "either addCommand or popCommand does not work")
            self.assertEquals(result[1], expectedResult[1], "either addCommand or popCommand does not work")
            self.assertEquals(result[2], expectedResult[2], "either addCommand or popCommand does not work")
            
    def test_addAndRemoveCommandOutputs(self):
        commandID = self.__connector.addCommand(1, 0, "command arguments")
        self.__connector.popCommand()
        self.__connector.addCommandOutput(commandID, 0, "commandOutput")
        result = self.__connector.getCommandOutput(commandID)
        expectedResult = (0, "commandOutput")
        self.assertEquals(result, expectedResult, "either addCommandOutput or getCommandOutput does not work")
class DBWebServerTests(unittest.TestCase):
    '''
        Clase encargada de realizar los test unitarios asociados 
    '''
    def setUp(self):
        self.__dbConfigurator = DBConfigurator("")
        self.__dbConfigurator.runSQLScript("VMServerDBTest",
                                           "./VMServerDBTest.sql")
        self.__dbConfigurator.addUser("CygnusCloud", "cygnuscloud2012",
                                      "VMServerDBTest", True)
        self.__dbConnector = VMServerDBConnector("CygnusCloud",
                                                 "cygnuscloud2012",
                                                 "VMServerDBTest")

    def tearDown(self):
        self.__dbConnector.disconnect()
        self.__dbConfigurator.dropDatabase("VMServerDBTest")

    def test_getImages(self):
        # Instanciamos la clase
        l1 = self.__dbConnector.getImages()
        l2 = [1, 2, 3, 4]
        self.assertEquals(l1, l2, "The image ID lists do not match")

    def test_getName(self):
        # Instanciamos la clase
        n1 = self.__dbConnector.getName(1)
        n2 = "VMName1"
        self.assertEquals(n1, n2, "Not same image name")

    def test_getImagePath(self):
        # Instanciamos la clase
        n1 = self.__dbConnector.getImagePath(1)
        n2 = "./VMName1/"
        self.assertEquals(n1, n2, "Not same image path")

    def test_getFileConfigPath(self):
        # Instanciamos la clase
        n1 = self.__dbConnector.getFileConfigPath(1)
        n2 = "./VMName1/"
        self.assertEquals(n1, n2, "Not same image path")

    def test_setImageDataPath(self):
        # Instanciamos la clase
        self.__dbConnector.setImageDataPath(1, "./VMName1Test/")
        n1 = self.__dbConnector.getImagePath(1)
        n2 = "./VMName1Test/"
        self.assertEquals(n1, n2, "Not change image path")

    def test_createImage(self):
        # Instanciamos la clase
        imageId = self.__dbConnector.createImage(123, "VMNameTest",
                                                 "./VMNameTest/",
                                                 "./OSImagePath1",
                                                 "./VMNameTest/")
        self.assertTrue(self.__dbConnector.doesImageExist(imageId),
                        "Not image regist")
        self.__dbConnector.deleteImage(imageId)

    def test_getRunningPorts(self):
        # Instanciamos la clase
        l1 = self.__dbConnector.getRunningPorts()
        l2 = [1, 2, 3, 4]
        self.assertEquals(l1, l2, "Not same ports")

    def test_getUsers(self):
        # Instanciamos la clase
        l1 = self.__dbConnector.getUsers()
        l2 = [1, 2, 3]
        self.assertEquals(l1, l2, "Not same users")

    def test_getAssignedVM(self):
        # Instanciamos la clase
        n1 = self.__dbConnector.getAssignedVM(1)
        n2 = 1
        self.assertEquals(n1, n2, "Not same VM")

    def test_getAssignedVMNameInDomain(self):
        # Instanciamos la clase
        n1 = self.__dbConnector.getAssignedVMNameInDomain(2)
        n2 = "VMName1"
        self.assertEquals(n1, n2, "Not same VM Name")

    def test_getMachineDataPath(self):
        # Instanciamos la clase
        n1 = self.__dbConnector.getMachineDataPath(2)
        n2 = "./VMNameCopy1"
        self.assertEquals(n1, n2, "Not same VM path")

    def test_getMACAddressInDomain(self):
        # Instanciamos la clase
        n1 = self.__dbConnector.getMACAddress(3)
        n2 = "2C:00:00:00:00:02"
        self.assertEquals(n1, n2, "Not same VM MAC")

    def test_getPasswordInDomain(self):
        # Instanciamos la clase
        n1 = self.__dbConnector.getPassword(3)
        n2 = "1234567890Test"
        self.assertEquals(n1, n2, "Not same VM Pass")

    def test_registerVMResources(self):
        # Instanciamos la clase
        portId = self.__dbConnector.registerVMResources(
            "VMName123", 2, 23, "testPass", 3, 100, "./VMNameCopyTest",
            "./OSImagePath1", "testMac", "testUUID")
        self.assertTrue(self.__dbConnector.doesVMExist(portId),
                        "Not VM register")
        self.__dbConnector.unregisterVMResources("VMName123")
        self.assertFalse(self.__dbConnector.doesVMExist(23),
                         "Not VM unregisted")

    def test_extractFreeMACandUUID(self):
        # Instanciamos la clase
        (_uuid1, mac1) = self.__dbConnector.extractFreeMACAndUUID()
        (_uuid2, mac2) = ("9a47c734-5e5f-11e2-981b-001f16b99e1d",
                          "2C:00:00:00:00:00")
        self.assertEquals(mac1, mac2, "Not same MAC")

    def test_extractFreeVNCPort(self):
        # Instanciamos la clase
        vncPort1 = self.__dbConnector.extractFreeVNCPort()
        vncPort2 = (15000)
        self.assertEquals(vncPort1, vncPort2, "Not same VNCPort")

    def test_getVMsConnectionData(self):
        result = self.__dbConnector.getVMsConnectionData()
        expectedResult = [{
            "UserID": 1,
            "VMID": 1,
            "VMName": "VMName11",
            "VNCPort": 1,
            "VNCPass": "******"
        }, {
            "UserID": 1,
            "VMID": 1,
            "VMName": "VMName22",
            "VNCPort": 2,
            "VNCPass": "******"
        }, {
            "UserID": 2,
            "VMID": 1,
            "VMName": "VMName33",
            "VNCPort": 3,
            "VNCPass": "******"
        }, {
            "UserID": 3,
            "VMID": 1,
            "VMName": "VMName44",
            "VNCPort": 4,
            "VNCPass": "******"
        }]
        self.assertEquals(result, expectedResult,
                          "getVMsConnectionData does not work")

    def test_getVMBootCommand(self):
        result = self.__dbConnector.getVMBootCommand("VMName44")
        expectedResult = "123"
        self.assertEquals(result, expectedResult,
                          "getVMBootCommand does not work")
        result = self.__dbConnector.getVMBootCommand("VMName33")
        self.assertEquals(result, None, "getVMBootCommand does not work")

    def test_addVMBootCommand(self):
        self.__dbConnector.addVMBootCommand("VMName33", "1234")
        result = self.__dbConnector.getVMBootCommand("VMName33")
        self.assertEquals(result, "1234", "addVMBootCommand does not work")

    def test_getDomainImageDataPath(self):
        result = self.__dbConnector.getDomainImageDataPath("VMName33")
        expectedResult = "./VMNameCopy2"
        self.assertEquals(result, expectedResult,
                          "getDomainImageDataPath does not work")

    def test_getOSImagePath(self):
        result = self.__dbConnector.getOsImagePath(1)
        expectedResult = "./VMName1/"
        self.assertEquals(result, expectedResult,
                          "getOSImageDataPath does not work")

    def test_getRegisteredDomainNames(self):
        result = self.__dbConnector.getRegisteredDomainNames()
        expectedResult = ["VMName11", "VMName22", "VMName33", "VMName44"]
        self.assertEquals(result, expectedResult,
                          "getActiveDomainNames() does not work")
class DBWebServerTests(unittest.TestCase):
    '''
        Clase encargada de realizar los test unitarios asociados 
    '''
    
    def setUp(self):
        self.__dbConfigurator = DBConfigurator("")
        self.__dbConfigurator.runSQLScript("VMServerDBTest", "./VMServerDBTest.sql")
        self.__dbConfigurator.addUser("CygnusCloud", "cygnuscloud2012", "VMServerDBTest", True)
        self.__dbConnector = VMServerDBConnector("CygnusCloud", "cygnuscloud2012", "VMServerDBTest")
    
    def tearDown(self):
        self.__dbConnector.disconnect()
        self.__dbConfigurator.dropDatabase("VMServerDBTest")
    
    def test_getImages(self):
        # Instanciamos la clase
        l1 = self.__dbConnector.getImages()
        l2 = [1, 2, 3, 4]
        self.assertEquals(l1, l2, "The image ID lists do not match")
        
    def test_getName(self):
        # Instanciamos la clase
        n1 = self.__dbConnector.getName(1)
        n2 = "VMName1"
        self.assertEquals(n1, n2, "Not same image name")
        
    def test_getImagePath(self):
        # Instanciamos la clase
        n1 = self.__dbConnector.getImagePath(1)
        n2 = "./VMName1/"
        self.assertEquals(n1, n2, "Not same image path")   
        
    def test_getFileConfigPath(self):
        # Instanciamos la clase
        n1 = self.__dbConnector.getFileConfigPath(1)
        n2 = "./VMName1/"
        self.assertEquals(n1, n2, "Not same image path")

    def test_setImageDataPath(self):
        # Instanciamos la clase
        self.__dbConnector.setImageDataPath(1, "./VMName1Test/")
        n1 = self.__dbConnector.getImagePath(1)
        n2 = "./VMName1Test/"
        self.assertEquals(n1, n2, "Not change image path")  
        
    def test_createImage(self):
        # Instanciamos la clase
        imageId = self.__dbConnector.createImage(123, "VMNameTest", "./VMNameTest/", "./OSImagePath1", "./VMNameTest/")
        self.assertTrue(self.__dbConnector.doesImageExist(imageId), "Not image regist")  
        self.__dbConnector.deleteImage(imageId)    
    
    def test_getRunningPorts(self):
        # Instanciamos la clase
        l1 = self.__dbConnector.getRunningPorts()
        l2 = [1, 2, 3, 4]
        self.assertEquals(l1, l2, "Not same ports") 
        
    def test_getUsers(self):
        # Instanciamos la clase
        l1 = self.__dbConnector.getUsers()
        l2 = [1, 2, 3]
        self.assertEquals(l1, l2, "Not same users")

    def test_getAssignedVM(self):
        # Instanciamos la clase
        n1 = self.__dbConnector.getAssignedVM(1)
        n2 = 1
        self.assertEquals(n1, n2, "Not same VM") 
        
    def test_getAssignedVMNameInDomain(self):
        # Instanciamos la clase
        n1 = self.__dbConnector.getAssignedVMNameInDomain(2)
        n2 = "VMName1"
        self.assertEquals(n1, n2, "Not same VM Name")   
        
    def test_getMachineDataPath(self):
        # Instanciamos la clase
        n1 = self.__dbConnector.getMachineDataPath(2)
        n2 = "./VMNameCopy1"
        self.assertEquals(n1, n2, "Not same VM path")
 
    def test_getMACAddressInDomain(self):
        # Instanciamos la clase
        n1 = self.__dbConnector.getMACAddress(3)
        n2 = "2C:00:00:00:00:02"
        self.assertEquals(n1, n2, "Not same VM MAC") 
        
    def test_getPasswordInDomain(self):
        # Instanciamos la clase
        n1 = self.__dbConnector.getPassword(3)
        n2 = "1234567890Test"
        self.assertEquals(n1, n2, "Not same VM Pass")
        
    def test_registerVMResources(self):
        # Instanciamos la clase
        portId = self.__dbConnector.registerVMResources("VMName123", 2,
            23, "testPass", 3, 100, "./VMNameCopyTest", "./OSImagePath1", "testMac", "testUUID")
        self.assertTrue(self.__dbConnector.doesVMExist(portId), "Not VM register") 
        self.__dbConnector.unregisterVMResources("VMName123")
        self.assertFalse(self.__dbConnector.doesVMExist(23), "Not VM unregisted")
        
    def test_extractFreeMACandUUID(self):
        # Instanciamos la clase
        (_uuid1, mac1) = self.__dbConnector.extractFreeMACAndUUID()
        (_uuid2, mac2) = ("9a47c734-5e5f-11e2-981b-001f16b99e1d", "2C:00:00:00:00:00")
        self.assertEquals(mac1, mac2, "Not same MAC")
    
    def test_extractFreeVNCPort(self):
        # Instanciamos la clase
        vncPort1 = self.__dbConnector.extractFreeVNCPort()
        vncPort2 = (15000)
        self.assertEquals(vncPort1, vncPort2, "Not same VNCPort")
             
    def test_getVMsConnectionData(self):
        result = self.__dbConnector.getVMsConnectionData()
        expectedResult = [
                          {"UserID": 1, "VMID": 1, "VMName" :"VMName11", "VNCPort" : 1, "VNCPass" : "1234567890"},
                          {"UserID": 1, "VMID": 1, "VMName" :"VMName22", "VNCPort" : 2, "VNCPass" : "1234567890"},
                          {"UserID": 2, "VMID": 1, "VMName" :"VMName33", "VNCPort" : 3, "VNCPass" : "1234567890Test"},
                          {"UserID": 3, "VMID": 1, "VMName" :"VMName44", "VNCPort" : 4, "VNCPass" : "1234567890"}
                          ]
        self.assertEquals(result, expectedResult, "getVMsConnectionData does not work")
        
    def test_getVMBootCommand(self):
        result = self.__dbConnector.getVMBootCommand("VMName44")
        expectedResult = "123"
        self.assertEquals(result, expectedResult, "getVMBootCommand does not work")
        result = self.__dbConnector.getVMBootCommand("VMName33")
        self.assertEquals(result, None, "getVMBootCommand does not work")
        
    def test_addVMBootCommand(self):
        self.__dbConnector.addVMBootCommand("VMName33", "1234")
        result = self.__dbConnector.getVMBootCommand("VMName33")
        self.assertEquals(result, "1234", "addVMBootCommand does not work")
        
    def test_getDomainImageDataPath(self):
        result = self.__dbConnector.getDomainImageDataPath("VMName33")
        expectedResult = "./VMNameCopy2"
        self.assertEquals(result, expectedResult, "getDomainImageDataPath does not work")
        
    def test_getOSImagePath(self):
        result = self.__dbConnector.getOsImagePath(1)
        expectedResult = "./VMName1/"
        self.assertEquals(result, expectedResult, "getOSImageDataPath does not work")  
        
    def test_getRegisteredDomainNames(self):
        result = self.__dbConnector.getRegisteredDomainNames()
        expectedResult = ["VMName11", "VMName22", "VMName33", "VMName44"]
        self.assertEquals(result, expectedResult, "getActiveDomainNames() does not work")      
 def tearDown(self):
     self.__reader.disconnect()
     self.__writer.disconnect()
     dbConfigurator = DBConfigurator("")
     dbConfigurator.dropDatabase("SystemStatusDBTest")
 def tearDown(self):
     self.__reader.disconnect()
     self.__writer.disconnect()
     dbConfigurator = DBConfigurator("")
     dbConfigurator.dropDatabase("SystemStatusDBTest")
class DBWebServerTests(unittest.TestCase):
    '''
        Clase con las pruebas unitarias de la base de datos del servidor de máquinas
        virtuales
    '''    
    def setUp(self):
        self.__dbConfigurator = DBConfigurator("")
        self.__dbConfigurator.runSQLScript("VMServerDBTest", "./VMServerDBTest.sql")
        self.__dbConfigurator.addUser("CygnusCloud", "cygnuscloud2012", "VMServerDBTest", True)
        self.__dbConnector = VMServerDBConnector("CygnusCloud", "cygnuscloud2012", "VMServerDBTest")
    
    def tearDown(self):
        self.__dbConnector.disconnect()
        self.__dbConfigurator.dropDatabase("VMServerDBTest")
     
    def test_getImages(self):
        result = self.__dbConnector.getImageIDs()
        expectedResult = [1, 2, 3, 4]
        self.assertEquals(result, expectedResult, "getImageIDs() error")
          
            
    def test_getDataImagePath(self):
        result = self.__dbConnector.getDataImagePath(1)
        expectedResult = "./VMName1/Data.qcow2"
        self.assertEquals(result, expectedResult, "getDataImagePath() error")   
          
    def test_getOSImagePath(self):
        result = self.__dbConnector.getOSImagePath(1)
        expectedResult = "./VMName1/OS.qcow2"
        self.assertEquals(result, expectedResult, "getOSImagePath() error")   
          
    def test_getDefinitionFilePath(self):
        result = self.__dbConnector.getDefinitionFilePath(1)
        expectedResult = "./VMName1/Definition.xml"
        self.assertEquals(result, expectedResult, "getDefinitionFilePath() error")   
           
    def test_createImage(self):
        self.__dbConnector.createImage(123, "Image/OS.qcow2", "Image/Data.qcow2", "Image/Definition.xml", 0)
        result = self.__dbConnector.getOSImagePath(123)
        expectedResult = "Image/OS.qcow2"
        self.assertEquals(result, expectedResult, "createImage() error")   
        result = self.__dbConnector.getDataImagePath(123)
        expectedResult = "Image/Data.qcow2"
        self.assertEquals(result, expectedResult, "createImage() error")  
        result = self.__dbConnector.getDefinitionFilePath(123)
        expectedResult = "Image/Definition.xml"
        self.assertEquals(result, expectedResult, "createImage() error")   
        result = self.__dbConnector.getBootableFlag(123)
        expectedResult = False
        self.assertEquals(result, expectedResult, "createImage() error")   
           
    def test_deleteImage(self):
        self.__dbConnector.deleteImage(1)
        result = self.__dbConnector.getOSImagePath(1)
        expectedResult = None
        self.assertEquals(result, expectedResult, "deleteImage() error")  
           
    def test_getDomainImageID(self):
        result = self.__dbConnector.getDomainImageID("1_1")
        expectedResult = 1
        self.assertEquals(result, expectedResult, "getDomainImageID() error") 
           
    def test_getDomainDataImagePath(self):
        result = self.__dbConnector.getDomainDataImagePath("1_1")
        expectedResult = "./DataImagePath1"
        self.assertEquals(result, expectedResult, "getDomainDataImagePath() error") 
       
    def test_getDomainOSImagePath(self):
        result = self.__dbConnector.getDomainOSImagePath("1_1")
        expectedResult = "./OSImagePath1"
        self.assertEquals(result, expectedResult, "getDomainOSImagePath() error") 
           
    def test_getDomainMACAddress(self):
        result = self.__dbConnector.getDomainMACAddress("1_1")
        expectedResult = "2C:00:00:00:00:00"
        self.assertEquals(result, expectedResult, "getDomainMACAddress() error") 
           
    def test_getDomainUUID(self):
        result = self.__dbConnector.getDomainUUID("1_1")
        expectedResult = "fce02cff-5d6d-11e2-a3f0-001f16b99e1d"
        self.assertEquals(result, expectedResult, "getDomainUUID() error") 
          
    def test_getDomainVNCPassword(self):
        result = self.__dbConnector.getDomainVNCPassword("1_1")
        expectedResult = "12134567890"
        self.assertEquals(result, expectedResult, "getDomainVNCPassword() error") 
          
    def test_getWebsockifyDaemonPID(self):
        result = self.__dbConnector.getWebsockifyDaemonPID("1_1")
        expectedResult = 1
        self.assertEquals(result, expectedResult, "getWebsockifyDaemonPID() error") 
   
    def test_getDomainNameFromVNCPort(self):
        result = self.__dbConnector.getDomainNameFromVNCPort(1)
        expectedResult = "1_1"
        self.assertEquals(result, expectedResult, "getDomainNameFromVNCPort() error") 
          
    def test_registerVMResources(self):
        self.__dbConnector.registerVMResources("1_20", 1, 2000, "aaa", 1, 2, "OS_20.qcow2", "Data_20.qcow2", "MAC_20", "UUID_20")
        result = self.__dbConnector.getDomainNameFromVNCPort(2000)
        expectedResult = "1_20"
        self.assertEquals(result, expectedResult, "registerVMSResources() error")
        result = self.__dbConnector.getDomainVNCPassword("1_20")
        expectedResult = "aaa"
        self.assertEquals(result, expectedResult, "registerVMSResources() error")
        result = self.__dbConnector.getDomainOwnerID("1_20")
        expectedResult = 1
        self.assertEquals(result, expectedResult, "registerVMSResources() error")
        result = self.__dbConnector.getWebsockifyDaemonPID("1_20")
        expectedResult = 2
        self.assertEquals(result, expectedResult, "registerVMSResources() error")
        result = self.__dbConnector.getDomainOSImagePath("1_20")
        expectedResult = "OS_20.qcow2"
        self.assertEquals(result, expectedResult, "registerVMSResources() error")
        result = self.__dbConnector.getDomainDataImagePath("1_20")
        expectedResult = "Data_20.qcow2"
        self.assertEquals(result, expectedResult, "registerVMSResources() error")
        result = self.__dbConnector.getDomainMACAddress("1_20")
        expectedResult = "MAC_20"
        self.assertEquals(result, expectedResult, "registerVMSResources() error")
        result = self.__dbConnector.getDomainUUID("1_20")
        expectedResult = "UUID_20"
        self.assertEquals(result, expectedResult, "registerVMSResources() error")
          
    def test_unregisterDomainResources(self):
        self.__dbConnector.unregisterDomainResources("1_1")
        result = self.__dbConnector.getDomainOSImagePath("1_1")
        expectedResult = None
        self.assertEquals(result, expectedResult, "unregisterDomainResources() error")
          
    def test_getOwnerID(self):
        result = self.__dbConnector.getDomainOwnerID("1_1")
        expectedResult = 1
        self.assertEquals(result, expectedResult, "getOwnerID() error")
         
    def test_getVMBootCommand(self):
        result = self.__dbConnector.getVMBootCommand("4_4")
        expectedResult = "Command4"
        self.assertEquals(result, expectedResult, "getVMBootCommand() error")
        result = self.__dbConnector.getVMBootCommand("3_3")
        self.assertEquals(result, "Command3", "getVMBootCommand() error")
  
         
    def test_addVMBootCommand(self):
        self.__dbConnector.registerVMResources("5_5", 1, 1, "123", 1, 1, "os", "data", "mac", "uuid")
        self.__dbConnector.addVMBootCommand("5_5", "1234")
        result = self.__dbConnector.getVMBootCommand("5_5")
        self.assertEquals(result, "1234", "addVMBootCommand() error")
  
    def test_getBootableFlag(self):
        result = self.__dbConnector.getBootableFlag(2)
        expectedResult = True
        self.assertEquals(result, expectedResult, "getBootableFlag() error")
          
    def test_getRegisteredDomainNames(self):
        result = self.__dbConnector.getRegisteredDomainNames()
        expectedResult = ["1_1", "2_2", "3_3", "4_4"]
        self.assertEquals(result, expectedResult, "getRegisteredDomainNames() error")    
         
    def test_transferQueue(self):
        expectedResult = dict()
        expectedResult["Transfer_Type"] = TRANSFER_T.STORE_IMAGE
        expectedResult["FTPTimeout"] = 100
        expectedResult["TargetImageID"] = 2
        expectedResult["RepositoryIP"] = "192.168.0.1"
        expectedResult["RepositoryPort"] = 3000
        expectedResult["CommandID"] = "1"
        expectedResult["SourceFilePath"] ="/tmp/foo.zip"
        self.__dbConnector.addToTransferQueue(expectedResult)
        result = self.__dbConnector.peekFromTransferQueue()
        self.assertEquals(result, expectedResult, "addToTransferQueue() error")
        self.__dbConnector.removeFirstElementFromTransferQueue()
        expectedResult = dict()
        expectedResult["Transfer_Type"] = TRANSFER_T.EDIT_IMAGE
        expectedResult["FTPTimeout"] = 100
        expectedResult["SourceImageID"] = 2
        expectedResult["RepositoryIP"] = "192.168.0.1"
        expectedResult["RepositoryPort"] = 3000
        expectedResult["CommandID"] = "1"
        expectedResult["UserID"] = 1
        self.__dbConnector.addToTransferQueue(expectedResult)
        result = self.__dbConnector.peekFromTransferQueue()
        self.assertEquals(result, expectedResult, "addToTransferQueue() error")
         
    def test_addToCompressionQueue(self):
        expectedResult = dict()
        expectedResult["Transfer_Type"] = TRANSFER_T.STORE_IMAGE
        expectedResult["CommandID"] = "1"
        expectedResult["TargetImageID"] = 1
        expectedResult["OSImagePath"] = "os.qcow"
        expectedResult["DataImagePath"] = "data.qcow2"
        expectedResult["DefinitionFilePath"] = "definition.xml"
        expectedResult["RepositoryIP"] = "192.198.0.2"
        expectedResult["RepositoryPort"] = 3000
        self.__dbConnector.addToCompressionQueue(expectedResult)
        result = self.__dbConnector.peekFromCompressionQueue()
        self.assertEquals(result, expectedResult, "addToCompressionQueue() error")
        self.__dbConnector.removeFirstElementFromCompressionQueue()
        expectedResult = dict()
        expectedResult["Transfer_Type"] = TRANSFER_T.EDIT_IMAGE
        expectedResult["CommandID"] = "1"
        expectedResult["TargetImageID"] = 1
        expectedResult["SourceImageID"] = 2
        expectedResult["UserID"] = 3
        self.__dbConnector.addToCompressionQueue(expectedResult)
        result = self.__dbConnector.peekFromCompressionQueue()
        self.assertEquals(result, expectedResult, "addToCompressionQueue() error")   
         
    def test_connectionDataDictionary(self):
        result = self.__dbConnector.getImageRepositoryConnectionData("1")
        expectedResult = None
        self.assertEquals(result, expectedResult, "getImageRepositoryConnectionData() error")
        expectedResult = dict()
        expectedResult["RepositoryIP"] = "192.168.0.5"
        expectedResult["RepositoryPort"] = 30000
        self.__dbConnector.addValueToConnectionDataDictionary("1", expectedResult)
        result = self.__dbConnector.getImageRepositoryConnectionData("1")
        self.assertEquals(result, expectedResult, "getImageRepositoryConnectionData() error")
        self.__dbConnector.removeImageRepositoryConnectionData("1")
        result = self.__dbConnector.getImageRepositoryConnectionData("1")
        expectedResult = None
        self.assertEquals(result, expectedResult, "removeImageRepositoryConnectionData() error")
Beispiel #16
0
class DBWebServerTests(unittest.TestCase):
    '''
        Clase con las pruebas unitarias de la base de datos del servidor de máquinas
        virtuales
    '''
    def setUp(self):
        self.__dbConfigurator = DBConfigurator("")
        self.__dbConfigurator.runSQLScript("VMServerDBTest",
                                           "./VMServerDBTest.sql")
        self.__dbConfigurator.addUser("CygnusCloud", "cygnuscloud2012",
                                      "VMServerDBTest", True)
        self.__dbConnector = VMServerDBConnector("CygnusCloud",
                                                 "cygnuscloud2012",
                                                 "VMServerDBTest")

    def tearDown(self):
        self.__dbConnector.disconnect()
        self.__dbConfigurator.dropDatabase("VMServerDBTest")

    def test_getImages(self):
        result = self.__dbConnector.getImageIDs()
        expectedResult = [1, 2, 3, 4]
        self.assertEquals(result, expectedResult, "getImageIDs() error")

    def test_getDataImagePath(self):
        result = self.__dbConnector.getDataImagePath(1)
        expectedResult = "./VMName1/Data.qcow2"
        self.assertEquals(result, expectedResult, "getDataImagePath() error")

    def test_getOSImagePath(self):
        result = self.__dbConnector.getOSImagePath(1)
        expectedResult = "./VMName1/OS.qcow2"
        self.assertEquals(result, expectedResult, "getOSImagePath() error")

    def test_getDefinitionFilePath(self):
        result = self.__dbConnector.getDefinitionFilePath(1)
        expectedResult = "./VMName1/Definition.xml"
        self.assertEquals(result, expectedResult,
                          "getDefinitionFilePath() error")

    def test_createImage(self):
        self.__dbConnector.createImage(123, "Image/OS.qcow2",
                                       "Image/Data.qcow2",
                                       "Image/Definition.xml", 0)
        result = self.__dbConnector.getOSImagePath(123)
        expectedResult = "Image/OS.qcow2"
        self.assertEquals(result, expectedResult, "createImage() error")
        result = self.__dbConnector.getDataImagePath(123)
        expectedResult = "Image/Data.qcow2"
        self.assertEquals(result, expectedResult, "createImage() error")
        result = self.__dbConnector.getDefinitionFilePath(123)
        expectedResult = "Image/Definition.xml"
        self.assertEquals(result, expectedResult, "createImage() error")
        result = self.__dbConnector.getBootableFlag(123)
        expectedResult = False
        self.assertEquals(result, expectedResult, "createImage() error")

    def test_deleteImage(self):
        self.__dbConnector.deleteImage(1)
        result = self.__dbConnector.getOSImagePath(1)
        expectedResult = None
        self.assertEquals(result, expectedResult, "deleteImage() error")

    def test_getDomainImageID(self):
        result = self.__dbConnector.getDomainImageID("1_1")
        expectedResult = 1
        self.assertEquals(result, expectedResult, "getDomainImageID() error")

    def test_getDomainDataImagePath(self):
        result = self.__dbConnector.getDomainDataImagePath("1_1")
        expectedResult = "./DataImagePath1"
        self.assertEquals(result, expectedResult,
                          "getDomainDataImagePath() error")

    def test_getDomainOSImagePath(self):
        result = self.__dbConnector.getDomainOSImagePath("1_1")
        expectedResult = "./OSImagePath1"
        self.assertEquals(result, expectedResult,
                          "getDomainOSImagePath() error")

    def test_getDomainMACAddress(self):
        result = self.__dbConnector.getDomainMACAddress("1_1")
        expectedResult = "2C:00:00:00:00:00"
        self.assertEquals(result, expectedResult,
                          "getDomainMACAddress() error")

    def test_getDomainUUID(self):
        result = self.__dbConnector.getDomainUUID("1_1")
        expectedResult = "fce02cff-5d6d-11e2-a3f0-001f16b99e1d"
        self.assertEquals(result, expectedResult, "getDomainUUID() error")

    def test_getDomainVNCPassword(self):
        result = self.__dbConnector.getDomainVNCPassword("1_1")
        expectedResult = "12134567890"
        self.assertEquals(result, expectedResult,
                          "getDomainVNCPassword() error")

    def test_getWebsockifyDaemonPID(self):
        result = self.__dbConnector.getWebsockifyDaemonPID("1_1")
        expectedResult = 1
        self.assertEquals(result, expectedResult,
                          "getWebsockifyDaemonPID() error")

    def test_getDomainNameFromVNCPort(self):
        result = self.__dbConnector.getDomainNameFromVNCPort(1)
        expectedResult = "1_1"
        self.assertEquals(result, expectedResult,
                          "getDomainNameFromVNCPort() error")

    def test_registerVMResources(self):
        self.__dbConnector.registerVMResources("1_20", 1, 2000, "aaa", 1, 2,
                                               "OS_20.qcow2", "Data_20.qcow2",
                                               "MAC_20", "UUID_20")
        result = self.__dbConnector.getDomainNameFromVNCPort(2000)
        expectedResult = "1_20"
        self.assertEquals(result, expectedResult,
                          "registerVMSResources() error")
        result = self.__dbConnector.getDomainVNCPassword("1_20")
        expectedResult = "aaa"
        self.assertEquals(result, expectedResult,
                          "registerVMSResources() error")
        result = self.__dbConnector.getDomainOwnerID("1_20")
        expectedResult = 1
        self.assertEquals(result, expectedResult,
                          "registerVMSResources() error")
        result = self.__dbConnector.getWebsockifyDaemonPID("1_20")
        expectedResult = 2
        self.assertEquals(result, expectedResult,
                          "registerVMSResources() error")
        result = self.__dbConnector.getDomainOSImagePath("1_20")
        expectedResult = "OS_20.qcow2"
        self.assertEquals(result, expectedResult,
                          "registerVMSResources() error")
        result = self.__dbConnector.getDomainDataImagePath("1_20")
        expectedResult = "Data_20.qcow2"
        self.assertEquals(result, expectedResult,
                          "registerVMSResources() error")
        result = self.__dbConnector.getDomainMACAddress("1_20")
        expectedResult = "MAC_20"
        self.assertEquals(result, expectedResult,
                          "registerVMSResources() error")
        result = self.__dbConnector.getDomainUUID("1_20")
        expectedResult = "UUID_20"
        self.assertEquals(result, expectedResult,
                          "registerVMSResources() error")

    def test_unregisterDomainResources(self):
        self.__dbConnector.unregisterDomainResources("1_1")
        result = self.__dbConnector.getDomainOSImagePath("1_1")
        expectedResult = None
        self.assertEquals(result, expectedResult,
                          "unregisterDomainResources() error")

    def test_getOwnerID(self):
        result = self.__dbConnector.getDomainOwnerID("1_1")
        expectedResult = 1
        self.assertEquals(result, expectedResult, "getOwnerID() error")

    def test_getVMBootCommand(self):
        result = self.__dbConnector.getVMBootCommand("4_4")
        expectedResult = "Command4"
        self.assertEquals(result, expectedResult, "getVMBootCommand() error")
        result = self.__dbConnector.getVMBootCommand("3_3")
        self.assertEquals(result, "Command3", "getVMBootCommand() error")

    def test_addVMBootCommand(self):
        self.__dbConnector.registerVMResources("5_5", 1, 1, "123", 1, 1, "os",
                                               "data", "mac", "uuid")
        self.__dbConnector.addVMBootCommand("5_5", "1234")
        result = self.__dbConnector.getVMBootCommand("5_5")
        self.assertEquals(result, "1234", "addVMBootCommand() error")

    def test_getBootableFlag(self):
        result = self.__dbConnector.getBootableFlag(2)
        expectedResult = True
        self.assertEquals(result, expectedResult, "getBootableFlag() error")

    def test_getRegisteredDomainNames(self):
        result = self.__dbConnector.getRegisteredDomainNames()
        expectedResult = ["1_1", "2_2", "3_3", "4_4"]
        self.assertEquals(result, expectedResult,
                          "getRegisteredDomainNames() error")

    def test_transferQueue(self):
        expectedResult = dict()
        expectedResult["Transfer_Type"] = TRANSFER_T.STORE_IMAGE
        expectedResult["FTPTimeout"] = 100
        expectedResult["TargetImageID"] = 2
        expectedResult["RepositoryIP"] = "192.168.0.1"
        expectedResult["RepositoryPort"] = 3000
        expectedResult["CommandID"] = "1"
        expectedResult["SourceFilePath"] = "/tmp/foo.zip"
        self.__dbConnector.addToTransferQueue(expectedResult)
        result = self.__dbConnector.peekFromTransferQueue()
        self.assertEquals(result, expectedResult, "addToTransferQueue() error")
        self.__dbConnector.removeFirstElementFromTransferQueue()
        expectedResult = dict()
        expectedResult["Transfer_Type"] = TRANSFER_T.EDIT_IMAGE
        expectedResult["FTPTimeout"] = 100
        expectedResult["SourceImageID"] = 2
        expectedResult["RepositoryIP"] = "192.168.0.1"
        expectedResult["RepositoryPort"] = 3000
        expectedResult["CommandID"] = "1"
        expectedResult["UserID"] = 1
        self.__dbConnector.addToTransferQueue(expectedResult)
        result = self.__dbConnector.peekFromTransferQueue()
        self.assertEquals(result, expectedResult, "addToTransferQueue() error")

    def test_addToCompressionQueue(self):
        expectedResult = dict()
        expectedResult["Transfer_Type"] = TRANSFER_T.STORE_IMAGE
        expectedResult["CommandID"] = "1"
        expectedResult["TargetImageID"] = 1
        expectedResult["OSImagePath"] = "os.qcow"
        expectedResult["DataImagePath"] = "data.qcow2"
        expectedResult["DefinitionFilePath"] = "definition.xml"
        expectedResult["RepositoryIP"] = "192.198.0.2"
        expectedResult["RepositoryPort"] = 3000
        self.__dbConnector.addToCompressionQueue(expectedResult)
        result = self.__dbConnector.peekFromCompressionQueue()
        self.assertEquals(result, expectedResult,
                          "addToCompressionQueue() error")
        self.__dbConnector.removeFirstElementFromCompressionQueue()
        expectedResult = dict()
        expectedResult["Transfer_Type"] = TRANSFER_T.EDIT_IMAGE
        expectedResult["CommandID"] = "1"
        expectedResult["TargetImageID"] = 1
        expectedResult["SourceImageID"] = 2
        expectedResult["UserID"] = 3
        self.__dbConnector.addToCompressionQueue(expectedResult)
        result = self.__dbConnector.peekFromCompressionQueue()
        self.assertEquals(result, expectedResult,
                          "addToCompressionQueue() error")

    def test_connectionDataDictionary(self):
        result = self.__dbConnector.getImageRepositoryConnectionData("1")
        expectedResult = None
        self.assertEquals(result, expectedResult,
                          "getImageRepositoryConnectionData() error")
        expectedResult = dict()
        expectedResult["RepositoryIP"] = "192.168.0.5"
        expectedResult["RepositoryPort"] = 30000
        self.__dbConnector.addValueToConnectionDataDictionary(
            "1", expectedResult)
        result = self.__dbConnector.getImageRepositoryConnectionData("1")
        self.assertEquals(result, expectedResult,
                          "getImageRepositoryConnectionData() error")
        self.__dbConnector.removeImageRepositoryConnectionData("1")
        result = self.__dbConnector.getImageRepositoryConnectionData("1")
        expectedResult = None
        self.assertEquals(result, expectedResult,
                          "removeImageRepositoryConnectionData() error")