summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniil Baturin <daniil@vyos.io>2023-06-29 00:07:47 +0100
committerGitHub <noreply@github.com>2023-06-29 00:07:47 +0100
commit88282bed3b9a91f3a1cd645fee89fe38d8735de6 (patch)
treea700c12c209d310211aed8db02a3c7f4f356e819
parent6a2ddc478d61db6b177bd7ac49dcff0df9f69db8 (diff)
parent186d05c3c792ea1c61e8f0e68fd7006917244660 (diff)
downloadvyos-1x-88282bed3b9a91f3a1cd645fee89fe38d8735de6.tar.gz
vyos-1x-88282bed3b9a91f3a1cd645fee89fe38d8735de6.zip
Merge pull request #2060 from jestabro/warning-boot-config-err
T5320: warn on entering config mode if boot config errors present
-rw-r--r--op-mode-definitions/configure.xml.in7
-rw-r--r--python/vyos/util.py13
-rwxr-xr-xsrc/op_mode/powerctrl.py3
3 files changed, 21 insertions, 2 deletions
diff --git a/op-mode-definitions/configure.xml.in b/op-mode-definitions/configure.xml.in
index 3dd5a0f45..a711fa4a9 100644
--- a/op-mode-definitions/configure.xml.in
+++ b/op-mode-definitions/configure.xml.in
@@ -11,7 +11,12 @@
echo "Please do it as an administrator level VyOS user instead."
else
if grep -q -e '^overlay.*/filesystem.squashfs' /proc/mounts; then
- echo "WARNING: You are currently configuring a live-ISO environment, changes will not persist until installed"
+ echo "WARNING: You are currently configuring a live-ISO environment, changes will not persist until installed"
+ else
+ if grep -q -s '1' /tmp/vyos-config-status; then
+ echo "WARNING: There was a config error on boot: saving the configuration now could overwrite data."
+ echo "You may want to check and reload the boot config"
+ fi
fi
history -w
export _OFR_CONFIGURE=ok
diff --git a/python/vyos/util.py b/python/vyos/util.py
index e62f9d5cf..33da5da40 100644
--- a/python/vyos/util.py
+++ b/python/vyos/util.py
@@ -1139,6 +1139,19 @@ def boot_configuration_complete() -> bool:
return True
return False
+def boot_configuration_success() -> bool:
+ from vyos.defaults import config_status
+
+ try:
+ with open(config_status) as f:
+ res = f.read().strip()
+ except FileNotFoundError:
+ return False
+
+ if int(res) == 0:
+ return True
+ return False
+
def sysctl_read(name):
""" Read and return current value of sysctl() option """
tmp = cmd(f'sysctl {name}')
diff --git a/src/op_mode/powerctrl.py b/src/op_mode/powerctrl.py
index 239f766fd..dfacd45c2 100755
--- a/src/op_mode/powerctrl.py
+++ b/src/op_mode/powerctrl.py
@@ -104,8 +104,9 @@ def cancel_shutdown():
def check_unsaved_config():
from vyos.config_mgmt import unsaved_commits
+ from vyos.util import boot_configuration_success
- if unsaved_commits():
+ if unsaved_commits() and boot_configuration_success():
print("Warning: there are unsaved configuration changes!")
print("Run 'save' command if you do not want to lose those changes after reboot/shutdown.")
else: