From 4a6f6f829006e481eeb20bcb121f7938d12c60ec Mon Sep 17 00:00:00 2001 From: Amin Ben Romdhane <amin.benromdhane@iopsys.eu> Date: Tue, 11 Jun 2024 16:10:58 +0200 Subject: [PATCH] Data Model: Align with new reference APIs --- bbf_plugin/atm.c | 8 +++----- bbf_plugin/dsl.c | 2 +- bbf_plugin/ptm.c | 20 ++++++++------------ 3 files changed, 12 insertions(+), 18 deletions(-) diff --git a/bbf_plugin/atm.c b/bbf_plugin/atm.c index 33bb5f6..a63be61 100644 --- a/bbf_plugin/atm.c +++ b/bbf_plugin/atm.c @@ -237,13 +237,11 @@ static int get_atm_lower_layer(char *refparam, struct dmctx *ctx, void *data, ch snprintf(atm_file, sizeof(atm_file), "/sys/class/net/atm%ld", DM_STRTOL(instance) - 1); if (folder_exists(atm_file)) - adm_entry_get_reference_param(ctx, "Device.DSL.Channel.*.Name", instance, value); + _bbfdm_get_references(ctx, "Device.DSL.Channel.", "Name", instance, value); + // Store LowerLayers value dmuci_set_value_by_section(((struct dm_data *)data)->config_section, "LowerLayers", *value); - } else { - if (!adm_entry_object_exists(ctx, *value)) - *value = ""; } return 0; @@ -253,7 +251,7 @@ static int set_atm_lower_layer(char *refparam, struct dmctx *ctx, void *data, ch { struct dm_reference reference = {0}; - bbf_get_reference_args(value, &reference); + bbfdm_get_reference_linker(ctx, value, &reference); switch (action) { case VALUECHECK: diff --git a/bbf_plugin/dsl.c b/bbf_plugin/dsl.c index fbd0d09..bd1b7fe 100644 --- a/bbf_plugin/dsl.c +++ b/bbf_plugin/dsl.c @@ -876,7 +876,7 @@ static int get_DSLChannel_Name(char *refparam, struct dmctx *ctx, void *data, ch static int get_DSLChannel_LowerLayers(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { char *id = dmjson_get_value(((struct dm_data *)data)->json_object, 1, "id"); - adm_entry_get_reference_param(ctx, "Device.DSL.Line.*.Name", id, value); + _bbfdm_get_references(ctx, "Device.DSL.Line.", "Name", id, value); return 0; } diff --git a/bbf_plugin/ptm.c b/bbf_plugin/ptm.c index c5f094f..3e99535 100644 --- a/bbf_plugin/ptm.c +++ b/bbf_plugin/ptm.c @@ -164,26 +164,22 @@ static int get_ptm_lower_layer(char *refparam, struct dmctx *ctx, void *data, ch dmuci_get_value_by_section_string(((struct dm_data *)data)->dmmap_section, "LowerLayers", value); if ((*value)[0] == '\0') { + char buf[1024] = {0}; char ptm_file[128] = {0}; - adm_entry_get_reference_param(ctx, "Device.FAST.Line.*.Status", "Up", value); - if (DM_STRLEN(*value)) - return 0; + bbfdm_get_references(ctx, MATCH_FIRST, "Device.FAST.Line.", "Status", "Up", buf, sizeof(buf)); snprintf(ptm_file, sizeof(ptm_file), "/sys/class/net/ptm%ld", DM_STRTOL(instance) - 1); if (folder_exists(ptm_file)) { - adm_entry_get_reference_param(ctx, "Device.DSL.Channel.*.Name", "1", value); - if (DM_STRLEN(*value)) - return 0; + bbfdm_get_references(ctx, MATCH_FIRST, "Device.DSL.Channel.", "Name", "1", buf, sizeof(buf)); } - adm_entry_get_reference_param(ctx, "Device.FAST.Line.*.Name", "1", value); + bbfdm_get_references(ctx, MATCH_FIRST, "Device.FAST.Line.", "Name", "1", buf, sizeof(buf)); + + *value = dmstrdup(buf); // Store LowerLayers value - dmuci_set_value_by_section(((struct dm_data *)data)->dmmap_section, "LowerLayers", *value); - } else { - if (!adm_entry_object_exists(ctx, *value)) - *value = ""; + dmuci_set_value_by_section(((struct dm_data *)data)->dmmap_section, "LowerLayers", buf); } return 0; @@ -193,7 +189,7 @@ static int set_ptm_lower_layer(char *refparam, struct dmctx *ctx, void *data, ch { struct dm_reference reference = {0}; - bbf_get_reference_args(value, &reference); + bbfdm_get_reference_linker(ctx, value, &reference); switch (action) { case VALUECHECK: -- GitLab