@@ -1087,6 +1087,27 @@ def table(verbose):
1087
1087
# 'platform' group ("show platform ...")
1088
1088
#
1089
1089
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
+
1090
1111
@cli .group (cls = AliasedGroup , default_if_no_args = False )
1091
1112
def platform ():
1092
1113
"""Show platform-specific hardware info"""
@@ -1100,24 +1121,10 @@ def platform():
1100
1121
@platform .command ()
1101
1122
def summary ():
1102
1123
"""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' ]))
1121
1128
1122
1129
# 'syseeprom' subcommand ("show platform syseeprom")
1123
1130
@platform .command ()
@@ -1174,17 +1181,26 @@ def logging(process, lines, follow, verbose):
1174
1181
#
1175
1182
1176
1183
@cli .command ()
1177
- def version ():
1184
+ @click .option ("--verbose" , is_flag = True , help = "Enable verbose output" )
1185
+ def version (verbose ):
1178
1186
"""Show version information"""
1179
1187
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 ("\n SONiC Software Version: SONiC.{}" .format (version_info ['build_version' ]))
1182
1194
click .echo ("Distribution: Debian {}" .format (version_info ['debian_version' ]))
1183
1195
click .echo ("Kernel: {}" .format (version_info ['kernel_version' ]))
1184
1196
click .echo ("Build commit: {}" .format (version_info ['commit_id' ]))
1185
1197
click .echo ("Build date: {}" .format (version_info ['build_date' ]))
1186
1198
click .echo ("Built by: {}" .format (version_info ['built_by' ]))
1187
-
1199
+ click .echo ("\n Platform: {}" .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 ()))
1188
1204
click .echo ("\n Docker images:" )
1189
1205
cmd = 'sudo docker images --format "table {{.Repository}}\\ t{{.Tag}}\\ t{{.ID}}\\ t{{.Size}}"'
1190
1206
p = subprocess .Popen (cmd , shell = True , stdout = subprocess .PIPE )
0 commit comments