Retrieve description from all interface types, not just ethernets
This commit is contained in:
@ -33,16 +33,29 @@ def get_lcp_by_host_sw_if_index(lcp, host_sw_if_index):
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
def get_description_by_ifname(config, ifname):
|
def get_description_by_ifname(config, name):
|
||||||
try:
|
try:
|
||||||
for phy_name, phy in config['interfaces'].items():
|
if 'interfaces' in config:
|
||||||
if ifname == phy_name:
|
for ifname, iface in config['interfaces'].items():
|
||||||
return phy['description']
|
if ifname == name:
|
||||||
if 'sub-interfaces' in phy:
|
return iface['description']
|
||||||
for sub_id, sub_int in config['interfaces'][phy_name]['sub-interfaces'].items():
|
if 'sub-interfaces' in iface:
|
||||||
sub_ifname = "%s.%d" % (phy_name, sub_id)
|
for sub_id, sub_iface in iface['sub-interfaces'].items():
|
||||||
if ifname == sub_ifname:
|
sub_ifname = "%s.%d" % (ifname, sub_id)
|
||||||
return sub_int['description']
|
if name == sub_ifname:
|
||||||
|
return sub_iface['description']
|
||||||
|
if 'loopbacks' in config:
|
||||||
|
for ifname, iface in config['loopbacks'].items():
|
||||||
|
if ifname == name:
|
||||||
|
return iface['description']
|
||||||
|
if 'taps' in config:
|
||||||
|
for ifname, iface in config['taps'].items():
|
||||||
|
if ifname == name:
|
||||||
|
return iface['description']
|
||||||
|
if 'vxlan_tunnels' in config:
|
||||||
|
for ifname, iface in config['vxlan_tunnels'].items():
|
||||||
|
if ifname == name:
|
||||||
|
return iface['description']
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
return None
|
return None
|
||||||
|
Reference in New Issue
Block a user