summaryrefslogtreecommitdiff
path: root/lib/northbound_cli.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/northbound_cli.c')
-rw-r--r--lib/northbound_cli.c24
1 files changed, 17 insertions, 7 deletions
diff --git a/lib/northbound_cli.c b/lib/northbound_cli.c
index c5582fc21c..8003679ed5 100644
--- a/lib/northbound_cli.c
+++ b/lib/northbound_cli.c
@@ -195,11 +195,14 @@ int nb_cli_apply_changes(struct vty *vty, const char *xpath_base_fmt, ...)
va_end(ap);
}
- if (vty_mgmt_fe_enabled()) {
+ if (vty_mgmt_should_process_cli_apply_changes(vty)) {
VTY_CHECK_XPATH;
+ if (vty->type == VTY_FILE)
+ return CMD_SUCCESS;
+
implicit_commit = vty_needs_implicit_commit(vty);
- ret = vty_mgmt_send_config_data(vty);
+ ret = vty_mgmt_send_config_data(vty, implicit_commit);
if (ret >= 0 && !implicit_commit)
vty->mgmt_num_pending_setcfg++;
return ret;
@@ -224,11 +227,18 @@ int nb_cli_apply_changes_clear_pending(struct vty *vty,
va_end(ap);
}
- if (vty_mgmt_fe_enabled()) {
+ if (vty_mgmt_should_process_cli_apply_changes(vty)) {
VTY_CHECK_XPATH;
-
+ /*
+ * The legacy user wanted to clear pending (i.e., perform a
+ * commit immediately) due to some non-yang compatible
+ * functionality. This new mgmtd code however, continues to send
+ * changes putting off the commit until XFRR_end is received
+ * (i.e., end-of-config-file). This should be fine b/c all
+ * conversions to mgmtd require full proper implementations.
+ */
implicit_commit = vty_needs_implicit_commit(vty);
- ret = vty_mgmt_send_config_data(vty);
+ ret = vty_mgmt_send_config_data(vty, implicit_commit);
if (ret >= 0 && !implicit_commit)
vty->mgmt_num_pending_setcfg++;
return ret;
@@ -753,7 +763,7 @@ DEFUN (config_exclusive,
"Configuration from vty interface\n"
"Configure exclusively from this terminal\n")
{
- return vty_config_enter(vty, true, true);
+ return vty_config_enter(vty, true, true, false);
}
/* Configure using a private candidate configuration. */
@@ -763,7 +773,7 @@ DEFUN (config_private,
"Configuration from vty interface\n"
"Configure using a private candidate configuration\n")
{
- return vty_config_enter(vty, true, false);
+ return vty_config_enter(vty, true, false, false);
}
DEFPY (config_commit,