Пример #1
0
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)]