]> git.puffer.fish Git - mirror/frr.git/commitdiff
lib: fix a couple of yang validation issues
authorRenato Westphal <renato@opensourcerouting.org>
Fri, 5 Apr 2019 01:28:00 +0000 (22:28 -0300)
committerRenato Westphal <renato@opensourcerouting.org>
Tue, 2 Jul 2019 01:56:52 +0000 (22:56 -0300)
libyang-0.16-r3 contains a commit[1] that changed the autodelete
behavior of subtrees when validating data. A few FRR commands were
affected by this change since they relied on the old autodelete
behavior.

To fix these commands, use the LYD_OPT_WHENAUTODEL flag when
validating data to restore the old autodelete behavior (which adds
a lot of convenience for us).

[1] https://github.com/CESNET/libyang/commit/bbc43b1b4

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
lib/northbound.c

index 8a5cd0ef14db39012978d2f21720d6330ec3a235..b2ae1f66cb45a28c6be0570ba89aee4dd3162eed 100644 (file)
@@ -504,7 +504,9 @@ int nb_candidate_edit(struct nb_config *candidate,
                 */
                if (dnode) {
                        lyd_schema_sort(dnode, 0);
-                       lyd_validate(&dnode, LYD_OPT_CONFIG, ly_native_ctx);
+                       lyd_validate(&dnode,
+                                    LYD_OPT_CONFIG | LYD_OPT_WHENAUTODEL,
+                                    ly_native_ctx);
                }
                break;
        case NB_OP_DESTROY:
@@ -570,7 +572,8 @@ int nb_candidate_update(struct nb_config *candidate)
  */
 static int nb_candidate_validate_yang(struct nb_config *candidate)
 {
-       if (lyd_validate(&candidate->dnode, LYD_OPT_STRICT | LYD_OPT_CONFIG,
+       if (lyd_validate(&candidate->dnode,
+                        LYD_OPT_STRICT | LYD_OPT_CONFIG | LYD_OPT_WHENAUTODEL,
                         ly_native_ctx)
            != 0)
                return NB_ERR_VALIDATION;