github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/internal/adapters/terraform/nifcloud/computing/instance.go (about)

     1  package computing
     2  
     3  import (
     4  	"github.com/khulnasoft-lab/defsec/pkg/providers/nifcloud/computing"
     5  	"github.com/khulnasoft-lab/defsec/pkg/terraform"
     6  )
     7  
     8  func adaptInstances(modules terraform.Modules) []computing.Instance {
     9  	var instances []computing.Instance
    10  
    11  	for _, resource := range modules.GetResourcesByType("nifcloud_instance") {
    12  		instances = append(instances, adaptInstance(resource))
    13  	}
    14  	return instances
    15  }
    16  
    17  func adaptInstance(resource *terraform.Block) computing.Instance {
    18  	var networkInterfaces []computing.NetworkInterface
    19  	networkInterfaceBlocks := resource.GetBlocks("network_interface")
    20  	for _, networkInterfaceBlock := range networkInterfaceBlocks {
    21  		networkInterfaces = append(
    22  			networkInterfaces,
    23  			computing.NetworkInterface{
    24  				Metadata:  networkInterfaceBlock.GetMetadata(),
    25  				NetworkID: networkInterfaceBlock.GetAttribute("network_id").AsStringValueOrDefault("", resource),
    26  			},
    27  		)
    28  	}
    29  
    30  	return computing.Instance{
    31  		Metadata:          resource.GetMetadata(),
    32  		SecurityGroup:     resource.GetAttribute("security_group").AsStringValueOrDefault("", resource),
    33  		NetworkInterfaces: networkInterfaces,
    34  	}
    35  }