@@ -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
880901resource "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+
918951locals {
919952 extranet_policies = flatten ([
920953 for policy in try (local. catalyst_center . fabric . extranet_policies , []) : {
0 commit comments