diff options
author | Andrew Topp <andrewt@telekinetica.net> | 2024-06-19 09:48:45 +1000 |
---|---|---|
committer | Mergify <37929162+mergify[bot]@users.noreply.github.com> | 2024-06-21 02:48:45 +0000 |
commit | 5e88f15b16d39213f349c3a7b4f1030a1399f1cb (patch) | |
tree | e1a1b9b25d7403fdd8cc7b01e6a1cd537ff8702e | |
parent | 1fc32e342dc053e54e658e3a0d72bdc340ddb9d6 (diff) | |
download | vyos-1x-5e88f15b16d39213f349c3a7b4f1030a1399f1cb.tar.gz vyos-1x-5e88f15b16d39213f349c3a7b4f1030a1399f1cb.zip |
op-mode: T5514: Allow safe reboots to config defaults when config.boot is deleted
* Added flag to vyos.config_mgmt.unsaved_commits() that will tolerate missing config.boot for specific circumstances
* Shutdown/reboot uses this flag; config will regenerate from defaults after a reboot
(cherry picked from commit 8281383a09f12da20a1c9b4864b38ac3f541b48f)
-rw-r--r-- | python/vyos/config_mgmt.py | 4 | ||||
-rwxr-xr-x | src/op_mode/powerctrl.py | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/python/vyos/config_mgmt.py b/python/vyos/config_mgmt.py index 70b6ea203..d518737ca 100644 --- a/python/vyos/config_mgmt.py +++ b/python/vyos/config_mgmt.py @@ -81,9 +81,11 @@ def save_config(target, json_out=None): if rc != 0: logger.critical(f'save config failed: {out}') -def unsaved_commits() -> bool: +def unsaved_commits(allow_missing_config=False) -> bool: if get_full_version_data()['boot_via'] == 'livecd': return False + if allow_missing_config and not os.path.exists(config_file): + return True tmp_save = '/tmp/config.running' save_config(tmp_save) ret = not cmp(tmp_save, config_file, shallow=False) diff --git a/src/op_mode/powerctrl.py b/src/op_mode/powerctrl.py index 6c8f802b5..cb4a175dd 100755 --- a/src/op_mode/powerctrl.py +++ b/src/op_mode/powerctrl.py @@ -110,7 +110,7 @@ def check_unsaved_config(): from vyos.config_mgmt import unsaved_commits from vyos.utils.boot import boot_configuration_success - if unsaved_commits() and boot_configuration_success(): + if unsaved_commits(allow_missing_config=True) 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: |