Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions changelogs/fragments/T7260_edgecase_commands.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
bugfixes:
- Fix edgecase with empty `commands` array.
Original file line number Diff line number Diff line change
Expand Up @@ -368,7 +368,7 @@ def _render_grp_mem(self, attr, w, h, opr):
)
elif not opr and key in l_set:
if key == "name" and self._is_grp_del(h, want, key):
if commands[-1] == cmd + " " + want["name"] + " " + self._grp_type(
if len(commands) > 0 and commands[-1] == cmd + " " + want["name"] + " " + self._grp_type(
attr,
):
commands.pop()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
set firewall group address-group A-EMPTY
set firewall group address-group RND-HOSTS address 192.0.2.1
set firewall group address-group RND-HOSTS address 192.0.2.3
set firewall group address-group RND-HOSTS address 192.0.2.5
Expand All @@ -20,4 +21,4 @@ set firewall global-options ipv6-src-route 'enable'
set firewall global-options send-redirects 'enable'
set firewall zone ZONE-TEST interface 'eth0.1234'
set firewall zone ZONE-TEST description 'zone-test test description'
set firewall group address-group ZONE-TEST address '1.2.3.4'
set firewall group address-group ZONE-TEST address '1.2.3.4'
10 changes: 10 additions & 0 deletions tests/unit/modules/network/vyos/test_vyos_firewall_global14.py
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,10 @@ def test_vyos_firewall_global_set_01_merged_idem(self):
config=dict(
group=dict(
address_group=[
dict(
afi="ipv4",
name="A-EMPTY",
),
dict(
afi="ipv4",
name="RND-HOSTS",
Expand Down Expand Up @@ -323,6 +327,7 @@ def test_vyos_firewall_global_set_01_replaced(self):
),
)
commands = [
"delete firewall group address-group A-EMPTY",
"delete firewall group address-group RND-HOSTS address 192.0.2.3",
"delete firewall group address-group RND-HOSTS address 192.0.2.5",
"delete firewall group address-group DELETE-HOSTS address",
Expand Down Expand Up @@ -356,6 +361,10 @@ def test_vyos_firewall_global_set_01_replaced_idem(self):
],
group=dict(
address_group=[
dict(
afi="ipv4",
name="A-EMPTY",
),
dict(
afi="ipv4",
name="RND-HOSTS",
Expand Down Expand Up @@ -484,6 +493,7 @@ def test_vyos_firewall_global_set_02_replaced(self):
),
)
commands = [
"delete firewall group address-group A-EMPTY",
"delete firewall group address-group RND-HOSTS address 192.0.2.3",
"delete firewall group address-group RND-HOSTS address 192.0.2.5",
"delete firewall group address-group ZONE-TEST address 1.2.3.4",
Expand Down