Skip to content

Commit f5f231c

Browse files
committed
proxmox_firewall: Added method to delete rule
1 parent 32fc55f commit f5f231c

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

plugins/modules/proxmox_firewall.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ def get_proxmox_args():
3131
node=dict(type="str", required=False),
3232
vmid=dict(type="int", required=False),
3333
vnet=dict(type="str", required=False),
34+
pos=dict(type="int", required=False),
3435
rules=dict(
3536
type="list",
3637
elements="dict",
@@ -111,6 +112,8 @@ def run(self):
111112
elif state == "update":
112113
if rules is not None:
113114
self.update_fw_rules(rules_obj=rules_obj, rules=rules)
115+
elif state == "absent":
116+
self.delete_fw_rule(rules_obj=rules_obj, pos=self.params.get('pos'))
114117
else:
115118
rules = self.get_fw_rules(rules_obj)
116119
self.module.exit_json(
@@ -127,6 +130,20 @@ def get_fw_rules(self, rules_obj, pos=None):
127130
msg=f'Failed to retrieve firewall rules: {e}'
128131
)
129132

133+
def delete_fw_rule(self, rules_obj, pos):
134+
try:
135+
rule_obj = getattr(rules_obj(), str(pos))
136+
digest = rule_obj.get().get('digest')
137+
rule_obj.delete(pos=pos, digest=digest)
138+
139+
self.module.exit_json(
140+
changed=True, msg=f'successfully deleted firewall rules'
141+
)
142+
except Exception as e:
143+
self.module.fail_json(
144+
msg=f'Failed to delete firewall rule at pos {pos}: {e}'
145+
)
146+
130147
def update_fw_rules(self, rules_obj, rules):
131148
for rule in rules:
132149
rule['icmp-type'] = rule.get('icmp_type')

0 commit comments

Comments
 (0)