Port spec can be a list of port specs.

This commit is contained in:
Felix Fontein 2025-11-25 22:25:39 +01:00
parent 6b0d665bee
commit 3f8ccef669

View File

@ -2089,16 +2089,26 @@ def _preprocess_value_ports(
if "published_ports" not in values: if "published_ports" not in values:
return values return values
found = False found = False
for port_spec in values["published_ports"].values(): for port_specs in values["published_ports"].values():
if port_spec[0] == _DEFAULT_IP_REPLACEMENT_STRING: if not isinstance(port_specs, list):
found = True port_specs = [port_specs]
break for port_spec in port_specs:
if port_spec[0] == _DEFAULT_IP_REPLACEMENT_STRING:
found = True
break
if not found: if not found:
return values return values
default_ip = _get_default_host_ip(module, client) default_ip = _get_default_host_ip(module, client)
for port, port_spec in values["published_ports"].items(): for port, port_specs in values["published_ports"].items():
if port_spec[0] == _DEFAULT_IP_REPLACEMENT_STRING: if isinstance(port_specs, list):
values["published_ports"][port] = tuple([default_ip] + list(port_spec[1:])) for index, port_spec in enumerate(port_specs):
if port_spec[0] == _DEFAULT_IP_REPLACEMENT_STRING:
port_specs[index] = tuple([default_ip] + list(port_spec[1:]))
else:
if port_specs[0] == _DEFAULT_IP_REPLACEMENT_STRING:
values["published_ports"][port] = tuple(
[default_ip] + list(port_specs[1:])
)
return values return values