--- a/src/core/cli_server.c +++ b/src/core/cli_server.c @@ -753,6 +753,15 @@ int ExecuteCli_Get(char *arg1, char *arg } #endif + char *path[2] = {0}; + + path[0] = arg1; + if (arg1 == NULL) { + vendor_create_dm_cache(path, 0); + } else { + vendor_create_dm_cache(path, 1); + } + // Exit if unable to get a list of all parameters referenced by the expression STR_VECTOR_Init(¶ms); INT_VECTOR_Init(&group_ids); --- a/src/core/data_model.h +++ b/src/core/data_model.h @@ -371,5 +371,6 @@ bool DM_PRIV_IsChildOf(char *path, dm_no bool DM_PRIV_IsChildNodeOf(dm_node_t *node, dm_node_t *parent_node); bool DM_PRIV_AreAllChildrenGroupId(dm_node_t *parent, int group_id); +int vendor_create_dm_cache(char *paths[], int num_paths); #endif --- a/src/core/handle_get.c +++ b/src/core/handle_get.c @@ -123,6 +123,7 @@ void MSG_HANDLER_HandleGet(Usp__Msg *usp goto exit; } + vendor_create_dm_cache(path_exprs, num_path_expr); // Calculate the number of hierarchical levels to traverse in the data model when performing partial path resolution // NOTE: protocol buffer has depth as an unsigned quantity, but internally we use a signed number, so limit range to that of a signed number depth = usp->body->request->get->max_depth;