Bump minimum openstacksdk version when using os_network/dns_domain

With the addition of [a], the minimum openstacksdk version needs to
be bumped to include [b], or the os_network module will return the
error:

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

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

[a] 6c74e29618
[b] a3e846e2b9

Fixes: #64495
Fixes: #64841
Change-Id: I8c41e505d5c1949ddc535c78933da06405c47299
This commit is contained in:
Jesse Pretorius (odyssey4me)
2020-01-30 16:17:23 +00:00
parent cb2c6f403e
commit 1a597c2b03
2 changed files with 17 additions and 10 deletions

View File

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

View File

@@ -77,7 +77,7 @@ options:
type: int
dns_domain:
description:
- The DNS domain value to set.
- The DNS domain value to set. Requires openstacksdk>=0.29.
Network will use Openstack defaults if this option is
not provided.
requirements:
@@ -193,12 +193,18 @@ def main():
provider_physical_network = module.params['provider_physical_network']
provider_network_type = module.params['provider_network_type']
provider_segmentation_id = module.params['provider_segmentation_id']
project = module.params.get('project')
port_security_enabled = module.params.get('port_security_enabled')
mtu = module.params.get('mtu')
dns_domain = module.params.get('dns_domain')
project = module.params['project']
sdk, cloud = openstack_cloud_from_module(module)
net_create_kwargs = {
'port_security_enabled': module.params['port_security_enabled'],
'mtu_size': module.params['mtu']
}
if module.params['dns_domain'] is not None:
sdk, cloud = openstack_cloud_from_module(module, min_version='0.29.0')
net_create_kwargs['dns_domain'] = module.params['dns_domain']
else:
sdk, cloud = openstack_cloud_from_module(module)
try:
if project is not None:
proj = cloud.get_project(project)
@@ -224,13 +230,11 @@ def main():
if project_id is not None:
net = cloud.create_network(name, shared, admin_state_up,
external, provider, project_id,
port_security_enabled=port_security_enabled,
mtu_size=mtu, dns_domain=dns_domain)
**net_create_kwargs)
else:
net = cloud.create_network(name, shared, admin_state_up,
external, provider,
port_security_enabled=port_security_enabled,
mtu_size=mtu, dns_domain=dns_domain)
**net_create_kwargs)
changed = True
else:
changed = False