-q: print and quit after upgrade: even if sort/bind errors, print the XML

This commit is contained in:
Olof hagsand 2020-08-06 09:02:11 +02:00
parent df095daa50
commit fe8724723d
3 changed files with 7 additions and 6 deletions

View file

@ -227,12 +227,10 @@ startup_common(clicon_handle h,
xml_print(stderr, xret); xml_print(stderr, xret);
clicon_err(OE_XML, 0, "%s: YANG binding error", __func__); clicon_err(OE_XML, 0, "%s: YANG binding error", __func__);
} }
exit(0);
} } /* sort yang */
/* sort yang */ else if (xml_sort_recurse(xt) < 0) {
if (xml_sort_recurse(xt) < 0) {
clicon_err(OE_XML, EFAULT, "Yang sort error"); clicon_err(OE_XML, EFAULT, "Yang sort error");
exit(0);
} }
if (xmldb_dump(h, stdout, xt) < 0) if (xmldb_dump(h, stdout, xt) < 0)
goto done; goto done;

View file

@ -1057,6 +1057,9 @@ xmldb_dump(clicon_handle h,
char *format; char *format;
int pretty; int pretty;
/* clear XML tree of defaults */
if (xml_tree_prune_flagged(xt, XML_FLAG_DEFAULT, 1) < 0)
goto done;
/* Add modstate first */ /* Add modstate first */
if ((x = clicon_modst_cache_get(h, 1)) != NULL){ if ((x = clicon_modst_cache_get(h, 1)) != NULL){
if ((xmodst = xml_dup(x)) == NULL) if ((xmodst = xml_dup(x)) == NULL)

View file

@ -285,7 +285,7 @@ EOF
MODSTATE='<modules-state xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-library"><module-set-id>0</module-set-id><module><name>clixon-lib</name><revision>2020-04-23</revision><namespace>http://clicon.org/lib</namespace></module><module><name>ietf-inet-types</name><revision>2013-07-15</revision><namespace>urn:ietf:params:xml:ns:yang:ietf-inet-types</namespace></module><module><name>ietf-netconf</name><revision>2011-06-01</revision><namespace>urn:ietf:params:xml:ns:netconf:base:1.0</namespace></module><module><name>ietf-restconf</name><revision>2017-01-26</revision><namespace>urn:ietf:params:xml:ns:yang:ietf-restconf</namespace></module><module><name>ietf-yang-library</name><revision>2016-06-21</revision><namespace>urn:ietf:params:xml:ns:yang:ietf-yang-library</namespace></module><module><name>ietf-yang-types</name><revision>2013-07-15</revision><namespace>urn:ietf:params:xml:ns:yang:ietf-yang-types</namespace></module><module><name>interfaces</name><revision>2018-02-20</revision><namespace>urn:example:interfaces</namespace></module></modules-state>' MODSTATE='<modules-state xmlns="urn:ietf:params:xml:ns:yang:ietf-yang-library"><module-set-id>0</module-set-id><module><name>clixon-lib</name><revision>2020-04-23</revision><namespace>http://clicon.org/lib</namespace></module><module><name>ietf-inet-types</name><revision>2013-07-15</revision><namespace>urn:ietf:params:xml:ns:yang:ietf-inet-types</namespace></module><module><name>ietf-netconf</name><revision>2011-06-01</revision><namespace>urn:ietf:params:xml:ns:netconf:base:1.0</namespace></module><module><name>ietf-restconf</name><revision>2017-01-26</revision><namespace>urn:ietf:params:xml:ns:yang:ietf-restconf</namespace></module><module><name>ietf-yang-library</name><revision>2016-06-21</revision><namespace>urn:ietf:params:xml:ns:yang:ietf-yang-library</namespace></module><module><name>ietf-yang-types</name><revision>2013-07-15</revision><namespace>urn:ietf:params:xml:ns:yang:ietf-yang-types</namespace></module><module><name>interfaces</name><revision>2018-02-20</revision><namespace>urn:example:interfaces</namespace></module></modules-state>'
XML='<interfaces xmlns="urn:example:interfaces"><interface><name>e0</name><type>eth</type><admin-status>up</admin-status><statistics><in-octets>54326.432</in-octets><in-unicast-pkts>8458765</in-unicast-pkts></statistics><docs><descr>First interface</descr></docs></interface><interface><name>e1</name><type>eth</type><admin-status>down</admin-status></interface></interfaces>' XML='<interfaces xmlns="urn:example:interfaces"><interface><name>e0</name><docs><descr>First interface</descr></docs><type>eth</type><admin-status>up</admin-status><statistics><in-octets>54326.432</in-octets><in-unicast-pkts>8458765</in-unicast-pkts></statistics></interface><interface><name>e1</name><type>eth</type><admin-status>down</admin-status></interface></interfaces>'
ALL="<config>$MODSTATE$XML</config>" ALL="<config>$MODSTATE$XML</config>"