Skip to content

Commit 50d0900

Browse files
authored
enhancement: improved error handling for endpoint gateways targets (IBM-Cloud#6185)
1 parent 5318e44 commit 50d0900

File tree

1 file changed

+20
-9
lines changed

1 file changed

+20
-9
lines changed

ibm/service/vpc/data_source_ibm_is_endpoint_gateway_targets.go

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414

1515
"github.com/IBM-Cloud/bluemix-go/api/globalsearch/globalsearchv2"
1616
"github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns"
17+
"github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex"
1718
"github.com/IBM/platform-services-go-sdk/catalogmanagementv1"
1819
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
1920
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
@@ -87,12 +88,16 @@ func DataSourceIBMISEndpointGatewayTargets() *schema.Resource {
8788
func dataSourceIBMISEndpointGatewayTargetsRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
8889
bmxSess, err := meta.(conns.ClientSession).BluemixSession()
8990
if err != nil {
90-
return diag.FromErr(err)
91+
tfErr := flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_is_endpoint_gateway_targets", "read", "initialize-bluemix-client")
92+
log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage())
93+
return tfErr.GetDiag()
9194
}
9295
region := bmxSess.Config.Region
9396
catalogManagementClient, err := meta.(conns.ClientSession).CatalogManagementV1()
9497
if err != nil {
95-
return diag.FromErr(err)
98+
tfErr := flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_is_endpoint_gateway_targets", "read", "initialize-catalog-client")
99+
log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage())
100+
return tfErr.GetDiag()
96101
}
97102
resourceInfo := make([]map[string]interface{}, 0)
98103
getCatalogOptions := &catalogmanagementv1.SearchObjectsOptions{}
@@ -108,10 +113,11 @@ func dataSourceIBMISEndpointGatewayTargetsRead(context context.Context, d *schem
108113
if start != int64(0) {
109114
getCatalogOptions.Offset = &start
110115
}
111-
search, response, err := catalogManagementClient.SearchObjectsWithContext(context, getCatalogOptions)
116+
search, _, err := catalogManagementClient.SearchObjectsWithContext(context, getCatalogOptions)
112117
if err != nil {
113-
log.Printf("[DEBUG] GetCatalogWithContext failed %s\n%s", err, response)
114-
return diag.FromErr(err)
118+
tfErr := flex.TerraformErrorf(err, fmt.Sprintf("SearchObjectsWithContext failed: %s", err.Error()), "(Data) ibm_is_endpoint_gateway_targets", "read")
119+
log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage())
120+
return tfErr.GetDiag()
115121
}
116122
next := search.Next
117123
if next == nil {
@@ -171,12 +177,15 @@ func dataSourceIBMISEndpointGatewayTargetsRead(context context.Context, d *schem
171177
}
172178
globalSearchClient, err := meta.(conns.ClientSession).GlobalSearchAPI()
173179
if err != nil {
174-
return diag.FromErr(err)
180+
tfErr := flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_is_endpoint_gateway_targets", "read", "initialize-globalsearch-client")
181+
log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage())
182+
return tfErr.GetDiag()
175183
}
176184
searchResult, err := globalSearchClient.Searches().PostQuery(getSearchOptions)
177185
if err != nil {
178-
log.Printf("[DEBUG] PostQuery on globalSearchApi for query string %s failed %s", queryString, err)
179-
return diag.FromErr(err)
186+
tfErr := flex.TerraformErrorf(err, fmt.Sprintf("PostQuery failed: %s", err.Error()), "(Data) ibm_is_endpoint_gateway_targets", "read")
187+
log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage())
188+
return tfErr.GetDiag()
180189
}
181190
searchItems := searchResult.Items
182191
for _, item := range searchItems {
@@ -188,7 +197,9 @@ func dataSourceIBMISEndpointGatewayTargetsRead(context context.Context, d *schem
188197

189198
}
190199

191-
d.Set(isVPEResources, resourceInfo)
200+
if err = d.Set(isVPEResources, resourceInfo); err != nil {
201+
return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting resources: %s", err), "(Data) ibm_is_endpoint_gateway_targets", "read", "set-resources").GetDiag()
202+
}
192203
d.SetId(dataSourceIBMISEndpointGatewayTargetsId(d))
193204
return nil
194205
}

0 commit comments

Comments
 (0)