bbc72e78b0
Avoid traceback on sonic-clear command sonic-clear dhcp6relay_counters Traceback (most recent call last): File "/usr/local/bin/sonic-clear", line 8, in <module> sys.exit(cli()) File "/usr/local/lib/python3.9/dist-packages/click/core.py", line 764, in __call__ return self.main(*args, **kwargs) File "/usr/local/lib/python3.9/dist-packages/click/core.py", line 717, in main rv = self.invoke(ctx) File "/usr/local/lib/python3.9/dist-packages/click/core.py", line 1137, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/usr/local/lib/python3.9/dist-packages/click/core.py", line 956, in invoke return ctx.invoke(self.callback, **ctx.params) File "/usr/local/lib/python3.9/dist-packages/click/core.py", line 555, in invoke return callback(*args, **kwargs) File "/usr/local/lib/python3.9/dist-packages/clear/plugins/dhcp-relay.py", line 19, in dhcp6relay_clear_counters counter = DHCPv6_Counter() NameError: name 'DHCPv6_Counter' is not defined - How I did it Corrected the way to import using importlib - How to verify it Tested the sonic-clear command and verified no traceback is seen
33 lines
803 B
Python
33 lines
803 B
Python
import sys
|
|
import click
|
|
import importlib
|
|
dhcp6_relay = importlib.import_module('show.plugins.dhcp-relay')
|
|
|
|
import utilities_common.cli as clicommon
|
|
|
|
|
|
# sonic-clear dhcp6relay_counters
|
|
@click.group(cls=clicommon.AliasedGroup)
|
|
def dhcp6relay_clear():
|
|
pass
|
|
|
|
@dhcp6relay_clear.command('dhcp6relay_counters')
|
|
@click.option('-i', '--interface', required=False)
|
|
def dhcp6relay_clear_counters(interface):
|
|
""" Clear dhcp6relay message counts """
|
|
|
|
counter = dhcp6_relay.DHCPv6_Counter()
|
|
counter_intf = counter.get_interface()
|
|
|
|
if interface:
|
|
counter.clear_table(interface)
|
|
else:
|
|
for intf in counter_intf:
|
|
counter.clear_table(intf)
|
|
|
|
def register(cli):
|
|
cli.add_command(dhcp6relay_clear_counters)
|
|
|
|
if __name__ == '__main__':
|
|
dhcp6relay_clear_counters()
|