* Changed autocli tree-labels using ac_ and act_ prefixes

* New automatic edit-mode design
   * Control which modes to use with `edit-mode-default`
     * Default is create edit-mode for all
   * New edit-mode tree: @datamodelmode
This commit is contained in:
Olof hagsand 2022-01-18 10:12:15 +01:00
parent 9b99d63411
commit f922211212
11 changed files with 382 additions and 158 deletions

View file

@ -460,3 +460,53 @@ autocli_treeref_state(clicon_handle h,
return retval;
}
/*! Return default autocli edit-mode setting
*
* @param[in] h Clixon handle
* @param[in] keyw YANG keyword
* @param[out] flag If 0 keyw is not a part of default edit-mode, if 1 it is.
* @retval -1 Error
* @retval 0 OK, see result in keyw
* @note keyw is a sub/superset of RFC 6020, see clixon-autocli.yang on which are defined
*/
int
autocli_edit_mode(clicon_handle h,
char *keyw,
int *flag)
{
int retval = -1;
char *str;
cxobj *xautocli;
char **vec = NULL;
int nvec;
char *v;
int i;
if (flag == NULL){
clicon_err(OE_YANG, EINVAL, "Argument is NULL");
goto done;
}
*flag = 0;
if ((xautocli = clicon_conf_autocli(h)) == NULL){
clicon_err(OE_YANG, 0, "No clixon-autocli");
goto done;
}
if ((str = xml_find_body(xautocli, "edit-mode-default")) == NULL){
clicon_err(OE_XML, EINVAL, "No edit-mode-default rule");
goto done;
}
if ((vec = clicon_strsep(str, " ", &nvec)) == NULL)
goto done;
for (i=0; i<nvec; i++){
v = vec[i];
if (strcmp(v, keyw) == 0){
*flag = 1;
break;
}
}
retval = 0;
done:
if (vec)
free(vec);
return retval;
}