diff options
Diffstat (limited to 'functions/interpreter')
-rw-r--r-- | functions/interpreter/vyatta-cfg-run | 70 |
1 files changed, 49 insertions, 21 deletions
diff --git a/functions/interpreter/vyatta-cfg-run b/functions/interpreter/vyatta-cfg-run index d1dbd51..dc69d6c 100644 --- a/functions/interpreter/vyatta-cfg-run +++ b/functions/interpreter/vyatta-cfg-run @@ -103,39 +103,59 @@ vyatta_config_show () vyatta_config_commit () { - if ! vyatta_cli_shell_api sessionChanged; then - echo "No configuration changes to commit" - return 1; + if test -f "/var/run/vyconf_backend"; then + echo $$ + if ! /usr/libexec/vyos/vyconf/bin/vy_session_changed; then + echo "No configuration changes to commit" + return 1; + fi + else + if ! vyatta_cli_shell_api sessionChanged; then + echo "No configuration changes to commit" + return 1; + fi fi + local comment="commit" - local next=0 - local -a args=() - for arg in "$@"; do - if [ "$next" == "1" ]; then - comment=$arg - next=0; - elif [ "$arg" == "comment" ]; then - next=1 - elif [ "$arg" == "confirm" ]; then - echo Use commit-confirm command + if [ $# -gt 0 ] ; then + if [ $# = 1 ] || [ $# -gt 2 ] || [ "$1" != "comment" ]; then + if [ "$1" == "confirm" ]; then + echo "Use commit-confirm command" + return 1 + fi + echo "Error: commit accepts either no arguments, or optional 'comment'" \ + "with comment text as second argument." + echo -e "\tUsage: 'commit [comment COMMENTTEXT]'" return 1; - else - args[${#args[@]}]="$arg" fi - done + comment="$2" + fi export COMMIT_COMMENT="$comment" export COMMIT_VIA=cli - /opt/vyatta/sbin/my_commit "${args[@]}" 2>&1 + if test -f "/var/run/vyconf_backend"; then + /usr/libexec/vyos/vyconf/bin/vy_commit 2>&1 + else + /opt/vyatta/sbin/my_commit 2>&1 + fi unset COMMIT_VIA unset COMMIT_COMMENT + eval "${vyos_libexec_dir}/reset_section.py vpp --pid $$" } vyatta_config_commit-confirm () { - if ! vyatta_cli_shell_api sessionChanged; then - echo "No configuration changes to commit" - return 1; + if test -f "/var/run/vyconf_backend"; then + echo $$ + if ! /usr/libexec/vyos/vyconf/bin/vy_session_changed; then + echo "No configuration changes to commit" + return 1; + fi + else + if ! vyatta_cli_shell_api sessionChanged; then + echo "No configuration changes to commit" + return 1; + fi fi local -a args=() local first=1 @@ -285,6 +305,10 @@ up () really_exit() { + if test -f "/var/run/vyconf_backend"; then + local exit_cmd="${vyos_libexec_dir}/teardown-config-session.py $$" + eval "sudo sg vyattacfg \"$exit_cmd\"" + fi if vyatta_cli_shell_api sessionUnsaved; then echo "Warning: configuration changes have not been saved." @@ -354,7 +378,11 @@ vyatta_cfg_cmd_run () elif [[ "$cmd" == "show" ]]; then vyatta_config_show "${@:2}" else - cmd="/opt/vyatta/sbin/my_$cmd" + if test -f "/var/run/vyconf_backend"; then + cmd="${vyconf_bin_dir}/vy_$cmd" + else + cmd="/opt/vyatta/sbin/my_$cmd" + fi output=$($cmd "${@:2}") fi vyatta_cfg_print_output "$output" |