github.com/IBM-Cloud/terraform@v0.6.4-0.20170726051544-8872b87621df/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  }