github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/internal/adapters/terraform/nifcloud/network/elastic_load_balancer.go (about) 1 package network 2 3 import ( 4 "github.com/khulnasoft-lab/defsec/pkg/providers/nifcloud/network" 5 "github.com/khulnasoft-lab/defsec/pkg/terraform" 6 ) 7 8 func adaptElasticLoadBalancers(modules terraform.Modules) []network.ElasticLoadBalancer { 9 var elasticLoadBalancers []network.ElasticLoadBalancer 10 11 for _, resource := range modules.GetResourcesByType("nifcloud_elb") { 12 elasticLoadBalancers = append(elasticLoadBalancers, adaptElasticLoadBalancer(resource, modules)) 13 } 14 return elasticLoadBalancers 15 } 16 17 func adaptElasticLoadBalancer(resource *terraform.Block, modules terraform.Modules) network.ElasticLoadBalancer { 18 var listeners []network.ElasticLoadBalancerListener 19 var networkInterfaces []network.NetworkInterface 20 21 networkInterfaceBlocks := resource.GetBlocks("network_interface") 22 for _, networkInterfaceBlock := range networkInterfaceBlocks { 23 networkInterfaces = append( 24 networkInterfaces, 25 network.NetworkInterface{ 26 Metadata: networkInterfaceBlock.GetMetadata(), 27 NetworkID: networkInterfaceBlock.GetAttribute("network_id").AsStringValueOrDefault("", resource), 28 IsVipNetwork: networkInterfaceBlock.GetAttribute("is_vip_network").AsBoolValueOrDefault(true, resource), 29 }, 30 ) 31 } 32 33 listeners = append(listeners, adaptElasticLoadBalancerListener(resource)) 34 for _, listenerBlock := range modules.GetReferencingResources(resource, "nifcloud_elb_listener", "elb_id") { 35 listeners = append(listeners, adaptElasticLoadBalancerListener(listenerBlock)) 36 } 37 38 return network.ElasticLoadBalancer{ 39 Metadata: resource.GetMetadata(), 40 NetworkInterfaces: networkInterfaces, 41 Listeners: listeners, 42 } 43 } 44 45 func adaptElasticLoadBalancerListener(resource *terraform.Block) network.ElasticLoadBalancerListener { 46 return network.ElasticLoadBalancerListener{ 47 Metadata: resource.GetMetadata(), 48 Protocol: resource.GetAttribute("protocol").AsStringValueOrDefault("", resource), 49 } 50 }