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,
|
||||
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();
|
||||
json_object_object_add(json, "lsp", own_json);
|
||||
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 ? "*" : " ");
|
||||
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, "pduLen", lsp->hdr.pdu_len);
|
||||
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, "seqNumber", buf);
|
||||
snprintfrr(buf, sizeof(buf), "0x%04hx", lsp->hdr.checksum);
|
||||
json_object_string_add(json, "chksum", buf);
|
||||
if (lsp->hdr.rem_lifetime == 0) {
|
||||
|
@ -772,8 +786,13 @@ void lsp_print_json(struct isis_lsp *lsp, struct json_object *json,
|
|||
} else {
|
||||
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, "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,
|
||||
|
|
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)
|
||||
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:
|
||||
return True
|
||||
return "{} peer with expected att_p_ol {} got {} ".format(
|
||||
|
|
Loading…
Reference in a new issue