Skip to content

Commit a4c10d6

Browse files
committed
Update resource_ibm_is_security_group_target.go
1 parent c8c8862 commit a4c10d6

File tree

1 file changed

+66
-32
lines changed

1 file changed

+66
-32
lines changed

ibm/service/vpc/resource_ibm_is_security_group_target.go

Lines changed: 66 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import (
1010
"strings"
1111
"time"
1212

13-
"github.com/IBM-Cloud/terraform-provider-ibm/ibm/conns"
1413
"github.com/IBM-Cloud/terraform-provider-ibm/ibm/flex"
1514
"github.com/IBM-Cloud/terraform-provider-ibm/ibm/validate"
1615
"github.com/IBM/vpc-go-sdk/vpcv1"
@@ -104,7 +103,7 @@ func resourceIBMISSecurityGroupTargetCreate(context context.Context, d *schema.R
104103

105104
sess, err := vpcClient(meta)
106105
if err != nil {
107-
tfErr := flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_is_security_group_rule", "create", "initialize-client")
106+
tfErr := flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_is_security_group_target", "create", "initialize-client")
108107
log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage())
109108
return tfErr.GetDiag()
110109
}
@@ -118,7 +117,7 @@ func resourceIBMISSecurityGroupTargetCreate(context context.Context, d *schema.R
118117

119118
sg, _, err := sess.CreateSecurityGroupTargetBindingWithContext(context, createSecurityGroupTargetBindingOptions)
120119
if err != nil || sg == nil {
121-
tfErr := flex.TerraformErrorf(err, fmt.Sprintf("CreateSecurityGroupRuleWithContext failed: %s", err.Error()), "ibm_is_security_group_rule", "create")
120+
tfErr := flex.TerraformErrorf(err, fmt.Sprintf("CreateSecurityGroupTargetBindingWithContext failed: %s", err.Error()), "ibm_is_security_group_target", "create")
122121
log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage())
123122
return tfErr.GetDiag()
124123
}
@@ -129,73 +128,98 @@ func resourceIBMISSecurityGroupTargetCreate(context context.Context, d *schema.R
129128
lbid := sgtarget.ID
130129
_, errsgt := isWaitForLbSgTargetCreateAvailable(sess, *lbid, d.Timeout(schema.TimeoutCreate))
131130
if errsgt != nil {
132-
return errsgt
133-
}
134-
} else if crn != nil && *crn != "" && strings.Contains(*crn, "virtual_network_interfaces") {
135-
vpcClient, err := meta.(conns.ClientSession).VpcV1API()
136-
if err != nil {
137-
return err
131+
tfErr := flex.TerraformErrorf(err, fmt.Sprintf("isWaitForLbSgTargetCreateAvailable failed: %s", err.Error()), "ibm_is_security_group_target", "create")
132+
log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage())
133+
return tfErr.GetDiag()
138134
}
135+
} else if crn != nil && *crn != "" && strings.Contains(*crn, "virtual-network-interfaces") {
139136
vniId := sgtarget.ID
140-
_, errsgt := isWaitForVNISgTargetCreateAvailable(vpcClient, *vniId, d.Timeout(schema.TimeoutCreate))
137+
_, errsgt := isWaitForVNISgTargetCreateAvailable(sess, *vniId, d.Timeout(schema.TimeoutCreate))
141138
if errsgt != nil {
142-
return errsgt
139+
tfErr := flex.TerraformErrorf(err, fmt.Sprintf("isWaitForVNISgTargetCreateAvailable failed: %s", err.Error()), "ibm_is_security_group_target", "create")
140+
log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage())
141+
return tfErr.GetDiag()
143142
}
144143
}
145144

146-
return resourceIBMISSecurityGroupTargetRead(d, meta)
145+
return resourceIBMISSecurityGroupTargetRead(context, d, meta)
147146
}
148147

