diff --git a/changelogs/fragments/62062-os_network-openstacksdk-min.yml b/changelogs/fragments/62062-os_network-openstacksdk-min.yml new file mode 100644 index 00000000..e450ec74 --- /dev/null +++ b/changelogs/fragments/62062-os_network-openstacksdk-min.yml @@ -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. diff --git a/changelogs/fragments/64495-os_network-openstacksdk-min.yml b/changelogs/fragments/64495-os_network-openstacksdk-min.yml index 7fd35acb..ff7ec13b 100644 --- a/changelogs/fragments/64495-os_network-openstacksdk-min.yml +++ b/changelogs/fragments/64495-os_network-openstacksdk-min.yml @@ -1,3 +1,3 @@ bugfixes: - - bump the minimum openstacksdk version when os_network - uses the dns_domain argument + - Bump the minimum openstacksdk version to 0.29.0 when os_network + uses the dns_domain argument. diff --git a/plugins/modules/os_network.py b/plugins/modules/os_network.py index 163ecd11..ec5f79b3 100644 --- a/plugins/modules/os_network.py +++ b/plugins/modules/os_network.py @@ -67,13 +67,13 @@ 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 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 dns_domain: description: @@ -195,16 +195,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)