Skip to content

Commit 690fcb4

Browse files
authored
Refactor terraform errors to use new toolchain in nag and ni data sources (IBM-Cloud#6525)
* Update error handling on nag data source * Update error handling on ni data source
1 parent b0e0954 commit 690fcb4

File tree

4 files changed

+48
-30
lines changed

4 files changed

+48
-30
lines changed

ibm/service/power/data_source_ibm_pi_network_address_group.go

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@ package power
55

66
import (
77
"context"
8+
"fmt"
89
"log"
910

10-
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
11-
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
12-
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
13-
1411
"github.com/IBM-Cloud/power-go-client/clients/instance"
1512
"github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns"
1613
"github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex"
14+
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
15+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
16+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
1717
)
1818

1919
func DataSourceIBMPINetworkAddressGroup() *schema.Resource {
@@ -74,18 +74,22 @@ func DataSourceIBMPINetworkAddressGroup() *schema.Resource {
7474
}
7575
}
7676

77-
func dataSourceIBMPINetworkAddressGroupRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
77+
func dataSourceIBMPINetworkAddressGroupRead(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
7878
sess, err := meta.(conns.ClientSession).IBMPISession()
7979
if err != nil {
80-
return diag.FromErr(err)
80+
tfErr := flex.TerraformErrorf(err, fmt.Sprintf("IBMPISession failed: %s", err.Error()), "(Data) ibm_pi_network_address_group", "read")
81+
log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage())
82+
return tfErr.GetDiag()
8183
}
8284

8385
cloudInstanceID := d.Get(Arg_CloudInstanceID).(string)
8486
nagID := d.Get(Arg_NetworkAddressGroupID).(string)
8587
nagC := instance.NewIBMPINetworkAddressGroupClient(ctx, sess, cloudInstanceID)
8688
networkAddressGroup, err := nagC.Get(nagID)
8789
if err != nil {
88-
return diag.FromErr(err)
90+
tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Get failed: %s", err.Error()), "(Data) ibm_pi_network_address_group", "read")
91+
log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage())
92+
return tfErr.GetDiag()
8993
}
9094

9195
d.SetId(*networkAddressGroup.ID)
@@ -98,7 +102,7 @@ func dataSourceIBMPINetworkAddressGroupRead(ctx context.Context, d *schema.Resou
98102
d.Set(Attr_UserTags, userTags)
99103
}
100104

