github.com/vtorhonen/terraform@v0.9.0-beta2.0.20170307220345-5d894e4ffda7/terraform/transform_import_provider.go (about) 1 package terraform 2 3 import ( 4 "fmt" 5 "strings" 6 ) 7 8 // ImportProviderValidateTransformer is a GraphTransformer that goes through 9 // the providers in the graph and validates that they only depend on variables. 10 type ImportProviderValidateTransformer struct{} 11 12 func (t *ImportProviderValidateTransformer) Transform(g *Graph) error { 13 for _, v := range g.Vertices() { 14 // We only care about providers 15 pv, ok := v.(GraphNodeProvider) 16 if !ok { 17 continue 18 } 19 20 // We only care about providers that reference things 21 rn, ok := pv.(GraphNodeReferencer) 22 if !ok { 23 continue 24 } 25 26 for _, ref := range rn.References() { 27 if !strings.HasPrefix(ref, "var.") { 28 return fmt.Errorf( 29 "Provider %q depends on non-var %q. Providers for import can currently\n"+ 30 "only depend on variables or must be hardcoded. You can stop import\n"+ 31 "from loading configurations by specifying `-config=\"\"`.", 32 pv.ProviderName(), ref) 33 } 34 } 35 } 36 37 return nil 38 }