diff --git a/show/vlan.py b/show/vlan.py index d40f93cd29..fa0eb524fd 100644 --- a/show/vlan.py +++ b/show/vlan.py @@ -96,24 +96,23 @@ def brief(db, verbose): def config(db): data = db.cfgdb.get_table('VLAN') keys = data.keys() + member_data = db.cfgdb.get_table('VLAN_MEMBER') def tablelize(keys, data): table = [] for k in natsorted(keys): - if 'members' not in data[k] : - r = [] - r.append(k) - r.append(data[k]['vlanid']) - table.append(r) - continue + members = set(data[k].get('members', [])) + for (vlan, interface_name) in member_data: + if vlan == k: + members.add(interface_name) - for m in data[k].get('members', []): + for m in members: r = [] r.append(k) r.append(data[k]['vlanid']) if clicommon.get_interface_naming_mode() == "alias": - alias = iface_alias_converter.name_to_alias(m) + alias = clicommon.InterfaceAliasConverter(db).name_to_alias(m) r.append(alias) else: r.append(m) diff --git a/tests/vlan_test.py b/tests/vlan_test.py index 04aa16fa74..82f03492f7 100644 --- a/tests/vlan_test.py +++ b/tests/vlan_test.py @@ -49,9 +49,21 @@ """ show_vlan_config_output="""\ -Name VID --------- ----- -Vlan1000 1000 +Name VID Member Mode +-------- ----- ---------- -------- +Vlan1000 1000 Ethernet8 untagged +Vlan1000 1000 Ethernet12 untagged +Vlan1000 1000 Ethernet4 untagged +Vlan1000 1000 Ethernet16 untagged +""" + +show_vlan_config_in_alias_mode_output="""\ +Name VID Member Mode +-------- ----- -------- -------- +Vlan1000 1000 etp3 untagged +Vlan1000 1000 etp4 untagged +Vlan1000 1000 etp2 untagged +Vlan1000 1000 etp5 untagged """ config_vlan_add_dhcp_relay_output="""\ @@ -134,11 +146,11 @@ def test_show_vlan_brief_in_alias_mode(self): runner = CliRunner() os.environ['SONIC_CLI_IFACE_MODE'] = "alias" result = runner.invoke(show.cli.commands["vlan"].commands["brief"]) + os.environ['SONIC_CLI_IFACE_MODE'] = "default" print(result.exit_code) print(result.output) assert result.exit_code == 0 assert result.output == show_vlan_brief_in_alias_mode_output - os.environ['SONIC_CLI_IFACE_MODE'] = "" def test_show_vlan_config(self): runner = CliRunner() @@ -148,6 +160,16 @@ def test_show_vlan_config(self): assert result.exit_code == 0 assert result.output == show_vlan_config_output + def test_show_vlan_config_in_alias_mode(self): + runner = CliRunner() + os.environ['SONIC_CLI_IFACE_MODE'] = "alias" + result = runner.invoke(show.cli.commands["vlan"].commands["config"], []) + os.environ['SONIC_CLI_IFACE_MODE'] = "default" + print(result.exit_code) + print(result.output) + assert result.exit_code == 0 + assert result.output == show_vlan_config_in_alias_mode_output + def test_config_vlan_add_vlan_with_invalid_vlanid(self): runner = CliRunner() result = runner.invoke(config.config.commands["vlan"].commands["add"], ["4096"])