Skip to content

Commit 36aa623

Browse files
committed
proxmox_firewall: Added param validations
1 parent 7d0b401 commit 36aa623

File tree

1 file changed

+22
-3
lines changed

1 file changed

+22
-3
lines changed

plugins/modules/proxmox_firewall.py

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
def get_proxmox_args():
2727
return dict(
2828
state=dict(type="str", choices=["present", "absent", "update"], required=False),
29-
force=dict(type="bool", default=False, required=False),
3029
level=dict(type="str", choices=["cluster", "node", "vm", "vnet", "group"], default="cluster", required=False),
3130
node=dict(type="str", required=False),
3231
vmid=dict(type="int", required=False),
@@ -69,6 +68,11 @@ def get_ansible_module():
6968
return AnsibleModule(
7069
argument_spec=module_args,
7170
required_if=[
71+
('group_conf', True, ['group']),
72+
('level', 'vm', ['vmid']),
73+
('level', 'node', ['node']),
74+
('level', 'vnet', ['vnet']),
75+
('level', 'group', ['group']),
7276
]
7377
)
7478

@@ -78,11 +82,26 @@ def __init__(self, module):
7882
super(ProxmoxFirewallAnsible, self).__init__(module)
7983
self.params = module.params
8084

85+
def validate_params(self):
86+
if self.params.get('state') in ['present', 'update']:
87+
return self.params.get('group_conf') or self.params.get('rules')
88+
elif self.params.get('state') == 'absent':
89+
return self.params.get('group_conf') or self.params.get('pos')
90+
else:
91+
return True
92+
93+
8194
def run(self):
95+
if not self.validate_params():
96+
self.module.fail_json(
97+
msg=f'parameter validation failed. '
98+
f'If state is present/update we need either group_conf to be True or rules to be present. '
99+
f'If state is absent we need group_conf to be True or pos to be present. '
100+
)
101+
82102
state = self.params.get("state")
83-
force = self.params.get("force")
84103
level = self.params.get("level")
85-
rules =self.params.get("rules")
104+
rules = self.params.get("rules")
86105

87106
if level == "vm":
88107
vm = self.get_vm(vmid=self.params.get('vmid'))

0 commit comments

Comments
 (0)