From d249d7e0aba5bc58af2526f846d7ebcf1e817ab8 Mon Sep 17 00:00:00 2001 From: Christian Hopps Date: Mon, 17 Apr 2023 01:29:33 -0400 Subject: [PATCH] lib: always return valid data format for show yang command. For JSON return `{}` for XPath return an XML comment `` Signed-off-by: Christian Hopps --- lib/northbound_cli.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/northbound_cli.c b/lib/northbound_cli.c index 5cf5f93b43..c5582fc21c 100644 --- a/lib/northbound_cli.c +++ b/lib/northbound_cli.c @@ -1434,6 +1434,7 @@ DEFPY (show_yang_operational_data, struct lyd_node *dnode; char *strp; uint32_t print_options = LYD_PRINT_WITHSIBLINGS; + int ret; if (xml) format = LYD_XML; @@ -1454,10 +1455,15 @@ DEFPY (show_yang_operational_data, /* Obtain data. */ dnode = yang_dnode_new(ly_ctx, false); - if (nb_oper_data_iterate(xpath, translator, 0, nb_cli_oper_data_cb, - dnode) - != NB_OK) { - vty_out(vty, "%% Failed to fetch operational data.\n"); + ret = nb_oper_data_iterate(xpath, translator, 0, nb_cli_oper_data_cb, + dnode); + if (ret != NB_OK) { + if (format == LYD_JSON) + vty_out(vty, "{}\n"); + else { + /* embed ly_last_errmsg() when we get newer libyang */ + vty_out(vty, "\n"); + } yang_dnode_free(dnode); return CMD_WARNING; } -- 2.39.5