diff options
author | Christian Breunig <christian@breunig.cc> | 2024-04-08 07:37:50 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-08 07:37:50 +0200 |
commit | 41abc307f4236bb68b1b6a2ba0f2a8eec6b3b314 (patch) | |
tree | 8da8c9fa5852674751c033d48252bbb549749179 /src/op_mode/image_installer.py | |
parent | 08b5ee0a694344855ba81856238c238b8426a00a (diff) | |
parent | 619e2262e77621c6110164712fed0a42f16715e3 (diff) | |
download | vyos-1x-41abc307f4236bb68b1b6a2ba0f2a8eec6b3b314.tar.gz vyos-1x-41abc307f4236bb68b1b6a2ba0f2a8eec6b3b314.zip |
Merge pull request #3278 from jestabro/default-config-choice
T6207: restore ability to copy config.boot.default on image install
Diffstat (limited to 'src/op_mode/image_installer.py')
-rwxr-xr-x | src/op_mode/image_installer.py | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/op_mode/image_installer.py b/src/op_mode/image_installer.py index 446c47cec..9f6949fb3 100755 --- a/src/op_mode/image_installer.py +++ b/src/op_mode/image_installer.py @@ -56,6 +56,8 @@ MSG_INFO_INSTALL_DISK_CONFIRM: str = 'Installation will delete all data on the d MSG_INFO_INSTALL_RAID_CONFIRM: str = 'Installation will delete all data on both drives. Continue?' MSG_INFO_INSTALL_PARTITONING: str = 'Creating partition table...' MSG_INPUT_CONFIG_FOUND: str = 'An active configuration was found. Would you like to copy it to the new image?' +MSG_INPUT_CONFIG_CHOICE: str = 'The following config files are available for boot:' +MSG_INPUT_CONFIG_CHOOSE: str = 'Which file would you like as boot config?' MSG_INPUT_IMAGE_NAME: str = 'What would you like to name this image?' MSG_INPUT_IMAGE_DEFAULT: str = 'Would you like to set the new image as the default one for boot?' MSG_INPUT_PASSWORD: str = 'Please enter a password for the "vyos" user' @@ -702,6 +704,10 @@ def install_image() -> None: valid_responses=['K', 'S', 'U']) console_dict: dict[str, str] = {'K': 'tty', 'S': 'ttyS', 'U': 'ttyUSB'} + config_boot_list = ['/opt/vyatta/etc/config/config.boot', + '/opt/vyatta/etc/config.boot.default'] + default_config = config_boot_list[0] + disks: dict[str, int] = find_disks() install_target: Union[disk.DiskDetails, raid.RaidDetails, None] = None @@ -710,6 +716,14 @@ def install_image() -> None: if install_target is None: install_target = ask_single_disk(disks) + # if previous install was selected in search_previous_installation, + # directory /mnt/config was prepared for copy below; if not, prompt: + if not Path('/mnt/config').exists(): + default_config: str = select_entry(config_boot_list, + MSG_INPUT_CONFIG_CHOICE, + MSG_INPUT_CONFIG_CHOOSE, + default_entry=1) # select_entry indexes from 1 + # create directories for installation media prepare_tmp_disr() @@ -731,7 +745,7 @@ def install_image() -> None: chown(target_config_dir, group='vyattacfg') chmod_2775(target_config_dir) # copy config - copy('/opt/vyatta/etc/config/config.boot', target_config_dir) + copy(default_config, f'{target_config_dir}/config.boot') configure_authentication(f'{target_config_dir}/config.boot', user_password) Path(f'{target_config_dir}/.vyatta_config').touch() |