Skip to content

Commit f71ef64

Browse files
author
Myron Sosyak
authored
Fix import statement in mclag.py (sonic-net#2073)
#### What I did Fixed import error Added unit test for that case #### How I did it Used relative import to import file from the current package. #### How to verify it Try to configure mclag with Port as peer interface ``` sudo config mclag add 1 192.168.3.1 192.168.3.2 Ethernet12 ``` #### Previous command output (if the output of a command-line utility has changed) ``` admin@sonic:~$ sudo config mclag add 1 192.168.3.1 192.168.3.2 Ethernet12 Traceback (most recent call last): File "/usr/local/bin/config", line 8, in <module> sys.exit(config()) File "/usr/local/lib/python3.9/dist-packages/click/core.py", line 764, in __call__ return self.main(*args, **kwargs) File "/usr/local/lib/python3.9/dist-packages/click/core.py", line 717, in main rv = self.invoke(ctx) File "/usr/local/lib/python3.9/dist-packages/click/core.py", line 1137, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/usr/local/lib/python3.9/dist-packages/click/core.py", line 1137, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/usr/local/lib/python3.9/dist-packages/click/core.py", line 956, in invoke return ctx.invoke(self.callback, **ctx.params) File "/usr/local/lib/python3.9/dist-packages/click/core.py", line 555, in invoke return callback(*args, **kwargs) File "/usr/local/lib/python3.9/dist-packages/click/decorators.py", line 17, in new_func return f(get_current_context(), *args, **kwargs) File "/usr/local/lib/python3.9/dist-packages/config/mclag.py", line 140, in add_mclag_domain if (peer_ifname.startswith("Ethernet") is True) and (check_if_interface_is_valid(db, peer_ifname) is False): File "/usr/local/lib/python3.9/dist-packages/config/mclag.py", line 89, in check_if_interface_is_valid from main import interface_name_is_valid ModuleNotFoundError: No module named 'main' ``` #### New command output (if the output of a command-line utility has changed) ``` admin@sonic:~$ sudo config mclag add 1 192.168.3.1 192.168.3.2 Ethernet12 admin@sonic:~$ ```
1 parent 510a9b9 commit f71ef64

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

config/mclag.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ def is_ipv4_addr_valid(addr):
8585

8686

8787
def check_if_interface_is_valid(db, interface_name):
88-
from main import interface_name_is_valid
88+
from .main import interface_name_is_valid
8989
if interface_name_is_valid(db,interface_name) is False:
9090
ctx.fail("Interface name is invalid. Please enter a valid interface name!!")
9191

tests/mclag_test.py

+20
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@
4242
MCLAG_INVALID_SESSION_TMOUT_LBOUND = "2"
4343
MCLAG_INVALID_SESSION_TMOUT_UBOUND = "4000"
4444

45+
MCLAG_VALID_PEER_LINK_PORT = "Ethernet0"
46+
MCLAG_VALID_PEER_LINK_PORTCHANNEL = "PortChannel1000"
47+
4548
MCLAG_INVALID_MCLAG_MEMBER = "Ethernet4"
4649
MCLAG_INVALID_PORTCHANNEL1 = "portchannel"
4750
MCLAG_INVALID_PORTCHANNEL2 = "PortChannelabcd"
@@ -142,6 +145,23 @@ def test_add_mclag_with_invalid_peer_mcast_ip(self):
142145
result = runner.invoke(config.config.commands["mclag"].commands["add"], [MCLAG_DOMAIN_ID, MCLAG_SRC_IP, MCLAG_INVALID_PEER_IP2, MCLAG_PEER_LINK], obj=obj)
143146
assert result.exit_code != 0, "mclag invalid peer ip mcast test caase with code {}:{} Output:{}".format(type(result.exit_code), result.exit_code, result.output)
144147

148+
def test_add_mclag_with_valid_peer_link(self):
149+
runner = CliRunner()
150+
db = Db()
151+
obj = {'db':db.cfgdb}
152+
153+
# add mclag with valid port peer link
154+
result = runner.invoke(config.config.commands["mclag"].commands["add"], [MCLAG_DOMAIN_ID, MCLAG_SRC_IP, MCLAG_PEER_IP, MCLAG_VALID_PEER_LINK_PORT], obj=obj)
155+
assert result.exit_code == 0, "mclag valid peer link test case with code {}:{} Output:{}".format(type(result.exit_code), result.exit_code, result.output)
156+
157+
runner = CliRunner()
158+
db = Db()
159+
obj = {'db':db.cfgdb}
160+
161+
# add mclag with valid portchannel peer link
162+
result = runner.invoke(config.config.commands["mclag"].commands["add"], [MCLAG_DOMAIN_ID, MCLAG_SRC_IP, MCLAG_PEER_IP, MCLAG_VALID_PEER_LINK_PORTCHANNEL], obj=obj)
163+
assert result.exit_code == 0, "mclag valid peer link test case with code {}:{} Output:{}".format(type(result.exit_code), result.exit_code, result.output)
164+
145165
def test_add_mclag_with_invalid_peer_link(self):
146166
runner = CliRunner()
147167
db = Db()

0 commit comments

Comments
 (0)