From 036aa08afff3bb7e4a9bf4738035156452f95fba Mon Sep 17 00:00:00 2001 From: Mario Lenz Date: Sun, 26 Jan 2025 15:08:32 +0100 Subject: [PATCH] vmware_vmkernel: Requirements in argument_spec --- changelogs/fragments/2295-vmware_vmkernel.yml | 3 +++ plugins/modules/vmware_vmkernel.py | 17 ++++++----------- 2 files changed, 9 insertions(+), 11 deletions(-) create mode 100644 changelogs/fragments/2295-vmware_vmkernel.yml diff --git a/changelogs/fragments/2295-vmware_vmkernel.yml b/changelogs/fragments/2295-vmware_vmkernel.yml new file mode 100644 index 0000000000..325c1ecb9b --- /dev/null +++ b/changelogs/fragments/2295-vmware_vmkernel.yml @@ -0,0 +1,3 @@ +minor_changes: + - vmware_vmkernel - Improve handling of option dependencies + (https://github.com/ansible-collections/community.vmware/pull/2295). diff --git a/plugins/modules/vmware_vmkernel.py b/plugins/modules/vmware_vmkernel.py index 26dbe7b2ba..45a99db364 100644 --- a/plugins/modules/vmware_vmkernel.py +++ b/plugins/modules/vmware_vmkernel.py @@ -65,16 +65,16 @@ ip_address: type: str description: - - Static IP address. + - Static IPv4 address. - Required if O(network.type=static). subnet_mask: type: str description: - - Static netmask required. + - Static IPv4 netmask. - Required if O(network.type=static). default_gateway: type: str - description: Default gateway (Override default gateway for this adapter). + description: Default IPv4 gateway (Override default gateway for this adapter). tcpip_stack: type: str description: @@ -324,14 +324,6 @@ def __init__(self, module): msg="Failed to get details of ESXi server. Please specify esxi_hostname." ) - if self.network_type == 'static': - if self.module.params['state'] == 'absent': - pass - elif not self.ip_address: - module.fail_json(msg="ip_address is a required parameter when network type is set to 'static'") - elif not self.subnet_mask: - module.fail_json(msg="subnet_mask is a required parameter when network type is set to 'static'") - # find Port Group if self.vswitch_name: self.port_group_obj = self.get_port_group_by_name( @@ -1119,6 +1111,9 @@ def main(): type='static', tcpip_stack='default', ), + required_if=[ + ('type', 'static', ('ip_address', 'subnet_mask')) + ], ), state=dict( type='str',