Skip to content

Commit 6f51428

Browse files
[Mellanox] Fix thermal control issue: use natural sort for fan status and thermal status (#836)
* [thermal fix] use natural sort for fan status and thermal status * [thermal fix] set fan status to N/A when fan is removed * Adjust header name for show platform temperature output
1 parent 51d26ce commit 6f51428

File tree

2 files changed

+11
-7
lines changed

2 files changed

+11
-7
lines changed

scripts/fanshow

+8-4
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import argparse
88

99
from tabulate import tabulate
1010
from swsssdk import SonicV2Connector
11+
from natsort import natsorted
1112

1213

1314
header = ['FAN', 'Speed', 'Direction', 'Presence', 'Status', 'Timestamp']
@@ -32,7 +33,7 @@ class FanShow(object):
3233
return
3334

3435
table = []
35-
for key in keys:
36+
for key in natsorted(keys):
3637
key_list = key.split('|')
3738
if len(key_list) != 2: # error data in DB, log it and ignore
3839
print('Warn: Invalid key in table FAN_INFO: {}'.format(key))
@@ -47,18 +48,21 @@ class FanShow(object):
4748
else:
4849
speed = '{}%'.format(data_dict[SPEED_FIELD_NAME])
4950
except ValueError as e:
50-
print('Warn: cannot convert speed value from {}'.format(data_dict[SPEED_FIELD_NAME]))
5151
speed = data_dict[SPEED_FIELD_NAME]
5252

5353
presence = data_dict[PRESENCE_FIELD_NAME].lower()
5454
presence = 'Present' if presence == 'true' else 'Not Present'
5555
status = data_dict[STATUS_FIELD_NAME].lower()
56-
status = 'OK' if status == 'true' else 'Not OK'
56+
if status == 'true':
57+
status = 'OK'
58+
elif status == 'false':
59+
status = 'Not OK'
60+
else:
61+
status = 'N/A'
5762

5863
table.append((name, speed, data_dict[DIRECTION_FIELD_NAME], presence, status, data_dict[TIMESTAMP_FIELD_NAME]))
5964

6065
if table:
61-
table.sort()
6266
print(tabulate(table, header, tablefmt='simple', stralign='right'))
6367
else:
6468
print('No fan status data available\n')

scripts/tempershow

+3-3
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,10 @@ import argparse
88

99
from tabulate import tabulate
1010
from swsssdk import SonicV2Connector
11+
from natsort import natsorted
1112

1213

13-
header = ['NAME', 'Temperature', 'High Threshold', 'Low Threshold', 'Critical High Threshold', 'Critical Low Threshold', 'Warning Status', 'Timestamp']
14+
header = ['Sensor', 'Temperature', 'High TH', 'Low TH', 'Crit High TH', 'Crit Low TH', 'Warning', 'Timestamp']
1415

1516
TEMPER_TABLE_NAME = 'TEMPERATURE_INFO'
1617
TEMPER_FIELD_NAME = 'temperature'
@@ -34,7 +35,7 @@ class TemperShow(object):
3435
return
3536

3637
table = []
37-
for key in keys:
38+
for key in natsorted(keys):
3839
key_list = key.split('|')
3940
if len(key_list) != 2: # error data in DB, log it and ignore
4041
print('Warn: Invalid key in table {}: {}'.format(TEMPER_TABLE_NAME, key))
@@ -53,7 +54,6 @@ class TemperShow(object):
5354
))
5455

5556
if table:
56-
table.sort()
5757
print(tabulate(table, header, tablefmt='simple', stralign='right'))
5858
else:
5959
print('No tempeature data available\n')

0 commit comments

Comments
 (0)