149-
func resourceIBMISSecurityGroupTargetRead(d *schema.ResourceData, meta interface{}) error {
148+
func resourceIBMISSecurityGroupTargetRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
150149

151150
sess, err := vpcClient(meta)
152151
if err != nil {
153-
return err
152+
tfErr := flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_is_security_group_target", "read", "initialize-client")
153+
log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage())
154+
return tfErr.GetDiag()
154155
}
155156

156157
parts, err := flex.IdParts(d.Id())
157158
if err != nil {
158-
return err
159+
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_is_security_group_target", "read", "sep-id-parts").GetDiag()
159160
}
160161
securityGroupID := parts[0]
161162
securityGroupTargetID := parts[1]
162163

163-
d.Set("security_group", securityGroupID)
164-
d.Set(isSecurityGroupTargetID, securityGroupTargetID)
164+
if err = d.Set("security_group", securityGroupID); err != nil {
165+
err = fmt.Errorf("Error setting security_group: %s", err)
166+
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_is_security_group_target", "read", "set-security_group").GetDiag()
167+
}
168+
169+
if err = d.Set(isSecurityGroupTargetID, securityGroupTargetID); err != nil {
170+
err = fmt.Errorf("Error setting target: %s", err)
171+
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_is_security_group_target", "read", "set-target").GetDiag()
172+
}
165173

166174
getSecurityGroupTargetOptions := &vpcv1.GetSecurityGroupTargetOptions{
167175
SecurityGroupID: &securityGroupID,
168176
ID: &securityGroupTargetID,
169177
}
170178

171-
data, response, err := sess.GetSecurityGroupTarget(getSecurityGroupTargetOptions)
179+
data, response, err := sess.GetSecurityGroupTargetWithContext(context, getSecurityGroupTargetOptions)
172180
if err != nil || data == nil {
173181
if response != nil && response.StatusCode == 404 {
174182
d.SetId("")
175183
return nil
176184
}
177-
return fmt.Errorf("[ERROR] Error getting Security Group Target : %s\n%s", err, response)
185+
tfErr := flex.TerraformErrorf(err, fmt.Sprintf("GetSecurityGroupTarget failed: %s", err.Error()), "ibm_is_security_group_target", "read")
186+
log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage())
187+
return tfErr.GetDiag()
178188
}
179189

180190
target := data.(*vpcv1.SecurityGroupTargetReference)
181-
d.Set("name", *target.Name)
182-
d.Set("crn", target.CRN)
191+
192+
if err = d.Set("name", *target.Name); err != nil {
193+
err = fmt.Errorf("Error setting name: %s", err)
194+
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_is_security_group_target", "read", "set-name").GetDiag()
195+
}
196+
197+
if err = d.Set("crn", target.CRN); err != nil {
198+
err = fmt.Errorf("Error setting crn: %s", err)
199+
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_is_security_group_target", "read", "set-crn").GetDiag()
200+
}
183201
if target.ResourceType != nil && *target.ResourceType != "" {
184-
d.Set(isSecurityGroupResourceType, *target.ResourceType)
202+
203+
if err = d.Set(isSecurityGroupResourceType, *target.ResourceType); err != nil {
204+
err = fmt.Errorf("Error setting resource_type: %s", err)
205+
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_is_security_group_target", "read", "set-resource_type").GetDiag()
206+
}
185207
}
186208

187209
return nil
188210
}
189211

