Skip to content

Commit 1127dc1

Browse files
committed
Added multicast replication mode: NATIVE andf HEADEND
1 parent 89a789d commit 1127dc1

1 file changed

Lines changed: 46 additions & 13 deletions

File tree

cc_fabric.tf

Lines changed: 46 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -868,13 +868,34 @@ locals {
868868
virtual_networks = [
869869
for vn in try(fabric_site.multicast.virtual_networks, []) : {
870870
virtual_network_name = try(vn.name, null)
871-
ip_pool_name = try(vn.ip_pool_name, null)
872-
ipv4_ssm_ranges = try(vn.ipv4_ssm_ranges, [])
873-
multicast_rps = try(vn.multicast_rps, [])
871+
ip_pool_name = try(vn.ip_pool_name, vn.ipPoolName, null)
872+
ipv4_ssm_ranges = try(vn.ipv4_ssm_ranges, null) != null ? (try(tolist(vn.ipv4_ssm_ranges), [tostring(vn.ipv4_ssm_ranges)])) : []
873+
replication_mode = try(vn.replication_mode, null)
874+
multicast_rps = [
875+
for rp in try(vn.multicast_rps, vn.multicast_RPs, []) : {
876+
name = try(rp.name, null)
877+
ipv4_address = try(rp.ipv4_address, rp.ipv4Address, null)
878+
ipv6_address = try(rp.ipv6_address, rp.ipv6Address, null)
879+
ipv4_asm_ranges = try(rp.ipv4_asm_ranges, null) != null ? try(tolist(rp.ipv4_asm_ranges), [tostring(rp.ipv4_asm_ranges)]) : try(rp.ipv4AsmRanges, null) != null ? [try(rp.ipv4AsmRanges, null)] : null
880+
ipv6_asm_ranges = try(rp.ipv6_asm_ranges, null) != null ? try(tolist(rp.ipv6_asm_ranges), [tostring(rp.ipv6_asm_ranges)]) : try(rp.ipv6AsmRanges, null) != null ? [try(rp.ipv6AsmRanges, null)] : null
881+
is_default_v4_rp = try(rp.is_default_v4_rp, rp.isDefaultV4RP, null)
882+
is_default_v6_rp = try(rp.is_default_v6_rp, rp.isDefaultV6RP, null)
883+
rp_device_location = try(rp.rp_location, rp.rpLocation, null)
884+
network_device_ids = try(rp.rp_location, rp.rpLocation, "") == "FABRIC" ? [
885+
for device_name in try(rp.fabric_rps, rp.FabricRPs, []) :
886+
try(local.device_name_to_id[device_name], null)
887+
] : null
888+
}
889+
]
874890
}
875891
]
876892
} if try(fabric_site.multicast, null) != null
877893
}
894+
fabric_multicast_replication_modes = {
895+
for fabric_site, config in local.fabric_multicast_configs :
896+
fabric_site => try([for vn in config.virtual_networks : vn.replication_mode if vn.replication_mode != null][0], null)
897+
if try([for vn in config.virtual_networks : vn.replication_mode if vn.replication_mode != null][0], null) != null
898+
}
878899
}
879900

880901
resource "catalystcenter_fabric_multicast_virtual_networks" "multicast" {
@@ -893,18 +914,15 @@ resource "catalystcenter_fabric_multicast_virtual_networks" "multicast" {
893914
ip_pool_name = try(vn.ip_pool_name, null)
894915
ipv4_ssm_ranges = try(vn.ipv4_ssm_ranges, [])
895916
multicast_rps = [
896-
for rp in try(vn.multicast_rps, []) : {
897-
ipv4_address = try(rp.rp_location, "") != "FABRIC" ? try(rp.ipv4_address, null) : null
898-
ipv6_address = try(rp.rp_location, "") != "FABRIC" ? try(rp.ipv6_address, null) : null
899-
ipv4_asm_ranges = try(rp.ipv4_asm_ranges, [])
900-
ipv6_asm_ranges = try(rp.ipv6_asm_ranges, [])
917+
for rp in try(vn.multicast_rps, []) : {
918+
ipv4_address = try(rp.ipv4_address, null)
919+
ipv6_address = try(rp.ipv6_address, null)
920+
ipv4_asm_ranges = try(rp.ipv4_asm_ranges, null)
921+
ipv6_asm_ranges = try(rp.ipv6_asm_ranges, null)
901922
is_default_v4_rp = try(rp.is_default_v4_rp, null)
902923
is_default_v6_rp = try(rp.is_default_v6_rp, null)
903-
rp_device_location = try(rp.rp_location, null)
904-
network_device_ids = try(rp.rp_location, "") == "FABRIC" ? [
905-
for device_name in try(rp.fabric_rps, []) :
906-
try(local.device_name_to_id[device_name], local.device_name_to_id[local.name_to_fqdn_mapping[device_name]], null)
907-
] : []
924+
rp_device_location = try(rp.rp_device_location, null)
925+
network_device_ids = try(rp.network_device_ids, null)
908926
}
909927
]
910928
}
@@ -915,6 +933,21 @@ resource "catalystcenter_fabric_multicast_virtual_networks" "multicast" {
915933
]
916934
}
917935

936+
resource "catalystcenter_fabric_multicast_replication_mode" "replication_mode" {
937+
for_each = {
938+
for fabric_site, replication_mode in local.fabric_multicast_replication_modes :
939+
fabric_site => replication_mode
940+
if contains(local.sites, fabric_site)
941+
}
942+
943+
fabric_id = try(catalystcenter_fabric_site.fabric_site[each.key].id, null)
944+
replication_mode = each.value
945+
946+
depends_on = [
947+
catalystcenter_fabric_site.fabric_site, catalystcenter_fabric_multicast_virtual_networks.multicast
948+
]
949+
}
950+
918951
locals {
919952
extranet_policies = flatten([
920953
for policy in try(local.catalyst_center.fabric.extranet_policies, []) : {

0 commit comments

Comments
 (0)