mirror of
https://github.com/letic/terraform-provider-google.git
synced 2024-06-29 06:42:36 +00:00
Improve error handling for data sources not found (#1077)
This commit is contained in:
parent
65dd41826d
commit
509614e404
|
@ -5,7 +5,6 @@ import (
|
|||
|
||||
"github.com/hashicorp/terraform/helper/schema"
|
||||
resourceManagerV2Beta1 "google.golang.org/api/cloudresourcemanager/v2beta1"
|
||||
"google.golang.org/api/googleapi"
|
||||
)
|
||||
|
||||
func dataSourceGoogleActiveFolder() *schema.Resource {
|
||||
|
@ -41,11 +40,7 @@ func dataSourceGoogleActiveFolderRead(d *schema.ResourceData, meta interface{})
|
|||
}
|
||||
searchResponse, err := config.clientResourceManagerV2Beta1.Folders.Search(searchRequest).Do()
|
||||
if err != nil {
|
||||
if gerr, ok := err.(*googleapi.Error); ok && gerr.Code == 404 {
|
||||
return fmt.Errorf("Folder Not Found : %s", d.Get("name"))
|
||||
}
|
||||
|
||||
return fmt.Errorf("Error reading folders: %s", err)
|
||||
return handleNotFoundError(err, d, fmt.Sprintf("Folder Not Found : %s", displayName))
|
||||
}
|
||||
|
||||
folders := searchResponse.Folders
|
||||
|
|
|
@ -2,13 +2,11 @@ package google
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
"github.com/hashicorp/terraform/helper/schema"
|
||||
|
||||
"google.golang.org/api/cloudbilling/v1"
|
||||
"google.golang.org/api/googleapi"
|
||||
)
|
||||
|
||||
func dataSourceGoogleBillingAccount() *schema.Resource {
|
||||
|
@ -55,11 +53,7 @@ func dataSourceBillingAccountRead(d *schema.ResourceData, meta interface{}) erro
|
|||
if v, ok := d.GetOk("billing_account"); ok {
|
||||
resp, err := config.clientBilling.BillingAccounts.Get(canonicalBillingAccountName(v.(string))).Do()
|
||||
if err != nil {
|
||||
if gerr, ok := err.(*googleapi.Error); ok && gerr.Code == http.StatusNotFound {
|
||||
return fmt.Errorf("Billing account not found: %s", v)
|
||||
}
|
||||
|
||||
return fmt.Errorf("Error reading billing account: %s", err)
|
||||
return handleNotFoundError(err, d, fmt.Sprintf("Billing Account Not Found : %s", v))
|
||||
}
|
||||
|
||||
if openOk && resp.Open != open.(bool) {
|
||||
|
|
|
@ -5,7 +5,6 @@ import (
|
|||
"strconv"
|
||||
|
||||
"github.com/hashicorp/terraform/helper/schema"
|
||||
"google.golang.org/api/googleapi"
|
||||
)
|
||||
|
||||
func dataSourceGoogleComputeAddress() *schema.Resource {
|
||||
|
@ -59,17 +58,11 @@ func dataSourceGoogleComputeAddressRead(d *schema.ResourceData, meta interface{}
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
name := d.Get("name").(string)
|
||||
|
||||
address, err := config.clientCompute.Addresses.Get(
|
||||
project, region, d.Get("name").(string)).Do()
|
||||
address, err := config.clientCompute.Addresses.Get(project, region, name).Do()
|
||||
if err != nil {
|
||||
if gerr, ok := err.(*googleapi.Error); ok && gerr.Code == 404 {
|
||||
// The resource doesn't exist anymore
|
||||
|
||||
return fmt.Errorf("Address Not Found")
|
||||
}
|
||||
|
||||
return fmt.Errorf("Error reading Address: %s", err)
|
||||
return handleNotFoundError(err, d, fmt.Sprintf("Address Not Found : %s", name))
|
||||
}
|
||||
|
||||
d.Set("address", address.Address)
|
||||
|
|
|
@ -5,7 +5,6 @@ import (
|
|||
"strconv"
|
||||
|
||||
"github.com/hashicorp/terraform/helper/schema"
|
||||
"google.golang.org/api/googleapi"
|
||||
)
|
||||
|
||||
func dataSourceGoogleComputeGlobalAddress() *schema.Resource {
|
||||
|
@ -49,17 +48,10 @@ func dataSourceGoogleComputeGlobalAddressRead(d *schema.ResourceData, meta inter
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
address, err := config.clientCompute.GlobalAddresses.Get(
|
||||
project, d.Get("name").(string)).Do()
|
||||
name := d.Get("name").(string)
|
||||
address, err := config.clientCompute.GlobalAddresses.Get(project, name).Do()
|
||||
if err != nil {
|
||||
if gerr, ok := err.(*googleapi.Error); ok && gerr.Code == 404 {
|
||||
// The resource doesn't exist anymore
|
||||
|
||||
return fmt.Errorf("Global Address Not Found")
|
||||
}
|
||||
|
||||
return fmt.Errorf("Error reading Global Address: %s", err)
|
||||
return handleNotFoundError(err, d, fmt.Sprintf("Global Address Not Found : %s", name))
|
||||
}
|
||||
|
||||
d.Set("address", address.Address)
|
||||
|
|
|
@ -4,7 +4,6 @@ import (
|
|||
"fmt"
|
||||
|
||||
"github.com/hashicorp/terraform/helper/schema"
|
||||
"google.golang.org/api/googleapi"
|
||||
)
|
||||
|
||||
func dataSourceGoogleComputeNetwork() *schema.Resource {
|
||||
|
@ -53,16 +52,10 @@ func dataSourceGoogleComputeNetworkRead(d *schema.ResourceData, meta interface{}
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
network, err := config.clientCompute.Networks.Get(
|
||||
project, d.Get("name").(string)).Do()
|
||||
name := d.Get("name").(string)
|
||||
network, err := config.clientCompute.Networks.Get(project, name).Do()
|
||||
if err != nil {
|
||||
if gerr, ok := err.(*googleapi.Error); ok && gerr.Code == 404 {
|
||||
// The resource doesn't exist anymore
|
||||
|
||||
return fmt.Errorf("Network Not Found : %s", d.Get("name"))
|
||||
}
|
||||
|
||||
return fmt.Errorf("Error reading network: %s", err)
|
||||
return handleNotFoundError(err, d, fmt.Sprintf("Network Not Found : %s", name))
|
||||
}
|
||||
d.Set("gateway_ipv4", network.GatewayIPv4)
|
||||
d.Set("self_link", network.SelfLink)
|
||||
|
|
|
@ -4,7 +4,6 @@ import (
|
|||
"fmt"
|
||||
|
||||
"github.com/hashicorp/terraform/helper/schema"
|
||||
"google.golang.org/api/googleapi"
|
||||
)
|
||||
|
||||
func dataSourceGoogleComputeSubnetwork() *schema.Resource {
|
||||
|
@ -83,17 +82,11 @@ func dataSourceGoogleComputeSubnetworkRead(d *schema.ResourceData, meta interfac
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
name := d.Get("name").(string)
|
||||
|
||||
subnetwork, err := config.clientCompute.Subnetworks.Get(
|
||||
project, region, d.Get("name").(string)).Do()
|
||||
subnetwork, err := config.clientCompute.Subnetworks.Get(project, region, name).Do()
|
||||
if err != nil {
|
||||
if gerr, ok := err.(*googleapi.Error); ok && gerr.Code == 404 {
|
||||
// The resource doesn't exist anymore
|
||||
|
||||
return fmt.Errorf("Subnetwork Not Found")
|
||||
}
|
||||
|
||||
return fmt.Errorf("Error reading Subnetwork: %s", err)
|
||||
return handleNotFoundError(err, d, fmt.Sprintf("Subnetwork Not Found : %s", name))
|
||||
}
|
||||
|
||||
d.Set("ip_cidr_range", subnetwork.IpCidrRange)
|
||||
|
|
|
@ -2,13 +2,11 @@ package google
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
"github.com/hashicorp/terraform/helper/schema"
|
||||
|
||||
"google.golang.org/api/cloudresourcemanager/v1"
|
||||
"google.golang.org/api/googleapi"
|
||||
)
|
||||
|
||||
func dataSourceGoogleOrganization() *schema.Resource {
|
||||
|
@ -70,11 +68,7 @@ func dataSourceOrganizationRead(d *schema.ResourceData, meta interface{}) error
|
|||
} else if v, ok := d.GetOk("organization"); ok {
|
||||
resp, err := config.clientResourceManager.Organizations.Get(canonicalOrganizationName(v.(string))).Do()
|
||||
if err != nil {
|
||||
if gerr, ok := err.(*googleapi.Error); ok && gerr.Code == http.StatusNotFound {
|
||||
return fmt.Errorf("Organization not found: %s", v)
|
||||
}
|
||||
|
||||
return fmt.Errorf("Error reading organization: %s", err)
|
||||
return handleNotFoundError(err, d, fmt.Sprintf("Organization Not Found : %s", v))
|
||||
}
|
||||
|
||||
organization = resp
|
||||
|
|
Loading…
Reference in New Issue
Block a user