From 5ebc5a221922cf5462ea5423aea62799de585d80 Mon Sep 17 00:00:00 2001 From: Olof hagsand Date: Sun, 6 Oct 2024 11:39:32 +0200 Subject: [PATCH] Re-added shared yang mounts YANG: de-dperecated CLICON_YANG_SCHEMA_MOUNT_SHARE --- CHANGELOG.md | 2 - apps/cli/cli_show.c | 37 +++++++------ lib/src/clixon_yang.c | 19 +++++-- lib/src/clixon_yang_schema_mount.c | 65 ++++++++++++++++++++++- yang/clixon/clixon-config@2024-08-01.yang | 6 +-- 5 files changed, 101 insertions(+), 28 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f199bdc..bb7cc4f6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,7 +19,6 @@ Expected: October 2024 * Added yang domains for mount-point isolation * This replaces the computation of shared yang-specs * New option: `CLICON_YANG_DOMAIN_DIR` - * Deprecated: `CLICON_YANG_SCHEMA_MOUNT_SHARE` * Restconf: Support for list of media in Accept header * Refactoring of schema mount-points * Add new top-level `Y_MOUNTS` and add top-level yangs and mountpoints in yspecs @@ -39,7 +38,6 @@ Expected: October 2024 * New `clixon-config@2024-08-01.yang` revision * Added: `CLICON_YANG_DOMAIN_DIR` * Added: `CLICON_YANG_USE_ORIGINAL` - * Deprecated: `CLICON_YANG_SCHEMA_MOUNT_SHARE` * New `clixon-lib@2024-08-01.yang` revision - Added: list-pagination-partial-state extension diff --git a/apps/cli/cli_show.c b/apps/cli/cli_show.c index e7797438..09e5365d 100644 --- a/apps/cli/cli_show.c +++ b/apps/cli/cli_show.c @@ -1889,19 +1889,21 @@ cli_show_statistics(clixon_handle h, size_t tsz; yang_stmt *ymounts; yang_stmt *ydomain; + yang_stmt *yspec; cg_var *cv; cxobj *xp; + char *domain; char *name; cxobj *x; uint64_t u64; char *unit; int inext; + int inext2; if (argv == NULL || (cvec_len(argv) < 1 || cvec_len(argv) > 2)){ clixon_err(OE_PLUGIN, EINVAL, "Expected arguments: [(cli|backend|all) [detail]]"); goto done; } - ydomain = clicon_dbspec_yang(h); cv = cvec_i(argv, 0); what = cv_string_get(cv); if (strcmp(what, "cli") == 0) @@ -1939,19 +1941,25 @@ cli_show_statistics(clixon_handle h, } inext = 0; while ((ydomain = yn_iter(ymounts, &inext)) != NULL) { - name = yang_argument_get(ydomain); - nr = 0; sz = 0; - if (yang_stats(ydomain, 0, &nr, &sz) < 0) - goto done; - tnr = nr; - tsz = sz; - if (detail) { - cligen_output(stdout, "YANG-%s-size: %" PRIu64 "\n", name, sz); - cligen_output(stdout, "YANG-%s-nr: %" PRIu64 "\n", name, nr); - } - else{ - translatenumber(sz, &u64, &unit); - cligen_output(stdout, "%-25s %" PRIu64 "%-10s\n", yang_argument_get(ydomain), u64, unit); + domain = yang_argument_get(ydomain); + inext2 = 0; + while ((yspec = yn_iter(ydomain, &inext2)) != NULL) { + name = yang_argument_get(yspec); + nr = 0; sz = 0; + if (yang_stats(ydomain, 0, &nr, &sz) < 0) + goto done; + tnr = nr; + tsz = sz; + if (detail) { + cligen_output(stdout, "YANG-%s-%s-size: %" PRIu64 "\n", domain, name, sz); + cligen_output(stdout, "YANG-%s-%s-nr: %" PRIu64 "\n", domain, name, nr); + } + else{ + translatenumber(sz, &u64, &unit); + cprintf(cb, "%s/%s", domain, name); + cligen_output(stdout, "%-25s %" PRIu64 "%-10s\n", cbuf_get(cb), u64, unit); + cbuf_reset(cb); + } } } if (detail){ @@ -1994,7 +2002,6 @@ cli_show_statistics(clixon_handle h, translatenumber(tsz0+tsz, &u64, &unit); cligen_output(stdout, "%-25s %" PRIu64 "%-10s\n", "Mem Total", u64, unit); } - } if (backend) { cprintf(cb, "