@@ -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