44package vpc
55
66import (
7+ "context"
8+ "fmt"
79 "log"
810
911 "github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex"
12+ "github.com/hashicorp/terraform-plugin-sdk/v2/diag"
1013 "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1114)
1215
@@ -38,7 +41,7 @@ const (
3841
3942func DataSourceIBMISVPCDefaultRoutingTable () * schema.Resource {
4043 return & schema.Resource {
41- Read : dataSourceIBMISVPCDefaultRoutingTableGet ,
44+ ReadContext : dataSourceIBMISVPCDefaultRoutingTableGet ,
4245 Schema : map [string ]* schema.Schema {
4346 isDefaultRTVpcID : {
4447 Type : schema .TypeString ,
@@ -184,34 +187,62 @@ func DataSourceIBMISVPCDefaultRoutingTable() *schema.Resource {
184187 }
185188}
186189
187- func dataSourceIBMISVPCDefaultRoutingTableGet (d * schema.ResourceData , meta interface {}) error {
190+ func dataSourceIBMISVPCDefaultRoutingTableGet (ctx context. Context , d * schema.ResourceData , meta interface {}) diag. Diagnostics {
188191
189192 sess , err := vpcClient (meta )
190193 if err != nil {
191- return err
194+ tfErr := flex .DiscriminatedTerraformErrorf (err , err .Error (), "(Data) ibm_is_vpc_default_routing_table" , "read" , "initialize-client" )
195+ log .Printf ("[DEBUG]\n %s" , tfErr .GetDebugMessage ())
196+ return tfErr .GetDiag ()
192197 }
193198
194199 vpcID := d .Get (isDefaultRTVpcID ).(string )
195200
196201 getVpcDefaultRoutingTableOptions := sess .NewGetVPCDefaultRoutingTableOptions (vpcID )
197- result , detail , err := sess .GetVPCDefaultRoutingTable (getVpcDefaultRoutingTableOptions )
198- if err != nil || result == nil {
199- log .Printf ("Error reading details of VPC Default Routing Table:%s" , detail )
200- return err
202+ result , _ , err := sess .GetVPCDefaultRoutingTableWithContext (ctx , getVpcDefaultRoutingTableOptions )
203+ if err != nil {
204+ tfErr := flex .TerraformErrorf (err , fmt .Sprintf ("GetVPCDefaultRoutingTableWithContext failed: %s" , err .Error ()), "(Data) ibm_is_vpc_default_routing_table" , "read" )
205+ log .Printf ("[DEBUG]\n %s" , tfErr .GetDebugMessage ())
206+ return tfErr .GetDiag ()
207+ }
208+ d .SetId (* result .ID )
209+ if err = d .Set (isDefaultRoutingTableID , * result .ID ); err != nil {
210+ return flex .DiscriminatedTerraformErrorf (err , fmt .Sprintf ("Error setting default_routing_table: %s" , err ), "(Data) ibm_is_vpc_default_routing_table" , "read" , "set-default_routing_table" ).GetDiag ()
211+ }
212+ if err = d .Set (isDefaultRoutingTableHref , * result .Href ); err != nil {
213+ return flex .DiscriminatedTerraformErrorf (err , fmt .Sprintf ("Error setting href: %s" , err ), "(Data) ibm_is_vpc_default_routing_table" , "read" , "set-href" ).GetDiag ()
214+ }
215+ if err = d .Set (isDefaultRoutingTableName , * result .Name ); err != nil {
216+ return flex .DiscriminatedTerraformErrorf (err , fmt .Sprintf ("Error setting name: %s" , err ), "(Data) ibm_is_vpc_default_routing_table" , "read" , "set-name" ).GetDiag ()
217+ }
218+ if err = d .Set (isDefaultRoutingTableCrn , * result .CRN ); err != nil {
219+ return flex .DiscriminatedTerraformErrorf (err , fmt .Sprintf ("Error setting crn: %s" , err ), "(Data) ibm_is_vpc_default_routing_table" , "read" , "set-crn" ).GetDiag ()
220+ }
221+ if err = d .Set (isDefaultRoutingTableResourceType , * result .ResourceType ); err != nil {
222+ return flex .DiscriminatedTerraformErrorf (err , fmt .Sprintf ("Error setting resource_type: %s" , err ), "(Data) ibm_is_vpc_default_routing_table" , "read" , "set-resource_type" ).GetDiag ()
201223 }
202- d .Set (isDefaultRoutingTableID , * result .ID )
203- d .Set (isDefaultRoutingTableHref , * result .Href )
204- d .Set (isDefaultRoutingTableName , * result .Name )
205- d .Set (isDefaultRoutingTableCrn , * result .CRN )
206- d .Set (isDefaultRoutingTableResourceType , * result .ResourceType )
207224 createdAt := * result .CreatedAt
208- d .Set (isDefaultRoutingTableCreatedAt , createdAt .String ())
209- d .Set (isDefaultRoutingTableLifecycleState , * result .LifecycleState )
210- d .Set (isDefaultRTDirectLinkIngress , * result .RouteDirectLinkIngress )
211- d .Set (isDefaultRTInternetIngress , * result .RouteInternetIngress )
212- d .Set (isDefaultRTTransitGatewayIngress , * result .RouteTransitGatewayIngress )
213- d .Set (isDefaultRTVPCZoneIngress , * result .RouteVPCZoneIngress )
214- d .Set (isDefaultRTDefault , * result .IsDefault )
225+ if err = d .Set (isDefaultRoutingTableCreatedAt , createdAt .String ()); err != nil {
226+ return flex .DiscriminatedTerraformErrorf (err , fmt .Sprintf ("Error setting created_at: %s" , err ), "(Data) ibm_is_vpc_default_routing_table" , "read" , "set-created_at" ).GetDiag ()
227+ }
228+ if err = d .Set (isDefaultRoutingTableLifecycleState , * result .LifecycleState ); err != nil {
229+ return flex .DiscriminatedTerraformErrorf (err , fmt .Sprintf ("Error setting lifecycle_state: %s" , err ), "(Data) ibm_is_vpc_default_routing_table" , "read" , "set-lifecycle_state" ).GetDiag ()
230+ }
231+ if err = d .Set (isDefaultRTDirectLinkIngress , * result .RouteDirectLinkIngress ); err != nil {
232+ return flex .DiscriminatedTerraformErrorf (err , fmt .Sprintf ("Error setting route_direct_link_ingress: %s" , err ), "(Data) ibm_is_vpc_default_routing_table" , "read" , "set-route_direct_link_ingress" ).GetDiag ()
233+ }
234+ if err = d .Set (isDefaultRTInternetIngress , * result .RouteInternetIngress ); err != nil {
235+ return flex .DiscriminatedTerraformErrorf (err , fmt .Sprintf ("Error setting route_internet_ingress: %s" , err ), "(Data) ibm_is_vpc_default_routing_table" , "read" , "set-route_internet_ingress" ).GetDiag ()
236+ }
237+ if err = d .Set (isDefaultRTTransitGatewayIngress , * result .RouteTransitGatewayIngress ); err != nil {
238+ return flex .DiscriminatedTerraformErrorf (err , fmt .Sprintf ("Error setting route_transit_gateway_ingress: %s" , err ), "(Data) ibm_is_vpc_default_routing_table" , "read" , "set-route_transit_gateway_ingress" ).GetDiag ()
239+ }
240+ if err = d .Set (isDefaultRTVPCZoneIngress , * result .RouteVPCZoneIngress ); err != nil {
241+ return flex .DiscriminatedTerraformErrorf (err , fmt .Sprintf ("Error setting route_vpc_zone_ingress: %s" , err ), "(Data) ibm_is_vpc_default_routing_table" , "read" , "set-route_vpc_zone_ingress" ).GetDiag ()
242+ }
243+ if err = d .Set (isDefaultRTDefault , * result .IsDefault ); err != nil {
244+ return flex .DiscriminatedTerraformErrorf (err , fmt .Sprintf ("Error setting is_default: %s" , err ), "(Data) ibm_is_vpc_default_routing_table" , "read" , "set-is_default" ).GetDiag ()
245+ }
215246 subnetsInfo := make ([]map [string ]interface {}, 0 )
216247 for _ , subnet := range result .Subnets {
217248 if subnet .Name != nil && subnet .ID != nil {
@@ -222,7 +253,9 @@ func dataSourceIBMISVPCDefaultRoutingTableGet(d *schema.ResourceData, meta inter
222253 subnetsInfo = append (subnetsInfo , l )
223254 }
224255 }
225- d .Set (isDefaultRoutingTableSubnetsList , subnetsInfo )
256+ if err = d .Set (isDefaultRoutingTableSubnetsList , subnetsInfo ); err != nil {
257+ return flex .DiscriminatedTerraformErrorf (err , fmt .Sprintf ("Error setting subnets: %s" , err ), "(Data) ibm_is_vpc_default_routing_table" , "read" , "set-subnets" ).GetDiag ()
258+ }
226259 routesInfo := make ([]map [string ]interface {}, 0 )
227260 for _ , route := range result .Routes {
228261 if route .Name != nil && route .ID != nil {
@@ -233,28 +266,35 @@ func dataSourceIBMISVPCDefaultRoutingTableGet(d *schema.ResourceData, meta inter
233266 routesInfo = append (routesInfo , k )
234267 }
235268 }
236- d .Set (isDefaultRoutingTableRoutesList , routesInfo )
269+ if err = d .Set (isDefaultRoutingTableRoutesList , routesInfo ); err != nil {
270+ return flex .DiscriminatedTerraformErrorf (err , fmt .Sprintf ("Error setting routes: %s" , err ), "(Data) ibm_is_vpc_default_routing_table" , "read" , "set-routes" ).GetDiag ()
271+ }
237272 resourceGroupList := []map [string ]interface {}{}
238273 if result .ResourceGroup != nil {
239274 resourceGroupMap := routingTableResourceGroupToMap (* result .ResourceGroup )
240275 resourceGroupList = append (resourceGroupList , resourceGroupMap )
241276 }
242- d .Set (isDefaultRTResourceGroup , resourceGroupList )
243- d .Set (isDefaultRTVpcID , vpcID )
244- d .SetId (* result .ID )
245-
277+ if err = d .Set (isDefaultRTResourceGroup , resourceGroupList ); err != nil {
278+ return flex .DiscriminatedTerraformErrorf (err , fmt .Sprintf ("Error setting resource_group: %s" , err ), "(Data) ibm_is_vpc_default_routing_table" , "read" , "set-resource_group" ).GetDiag ()
279+ }
280+ if err = d .Set (isDefaultRTVpcID , vpcID ); err != nil {
281+ return flex .DiscriminatedTerraformErrorf (err , fmt .Sprintf ("Error setting vpc: %s" , err ), "(Data) ibm_is_vpc_default_routing_table" , "read" , "set-vpc" ).GetDiag ()
282+ }
246283 tags , err := flex .GetGlobalTagsUsingCRN (meta , * result .CRN , "" , isDefaultRTUserTagType )
247284 if err != nil {
248285 log .Printf (
249286 "An error occured during reading of default routing table (%s) tags : %s" , d .Id (), err )
250287 }
251- d .Set (isDefaultRTTags , tags )
252-
288+ if err = d .Set (isDefaultRTTags , tags ); err != nil {
289+ return flex .DiscriminatedTerraformErrorf (err , fmt .Sprintf ("Error setting tags: %s" , err ), "(Data) ibm_is_vpc_default_routing_table" , "read" , "set-tags" ).GetDiag ()
290+ }
253291 accesstags , err := flex .GetGlobalTagsUsingCRN (meta , * result .CRN , "" , isDefaultRTAccessTagType )
254292 if err != nil {
255293 log .Printf (
256294 "An error occured during reading of default routing table (%s) access tags: %s" , d .Id (), err )
257295 }
258- d .Set (isDefaultRTAccessTags , accesstags )
296+ if err = d .Set (isDefaultRTAccessTags , accesstags ); err != nil {
297+ return flex .DiscriminatedTerraformErrorf (err , fmt .Sprintf ("Error setting access_tags: %s" , err ), "(Data) ibm_is_vpc_default_routing_table" , "read" , "set-access_tags" ).GetDiag ()
298+ }
259299 return nil
260300}
0 commit comments