Bump min openstacksdk version for os_network/{port_security_enabled,mtu}

To make use of the port_security_enabled [a] and mtu [b] parameters,
[c] and [d] need to be present in the openstacksdk or the os_network
module with return an error like:

TypeError: create_network() got an unexpected keyword argument 'port_security_enabled'

or:

TypeError: create_network() got an unexpected keyword argument 'mtu'

To handle this, we fail the module if one of the arguments are used
and the minimum openstacksdk version for that argument is not met.

[a] eaf238b033
[b] c6a8e99d34
[c] 8eb788af07
[d] a1fc820a2f

Backport-of: https://review.opendev.org/708119
Fixes: https://github.com/ansible/ansible/issues/62062
Change-Id: I2b80dc721a08bbdb530af3705ae99cf1b579d9f0
pull/67986/head
Jesse Pretorius (odyssey4me) 5 years ago committed by Matt Clay
parent f90c7411e8
commit 1e8bebb20b

@ -0,0 +1,3 @@
bugfixes:
- Bump the minimum openstacksdk version to 0.18.0 when os_network
uses the port_security_enabled or mtu arguments.

@ -1,3 +1,3 @@
bugfixes:
- bump the minimum openstacksdk version when os_network
- Bump the minimum openstacksdk version to 0.29.0 when os_network
uses the dns_domain argument

@ -73,14 +73,14 @@ options:
description:
- Whether port security is enabled on the network or not.
Network will use OpenStack defaults if this option is
not utilised.
not utilised. Requires openstacksdk>=0.18.
type: bool
version_added: "2.8"
mtu:
description:
- The maximum transmission unit (MTU) value to address fragmentation.
Network will use OpenStack defaults if this option is
not provided.
not provided. Requires openstacksdk>=0.18.
type: int
version_added: "2.9"
dns_domain:
@ -199,16 +199,22 @@ def main():
provider_segmentation_id = module.params['provider_segmentation_id']
project = module.params['project']
net_create_kwargs = {
'port_security_enabled': module.params['port_security_enabled'],
'mtu_size': module.params['mtu']
}
net_create_kwargs = {}
min_version = None
if module.params['mtu'] is not None:
min_version = '0.18.0'
net_create_kwargs['mtu_size'] = module.params['mtu']
if module.params['port_security_enabled'] is not None:
min_version = '0.18.0'
net_create_kwargs['port_security_enabled'] = module.params['port_security_enabled']
if module.params['dns_domain'] is not None:
sdk, cloud = openstack_cloud_from_module(module, min_version='0.29.0')
min_version = '0.29.0'
net_create_kwargs['dns_domain'] = module.params['dns_domain']
else:
sdk, cloud = openstack_cloud_from_module(module)
sdk, cloud = openstack_cloud_from_module(module, min_version)
try:
if project is not None:
proj = cloud.get_project(project)

Loading…
Cancel
Save