@@ -656,3 +656,44 @@ resource "catalystcenter_extranet_policy" "extranet_policy" {
656656
657657 depends_on = [catalystcenter_fabric_site . fabric_site , catalystcenter_fabric_l3_virtual_network . l3_vn , catalystcenter_virtual_network_to_fabric_site . l3_vn_to_fabric_site , catalystcenter_fabric_l3_virtual_network . global_l3_vn ]
658658}
659+
660+ locals {
661+ extranet_policies = flatten ([
662+ for policy in try (local. catalyst_center . fabric . extranet_policies , []) : {
663+ name = try (policy. name , null )
664+ provider_virtual_network_name = try (policy. provider_VN , null )
665+ subscriber_virtual_network_names = try (policy. subscriber_VNs , [])
666+ fabric_sites = try (policy. fabric_sites , [])
667+ policy_key = policy . name
668+ fabric_ids = length (try (policy. fabric_sites , [])) > 0 ? [
669+ for site in try (policy. fabric_sites , []) :
670+ try (catalystcenter_fabric_site. fabric_site [site ]. id , null )
671+ if contains (local. sites , site)
672+ ] : (
673+ var. manage_global_settings ? null : flatten ([
674+ for fabric_site in try (local. catalyst_center . fabric . fabric_sites , []) :
675+ contains (local. sites , fabric_site. name ) ? try (catalystcenter_fabric_site. fabric_site [fabric_site . name ]. id , null ) : null
676+ ])
677+ )
678+ }
679+ ])
680+ }
681+
682+ resource "catalystcenter_extranet_policy" "extranet_policy" {
683+ for_each = {
684+ for policy in local . extranet_policies : policy . policy_key => policy
685+ if try (policy. name , null ) != null &&
686+ try (policy. provider_virtual_network_name , null ) != null &&
687+ length (try (policy. subscriber_virtual_network_names , [])) > 0 &&
688+ (var. manage_global_settings ||
689+ length(try(policy. fabric_sites , [])) = = 0 ||
690+ length (try (policy. fabric_ids , [])) > 0 )
691+ }
692+
693+ extranet_policy_name = each. value . name
694+ provider_virtual_network_name = each. value . provider_virtual_network_name
695+ subscriber_virtual_network_names = toset (each. value . subscriber_virtual_network_names )
696+ fabric_ids = try (each. value . fabric_ids , null ) != null ? toset (compact (each. value . fabric_ids )) : null
697+
698+ depends_on = [catalystcenter_fabric_site . fabric_site , catalystcenter_fabric_l3_virtual_network . l3_vn , catalystcenter_virtual_network_to_fabric_site . l3_vn_to_fabric_site , catalystcenter_fabric_l3_virtual_network . global_l3_vn ]
699+ }
0 commit comments