Skip to content

Commit 5185516

Browse files
committed
proxmox_firewall: Add condition for security group
1 parent d00c335 commit 5185516

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

plugins/modules/proxmox_firewall.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ def get_proxmox_args():
2727
return dict(
2828
state=dict(type="str", choices=["present", "absent", "update"], required=False),
2929
force=dict(type="bool", default=False, required=False),
30-
level=dict(type="str", choices=["cluster", "node", "vm", "vnet"], default="cluster", required=False),
30+
level=dict(type="str", choices=["cluster", "node", "vm", "vnet", "group"], default="cluster", required=False),
3131
node=dict(type="str", required=False),
3232
vmid=dict(type="int", required=False),
3333
vnet=dict(type="str", required=False)
@@ -61,16 +61,27 @@ def run(self):
6161
rules = self.get_node_fw_rules(node=self.params['node'])
6262
elif level == "vnet":
6363
rules = self.get_vnet_fw_rules(vnet=self.params['vnet'])
64+
elif level == "group":
65+
rules = self.get_group_fw_rules(group=self.params['group'])
6466
else:
6567
rules = self.get_cluster_fw_rules()
6668
self.module.exit_json(
6769
changed=False, firewall_rules=rules, msg=f'successfully retrieved firewall rules'
6870
)
6971

72+
def get_group_fw_rules(self, group, pos=None):
73+
try:
74+
group = getattr(self.proxmox_api.cluster().firewall().groups(), group)
75+
return group().get(pos=pos)
76+
except Exception as e:
77+
self.module.fail_json(
78+
msg=f'Failed to retrieve security group level firewall rules: {e}'
79+
)
80+
7081
def get_vnet_fw_rules(self, vnet, pos=None):
7182
try:
7283
vnet = getattr(self.proxmox_api.cluster().sdn().vnets(), vnet)
73-
return vnet().firewall().rules().get()
84+
return vnet().firewall().rules().get(pos=pos)
7485
except Exception as e:
7586
self.module.fail_json(
7687
msg=f'Failed to retrieve vnet level firewall rules: {e}'
@@ -101,7 +112,7 @@ def get_vmid_fw_rules(self, vmid, pos=None):
101112
virt = getattr(node(), vm['type'])
102113
vm = getattr(virt(), vmid)
103114

104-
return vm().firewall().rules().get()
115+
return vm().firewall().rules().get(pos=pos)
105116
except Exception as e:
106117
self.module.fail_json(
107118
msg=f'Failed to retrieve firewall rules for vmid - {vmid}: {e}'

0 commit comments

Comments
 (0)