101-
members := []map[string]interface{}{}
105+
members := []map[string]any{}
102106
if len(networkAddressGroup.Members) > 0 {
103107
for _, mbr := range networkAddressGroup.Members {
104108
member := memberToMap(mbr)

ibm/service/power/data_source_ibm_pi_network_address_groups.go

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ package power
55

66
import (
77
"context"
8+
"fmt"
89
"log"
910

1011
"github.com/IBM-Cloud/power-go-client/clients/instance"
@@ -85,23 +86,27 @@ func DataSourceIBMPINetworkAddressGroups() *schema.Resource {
8586
}
8687
}
8788

88-
func dataSourceIBMPINetworkAddressGroupsRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
89+
func dataSourceIBMPINetworkAddressGroupsRead(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
8990
sess, err := meta.(conns.ClientSession).IBMPISession()
9091
if err != nil {
91-
return diag.FromErr(err)
92+
tfErr := flex.TerraformErrorf(err, fmt.Sprintf("IBMPISession failed: %s", err.Error()), "(Data) ibm_pi_network_address_groups", "read")
93+
log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage())
94+
return tfErr.GetDiag()
9295
}
9396

9497
cloudInstanceID := d.Get(Arg_CloudInstanceID).(string)
9598
nagC := instance.NewIBMPINetworkAddressGroupClient(ctx, sess, cloudInstanceID)
9699
networkAddressGroups, err := nagC.GetAll()
97100
if err != nil {
98-
return diag.FromErr(err)
101+
tfErr := flex.TerraformErrorf(err, fmt.Sprintf("GetAll failed: %s", err.Error()), "(Data) ibm_pi_network_address_groups", "read")
102+
log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage())
103+
return tfErr.GetDiag()
99104
}
100105

101106
var genID, _ = uuid.GenerateUUID()
102107
d.SetId(genID)
103108

104-
nags := []map[string]interface{}{}
109+
nags := []map[string]any{}
105110
if len(networkAddressGroups.NetworkAddressGroups) > 0 {
106111
for _, nag := range networkAddressGroups.NetworkAddressGroups {
107112
modelMap := networkAddressGroupsNetworkAddressGroupToMap(nag, meta)
@@ -113,8 +118,8 @@ func dataSourceIBMPINetworkAddressGroupsRead(ctx context.Context, d *schema.Reso
113118
return nil
114119
}
115120

116-
func networkAddressGroupsNetworkAddressGroupToMap(networkAddressGroup *models.NetworkAddressGroup, meta interface{}) map[string]interface{} {
117-
nag := make(map[string]interface{})
121+
func networkAddressGroupsNetworkAddressGroupToMap(networkAddressGroup *models.NetworkAddressGroup, meta any) map[string]any {
122+
nag := make(map[string]any)
118123
if networkAddressGroup.Crn != nil {
119124
nag[Attr_CRN] = networkAddressGroup.Crn
120125
userTags, err := flex.GetGlobalTagsUsingCRN(meta, string(*networkAddressGroup.Crn), "", UserTagType)
@@ -126,7 +131,7 @@ func networkAddressGroupsNetworkAddressGroupToMap(networkAddressGroup *models.Ne
126131

127132
nag[Attr_ID] = networkAddressGroup.ID
128133
if len(networkAddressGroup.Members) > 0 {
129-
members := []map[string]interface{}{}
134+
members := []map[string]any{}
130135
for _, membersItem := range networkAddressGroup.Members {
131136
member := memberToMap(membersItem)
132137
members = append(members, member)
@@ -137,8 +142,8 @@ func networkAddressGroupsNetworkAddressGroupToMap(networkAddressGroup *models.Ne
137142
return nag
138143
}
139144

140-
func memberToMap(mbr *models.NetworkAddressGroupMember) map[string]interface{} {
141-
member := make(map[string]interface{})
145+
func memberToMap(mbr *models.NetworkAddressGroupMember) map[string]any {
146+
member := make(map[string]any)
142147
member[Attr_CIDR] = mbr.Cidr
143148
member[Attr_ID] = mbr.ID
144149
return member

ibm/service/power/data_source_ibm_pi_network_interface.go

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -114,10 +114,12 @@ func DataSourceIBMPINetworkInterface() *schema.Resource {
114114
}
115115
}
116116

117-
func dataSourceIBMPINetworkInterfaceRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
117+
func dataSourceIBMPINetworkInterfaceRead(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
118118
sess, err := meta.(conns.ClientSession).IBMPISession()
119119
if err != nil {
120-
return diag.FromErr(err)
120+
tfErr := flex.TerraformErrorf(err, fmt.Sprintf("IBMPISession failed: %s", err.Error()), "(Data) ibm_pi_network_interface", "read")
121+
log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage())
122+
return tfErr.GetDiag()
121123
}
122124

123125
cloudInstanceID := d.Get(Arg_CloudInstanceID).(string)
@@ -126,7 +128,9 @@ func dataSourceIBMPINetworkInterfaceRead(ctx context.Context, d *schema.Resource
126128
networkC := instance.NewIBMPINetworkClient(ctx, sess, cloudInstanceID)
127129
networkInterface, err := networkC.GetNetworkInterface(networkID, networkInterfaceID)
128130
if err != nil {
129-
return diag.FromErr(err)
131+
tfErr := flex.TerraformErrorf(err, fmt.Sprintf("GetNetworkInterface failed: %s", err.Error()), "(Data) ibm_pi_network_interfaces", "read")
132+
log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage())
133+
return tfErr.GetDiag()
130134
}
131135

132136
d.SetId(fmt.Sprintf("%s/%s", networkID, *networkInterface.ID))
@@ -137,7 +141,7 @@ func dataSourceIBMPINetworkInterfaceRead(ctx context.Context, d *schema.Resource
137141
d.Set(Attr_NetworkSecurityGroupID, networkInterface.NetworkSecurityGroupID)
138142
d.Set(Attr_NetworkSecurityGroupIDs, networkInterface.NetworkSecurityGroupIDs)
139143
if networkInterface.Instance != nil {
140-
instance := []map[string]interface{}{}
144+
instance := []map[string]any{}
141145
instanceMap := pvmInstanceToMap(networkInterface.Instance)
142146
instance = append(instance, instanceMap)
143147
d.Set(Attr_Instance, instance)
@@ -155,8 +159,8 @@ func dataSourceIBMPINetworkInterfaceRead(ctx context.Context, d *schema.Resource
155159
return nil
156160
}
157161

158-
func pvmInstanceToMap(pvm *models.NetworkInterfaceInstance) map[string]interface{} {
159-
instanceMap := make(map[string]interface{})
162+
func pvmInstanceToMap(pvm *models.NetworkInterfaceInstance) map[string]any {
163+
instanceMap := make(map[string]any)
160164
if pvm.Href != "" {
161165
instanceMap[Attr_Href] = pvm.Href
162166
}

ibm/service/power/data_source_ibm_pi_network_interfaces.go

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ package power
55

66
import (
77
"context"
8+
"fmt"
89
"log"
910

1011
"github.com/IBM-Cloud/power-go-client/clients/instance"
@@ -117,24 +118,28 @@ func DataSourceIBMPINetworkInterfaces() *schema.Resource {
117118
}
118119
}
119120

120-
func dataSourceIBMPINetworkInterfacesRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
121+
func dataSourceIBMPINetworkInterfacesRead(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
121122
sess, err := meta.(conns.ClientSession).IBMPISession()
122123

123124
if err != nil {
124-
return diag.FromErr(err)
125+
tfErr := flex.TerraformErrorf(err, fmt.Sprintf("IBMPISession failed: %s", err.Error()), "(Data) ibm_pi_network_interfaces", "read")
126+
log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage())
127+
return tfErr.GetDiag()
125128
}
126129

127130
cloudInstanceID := d.Get(Arg_CloudInstanceID).(string)
128131
networkID := d.Get(Arg_NetworkID).(string)
129132
networkC := instance.NewIBMPINetworkClient(ctx, sess, cloudInstanceID)
130133
networkInterfaces, err := networkC.GetAllNetworkInterfaces(networkID)
131134
if err != nil {
132-
return diag.FromErr(err)
135+
tfErr := flex.TerraformErrorf(err, fmt.Sprintf("GetAllNetworkInterfaces failed: %s", err.Error()), "(Data) ibm_pi_network_interfaces", "read")
136+
log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage())
137+
return tfErr.GetDiag()
133138
}
134139

135140
var genID, _ = uuid.GenerateUUID()
136141
d.SetId(genID)
137-
interfaces := []map[string]interface{}{}
142+
interfaces := []map[string]any{}
138143
if len(networkInterfaces.Interfaces) > 0 {
139144
for _, netInterface := range networkInterfaces.Interfaces {
140145
interfaceMap := networkInterfaceToMap(netInterface, meta)
@@ -146,8 +151,8 @@ func dataSourceIBMPINetworkInterfacesRead(ctx context.Context, d *schema.Resourc
146151
return nil
147152
}
148153

149-
func networkInterfaceToMap(netInterface *models.NetworkInterface, meta interface{}) map[string]interface{} {
150-
interfaceMap := make(map[string]interface{})
154+
func networkInterfaceToMap(netInterface *models.NetworkInterface, meta any) map[string]any {
155+
interfaceMap := make(map[string]any)
151156
interfaceMap[Attr_ID] = netInterface.ID
152157
interfaceMap[Attr_IPAddress] = netInterface.IPAddress
153158
interfaceMap[Attr_MacAddress] = netInterface.MacAddress
@@ -156,7 +161,7 @@ func networkInterfaceToMap(netInterface *models.NetworkInterface, meta interface
156161
interfaceMap[Attr_NetworkSecurityGroupIDs] = netInterface.NetworkSecurityGroupIDs
157162
if netInterface.Instance != nil {
158163
pvmInstanceMap := pvmInstanceToMap(netInterface.Instance)
159-
interfaceMap[Attr_Instance] = []map[string]interface{}{pvmInstanceMap}
164+
interfaceMap[Attr_Instance] = []map[string]any{pvmInstanceMap}
160165
}
161166
interfaceMap[Attr_Status] = netInterface.Status
162167
if netInterface.Crn != nil {

0 commit comments

Comments
 (0)