Skip to content

Commit e23c5ee

Browse files
authored
Add psu hardware revision to psushow table (#1601)
- What I did Added a field for hardware revision to the psushow output table. - How I did it Defined new psu status field sourced from "revision" field in STATE_DB added in alexrallen/sonic-platform-daemons#1 and adds it to the table output with the header "HW Rev" All relevant unit tests were also updated. - How to verify it Execute show platform psustatus and verify that "HW Rev" column is present and appropriately populated depending on the platform.
1 parent f1726fe commit e23c5ee

File tree

4 files changed

+24
-15
lines changed

4 files changed

+24
-15
lines changed

doc/Command-Reference.md

+3-4
Original file line numberDiff line numberDiff line change
@@ -775,10 +775,9 @@ This command displays the status of the device's power supply units
775775
- Example:
776776
```
777777
admin@sonic:~$ show platform psustatus
778-
PSU Status
779-
----- --------
780-
PSU 1 OK
781-
PSU 2 OK
778+
PSU Model Serial HW Rev Voltage (V) Current (A) Power (W) Status LED
779+
----- ------------- ------------ -------- ------------- ------------- ----------- -------- -----
780+
PSU 1 MTEF-PSF-AC-A MT1621X15246 A3 11.97 4.56 54.56 OK green
782781
```
783782

784783
**show platform fan**

scripts/psushow

+3-1
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ def get_psu_status_list():
4747

4848
psu_status['model'] = db.get(db.STATE_DB, 'PSU_INFO|{}'.format(psu_name), 'model') if presence else 'N/A'
4949
psu_status['serial'] = db.get(db.STATE_DB, 'PSU_INFO|{}'.format(psu_name), 'serial') if presence else 'N/A'
50+
psu_status['revision'] = db.get(db.STATE_DB, 'PSU_INFO|{}'.format(psu_name), 'revision') if presence else 'N/A'
5051
psu_status['voltage'] = db.get(db.STATE_DB, 'PSU_INFO|{}'.format(psu_name), 'voltage') if presence else 'N/A'
5152
psu_status['current'] = db.get(db.STATE_DB, 'PSU_INFO|{}'.format(psu_name), 'current') if presence else 'N/A'
5253
psu_status['power'] = db.get(db.STATE_DB, 'PSU_INFO|{}'.format(psu_name), 'power') if presence else 'N/A'
@@ -63,7 +64,7 @@ def psu_status_show_table(index):
6364
print('Error: Failed to get PSU status')
6465
return None
6566

66-
header = ['PSU', 'Model', 'Serial', 'Voltage (V)', 'Current (A)', 'Power (W)', 'Status', 'LED']
67+
header = ['PSU', 'Model', 'Serial', 'HW Rev', 'Voltage (V)', 'Current (A)', 'Power (W)', 'Status', 'LED']
6768
status_table = []
6869

6970
if index > 0:
@@ -78,6 +79,7 @@ def psu_status_show_table(index):
7879
status_table.append([psu_status['name'],
7980
psu_status['model'],
8081
psu_status['serial'],
82+
psu_status['revision'],
8183
psu_status['voltage'],
8284
psu_status['current'],
8385
psu_status['power'],

tests/mock_tables/state_db.json

+2
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@
141141
"status": "true",
142142
"model": "0J6J4K",
143143
"serial": "CN-0J6J4K-17972-5AF-0086-A00",
144+
"revision": "1",
144145
"temp": "None",
145146
"temp_threshold": "None",
146147
"voltage": "12.19",
@@ -156,6 +157,7 @@
156157
"status": "true",
157158
"model": "0J6J4K",
158159
"serial": "CN-0J6J4K-17972-5AF-008M-A00",
160+
"revision": "A",
159161
"temp": "None",
160162
"temp_threshold": "None",
161163
"voltage": "12.18",

tests/psushow_test.py

+16-10
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ def test_get_psu_status_list(self):
3434
'led_status': 'green',
3535
'model': '0J6J4K',
3636
'serial': 'CN-0J6J4K-17972-5AF-0086-A00',
37+
'revision': '1',
3738
'voltage': '12.19',
3839
'current': '8.37',
3940
'power': '102.7'
@@ -46,6 +47,7 @@ def test_get_psu_status_list(self):
4647
'led_status': 'green',
4748
'model': '0J6J4K',
4849
'serial': 'CN-0J6J4K-17972-5AF-008M-A00',
50+
'revision': 'A',
4951
'voltage': '12.18',
5052
'current': '10.07',
5153
'power': '122.0'
@@ -57,10 +59,10 @@ def test_get_psu_status_list(self):
5759

5860
def test_status_table(self, capsys):
5961
expected_output = '''\
60-
PSU Model Serial Voltage (V) Current (A) Power (W) Status LED
61-
----- ------- ---------------------------- ------------- ------------- ----------- -------- -----
62-
PSU 1 0J6J4K CN-0J6J4K-17972-5AF-0086-A00 12.19 8.37 102.70 OK green
63-
PSU 2 0J6J4K CN-0J6J4K-17972-5AF-008M-A00 12.18 10.07 122.00 OK green
62+
PSU Model Serial HW Rev Voltage (V) Current (A) Power (W) Status LED
63+
----- ------- ---------------------------- -------- ------------- ------------- ----------- -------- -----
64+
PSU 1 0J6J4K CN-0J6J4K-17972-5AF-0086-A00 1 12.19 8.37 102.70 OK green
65+
PSU 2 0J6J4K CN-0J6J4K-17972-5AF-008M-A00 A 12.18 10.07 122.00 OK green
6466
'''
6567
for arg in ['-s', '--status']:
6668
with mock.patch('sys.argv', ['psushow', arg]):
@@ -70,9 +72,9 @@ def test_status_table(self, capsys):
7072
assert captured.out == expected_output
7173

7274
expected_output = '''\
73-
PSU Model Serial Voltage (V) Current (A) Power (W) Status LED
74-
----- ------- ---------------------------- ------------- ------------- ----------- -------- -----
75-
PSU 1 0J6J4K CN-0J6J4K-17972-5AF-0086-A00 12.19 8.37 102.70 OK green
75+
PSU Model Serial HW Rev Voltage (V) Current (A) Power (W) Status LED
76+
----- ------- ---------------------------- -------- ------------- ------------- ----------- -------- -----
77+
PSU 1 0J6J4K CN-0J6J4K-17972-5AF-0086-A00 1 12.19 8.37 102.70 OK green
7678
'''
7779
for arg in ['-s', '--status']:
7880
with mock.patch('sys.argv', ['psushow', arg, '-i', '1']):
@@ -82,9 +84,9 @@ def test_status_table(self, capsys):
8284
assert captured.out == expected_output
8385

8486
expected_output = '''\
85-
PSU Model Serial Voltage (V) Current (A) Power (W) Status LED
86-
----- ------- ---------------------------- ------------- ------------- ----------- -------- -----
87-
PSU 2 0J6J4K CN-0J6J4K-17972-5AF-008M-A00 12.18 10.07 122.00 OK green
87+
PSU Model Serial HW Rev Voltage (V) Current (A) Power (W) Status LED
88+
----- ------- ---------------------------- -------- ------------- ------------- ----------- -------- -----
89+
PSU 2 0J6J4K CN-0J6J4K-17972-5AF-008M-A00 A 12.18 10.07 122.00 OK green
8890
'''
8991
for arg in ['-s', '--status']:
9092
with mock.patch('sys.argv', ['psushow', arg, '-i', '2']):
@@ -116,6 +118,7 @@ def test_status_json(self, capsys):
116118
"led_status": "green",
117119
"model": "0J6J4K",
118120
"serial": "CN-0J6J4K-17972-5AF-0086-A00",
121+
"revision": "1",
119122
"voltage": "12.19",
120123
"current": "8.37",
121124
"power": "102.7"
@@ -128,6 +131,7 @@ def test_status_json(self, capsys):
128131
"led_status": "green",
129132
"model": "0J6J4K",
130133
"serial": "CN-0J6J4K-17972-5AF-008M-A00",
134+
"revision": "A",
131135
"voltage": "12.18",
132136
"current": "10.07",
133137
"power": "122.0"
@@ -151,6 +155,7 @@ def test_status_json(self, capsys):
151155
"led_status": "green",
152156
"model": "0J6J4K",
153157
"serial": "CN-0J6J4K-17972-5AF-0086-A00",
158+
"revision": "1",
154159
"voltage": "12.19",
155160
"current": "8.37",
156161
"power": "102.7"
@@ -174,6 +179,7 @@ def test_status_json(self, capsys):
174179
"led_status": "green",
175180
"model": "0J6J4K",
176181
"serial": "CN-0J6J4K-17972-5AF-008M-A00",
182+
"revision": "A",
177183
"voltage": "12.18",
178184
"current": "10.07",
179185
"power": "122.0"

0 commit comments

Comments
 (0)