@@ -27,7 +27,7 @@ def get_proxmox_args():
27
27
return dict (
28
28
state = dict (type = "str" , choices = ["present" , "absent" , "update" ], required = False ),
29
29
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 ),
31
31
node = dict (type = "str" , required = False ),
32
32
vmid = dict (type = "int" , required = False ),
33
33
vnet = dict (type = "str" , required = False )
@@ -61,16 +61,27 @@ def run(self):
61
61
rules = self .get_node_fw_rules (node = self .params ['node' ])
62
62
elif level == "vnet" :
63
63
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' ])
64
66
else :
65
67
rules = self .get_cluster_fw_rules ()
66
68
self .module .exit_json (
67
69
changed = False , firewall_rules = rules , msg = f'successfully retrieved firewall rules'
68
70
)
69
71
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
+
70
81
def get_vnet_fw_rules (self , vnet , pos = None ):
71
82
try :
72
83
vnet = getattr (self .proxmox_api .cluster ().sdn ().vnets (), vnet )
73
- return vnet ().firewall ().rules ().get ()
84
+ return vnet ().firewall ().rules ().get (pos = pos )
74
85
except Exception as e :
75
86
self .module .fail_json (
76
87
msg = f'Failed to retrieve vnet level firewall rules: { e } '
@@ -101,7 +112,7 @@ def get_vmid_fw_rules(self, vmid, pos=None):
101
112
virt = getattr (node (), vm ['type' ])
102
113
vm = getattr (virt (), vmid )
103
114
104
- return vm ().firewall ().rules ().get ()
115
+ return vm ().firewall ().rules ().get (pos = pos )
105
116
except Exception as e :
106
117
self .module .fail_json (
107
118
msg = f'Failed to retrieve firewall rules for vmid - { vmid } : { e } '
0 commit comments