Skip to content

Commit

Permalink
Merge pull request #3590 from talmakion/feature/T6045
Browse files Browse the repository at this point in the history
T6045: Recreate show lldp detail views & improve remote port selection
  • Loading branch information
dmbaturin authored Jun 13, 2024
2 parents 31f8e5e + 83a51a0 commit c4269a9
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 6 deletions.
17 changes: 17 additions & 0 deletions op-mode-definitions/lldp.xml.in
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,12 @@
</properties>
<command>${vyos_op_scripts_dir}/lldp.py show_neighbors</command>
<children>
<node name="detail">
<properties>
<help>Show extended detail for LLDP neighbors</help>
</properties>
<command>${vyos_op_scripts_dir}/lldp.py show_neighbors --detail</command>
</node>
<tagNode name="interface">
<properties>
<help>Show LLDP for specified interface</help>
Expand All @@ -21,6 +27,17 @@
</completionHelp>
</properties>
<command>${vyos_op_scripts_dir}/lldp.py show_neighbors --interface $5</command>
<children>
<node name="detail">
<properties>
<help>Show detailed LLDP for specified interface</help>
<completionHelp>
<script>${vyos_completion_dir}/list_interfaces</script>
</completionHelp>
</properties>
<command>${vyos_op_scripts_dir}/lldp.py show_neighbors --interface $5 --detail</command>
</node>
</children>
</tagNode>
</children>
</node>
Expand Down
23 changes: 17 additions & 6 deletions src/op_mode/lldp.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,12 @@ def _get_formatted_output(raw_data):
tmp.append('')

# Remote interface
interface = jmespath.search('port.descr', values)
interface = None
if jmespath.search('port.id.type', values) == 'ifname':
# Remote peer has explicitly returned the interface name as the PortID
interface = jmespath.search('port.id.value', values)
if not interface:
interface = jmespath.search('port.descr', values)
if not interface:
interface = jmespath.search('port.id.value', values)
if not interface:
Expand All @@ -136,11 +141,17 @@ def _get_formatted_output(raw_data):

@_verify
def show_neighbors(raw: bool, interface: typing.Optional[str], detail: typing.Optional[bool]):
lldp_data = _get_raw_data(interface=interface, detail=detail)
if raw:
return lldp_data
else:
return _get_formatted_output(lldp_data)
if raw or not detail:
lldp_data = _get_raw_data(interface=interface, detail=detail)
if raw:
return lldp_data
else:
return _get_formatted_output(lldp_data)
else: # non-raw, detail
tmp = 'lldpcli -f text show neighbors details'
if interface:
tmp += f' ports {interface}'
return cmd(tmp)

if __name__ == "__main__":
try:
Expand Down

0 comments on commit c4269a9

Please sign in to comment.