class UdpProtocol(protocol.DatagramProtocol): def __init__(self, heartbeats): self.heartbeats = heartbeats def datagramReceived(self, data, (host, port)): if data.startswith("logs"): _, host, port, logs = data.split('#') logs_list = json.loads(logs) for log in logs_list: date, type_log, content = parseLog(log) log_to_save = Logs(web_server_ID=(host + ":%d" % int(port)), log_timestamp=date, log_type=type_log, log_content=content) log_to_save.save() elif data.startswith("last_exception"): _, host, port, exception = data.split('#') ws = WebServiceMonitor.objects(web_server_ip=host, web_server_port=port).first() ws.last_excpt_raised = exception ws.save() #load_balancer sends the list of servers elif data.startswith("list_servers") and (host, port) == ( config.load_bal_monitor.ip, config.load_bal_monitor.port_udp): cust_logger.info("received list servers") _, list_json = data.split('#') heartbeats = [{ (server['ip'], server['port'], server['monitor_port']): time.time() } for server in json.loads(list_json)]