Skip to content

Commit 5f1de81

Browse files
tsvanduynjleveque
authored andcommitted
[show] Add serial numbers/uptime/hwinfo to 'show version' output (#488)
1 parent e78a866 commit 5f1de81

File tree

1 file changed

+38
-22
lines changed

1 file changed

+38
-22
lines changed

show/main.py

+38-22
Original file line numberDiff line numberDiff line change
@@ -1087,6 +1087,27 @@ def table(verbose):
10871087
# 'platform' group ("show platform ...")
10881088
#
10891089

1090+
def get_hw_info_dict():
1091+
"""
1092+
This function is used to get the HW info helper function
1093+
"""
1094+
hw_info_dict = {}
1095+
machine_info = sonic_platform.get_machine_info()
1096+
platform = sonic_platform.get_platform_info(machine_info)
1097+
config_db = ConfigDBConnector()
1098+
config_db.connect()
1099+
data = config_db.get_table('DEVICE_METADATA')
1100+
try:
1101+
hwsku = data['localhost']['hwsku']
1102+
except KeyError:
1103+
hwsku = "Unknown"
1104+
version_info = sonic_platform.get_sonic_version_info()
1105+
asic_type = version_info['asic_type']
1106+
hw_info_dict['platform'] = platform
1107+
hw_info_dict['hwsku'] = hwsku
1108+
hw_info_dict['asic_type'] = asic_type
1109+
return hw_info_dict
1110+
10901111
@cli.group(cls=AliasedGroup, default_if_no_args=False)
10911112
def platform():
10921113
"""Show platform-specific hardware info"""
@@ -1100,24 +1121,10 @@ def platform():
11001121
@platform.command()
11011122
def summary():
11021123
"""Show hardware platform information"""
1103-
machine_info = sonic_platform.get_machine_info()
1104-
platform = sonic_platform.get_platform_info(machine_info)
1105-
1106-
config_db = ConfigDBConnector()
1107-
config_db.connect()
1108-
data = config_db.get_table('DEVICE_METADATA')
1109-
1110-
try:
1111-
hwsku = data['localhost']['hwsku']
1112-
except KeyError:
1113-
hwsku = "Unknown"
1114-
1115-
version_info = sonic_platform.get_sonic_version_info()
1116-
asic_type = version_info['asic_type']
1117-
1118-
click.echo("Platform: {}".format(platform))
1119-
click.echo("HwSKU: {}".format(hwsku))
1120-
click.echo("ASIC: {}".format(asic_type))
1124+
hw_info_dict = get_hw_info_dict()
1125+
click.echo("Platform: {}".format(hw_info_dict['platform']))
1126+
click.echo("HwSKU: {}".format(hw_info_dict['hwsku']))
1127+
click.echo("ASIC: {}".format(hw_info_dict['asic_type']))
11211128

11221129
# 'syseeprom' subcommand ("show platform syseeprom")
11231130
@platform.command()
@@ -1174,17 +1181,26 @@ def logging(process, lines, follow, verbose):
11741181
#
11751182

11761183
@cli.command()
1177-
def version():
1184+
@click.option("--verbose", is_flag=True, help="Enable verbose output")
1185+
def version(verbose):
11781186
"""Show version information"""
11791187
version_info = sonic_platform.get_sonic_version_info()
1180-
1181-
click.echo("SONiC Software Version: SONiC.{}".format(version_info['build_version']))
1188+
hw_info_dict = get_hw_info_dict()
1189+
serial_number_cmd = "sudo decode-syseeprom -s"
1190+
serial_number = subprocess.Popen(serial_number_cmd, shell=True, stdout=subprocess.PIPE)
1191+
sys_uptime_cmd = "uptime"
1192+
sys_uptime = subprocess.Popen(sys_uptime_cmd, shell=True, stdout=subprocess.PIPE)
1193+
click.echo("\nSONiC Software Version: SONiC.{}".format(version_info['build_version']))
11821194
click.echo("Distribution: Debian {}".format(version_info['debian_version']))
11831195
click.echo("Kernel: {}".format(version_info['kernel_version']))
11841196
click.echo("Build commit: {}".format(version_info['commit_id']))
11851197
click.echo("Build date: {}".format(version_info['build_date']))
11861198
click.echo("Built by: {}".format(version_info['built_by']))
1187-
1199+
click.echo("\nPlatform: {}".format(hw_info_dict['platform']))
1200+
click.echo("HwSKU: {}".format(hw_info_dict['hwsku']))
1201+
click.echo("ASIC: {}".format(hw_info_dict['asic_type']))
1202+
click.echo("Serial Number: {}".format(serial_number.stdout.read().strip()))
1203+
click.echo("Uptime: {}".format(sys_uptime.stdout.read().strip()))
11881204
click.echo("\nDocker images:")
11891205
cmd = 'sudo docker images --format "table {{.Repository}}\\t{{.Tag}}\\t{{.ID}}\\t{{.Size}}"'
11901206
p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)

0 commit comments

Comments
 (0)