Ejemplo n.º 1
0
    def disconnectFromClusterServer(self):
        """
        Cierra la conexión con el servidor de cluster y borra las bases de datos de estado
        Argumentos:
            Ninguno
        Devuelve:
            Nada
        @attention: Este método debe llamarse desde el hilo principal para evitar cuelgues
        """
        # Apagar el servidor de cluster
        p = self.__repositoryPacketHandler.createHaltPacket(
            self.__haltVMServers)
        errorMessage = self.__manager.sendPacket(self.__clusterServerIP,
                                                 self.__clusterServerPort, p)
        NetworkManager.printConnectionWarningIfNecessary(
            self.__clusterServerIP, self.__clusterServerPort,
            "Cluster server halt", errorMessage)
        # Dejar de actualizar las bases de datos
        self.__updateRequestThread.stop()

        # Dejar de monitorizar los comandos
        self.__commandMonitoringThread.stop()

        # Cerrar las conexiones con las bases de datos
        self.closeNetworkAndDBConnections()
Ejemplo n.º 2
0
 def __sendUpdateRequestPackets(self):
     """
     Sends the update request packets to the cluster server
     Args:
         None
     Returns:
         Nothing
     """
     if (self.__commandsProcessor.finish()) :
         return
     p = self.__packetHandler.createDataRequestPacket(PACKET_T.QUERY_VM_SERVERS_STATUS)
     errorMessage = self.__networkManager.sendPacket(self.__clusterServerIP, self.__clusterServerPort, p)          
     NetworkManager.printConnectionWarningIfNecessary(self.__clusterServerIP, self.__clusterServerPort, "Virtual machine servers status", errorMessage)     
     
     p = self.__packetHandler.createDataRequestPacket(PACKET_T.QUERY_VM_DISTRIBUTION)
     errorMessage = self.__networkManager.sendPacket(self.__clusterServerIP, self.__clusterServerPort, p)        
     NetworkManager.printConnectionWarningIfNecessary(self.__clusterServerIP, self.__clusterServerPort, "Virtual machine distribution", errorMessage)
     
     p = self.__packetHandler.createDataRequestPacket(PACKET_T.QUERY_ACTIVE_VM_VNC_DATA)
     errorMessage = self.__networkManager.sendPacket(self.__clusterServerIP, self.__clusterServerPort, p)
     NetworkManager.printConnectionWarningIfNecessary(self.__clusterServerIP, self.__clusterServerPort, "Active virtual machines data", errorMessage)
     
     p = self.__packetHandler.createDataRequestPacket(PACKET_T.QUERY_REPOSITORY_STATUS)
     errorMessage = self.__networkManager.sendPacket(self.__clusterServerIP, self.__clusterServerPort, p)
     NetworkManager.printConnectionWarningIfNecessary(self.__clusterServerIP, self.__clusterServerPort, "Image repository status", errorMessage)
     
     p = self.__packetHandler.createDataRequestPacket(PACKET_T.QUERY_VM_SERVERS_RESOURCE_USAGE)
     errorMessage = self.__networkManager.sendPacket(self.__clusterServerIP, self.__clusterServerPort, p)
     NetworkManager.printConnectionWarningIfNecessary(self.__clusterServerIP, self.__clusterServerPort, "Virtual machine servers resource usage", errorMessage)
 def __requestVNCConnectionData(self):
     """
     Processes a VNC connection data request packet
     Args:
         data: a dictionary containing the incoming packet's data
     Returns:
         Nothing
     """
     p = self.__vmServerPacketHandler.createVMServerDataRequestPacket(VMSRVR_PACKET_T.QUERY_ACTIVE_VM_DATA)
     
     connectionData = self.__commandsDBConnector.getActiveVMServersConnectionData()
     for cd in connectionData :            
         errorMessage = self.__networkManager.sendPacket(cd["ServerIP"], cd["ServerPort"], p)
         NetworkManager.printConnectionWarningIfNecessary(cd["ServerIP"], cd["ServerPort"], "VNC connection data request", errorMessage)   
 def __sendStatusRequestToVMServer(self, vmServerIP, vmServerPort):
     """
     Sends a status request packet to a virtual machine server
     Args:
         vmServerIP : the virtual machine server's IP address
         vmServerPort: the virtual machine server control connection's port
     Returns:
         Nothing
     """
     p = self.__vmServerPacketHandler.createVMServerDataRequestPacket(VMSRVR_PACKET_T.SERVER_STATUS_REQUEST)
     errorMessage = self.__networkManager.sendPacket(vmServerIP, vmServerPort, p)
     NetworkManager.printConnectionWarningIfNecessary(vmServerIP, vmServerPort, "status request", errorMessage)
     p = self.__vmServerPacketHandler.createVMServerDataRequestPacket(VMSRVR_PACKET_T.QUERY_ACTIVE_DOMAIN_UIDS)            
     errorMessage = self.__networkManager.sendPacket(vmServerIP, vmServerPort, p)
     NetworkManager.printConnectionWarningIfNecessary(vmServerIP, vmServerPort, "active domain UIDs request", errorMessage)
 def disconnectFromClusterServer(self):
     """
     Closes the connection with the cluster server
     Args:
         None
     Devuelve:
         Nada
     """
     p = self.__packetHandler.createHaltPacket(self.__commandsProcessor.haltVMServers())
     errorMessage = self.__networkManager.sendPacket(self.__clusterServerIP, self.__clusterServerPort, p)
     NetworkManager.printConnectionWarningIfNecessary(self.__clusterServerIP, self.__clusterServerPort, "Cluster server halt", 
                                                      errorMessage)
     self.__updateRequestThread.stop()
     
     self.__commandExecutionThread.stop()
     
     self.closeNetworkConnections()
