feat: soporte port_range con listas y combinaciones ("2,3", "1-3,5")
- _expand_range ahora procesa segmentos separados por coma, cada uno puede ser un puerto único o un rango numérico (1-48). Ejemplos: "2,3" -> ["2","3"] | "1-3,5,47" -> ["1","2","3","5","47"] - switch.auto.tfvars: puertos 2 y 3 de eqt-lab-st01-sw01 consolidados en una sola entrada con port_range = "2,3" Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
a1068c831d
commit
6dc629ea18
@@ -31,17 +31,18 @@ locals {
|
||||
network_id = [for n in data.meraki_networks.net.items : n.id if n.name == var.network_name][0]
|
||||
|
||||
# Helper: expande un port_range en lista de port_ids
|
||||
# "1-48" -> ["1","2",...,"48"] | "1" -> ["1"]
|
||||
# Soporta: "1" -> ["1"] | "1-4" -> ["1","2","3","4"] | "2,3" -> ["2","3"] | "1-3,5,47" -> ["1","2","3","5","47"]
|
||||
_expand_range = {
|
||||
for config in concat(var.switch_port_configs, var.switch_stack_port_configs, var.switch_named_port_configs) :
|
||||
"${try(config.serial, try(config.stack_name, config.switch_name))}:${config.port_range}" => (
|
||||
length(split("-", config.port_range)) == 2
|
||||
"${try(config.serial, try(config.stack_name, config.switch_name))}:${config.port_range}" => flatten([
|
||||
for segment in split(",", config.port_range) :
|
||||
length(split("-", trimspace(segment))) == 2
|
||||
? [for i in range(
|
||||
tonumber(split("-", config.port_range)[0]),
|
||||
tonumber(split("-", config.port_range)[1]) + 1
|
||||
tonumber(split("-", trimspace(segment))[0]),
|
||||
tonumber(split("-", trimspace(segment))[1]) + 1
|
||||
) : tostring(i)]
|
||||
: [config.port_range]
|
||||
)
|
||||
: [trimspace(segment)]
|
||||
])
|
||||
}
|
||||
|
||||
# Mapa de nombre de stack -> lista de seriales de sus miembros
|
||||
|
||||
@@ -145,19 +145,9 @@ switch_named_port_configs = [
|
||||
access_policy_type = "Open"
|
||||
},
|
||||
{
|
||||
# Puerto 2 de eqt-lab-st01-sw01 → AP (trunk, nativa 108 APs, tageadas 100 ACCESS y 101 GUEST)
|
||||
# Puertos 2 y 3 de eqt-lab-st01-sw01 → APs (trunk, nativa 108 APs, tageadas 100 ACCESS y 101 GUEST)
|
||||
switch_name = "eqt-lab-st01-sw01"
|
||||
port_range = "2"
|
||||
name = "AP"
|
||||
type = "trunk"
|
||||
vlan = 108 # APs - VLAN nativa (untagged)
|
||||
allowed_vlans = "100,101,108" # ACCESS + GUEST + APs
|
||||
access_policy_type = "Open"
|
||||
},
|
||||
{
|
||||
# Puerto 3 de eqt-lab-st01-sw01 → AP (trunk, nativa 108 APs, tageadas 100 ACCESS y 101 GUEST)
|
||||
switch_name = "eqt-lab-st01-sw01"
|
||||
port_range = "3"
|
||||
port_range = "2,3"
|
||||
name = "AP"
|
||||
type = "trunk"
|
||||
vlan = 108 # APs - VLAN nativa (untagged)
|
||||
|
||||
Reference in New Issue
Block a user