// If the state for that state key should come from a backend,
// obtain and use that
ift.BackendFactory==nil{
returnfmt.Errorf("error retrieving state for state key %q from backend: nil BackendFactory. This is a bug in Terraform and should be reported.",key)
}
f:=t.BackendFactory(bc.Backend.Type)
iff==nil{
returnfmt.Errorf("error retrieving state for state key %q from backend: No init function found for backend type %q. This is a bug in Terraform and should be reported.",key,bc.Backend.Type)
}
be,err:=getBackendInstance(key,bc.Backend,f)
iferr!=nil{
returnerr
}
stmgr,err:=be.StateMgr(backend.DefaultStateName)// We only allow use of the default workspace
iferr!=nil{
returnfmt.Errorf("error retrieving state for state key %q from backend: error retrieving state manager: %w",key,err)
}
log.Printf("[TRACE] TestConfigTransformer.Transform: set initial state for state key %q using backend of type %T declared at %s",key,be,bc.Backend.DeclRange)
state=&TestFileState{
Run:nil,
State:stmgr.State(),
}
}else{
// Else, set an empty in-memory state for the state key
log.Printf("[TRACE] TestConfigTransformer.Transform: set initial state for state key %q as empty state",key)