def _sendUpdateAll(self): logging.debug("Sending update to the mulsticast group %s:%d" % (self.mg_ip, self.mg_port)) msg = "%s\n" % gdata.CMD_UPDATE snt = self.m_sock.sendto(msg, (self.mg_ip, self.mg_port) ) if snt == len(msg): self.sock.sendall( helper.getOkMessage('Update all sent') ) else: self.sock.sendall( helper.getGenericError( 'Error sending to Multicast group'))
def _sendUpdateAll(self): logging.debug("Sending update to the mulsticast group %s:%d" % (self.mg_ip, self.mg_port)) msg = "%s\n" % gdata.CMD_UPDATE snt = self.m_sock.sendto(msg, (self.mg_ip, self.mg_port)) if snt == len(msg): self.sock.sendall(helper.getOkMessage('Update all sent')) else: self.sock.sendall( helper.getGenericError('Error sending to Multicast group'))
def _sendUpdateToMonitor(self, ip, port): # Send Update to monitor and get response s = socket.create_connection((ip, port), self.timeout) s.sendall("%s\n" % gdata.CMD_UPDATE) ret = common.recvEnd(s, '\n').strip() code, sep, desc = ret.partition(' ') # Send result to client msg = None if code == gdata.K_OK: msg = helper.getOkMessage(desc) else: msg = helper.getGenericError("Received error: %s" % ret) self.sock.sendall(msg)
def _sendUpdateToMonitor(self, ip, port): # Send Update to monitor and get response s = socket.create_connection( (ip, port), self.timeout ) s.sendall("%s\n" % gdata.CMD_UPDATE) ret = common.recvEnd(s, '\n').strip() code, sep, desc = ret.partition(' ') # Send result to client msg = None if code == gdata.K_OK: msg = helper.getOkMessage(desc) else: msg = helper.getGenericError("Received error: %s" % ret) self.sock.sendall(msg)
class MonitorHandler(ThreadWithRegister): def __init__(self, sock, timeout): super(MonitorHandler, self).__init__() self.sock = sock self.timeout = timeout self.addr = sock.getpeername() # Save socket address def run(self): """run() -> void Handles the communication events and errors with a resource monitor. """ MonitorHandler._registerThread(MonitorHandler, self) sock = self.sock sock.settimeout(self.timeout) try: data = common.recvEnd(sock, gdata.ETX) if data: logging.debug("%s:%d Data:\n%s" % (self.addr[0], self.addr[1], data)) head, sep, body = data.partition(' ') head = head.strip() body = body.strip() if helper.isBEL(head): # New monitor self._newMonitor(body) elif helper.isSOH(head): # Monitor data update self._updateMonitor(body) else: # Unknown data logging.info("Unknown monitor message '%s' from %s:%d" % (data, self.addr[0], self.addr[1])) sock.sendall(helper.getBadMessageError("Wrong message")) except socket.timeout: logging.debug("Socket TIMEOUT %s:%d" % self.addr) sock.sendall( helper.getTimeoutError("Reached timeout of %.1f seconds" % self.timeout)) except AttributeError, e: sock.sendall(helper.getGenericError(str(e))) except ValueError, e: sock.sendall(helper.getGenericError(str(e)))
def _updateFromOther(sock, instruction, params, timeout): try: ip, port = params.strip().split(':') port = int(port) response = '' sock_to_other = socket.create_connection((ip, port), timeout) sock_to_other.sendall(instruction + '\n') msg = common.recvEnd(sock_to_other, '\n\n') + '\n\n' response_head, sep, rest = msg.partition(' ') if response_head != gdata.K_OK: msg = helper.getGenericError('Bad response') except ValueError: msg = helper.getUnknownCmdError('Bad formatted parameters') except socket.error, e: msg = helper.getMonitorUnreachableError('Connection failed')
def run(self): """run() -> void Handles the communication events and errors with a resource monitor. """ MonitorHandler._registerThread(MonitorHandler, self) sock = self.sock sock.settimeout( self.timeout ) try: data = common.recvEnd(sock, gdata.ETX) if data: logging.debug("%s:%d Data:\n%s" % (self.addr[0], self.addr[1], data)) head, sep, body = data.partition(' ') head = head.strip() body = body.strip() if helper.isBEL(head): # New monitor self._newMonitor(body) elif helper.isSOH(head): # Monitor data update self._updateMonitor(body) else: # Unknown data logging.info("Unknown monitor message '%s' from %s:%d" % (data, self.addr[0], self.addr[1]) ) sock.sendall( helper.getBadMessageError("Wrong message") ) except socket.timeout: logging.debug("Socket TIMEOUT %s:%d" % self.addr) sock.sendall( helper.getTimeoutError( "Reached timeout of %.1f seconds" % self.timeout) ) except AttributeError, e: sock.sendall( helper.getGenericError(str(e)) )