github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/internal/adapters/terraform/azure/datalake/adapt.go (about)

     1  package datalake
     2  
     3  import (
     4  	"github.com/khulnasoft-lab/defsec/pkg/providers/azure/datalake"
     5  	"github.com/khulnasoft-lab/defsec/pkg/terraform"
     6  	"github.com/khulnasoft-lab/defsec/pkg/types"
     7  )
     8  
     9  func Adapt(modules terraform.Modules) datalake.DataLake {
    10  	return datalake.DataLake{
    11  		Stores: adaptStores(modules),
    12  	}
    13  }
    14  
    15  func adaptStores(modules terraform.Modules) []datalake.Store {
    16  	var stores []datalake.Store
    17  
    18  	for _, module := range modules {
    19  		for _, resource := range module.GetResourcesByType("azurerm_data_lake_store") {
    20  			stores = append(stores, adaptStore(resource))
    21  		}
    22  	}
    23  	return stores
    24  }
    25  
    26  func adaptStore(resource *terraform.Block) datalake.Store {
    27  	store := datalake.Store{
    28  		Metadata:         resource.GetMetadata(),
    29  		EnableEncryption: types.BoolDefault(true, resource.GetMetadata()),
    30  	}
    31  	encryptionStateAttr := resource.GetAttribute("encryption_state")
    32  	if encryptionStateAttr.Equals("Disabled") {
    33  		store.EnableEncryption = types.Bool(false, encryptionStateAttr.GetMetadata())
    34  	} else if encryptionStateAttr.Equals("Enabled") {
    35  		store.EnableEncryption = types.Bool(true, encryptionStateAttr.GetMetadata())
    36  	}
    37  	return store
    38  }