diff --git a/apps/backend/backend_commit.c b/apps/backend/backend_commit.c index 6645dc73..cbcc5314 100644 --- a/apps/backend/backend_commit.c +++ b/apps/backend/backend_commit.c @@ -215,7 +215,23 @@ startup_common(clicon_handle h, goto fail; } /* Print upgraded db: -q backend switch */ - if (clicon_quit_upgrade_get(h) == 1){ + if (clicon_quit_upgrade_get(h) == 1){ + /* bind yang */ + if (ret = (xml_bind_yang(xt, YB_MODULE, yspec, &xret) < 1)){ + if (ret == 0){ + /* invalid */ + clicon_err(OE_XML, EFAULT, "invalid configuration"); + } + else { + /* error */ + xml_print(stderr, xret); + clicon_err(OE_XML, 0, "%s: YANG binding error", __func__); + } + + } /* sort yang */ + else if (xml_sort_recurse(xt) < 0) { + clicon_err(OE_XML, EFAULT, "Yang sort error"); + } if (xmldb_dump(h, stdout, xt) < 0) goto done; exit(0); /* This is fairly abrupt , but need to avoid side-effects of rewinding diff --git a/test/test_upgrade_quit.sh b/test/test_upgrade_quit.sh index e5575d6c..7c4a132c 100755 --- a/test/test_upgrade_quit.sh +++ b/test/test_upgrade_quit.sh @@ -303,7 +303,7 @@ EOF MODSTATE='0clixon-lib2020-04-23http://clicon.org/libietf-inet-types2013-07-15urn:ietf:params:xml:ns:yang:ietf-inet-typesietf-netconf2011-06-01urn:ietf:params:xml:ns:netconf:base:1.0ietf-restconf2017-01-26urn:ietf:params:xml:ns:yang:ietf-restconfietf-yang-library2016-06-21urn:ietf:params:xml:ns:yang:ietf-yang-libraryietf-yang-types2013-07-15urn:ietf:params:xml:ns:yang:ietf-yang-typesinterfaces2018-02-20urn:example:interfaces' -XML='e0ethup54326.4328458765First interfacee1ethdown' +XML='e0First interfaceethup54326.4328458765e1ethdown' ALL="$MODSTATE$XML"