Skip to content

Commit

Permalink
Fix for config_db instance to correct value error behavior
Browse files Browse the repository at this point in the history
  • Loading branch information
Asad Work authored and Asad Work committed Jul 22, 2024
1 parent 7f01ed2 commit b44f75b
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 22 deletions.
18 changes: 10 additions & 8 deletions config/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -5038,10 +5038,11 @@ def dhcp_mitigation_rate(ctx):
@click.argument('interface_name', metavar='<interface_name>', required=True)
@click.argument('packet_rate', metavar='<DHCP packet rate>', required=True, type=int)
@click.pass_context
def add_dhcp_mitigation_rate(ctx, interface_name, packet_rate):
@clicommon.pass_db
def add_dhcp_mitigation_rate(db, ctx, interface_name, packet_rate):
"""Add a new DHCP mitigation rate on an interface"""
# Get the config_db connector
config_db = ValidatedConfigDBConnector(ctx.obj['config_db'])
config_db = ValidatedConfigDBConnector(db.cfgdb)

if clicommon.get_interface_naming_mode() == "alias":
interface_name = interface_alias_to_name(config_db, interface_name)
Expand All @@ -5068,8 +5069,8 @@ def add_dhcp_mitigation_rate(ctx, interface_name, packet_rate):

try:
config_db.mod_entry('PORT', interface_name, {"dhcp_rate_limit": "{}".format(str(packet_rate))})
except ValueError:
ctx.fail("{} invalid or does not exist".format(interface_name))
except ValueError as e:
ctx.fail("{} invalid or does not exist. Error: {}".format(interface_name, e))

#
# 'del' subcommand
Expand All @@ -5080,10 +5081,11 @@ def add_dhcp_mitigation_rate(ctx, interface_name, packet_rate):
@click.argument('interface_name', metavar='<interface_name>', required=True)
@click.argument('packet_rate', metavar='<DHCP packet rate>', required=True, type=int)
@click.pass_context
def del_dhcp_mitigation_rate(ctx, interface_name, packet_rate):
@clicommon.pass_db
def del_dhcp_mitigation_rate(db, ctx, interface_name, packet_rate):
"""Delete an existing DHCP mitigation rate on an interface"""
# Get the config_db connector
config_db = ValidatedConfigDBConnector(ctx.obj['config_db'])
config_db = ValidatedConfigDBConnector(db.cfgdb)

if clicommon.get_interface_naming_mode() == "alias":
interface_name = interface_alias_to_name(config_db, interface_name)
Expand Down Expand Up @@ -5112,8 +5114,8 @@ def del_dhcp_mitigation_rate(ctx, interface_name, packet_rate):

try:
config_db.mod_entry('PORT', interface_name, {"dhcp_rate_limit": "0"})
except ValueError:
ctx.fail("{} invalid or does not exist".format(interface_name))
except ValueError as e:
ctx.fail("{} invalid or does not exist. Error: {}".format(interface_name, e))

#
# buffer commands and utilities
Expand Down
26 changes: 12 additions & 14 deletions tests/dhcp_rate_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -270,21 +270,19 @@ def test_config_dhcp_rate_add_on_invalid_interface(self):
def test_config_dhcp_rate_add_del_with_value_error(self):
db = Db()
runner = CliRunner()
with pytest.raises(ValueError):
result = runner.invoke(config.config.commands["interface"].commands["dhcp-mitigation-rate"].commands["del"],
["Ethernet84", "300"], obj=db)
print(result.exit_code)
print(result.output)
assert result.output != 0
assert "Ethernet84 invalid or does not exist" in result.output
result = runner.invoke(config.config.commands["interface"].commands["dhcp-mitigation-rate"].commands["del"],
["Ethernet84", "300"], obj=db)
print(result.exit_code)
print(result.output)
assert result.output != 0
assert "Ethernet84 invalid or does not exist" in result.output

with pytest.raises(ValueError):
result = runner.invoke(config.config.commands["interface"].commands["dhcp-mitigation-rate"].commands["add"],
["Ethernet72", "65"], obj=db)
print(result.exit_code)
print(result.output)
assert result.output != 0
assert "Ethernet72 invalid or does not exist" in result.output
result = runner.invoke(config.config.commands["interface"].commands["dhcp-mitigation-rate"].commands["add"],
["Ethernet72", "65"], obj=db)
print(result.exit_code)
print(result.output)
assert result.output != 0
assert "Ethernet72 invalid or does not exist" in result.output

def test_show_dhcp_rate_limit(self):
runner = CliRunner()
Expand Down

0 comments on commit b44f75b

Please sign in to comment.