Skip to content

Commit 4f55fd3

Browse files
committed
Fix 'show version' KeyError when sonic_version.yml has missing fields
'show version' crashes with KeyError when debian_version or kernel_version are missing from sonic_version.yml. This happens in docker-sonic-vs containers where the version file is generated without these fields (they are only set during full image builds). Use .get() with sensible runtime fallbacks: - debian_version: 'N/A' (not available in container context) - kernel_version: os.uname().release (actual host kernel at runtime) - build_version: 'N/A' - sonic_os_version: 'N/A' Fixes sonic-net/sonic-buildimage#25765 Signed-off-by: securely1g <securely1g@users.noreply.github.com>
1 parent e5f77f6 commit 4f55fd3

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

show/main.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1695,10 +1695,10 @@ def version(verbose):
16951695

16961696
sys_date = datetime.now()
16971697

1698-
click.echo("\nSONiC Software Version: SONiC.{}".format(version_info['build_version']))
1699-
click.echo("SONiC OS Version: {}".format(version_info['sonic_os_version']))
1700-
click.echo("Distribution: Debian {}".format(version_info['debian_version']))
1701-
click.echo("Kernel: {}".format(version_info['kernel_version']))
1698+
click.echo("\nSONiC Software Version: SONiC.{}".format(version_info.get('build_version', 'N/A')))
1699+
click.echo("SONiC OS Version: {}".format(version_info.get('sonic_os_version', 'N/A')))
1700+
click.echo("Distribution: Debian {}".format(version_info.get('debian_version', 'N/A')))
1701+
click.echo("Kernel: {}".format(version_info.get('kernel_version', os.uname().release)))
17021702
click.echo("Build commit: {}".format(version_info['commit_id']))
17031703
click.echo("Build date: {}".format(version_info['build_date']))
17041704
click.echo("Built by: {}".format(version_info['built_by']))

0 commit comments

Comments
 (0)