Skip to content

Commit 7b3dfa5

Browse files
JanaHochThulium-Drake
authored andcommitted
proxmox_vnet: added vnet_absent()
1 parent ba37695 commit 7b3dfa5

File tree

1 file changed

+26
-6
lines changed

1 file changed

+26
-6
lines changed

plugins/modules/proxmox_vnet.py

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626

2727
def get_proxmox_args():
2828
return dict(
29-
state=dict(type="str", choices=["present", "absent", "update"], required=False),
29+
state=dict(type="str", choices=["present", "absent", "update"], default='present', required=False),
3030
force=dict(type="bool", default=False, required=False),
3131
vnet=dict(type="str", required=False),
3232
zone=dict(type="str", required=False),
@@ -46,6 +46,9 @@ def get_ansible_module():
4646
return AnsibleModule(
4747
argument_spec=module_args,
4848
required_if=[
49+
('state', 'present', ['vnet', 'zone']),
50+
('state', 'update', ['vnet']),
51+
('state', 'absent', ['vnet'])
4952
]
5053
)
5154

@@ -74,9 +77,7 @@ def run(self):
7477
elif state == 'update':
7578
self.vnet_update(**vnet_params)
7679
elif state == 'absent':
77-
self.vnet_absent(
78-
79-
)
80+
self.vnet_absent(vnet_params['vnet'], vnet_params['lock-token'])
8081

8182
def get_vnet_detail(self):
8283
try:
@@ -140,9 +141,28 @@ def vnet_update(self, **vnet_params):
140141
msg=f'Failed to update vnet - {e}. Rolling back all changes.'
141142
)
142143

143-
def vnet_absent(self):
144-
pass
144+
def vnet_absent(self, vnet_name, lock):
145+
vnet_params = {'vnet': vnet_name, 'lock-token': lock}
146+
available_vnets = [vnet['vnet'] for vnet in self.get_vnet_detail()]
145147

148+
if vnet_name not in available_vnets:
149+
self.module.exit_json(
150+
changed=False, vnet=vnet_name, msg=f"vnet already doesn't exist {vnet_name}"
151+
)
152+
else:
153+
try:
154+
vnet = getattr(self.proxmox_api.cluster().sdn().vnets(), vnet_name)
155+
vnet.delete(**vnet_params)
156+
self.apply_sdn_changes_and_release_lock(lock)
157+
self.module.exit_json(
158+
changed=True, msg=f'Deleted vnet {vnet_name}'
159+
)
160+
except Exception as e:
161+
self.module.warn(f'Failed to update vnet - {e}')
162+
self.rollback_sdn_changes_and_release_lock(lock)
163+
self.module.fail_json(
164+
msg=f'Failed to delete vnet - {e}. Rolling back all changes.'
165+
)
146166

147167
def main():
148168
module = get_ansible_module()

0 commit comments

Comments
 (0)