forked from Mirror/frr
isisd: fix show database json format
"show isis database [detail] json" returns invalid or incorrect JSON that is difficult to parse. Fix key with '-' characters, add booleans and null data when possible. Deprecate the old format. Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
This commit is contained in:
parent
c3ccc0a53b
commit
d5879267aa
|
@ -746,6 +746,10 @@ void lsp_print_common(struct isis_lsp *lsp, struct vty *vty, struct json_object
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if CONFDATE > 20240916
|
||||||
|
CPP_NOTICE("Remove JSON in '-' format")
|
||||||
|
#endif
|
||||||
|
|
||||||
void lsp_print_json(struct isis_lsp *lsp, struct json_object *json,
|
void lsp_print_json(struct isis_lsp *lsp, struct json_object *json,
|
||||||
char dynhost, struct isis *isis)
|
char dynhost, struct isis *isis)
|
||||||
{
|
{
|
||||||
|
@ -759,10 +763,20 @@ void lsp_print_json(struct isis_lsp *lsp, struct json_object *json,
|
||||||
own_json = json_object_new_object();
|
own_json = json_object_new_object();
|
||||||
json_object_object_add(json, "lsp", own_json);
|
json_object_object_add(json, "lsp", own_json);
|
||||||
json_object_string_add(own_json, "id", LSPid);
|
json_object_string_add(own_json, "id", LSPid);
|
||||||
|
#if CONFDATE > 20240916
|
||||||
|
CPP_NOTICE("remove own key")
|
||||||
|
#endif
|
||||||
json_object_string_add(own_json, "own", lsp->own_lsp ? "*" : " ");
|
json_object_string_add(own_json, "own", lsp->own_lsp ? "*" : " ");
|
||||||
|
if (lsp->own_lsp)
|
||||||
|
json_object_boolean_add(own_json, "ownLSP", true);
|
||||||
json_object_int_add(json, "pdu-len", lsp->hdr.pdu_len);
|
json_object_int_add(json, "pdu-len", lsp->hdr.pdu_len);
|
||||||
|
json_object_int_add(json, "pduLen", lsp->hdr.pdu_len);
|
||||||
snprintfrr(buf, sizeof(buf), "0x%08x", lsp->hdr.seqno);
|
snprintfrr(buf, sizeof(buf), "0x%08x", lsp->hdr.seqno);
|
||||||
|
#if CONFDATE > 20240916
|
||||||
|
CPP_NOTICE("remove seq-number key")
|
||||||
|
#endif
|
||||||
json_object_string_add(json, "seq-number", buf);
|
json_object_string_add(json, "seq-number", buf);
|
||||||
|
json_object_string_add(json, "seqNumber", buf);
|
||||||
snprintfrr(buf, sizeof(buf), "0x%04hx", lsp->hdr.checksum);
|
snprintfrr(buf, sizeof(buf), "0x%04hx", lsp->hdr.checksum);
|
||||||
json_object_string_add(json, "chksum", buf);
|
json_object_string_add(json, "chksum", buf);
|
||||||
if (lsp->hdr.rem_lifetime == 0) {
|
if (lsp->hdr.rem_lifetime == 0) {
|
||||||
|
@ -772,8 +786,13 @@ void lsp_print_json(struct isis_lsp *lsp, struct json_object *json,
|
||||||
} else {
|
} else {
|
||||||
json_object_int_add(json, "holdtime", lsp->hdr.rem_lifetime);
|
json_object_int_add(json, "holdtime", lsp->hdr.rem_lifetime);
|
||||||
}
|
}
|
||||||
|
#if CONFDATE > 20240916
|
||||||
|
CPP_NOTICE("remove att-p-ol key")
|
||||||
|
#endif
|
||||||
json_object_string_add(
|
json_object_string_add(
|
||||||
json, "att-p-ol", lsp_bits2string(lsp->hdr.lsp_bits, b, sizeof(b)));
|
json, "att-p-ol", lsp_bits2string(lsp->hdr.lsp_bits, b, sizeof(b)));
|
||||||
|
json_object_string_add(json, "attPOl",
|
||||||
|
lsp_bits2string(lsp->hdr.lsp_bits, b, sizeof(b)));
|
||||||
}
|
}
|
||||||
|
|
||||||
void lsp_print_vty(struct isis_lsp *lsp, struct vty *vty,
|
void lsp_print_vty(struct isis_lsp *lsp, struct vty *vty,
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -685,7 +685,7 @@ def _check_lsp_overload_bit(router, overloaded_router_lsp, att_p_ol_expected):
|
||||||
)
|
)
|
||||||
|
|
||||||
database_json = json.loads(isis_database_output)
|
database_json = json.loads(isis_database_output)
|
||||||
att_p_ol = database_json["areas"][0]["levels"][1]["att-p-ol"]
|
att_p_ol = database_json["areas"][0]["levels"][1]["lsps"][0]["attPOl"]
|
||||||
if att_p_ol == att_p_ol_expected:
|
if att_p_ol == att_p_ol_expected:
|
||||||
return True
|
return True
|
||||||
return "{} peer with expected att_p_ol {} got {} ".format(
|
return "{} peer with expected att_p_ol {} got {} ".format(
|
||||||
|
|
Loading…
Reference in a new issue