Skip to content

Commit 027553c

Browse files
authored
[show/vlan]: fix show vlan config (sonic-net#1050)
use VLAN_MEMBER table to get vlan configuration Signed-off-by: Guohan Lu <[email protected]>
1 parent e741c7c commit 027553c

File tree

2 files changed

+33
-12
lines changed

2 files changed

+33
-12
lines changed

show/vlan.py

+7-8
Original file line numberDiff line numberDiff line change
@@ -96,24 +96,23 @@ def brief(db, verbose):
9696
def config(db):
9797
data = db.cfgdb.get_table('VLAN')
9898
keys = data.keys()
99+
member_data = db.cfgdb.get_table('VLAN_MEMBER')
99100

100101
def tablelize(keys, data):
101102
table = []
102103

103104
for k in natsorted(keys):
104-
if 'members' not in data[k] :
105-
r = []
106-
r.append(k)
107-
r.append(data[k]['vlanid'])
108-
table.append(r)
109-
continue
105+
members = set(data[k].get('members', []))
106+
for (vlan, interface_name) in member_data:
107+
if vlan == k:
108+
members.add(interface_name)
110109

111-
for m in data[k].get('members', []):
110+
for m in members:
112111
r = []
113112
r.append(k)
114113
r.append(data[k]['vlanid'])
115114
if clicommon.get_interface_naming_mode() == "alias":
116-
alias = iface_alias_converter.name_to_alias(m)
115+
alias = clicommon.InterfaceAliasConverter(db).name_to_alias(m)
117116
r.append(alias)
118117
else:
119118
r.append(m)

tests/vlan_test.py

+26-4
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,21 @@
4949
"""
5050

5151
show_vlan_config_output="""\
52-
Name VID
53-
-------- -----
54-
Vlan1000 1000
52+
Name VID Member Mode
53+
-------- ----- ---------- --------
54+
Vlan1000 1000 Ethernet8 untagged
55+
Vlan1000 1000 Ethernet12 untagged
56+
Vlan1000 1000 Ethernet4 untagged
57+
Vlan1000 1000 Ethernet16 untagged
58+
"""
59+
60+
show_vlan_config_in_alias_mode_output="""\
61+
Name VID Member Mode
62+
-------- ----- -------- --------
63+
Vlan1000 1000 etp3 untagged
64+
Vlan1000 1000 etp4 untagged
65+
Vlan1000 1000 etp2 untagged
66+
Vlan1000 1000 etp5 untagged
5567
"""
5668

5769
config_vlan_add_dhcp_relay_output="""\
@@ -134,11 +146,11 @@ def test_show_vlan_brief_in_alias_mode(self):
134146
runner = CliRunner()
135147
os.environ['SONIC_CLI_IFACE_MODE'] = "alias"
136148
result = runner.invoke(show.cli.commands["vlan"].commands["brief"])
149+
os.environ['SONIC_CLI_IFACE_MODE'] = "default"
137150
print(result.exit_code)
138151
print(result.output)
139152
assert result.exit_code == 0
140153
assert result.output == show_vlan_brief_in_alias_mode_output
141-
os.environ['SONIC_CLI_IFACE_MODE'] = ""
142154

143155
def test_show_vlan_config(self):
144156
runner = CliRunner()
@@ -148,6 +160,16 @@ def test_show_vlan_config(self):
148160
assert result.exit_code == 0
149161
assert result.output == show_vlan_config_output
150162

163+
def test_show_vlan_config_in_alias_mode(self):
164+
runner = CliRunner()
165+
os.environ['SONIC_CLI_IFACE_MODE'] = "alias"
166+
result = runner.invoke(show.cli.commands["vlan"].commands["config"], [])
167+
os.environ['SONIC_CLI_IFACE_MODE'] = "default"
168+
print(result.exit_code)
169+
print(result.output)
170+
assert result.exit_code == 0
171+
assert result.output == show_vlan_config_in_alias_mode_output
172+
151173
def test_config_vlan_add_vlan_with_invalid_vlanid(self):
152174
runner = CliRunner()
153175
result = runner.invoke(config.config.commands["vlan"].commands["add"], ["4096"])

0 commit comments

Comments
 (0)