190-
func resourceIBMISSecurityGroupTargetDelete(d *schema.ResourceData, meta interface{}) error {
212+
func resourceIBMISSecurityGroupTargetDelete(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
191213
sess, err := vpcClient(meta)
192214
if err != nil {
193-
return err
215+
tfErr := flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_is_security_group_target", "delete", "initialize-client")
216+
log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage())
217+
return tfErr.GetDiag()
194218
}
195219

196220
parts, err := flex.IdParts(d.Id())
197221
if err != nil {
198-
return err
222+
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_is_security_group_target", "delete", "sep-id-parts").GetDiag()
199223
}
200224
securityGroupID := parts[0]
201225
securityGroupTargetID := parts[1]
@@ -204,27 +228,33 @@ func resourceIBMISSecurityGroupTargetDelete(d *schema.ResourceData, meta interfa
204228
SecurityGroupID: &securityGroupID,
205229
ID: &securityGroupTargetID,
206230
}
207-
sgt, response, err := sess.GetSecurityGroupTarget(getSecurityGroupTargetOptions)
231+
sgt, response, err := sess.GetSecurityGroupTargetWithContext(context, getSecurityGroupTargetOptions)
208232
if err != nil {
209233
if response != nil && response.StatusCode == 404 {
210234
d.SetId("")
211235
return nil
212236
}
213-
return fmt.Errorf("[ERROR] Error Getting Security Group Targets (%s): %s\n%s", securityGroupID, err, response)
237+
tfErr := flex.TerraformErrorf(err, fmt.Sprintf("GetSecurityGroupTargetWithContext failed: %s", err.Error()), "ibm_is_security_group_target", "delete")
238+
log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage())
239+
return tfErr.GetDiag()
214240
}
215241

216242
deleteSecurityGroupTargetBindingOptions := sess.NewDeleteSecurityGroupTargetBindingOptions(securityGroupID, securityGroupTargetID)
217-
response, err = sess.DeleteSecurityGroupTargetBinding(deleteSecurityGroupTargetBindingOptions)
243+
response, err = sess.DeleteSecurityGroupTargetBindingWithContext(context, deleteSecurityGroupTargetBindingOptions)
218244
if err != nil {
219-
return fmt.Errorf("[ERROR] Error Deleting Security Group Targets : %s\n%s", err, response)
245+
tfErr := flex.TerraformErrorf(err, fmt.Sprintf("DeleteSecurityGroupTargetBindingWithContext failed: %s", err.Error()), "ibm_is_security_group_target", "delete")
246+
log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage())
247+
return tfErr.GetDiag()
220248
}
221249
securityGroupTargetReference := sgt.(*vpcv1.SecurityGroupTargetReference)
222250
crn := securityGroupTargetReference.CRN
223251
if crn != nil && *crn != "" && strings.Contains(*crn, "load-balancer") {
224252
lbid := securityGroupTargetReference.ID
225253
_, errsgt := isWaitForLBRemoveAvailable(sess, sgt, *lbid, securityGroupID, securityGroupTargetID, d.Timeout(schema.TimeoutDelete))
226254
if errsgt != nil {
227-
return errsgt
255+
tfErr := flex.TerraformErrorf(err, fmt.Sprintf("isWaitForLBRemoveAvailable failed: %s", err.Error()), "ibm_is_security_group_target", "delete")
256+
log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage())
257+
return tfErr.GetDiag()
228258
}
229259
}
230260
d.SetId("")
@@ -235,12 +265,14 @@ func resourceIBMISSecurityGroupTargetExists(d *schema.ResourceData, meta interfa
235265

236266
sess, err := vpcClient(meta)
237267
if err != nil {
268+
tfErr := flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_is_security_group_target", "exists", "initialize-client")
269+
log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage())
238270
return false, err
239271
}
240272

241273
parts, err := flex.IdParts(d.Id())
242274
if err != nil {
243-
return false, err
275+
return false, flex.DiscriminatedTerraformErrorf(err, err.Error(), "ibm_is_security_group_target", "exists", "sep-id-parts")
244276
}
245277
securityGroupID := parts[0]
246278
securityGroupTargetID := parts[1]
@@ -256,7 +288,9 @@ func resourceIBMISSecurityGroupTargetExists(d *schema.ResourceData, meta interfa
256288
d.SetId("")
257289
return false, nil
258290
}
259-
return false, fmt.Errorf("[ERROR] Error getting Security Group Target : %s\n%s", err, response)
291+
tfErr := flex.TerraformErrorf(err, fmt.Sprintf("GetSecurityGroupTarget failed: %s", err.Error()), "ibm_is_security_group_target", "exists")
292+
log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage())
293+
return false, tfErr
260294
}
261295
return true, nil
262296

0 commit comments

Comments
 (0)