From 0f196864b3c91c423f008078a87151a0f73acd13 Mon Sep 17 00:00:00 2001 From: "Jesse Pretorius (odyssey4me)" Date: Mon, 17 Feb 2020 12:35:35 +0000 Subject: [PATCH] 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] https://github.com/ansible/ansible/commit/eaf238b033a0504c48440cf85982a2b89851059d [b] https://github.com/ansible/ansible/commit/c6a8e99d34eeacd84b097bb0bd2ba9a0d7fb230d [c] https://github.com/openstack/openstacksdk/commit/8eb788af07ed88166db7b8a58ce1fecacd7a29b1 [d] https://github.com/openstack/openstacksdk/commit/a1fc820a2f3669f64d222506c17be99c4d6be7b7 Fixes: https://github.com/ansible/ansible/issues/62062 Change-Id: I2b80dc721a08bbdb530af3705ae99cf1b579d9f0 --- .../62062-os_network-openstacksdk-min.yml | 3 +++ .../64495-os_network-openstacksdk-min.yml | 4 ++-- plugins/modules/os_network.py | 24 ++++++++++++------- 3 files changed, 20 insertions(+), 11 deletions(-) create mode 100644 changelogs/fragments/62062-os_network-openstacksdk-min.yml 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)