diff --git a/show/main.py b/show/main.py index edbf549edd..45c2ae0a3a 100755 --- a/show/main.py +++ b/show/main.py @@ -503,9 +503,12 @@ def storm_control(ctx, namespace, display): @storm_control.command('interface') @click.argument('interface', metavar='',required=True) -def interface(interface, namespace, display): +@click.pass_context +def interface(ctx, interface): + # Get namespace from parent context + namespace = ctx.parent.params.get('namespace') + if multi_asic.is_multi_asic() and namespace not in multi_asic.get_namespace_list(): - ctx = click.get_current_context() ctx.fail('-n/--namespace option required. provide namespace from list {}'.format(multi_asic.get_namespace_list())) if interface: display_storm_interface(interface) diff --git a/tests/storm_control_test.py b/tests/storm_control_test.py index dd2050effc..d8069198b7 100644 --- a/tests/storm_control_test.py +++ b/tests/storm_control_test.py @@ -12,6 +12,18 @@ from utilities_common.db import Db import config.validated_config_db_connector as validated_config_db_connector +show_storm_interface_output="""\ ++------------------+-------------------+---------------+ +| Interface Name | Storm Type | Rate (kbps) | ++==================+===================+===============+ +| Ethernet0 | broadcast | 100000 | ++------------------+-------------------+---------------+ +| Ethernet0 | unknown-unicast | 200000 | ++------------------+-------------------+---------------+ +| Ethernet0 | unknown-multicast | 300000 | ++------------------+-------------------+---------------+ +""" + class TestStormControl(object): @classmethod def setup_class(cls): @@ -123,6 +135,14 @@ def test_show_storm(self): print(result.output) assert result.exit_code == 0 + def test_show_storm_interface(self): + runner = CliRunner() + result = runner.invoke(show.cli, ["storm-control", "interface", "Ethernet0"]) + print(result.exit_code) + print(result.output) + assert result.exit_code == 0 + assert result.output == show_storm_interface_output + @classmethod def teardown_class(cls): os.environ['UTILITIES_UNIT_TESTING'] = "0"