in resource/context.go [87:117]
func (c *Context) InitFile(content string) error {
file, diags := hclwrite.ParseConfig([]byte(content), "", hcl.InitialPos)
if diags.HasErrors() {
logrus.Errorf("failed to parse input:\n%v", content)
return diags
}
var locationVarBlock, terraformBlock *hclwrite.Block
for _, block := range file.Body().Blocks() {
switch block.Type() {
case "variable":
switch block.Labels()[0] {
case "location":
locationVarBlock = block
case "resource_name":
block.Body().SetAttributeValue("default", cty.StringVal(fmt.Sprintf("acctest%04d", R.Intn(10000))))
}
case "terraform":
terraformBlock = block
}
}
if terraformBlock == nil {
logrus.Warnf("terraform block not found in the input.")
}
if locationVarBlock == nil {
logrus.Warnf("location variable block not found in the input.")
}
c.File = file
c.terraformBlock = terraformBlock
c.locationVarBlock = locationVarBlock
return nil
}