Ejemplo n.º 6
0
    def __requestVNCConnectionData(self):
        """
        Processes a VNC connection data request packet
        Args:
            data: a dictionary containing the incoming packet's data
        Returns:
            Nothing
        """
        p = self.__vmServerPacketHandler.createVMServerDataRequestPacket(
            VMSRVR_PACKET_T.QUERY_ACTIVE_VM_DATA)

        connectionData = self.__commandsDBConnector.getActiveVMServersConnectionData(
        )
        for cd in connectionData:
            errorMessage = self.__networkManager.sendPacket(
                cd["ServerIP"], cd["ServerPort"], p)
            NetworkManager.printConnectionWarningIfNecessary(
                cd["ServerIP"], cd["ServerPort"],
                "VNC connection data request", errorMessage)
Ejemplo n.º 7
0
    def disconnectFromClusterServer(self):
        """
        Closes the connection with the cluster server
        Args:
            None
        Devuelve:
            Nada
        """
        p = self.__packetHandler.createHaltPacket(
            self.__commandsProcessor.haltVMServers())
        errorMessage = self.__networkManager.sendPacket(
            self.__clusterServerIP, self.__clusterServerPort, p)
        NetworkManager.printConnectionWarningIfNecessary(
            self.__clusterServerIP, self.__clusterServerPort,
            "Cluster server halt", errorMessage)
        self.__updateRequestThread.stop()

        self.__commandExecutionThread.stop()

        self.closeNetworkConnections()
Ejemplo n.º 8
0
    def _sendUpdateRequestPackets(self):
        """
        Solicita información de estado al serividor de cluster
        Argumentos:
            Ninguno
        Devuelve:
            Nada
        """
        if (self.__stopped):
            return
        # Enviamos paquetes para obtener los tres tipos de información que necesitamos para actualizar la base de datos de estado
        p = self.__repositoryPacketHandler.createDataRequestPacket(
            PACKET_T.QUERY_VM_SERVERS_STATUS)
        errorMessage = self.__manager.sendPacket(self.__clusterServerIP,
                                                 self.__clusterServerPort, p)
        NetworkManager.printConnectionWarningIfNecessary(
            self.__clusterServerIP, self.__clusterServerPort,
            "Virtual machine servers status", errorMessage)

        p = self.__repositoryPacketHandler.createDataRequestPacket(
            PACKET_T.QUERY_VM_DISTRIBUTION)
        errorMessage = self.__manager.sendPacket(self.__clusterServerIP,
                                                 self.__clusterServerPort, p)
        NetworkManager.printConnectionWarningIfNecessary(
            self.__clusterServerIP, self.__clusterServerPort,
            "Virtual machine distribution", errorMessage)

        p = self.__repositoryPacketHandler.createDataRequestPacket(
            PACKET_T.QUERY_ACTIVE_VM_DATA)
        errorMessage = self.__manager.sendPacket(self.__clusterServerIP,
                                                 self.__clusterServerPort, p)
        NetworkManager.printConnectionWarningIfNecessary(
            self.__clusterServerIP, self.__clusterServerPort,
            "Active virtual machines data", errorMessage)
