mirror of
https://github.com/sileht/bird-lg.git
synced 2024-11-21 22:44:43 +01:00
Merge pull request #38 from zorun/fix_protocol_parsing
Simplify parsing of 'show protocols' to avoid future breakages
This commit is contained in:
commit
2ce03ebbb0
15
lg.py
15
lg.py
|
@ -223,8 +223,6 @@ def whois():
|
||||||
|
|
||||||
|
|
||||||
SUMMARY_UNWANTED_PROTOS = ["Kernel", "Static", "Device"]
|
SUMMARY_UNWANTED_PROTOS = ["Kernel", "Static", "Device"]
|
||||||
SUMMARY_RE_MATCH = r"(?P<name>[\w_]+)\s+(?P<proto>\w+)\s+(?P<table>\w+)\s+(?P<state>\w+)\s+(?P<since>((|\d\d\d\d-\d\d-\d\d\s)|(\d\d:)\d\d:\d\d|\w\w\w\d\d))($|\s+(?P<info>.*))"
|
|
||||||
|
|
||||||
|
|
||||||
@app.route("/summary/<hosts>")
|
@app.route("/summary/<hosts>")
|
||||||
@app.route("/summary/<hosts>/<proto>")
|
@app.route("/summary/<hosts>/<proto>")
|
||||||
|
@ -251,9 +249,16 @@ def summary(hosts, proto="ipv4"):
|
||||||
for line in res[1:]:
|
for line in res[1:]:
|
||||||
line = line.strip()
|
line = line.strip()
|
||||||
if line and (line.split() + [""])[1] not in SUMMARY_UNWANTED_PROTOS:
|
if line and (line.split() + [""])[1] not in SUMMARY_UNWANTED_PROTOS:
|
||||||
m = re.match(SUMMARY_RE_MATCH, line)
|
split = line.split()
|
||||||
if m:
|
if len(split) >= 5:
|
||||||
data.append(m.groupdict())
|
props = dict()
|
||||||
|
props["name"] = split[0]
|
||||||
|
props["proto"] = split[1]
|
||||||
|
props["table"] = split[2]
|
||||||
|
props["state"] = split[3]
|
||||||
|
props["since"] = split[4]
|
||||||
|
props["info"] = ' '.join(split[5:]) if len(split) > 5 else ""
|
||||||
|
data.append(props)
|
||||||
else:
|
else:
|
||||||
app.logger.warning("couldn't parse: %s", line)
|
app.logger.warning("couldn't parse: %s", line)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue