def serverstat(request, server): server_stat = {'server':server,'properties':[],'clients':[]} servers_dict = dict(zkconfig.servers) if server not in servers_dict: server_stat['error'] = 'No this server' return HttpResponse(jdumps(server_stat)) stat = zkutils.stat((server,servers_dict[server])) if stat == False: server_stat['error'] == 'failed' else: version_regex = re.compile(r'(Zookeeper version.*)') client_regex = re.compile("\s+\/(?P<ip>[\d\.]+):(?P<port>\d+)\[\d+\]\(queued=(?P<queued>\d+),recved=(?P<recved>\d+),sent=(?P<sent>\d+)\)") for line in stat.split('\n'): if line.startswith('Clients') or line == "": continue if version_regex.match(line): server_stat['version'] = line elif client_regex.match(line): mo = client_regex.match(line) client_dict = mo.groupdict() client_dict['host'] = zkutils.ip2host(client_dict['ip']) server_stat['clients'].append(client_dict) else: n,v = line.split(':',1) server_stat['properties'].append({"name":n, "value":v}) return HttpResponse(jdumps(server_stat))
def serverstat(request, server): server_stat = {'server': server, 'properties': [], 'clients': []} servers_dict = dict(zkconfig.servers) if server not in servers_dict: server_stat['error'] = 'No this server' return HttpResponse(jdumps(server_stat)) stat = zkutils.stat((server, servers_dict[server])) if stat == False: server_stat['error'] == 'failed' else: version_regex = re.compile(r'(Zookeeper version.*)') client_regex = re.compile( "\s+\/(?P<ip>[\d\.]+):(?P<port>\d+)\[\d+\]\(queued=(?P<queued>\d+),recved=(?P<recved>\d+),sent=(?P<sent>\d+)\)" ) for line in stat.split('\n'): if line.startswith('Clients') or line == "": continue if version_regex.match(line): server_stat['version'] = line elif client_regex.match(line): mo = client_regex.match(line) client_dict = mo.groupdict() client_dict['host'] = zkutils.ip2host(client_dict['ip']) server_stat['clients'].append(client_dict) else: n, v = line.split(':', 1) server_stat['properties'].append({"name": n, "value": v}) return HttpResponse(jdumps(server_stat))
def serverlist(request): stats = [] for zkserver in zkconfig.servers: server_dict = {"id": zkserver[0], "text": zkserver[0], "leaf": True} stat = zkutils.stat(zkserver) if stat == False: server_dict['cls'] = 'failed' elif "Mode: leader" in stat: server_dict['cls'] = 'leader' elif "Mode: follower" in stat: server_dict['cls'] = 'follower' stats.append(server_dict) return HttpResponse(jdumps(stats))