Skip to content

Commit efbe1f4

Browse files
authored
[chassis][supervisor][show][interfaces]show interfaces command warning on Supervisor card (#1771)
What I did Fixed sonic-net/sonic-buildimage#8521 How I did it Before displaying the warning message, call device_info.is_supervisor() function to check if it is supervisor card, don't display the warning message. How to verify it Running the image on supervisor card Execute the CLI "show interfaces status" No warning should be seen. Signed-off-by: mlok <[email protected]>
1 parent 487b3b7 commit efbe1f4

File tree

2 files changed

+28
-3
lines changed

2 files changed

+28
-3
lines changed

tests/interfaces_test.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import traceback
33

44
from click.testing import CliRunner
5+
from unittest import mock
56

67
import show.main as show
78

@@ -292,7 +293,30 @@ def test_show_interfaces_portchannel_in_alias_mode(self):
292293
traceback.print_tb(result.exc_info[2])
293294
assert result.exit_code == 0
294295
assert result.output == show_interfaces_portchannel_in_alias_mode_output
295-
296+
297+
@mock.patch('sonic_py_common.multi_asic.get_port_table', mock.MagicMock(return_value={}))
298+
def test_supervisor_show_interfaces_alias_etp1_with_waring(self):
299+
runner = CliRunner()
300+
os.environ['SONIC_CLI_IFACE_MODE'] = "alias"
301+
result = runner.invoke(show.cli.commands["interfaces"].commands["alias"], ["etp1"])
302+
os.environ['SONIC_CLI_IFACE_MODE'] = "default"
303+
print(result.exit_code)
304+
print(result.output)
305+
assert result.exit_code != 0
306+
assert "Configuration database contains no ports" in result.output
307+
308+
@mock.patch('sonic_py_common.multi_asic.get_port_table', mock.MagicMock(return_value={}))
309+
@mock.patch('sonic_py_common.device_info.is_supervisor', mock.MagicMock(return_value=True))
310+
def test_supervisor_show_interfaces_alias_etp1_without_waring(self):
311+
runner = CliRunner()
312+
os.environ['SONIC_CLI_IFACE_MODE'] = "alias"
313+
result = runner.invoke(show.cli.commands["interfaces"].commands["alias"], ["etp1"])
314+
os.environ['SONIC_CLI_IFACE_MODE'] = "default"
315+
print(result.exit_code)
316+
print(result.output)
317+
assert result.exit_code != 0
318+
assert "Configuration database contains no ports" not in result.output
319+
296320
@classmethod
297321
def teardown_class(cls):
298322
print("TEARDOWN")

utilities_common/cli.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import netaddr
1111

1212
from natsort import natsorted
13-
from sonic_py_common import multi_asic
13+
from sonic_py_common import multi_asic, device_info
1414
from utilities_common.db import Db
1515
from utilities_common.general import load_db_config
1616

@@ -131,7 +131,8 @@ def __init__(self, db=None):
131131

132132

133133
if not self.port_dict:
134-
click.echo(message="Configuration database contains no ports")
134+
if not device_info.is_supervisor():
135+
click.echo(message="Configuration database contains no ports")
135136
self.port_dict = {}
136137

137138
for port_name in self.port_dict:

0 commit comments

Comments
 (0)