github.com/koding/terraform@v0.6.4-0.20170608090606-5d7e0339779d/builtin/providers/azurerm/express_route_circuit.go (about) 1 package azurerm 2 3 import ( 4 "fmt" 5 "net/http" 6 7 "github.com/Azure/azure-sdk-for-go/arm/network" 8 "github.com/hashicorp/errwrap" 9 ) 10 11 func extractResourceGroupAndErcName(resourceId string) (resourceGroup string, name string, err error) { 12 id, err := parseAzureResourceID(resourceId) 13 14 if err != nil { 15 return "", "", err 16 } 17 resourceGroup = id.ResourceGroup 18 name = id.Path["expressRouteCircuits"] 19 20 return 21 } 22 23 func retrieveErcByResourceId(resourceId string, meta interface{}) (erc *network.ExpressRouteCircuit, resourceGroup string, e error) { 24 ercClient := meta.(*ArmClient).expressRouteCircuitClient 25 26 resGroup, name, err := extractResourceGroupAndErcName(resourceId) 27 if err != nil { 28 return nil, "", errwrap.Wrapf("Error Parsing Azure Resource ID - {{err}}", err) 29 } 30 31 resp, err := ercClient.Get(resGroup, name) 32 if err != nil { 33 if resp.StatusCode == http.StatusNotFound { 34 return nil, "", nil 35 } 36 return nil, "", errwrap.Wrapf(fmt.Sprintf("Error making Read request on Express Route Circuit %s: {{err}}", name), err) 37 } 38 39 return &resp, resGroup, nil 40 }