diff options
author | Christian Poessinger <christian@poessinger.com> | 2020-06-21 11:28:03 +0200 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2020-06-21 11:31:27 +0200 |
commit | a39c0bdd9a7bbceefad71edc14a87a1dd90ffb7a (patch) | |
tree | d4d91449687228381634ef8491123f618dbfa4ca /src/migration-scripts/system/16-to-17 | |
parent | 5d6f3db6a0a6e65a9eb81cede4c59c7d22f2cae0 (diff) | |
download | vyos-1x-a39c0bdd9a7bbceefad71edc14a87a1dd90ffb7a.tar.gz vyos-1x-a39c0bdd9a7bbceefad71edc14a87a1dd90ffb7a.zip |
console: T2624: fix migration script for configured powersave and no console
When the 'powersave' option under 'system console' was defined but no actual
serial console device this cause the following error during migration:
Loading configuration from 'config.boot'
Traceback (most recent call last):
File "/opt/vyatta/etc/config-migrate/migrate/system/16-to-17", line 45, in <module>
for device in config.list_nodes(base + ['device']):
File "/usr/lib/python3/dist-packages/vyos/configtree.py", line 236, in list_nodes
raise ConfigTreeError("Path [{}] doesn't exist".format(path_str))
vyos.configtree.ConfigTreeError: Path [b'system console device'] doesn't exist
Diffstat (limited to 'src/migration-scripts/system/16-to-17')
-rwxr-xr-x | src/migration-scripts/system/16-to-17 | 45 |
1 files changed, 23 insertions, 22 deletions
diff --git a/src/migration-scripts/system/16-to-17 b/src/migration-scripts/system/16-to-17 index 981149d1b..8f762c0e2 100755 --- a/src/migration-scripts/system/16-to-17 +++ b/src/migration-scripts/system/16-to-17 @@ -41,31 +41,32 @@ else: if config.exists(base + ['netconsole']): config.delete(base + ['netconsole']) - for device in config.list_nodes(base + ['device']): - dev_path = base + ['device', device] - # remove "system console device <device> modem" (T2570) - if config.exists(dev_path + ['modem']): - config.delete(dev_path + ['modem']) + if config.exists(base + ['device']): + for device in config.list_nodes(base + ['device']): + dev_path = base + ['device', device] + # remove "system console device <device> modem" (T2570) + if config.exists(dev_path + ['modem']): + config.delete(dev_path + ['modem']) - # Only continue on USB based serial consoles - if not 'ttyUSB' in device: - continue + # Only continue on USB based serial consoles + if not 'ttyUSB' in device: + continue - # A serial console has been configured but it does no longer - # exist on the system - cleanup - if not os.path.exists(f'/dev/{device}'): - config.delete(dev_path) - continue + # A serial console has been configured but it does no longer + # exist on the system - cleanup + if not os.path.exists(f'/dev/{device}'): + config.delete(dev_path) + continue - # migrate from ttyUSB device to new device in /dev/serial/by-bus - for root, dirs, files in os.walk('/dev/serial/by-bus'): - for usb_device in files: - device_file = os.path.realpath(os.path.join(root, usb_device)) - # migrate to new USB device names (T2529) - if os.path.basename(device_file) == device: - config.copy(dev_path, base + ['device', usb_device]) - # Delete old USB node from config - config.delete(dev_path) + # migrate from ttyUSB device to new device in /dev/serial/by-bus + for root, dirs, files in os.walk('/dev/serial/by-bus'): + for usb_device in files: + device_file = os.path.realpath(os.path.join(root, usb_device)) + # migrate to new USB device names (T2529) + if os.path.basename(device_file) == device: + config.copy(dev_path, base + ['device', usb_device]) + # Delete old USB node from config + config.delete(dev_path) try: with open(file_name, 'w') as f: |