Ejemplo n.º 9
0
 def __sendStatusRequestToVMServer(self, vmServerIP, vmServerPort):
     """
     Sends a status request packet to a virtual machine server
     Args:
         vmServerIP : the virtual machine server's IP address
         vmServerPort: the virtual machine server control connection's port
     Returns:
         Nothing
     """
     p = self.__vmServerPacketHandler.createVMServerDataRequestPacket(
         VMSRVR_PACKET_T.SERVER_STATUS_REQUEST)
     errorMessage = self.__networkManager.sendPacket(
         vmServerIP, vmServerPort, p)
     NetworkManager.printConnectionWarningIfNecessary(
         vmServerIP, vmServerPort, "status request", errorMessage)
     p = self.__vmServerPacketHandler.createVMServerDataRequestPacket(
         VMSRVR_PACKET_T.QUERY_ACTIVE_DOMAIN_UIDS)
     errorMessage = self.__networkManager.sendPacket(
         vmServerIP, vmServerPort, p)
     NetworkManager.printConnectionWarningIfNecessary(
         vmServerIP, vmServerPort, "active domain UIDs request",
         errorMessage)
Ejemplo n.º 10
0
 def disconnectFromClusterServer(self):
     """
     Cierra la conexión con el servidor de cluster y borra las bases de datos de estado
     Argumentos:
         Ninguno
     Devuelve:
         Nada
     @attention: Este método debe llamarse desde el hilo principal para evitar cuelgues
     """
     # Apagar el servidor de cluster
     p = self.__repositoryPacketHandler.createHaltPacket(self.__haltVMServers)
     errorMessage = self.__manager.sendPacket(self.__clusterServerIP, self.__clusterServerPort, p)
     NetworkManager.printConnectionWarningIfNecessary(self.__clusterServerIP, self.__clusterServerPort, "Cluster server halt", 
                                                      errorMessage)
     # Dejar de actualizar las bases de datos
     self.__updateRequestThread.stop()
     
     # Dejar de monitorizar los comandos
     self.__commandMonitoringThread.stop()
     
     # Cerrar las conexiones con las bases de datos
     self.closeNetworkAndDBConnections()
Ejemplo n.º 11
0
 def _sendUpdateRequestPackets(self):
     """
     Solicita información de estado al serividor de cluster
     Argumentos:
         Ninguno
     Devuelve:
         Nada
     """
     if (self.__stopped) :
         return
     # Enviamos paquetes para obtener los tres tipos de información que necesitamos para actualizar la base de datos de estado
     p = self.__repositoryPacketHandler.createDataRequestPacket(PACKET_T.QUERY_VM_SERVERS_STATUS)
     errorMessage = self.__manager.sendPacket(self.__clusterServerIP, self.__clusterServerPort, p)          
     NetworkManager.printConnectionWarningIfNecessary(self.__clusterServerIP, self.__clusterServerPort, "Virtual machine servers status", errorMessage)     
     
     p = self.__repositoryPacketHandler.createDataRequestPacket(PACKET_T.QUERY_VM_DISTRIBUTION)
     errorMessage = self.__manager.sendPacket(self.__clusterServerIP, self.__clusterServerPort, p)        
     NetworkManager.printConnectionWarningIfNecessary(self.__clusterServerIP, self.__clusterServerPort, "Virtual machine distribution", errorMessage)
     
     p = self.__repositoryPacketHandler.createDataRequestPacket(PACKET_T.QUERY_ACTIVE_VM_DATA)
     errorMessage = self.__manager.sendPacket(self.__clusterServerIP, self.__clusterServerPort, p)
     NetworkManager.printConnectionWarningIfNecessary(self.__clusterServerIP, self.__clusterServerPort, "Active virtual machines data", errorMessage)