File tree 2 files changed +36
-2
lines changed
2 files changed +36
-2
lines changed Original file line number Diff line number Diff line change 3
3
4
4
from click .testing import CliRunner
5
5
from unittest import mock
6
+ from utilities_common .intf_filter import parse_interface_in_filter
6
7
7
8
import show .main as show
8
9
@@ -315,6 +316,27 @@ def test_supervisor_show_interfaces_alias_etp1_without_waring(self):
315
316
print (result .output )
316
317
assert result .exit_code != 0
317
318
319
+ def test_parse_interface_in_filter (self ):
320
+ intf_filter = "Ethernet0"
321
+ intf_list = parse_interface_in_filter (intf_filter )
322
+ assert len (intf_list ) == 1
323
+ assert intf_list [0 ] == "Ethernet0"
324
+
325
+ intf_filter = "Ethernet1-3"
326
+ intf_list = parse_interface_in_filter (intf_filter )
327
+ assert len (intf_list ) == 3
328
+ assert intf_list == ["Ethernet1" , "Ethernet2" , "Ethernet3" ]
329
+
330
+ intf_filter = "Ethernet-BP10"
331
+ intf_list = parse_interface_in_filter (intf_filter )
332
+ assert len (intf_list ) == 1
333
+ assert intf_list [0 ] == "Ethernet-BP10"
334
+
335
+ intf_filter = "Ethernet-BP10-12"
336
+ intf_list = parse_interface_in_filter (intf_filter )
337
+ assert len (intf_list ) == 3
338
+ assert intf_list == ["Ethernet-BP10" , "Ethernet-BP11" , "Ethernet-BP12" ]
339
+
318
340
@classmethod
319
341
def teardown_class (cls ):
320
342
print ("TEARDOWN" )
Original file line number Diff line number Diff line change 2
2
3
3
SONIC_PORT_NAME_PREFIX = "Ethernet"
4
4
SONIC_LAG_NAME_PREFIX = "PortChannel"
5
+ SONIC_BACK_PORT_NAME_PREFIX = "Ethernet-BP"
5
6
6
7
def parse_interface_in_filter (intf_filter ):
7
8
intf_fs = []
@@ -11,7 +12,19 @@ def parse_interface_in_filter(intf_filter):
11
12
12
13
fs = intf_filter .split (',' )
13
14
for x in fs :
14
- if '-' in x :
15
+ if x .startswith (SONIC_BACK_PORT_NAME_PREFIX ):
16
+ intf = SONIC_BACK_PORT_NAME_PREFIX
17
+ x = x .split (intf )[1 ]
18
+ if '-' in x :
19
+ start = x .split ('-' )[0 ]
20
+ end = x .split ('-' )[1 ]
21
+ if not start .isdigit () or not end .isdigit ():
22
+ continue
23
+ for i in range (int (start ), int (end )+ 1 ):
24
+ intf_fs .append (intf + str (i ))
25
+ else :
26
+ intf_fs .append (intf + x )
27
+ elif '-' in x :
15
28
# handle range
16
29
if not x .startswith (SONIC_PORT_NAME_PREFIX ) and not x .startswith (SONIC_LAG_NAME_PREFIX ):
17
30
continue
@@ -40,4 +53,3 @@ def interface_in_filter(intf, filter):
40
53
return True
41
54
42
55
return False
43
-
You can’t perform that action at this time.
0 commit comments