@@ -299,16 +299,17 @@ func resourceIBMIsShareMountTargetCreate(context context.Context, d *schema.Reso
299299 d .SetId ("" )
300300 return nil
301301 }
302- log .Printf ("[DEBUG] ListShareMountTargetsWithContext failed %s\n %s" , err , response )
303- return diag .FromErr (err )
302+ tfErr := flex .TerraformErrorf (err , fmt .Sprintf ("ListShareMountTargetsWithContext failed: %s\n %s" , err .Error (), response ), "ibm_is_share_mount_target" , "create" )
303+ log .Printf ("[DEBUG]\n %s" , tfErr .GetDebugMessage ())
304+ return tfErr .GetDiag ()
304305 }
305306 for _ , mountTargets := range shareTargets .MountTargets {
306307 if mountTargets .VPC != nil && * mountTargets .VPC .ID == vpcId {
307308 isWaitForOldTargetDelete (context , vpcClient , d , shareId , * mountTargets .ID )
308309 if * mountTargets .LifecycleState == "deleting" {
309310 _ , err = isWaitForTargetDelete (context , vpcClient , d , shareId , * mountTargets .ID )
310311 if err != nil {
311- return diag . FromErr (err )
312+ return flex . TerraformErrorf (err , fmt . Sprintf ( "isWaitForTargetDelete failed: %s" , err . Error ()), "ibm_is_share_mount_target" , "create" ). GetDiag ( )
312313 }
313314 }
314315 }
@@ -335,7 +336,7 @@ func resourceIBMIsShareMountTargetCreate(context context.Context, d *schema.Reso
335336 } else {
336337 vniPrototype , err = ShareMountTargetMapToShareMountTargetPrototype (d , vniMap , "virtual_network_interface.0.auto_delete" )
337338 if err != nil {
338- return diag . FromErr (err )
339+ return flex . TerraformErrorf (err , fmt . Sprintf ( "ShareMountTargetMapToShareMountTargetPrototype failed: %s" , err . Error ()), "ibm_is_share_mount_target" , "create" ). GetDiag ( )
339340 }
340341 }
341342 shareMountTargetPrototype .VirtualNetworkInterface = & vniPrototype
@@ -351,19 +352,20 @@ func resourceIBMIsShareMountTargetCreate(context context.Context, d *schema.Reso
351352 createShareMountTargetOptions .ShareMountTargetPrototype = shareMountTargetPrototype
352353 shareTarget , response , err := vpcClient .CreateShareMountTargetWithContext (context , createShareMountTargetOptions )
353354 if err != nil || shareTarget == nil {
354- log .Printf ("[DEBUG] CreateShareMountTargetWithContext failed %s\n %s" , err , response )
355- return diag .FromErr (err )
355+ tfErr := flex .TerraformErrorf (err , fmt .Sprintf ("CreateShareMountTargetWithContext failed: %s\n %s" , err .Error (), response ), "ibm_is_share_mount_target" , "create" )
356+ log .Printf ("[DEBUG]\n %s" , tfErr .GetDebugMessage ())
357+ return tfErr .GetDiag ()
356358 }
357359 d .SetId (fmt .Sprintf ("%s/%s" , * createShareMountTargetOptions .ShareID , * shareTarget .ID ))
358360 if shareTarget .VirtualNetworkInterface != nil {
359361 _ , err = WaitForVNIAvailable (vpcClient , * shareTarget .VirtualNetworkInterface .ID , d , d .Timeout (schema .TimeoutCreate ))
360362 if err != nil {
361- return diag . FromErr (err )
363+ return flex . TerraformErrorf (err , fmt . Sprintf ( "WaitForVNIAvailable failed: %s" , err . Error ()), "ibm_is_share_mount_target" , "create" ). GetDiag ( )
362364 }
363365 }
364366 _ , err = WaitForMountTargetAvailable (context , vpcClient , * createShareMountTargetOptions .ShareID , * shareTarget .ID , d , d .Timeout (schema .TimeoutCreate ))
365367 if err != nil {
366- return diag . FromErr (err )
368+ return flex . TerraformErrorf (err , fmt . Sprintf ( "WaitForMountTargetAvailable failed: %s" , err . Error ()), "ibm_is_share_mount_target" , "create" ). GetDiag ( )
367369 }
368370
369371 d .Set ("mount_target" , * shareTarget .ID )
@@ -382,7 +384,7 @@ func resourceIBMIsShareMountTargetRead(context context.Context, d *schema.Resour
382384
383385 parts , err := flex .IdParts (d .Id ())
384386 if err != nil {
385- return diag . FromErr (err )
387+ return flex . TerraformErrorf (err , fmt . Sprintf ( "Split ID parts failed: %s" , err . Error ()), "ibm_is_share_mount_target" , "read" ). GetDiag ( )
386388 }
387389
388390 getShareMountTargetOptions .SetShareID (parts [0 ])
@@ -404,40 +406,41 @@ func resourceIBMIsShareMountTargetRead(context context.Context, d *schema.Resour
404406 d .Set ("mount_target" , * shareTarget .ID )
405407 if shareTarget .VPC != nil && shareTarget .VPC .ID != nil {
406408 if err = d .Set ("vpc" , * shareTarget .VPC .ID ); err != nil {
407- return diag . FromErr ( fmt .Errorf ( " Error setting name : %s" , err ))
409+ return flex . DiscriminatedTerraformErrorf ( err , fmt .Sprintf ( "[ERROR] Error setting vpc : %s" , err ), "ibm_is_share_mount_target" , "read" , "set-vpc" ). GetDiag ( )
408410 }
409411 }
410412 if shareTarget .VirtualNetworkInterface != nil {
411413 vniList , err := ShareMountTargetVirtualNetworkInterfaceToMap (context , vpcClient , d , * shareTarget .VirtualNetworkInterface .ID )
412414 if err != nil {
413- return diag .FromErr (err )
415+ return flex .TerraformErrorf (err , fmt .Sprintf ("ShareMountTargetVirtualNetworkInterfaceToMap failed: %s" , err .Error ()), "ibm_is_share_mount_target" , "read" ).GetDiag ()
416+
414417 }
415418 d .Set ("virtual_network_interface" , vniList )
416419 }
417420 if err = d .Set ("name" , * shareTarget .Name ); err != nil {
418- return diag . FromErr ( fmt .Errorf ( " Error setting name: %s" , err ))
421+ return flex . DiscriminatedTerraformErrorf ( err , fmt .Sprintf ( "[ERROR] Error setting name: %s" , err ), "ibm_is_share_mount_target" , "read" , "set-name" ). GetDiag ( )
419422 }
420423
421424 if shareTarget .TransitEncryption != nil {
422425 if err = d .Set ("transit_encryption" , * shareTarget .TransitEncryption ); err != nil {
423- return diag . FromErr ( fmt .Errorf ( " Error setting transit_encryption: %s" , err ))
426+ return flex . DiscriminatedTerraformErrorf ( err , fmt .Sprintf ( "[ERROR] Error setting transit_encryption: %s" , err ), "ibm_is_share_mount_target" , "read" , "set-transit_encryption" ). GetDiag ( )
424427 }
425428 }
426429
427430 if err = d .Set ("created_at" , shareTarget .CreatedAt .String ()); err != nil {
428- return diag . FromErr ( fmt .Errorf ( " Error setting created_at: %s" , err ))
431+ return flex . DiscriminatedTerraformErrorf ( err , fmt .Sprintf ( "[ERROR] Error setting created_at: %s" , err ), "ibm_is_share_mount_target" , "read" , "set-created_at" ). GetDiag ( )
429432 }
430433 if err = d .Set ("href" , shareTarget .Href ); err != nil {
431- return diag . FromErr ( fmt .Errorf ( " Error setting href: %s" , err ))
434+ return flex . DiscriminatedTerraformErrorf ( err , fmt .Sprintf ( "[ERROR] Error setting href: %s" , err ), "ibm_is_share_mount_target" , "read" , "set-href" ). GetDiag ( )
432435 }
433436 if err = d .Set ("lifecycle_state" , shareTarget .LifecycleState ); err != nil {
434- return diag . FromErr ( fmt .Errorf ( " Error setting lifecycle_state: %s" , err ))
437+ return flex . DiscriminatedTerraformErrorf ( err , fmt .Sprintf ( "[ERROR] Error setting lifecycle_state: %s" , err ), "ibm_is_share_mount_target" , "read" , "set-lifecycle_state" ). GetDiag ( )
435438 }
436439 if err = d .Set ("mount_path" , shareTarget .MountPath ); err != nil {
437- return diag . FromErr ( fmt .Errorf ( " Error setting mount_path: %s" , err ))
440+ return flex . DiscriminatedTerraformErrorf ( err , fmt .Sprintf ( "[ERROR] Error setting mount_path: %s" , err ), "ibm_is_share_mount_target" , "read" , "set-mount_path" ). GetDiag ( )
438441 }
439442 if err = d .Set ("resource_type" , shareTarget .ResourceType ); err != nil {
440- return diag . FromErr ( fmt .Errorf ( " Error setting resource_type: %s" , err ))
443+ return flex . DiscriminatedTerraformErrorf ( err , fmt .Sprintf ( "[ERROR] Error setting resource_type: %s" , err ), "ibm_is_share_mount_target" , "read" , "set-resource_type" ). GetDiag ( )
441444 }
442445
443446 return nil
@@ -459,7 +462,7 @@ func resourceIBMIsShareMountTargetUpdate(context context.Context, d *schema.Reso
459462 shareId := parts [0 ]
460463 mountTargetId := parts [1 ]
461464 if err != nil {
462- return diag . FromErr (err )
465+ return flex . TerraformErrorf (err , fmt . Sprintf ( "Split ID parts failed: %s" , err . Error ()), "ibm_is_share_mount_target" , "update" ). GetDiag ( )
463466 }
464467
465468 updateShareMountTargetOptions .SetShareID (shareId )
@@ -491,16 +494,17 @@ func resourceIBMIsShareMountTargetUpdate(context context.Context, d *schema.Reso
491494 }
492495 vniPatch , err := vniPatchModel .AsPatch ()
493496 if err != nil {
494- log .Printf ("[DEBUG] Virtual network interface AsPatch failed %s" , err )
495- return diag .FromErr (err )
497+ return flex .TerraformErrorf (err , fmt .Sprintf ("vniPatchModel AsPatch failed: %s" , err .Error ()), "ibm_is_share_mount_target" , "update" ).GetDiag ()
496498 }
497499 shareTargetOptions := & vpcv1.GetShareMountTargetOptions {}
498500
499501 shareTargetOptions .SetShareID (shareId )
500502 shareTargetOptions .SetID (mountTargetId )
501503 shareTarget , _ , err := vpcClient .GetShareMountTargetWithContext (context , shareTargetOptions )
502504 if err != nil {
503- diag .FromErr (err )
505+ tfErr := flex .TerraformErrorf (err , fmt .Sprintf ("Error while getting share mount target %s" , err ), "ibm_is_share_mount_target" , "update" )
506+ log .Printf ("[DEBUG]\n %s" , tfErr .GetDebugMessage ())
507+ return tfErr .GetDiag ()
504508 }
505509 vniId := * shareTarget .VirtualNetworkInterface .ID
506510 updateVNIOptions := & vpcv1.UpdateVirtualNetworkInterfaceOptions {
@@ -509,12 +513,13 @@ func resourceIBMIsShareMountTargetUpdate(context context.Context, d *schema.Reso
509513 }
510514 _ , response , err := vpcClient .UpdateVirtualNetworkInterfaceWithContext (context , updateVNIOptions )
511515 if err != nil {
512- log .Printf ("[DEBUG] UpdateShareTargetWithContext failed %s\n %s" , err , response )
513- return diag .FromErr (err )
516+ tfErr := flex .TerraformErrorf (err , fmt .Sprintf ("Error updating VNI %s\n %s" , err , response ), "ibm_is_share_mount_target" , "update" )
517+ log .Printf ("[DEBUG]\n %s" , tfErr .GetDebugMessage ())
518+ return tfErr .GetDiag ()
514519 }
515520 _ , err = WaitForVNIAvailable (vpcClient , * shareTarget .VirtualNetworkInterface .ID , d , d .Timeout (schema .TimeoutCreate ))
516521 if err != nil {
517- return diag . FromErr (err )
522+ return flex . TerraformErrorf (err , fmt . Sprintf ( "WaitForVNIAvailable failed: %s" , err . Error ()), "ibm_is_share_mount_target" , "update" ). GetDiag ( )
518523 }
519524 }
520525
@@ -534,16 +539,18 @@ func resourceIBMIsShareMountTargetUpdate(context context.Context, d *schema.Reso
534539 }
535540 _ , response , err := vpcClient .CreateSecurityGroupTargetBinding (createsgnicoptions )
536541 if err != nil {
537- return diag .FromErr (fmt .Errorf ("[ERROR] Error while creating security group %q for virtual network interface of share mount target %s\n %s: %q" , add [i ], d .Id (), err , response ))
542+ tfErr := flex .TerraformErrorf (err , fmt .Sprintf ("Error creating security group target binding %s\n %s" , err , response ), "ibm_is_share_mount_target" , "update" )
543+ log .Printf ("[DEBUG]\n %s" , tfErr .GetDebugMessage ())
544+ return tfErr .GetDiag ()
538545 }
539546 _ , err = WaitForVNIAvailable (vpcClient , networkID , d , d .Timeout (schema .TimeoutUpdate ))
540547 if err != nil {
541- return diag . FromErr (err )
548+ return flex . TerraformErrorf (err , fmt . Sprintf ( "WaitForVNIAvailable failed: %s" , err . Error ()), "ibm_is_share_mount_target" , "update" ). GetDiag ( )
542549 }
543550
544551 _ , err = WaitForTargetAvailable (context , vpcClient , shareId , mountTargetId , d , d .Timeout (schema .TimeoutUpdate ))
545552 if err != nil {
546- return diag . FromErr (err )
553+ return flex . TerraformErrorf (err , fmt . Sprintf ( "WaitForTargetAvailable failed: %s" , err . Error ()), "ibm_is_share_mount_target" , "update" ). GetDiag ( )
547554 }
548555 }
549556
@@ -556,16 +563,18 @@ func resourceIBMIsShareMountTargetUpdate(context context.Context, d *schema.Reso
556563 }
557564 response , err := vpcClient .DeleteSecurityGroupTargetBinding (deletesgnicoptions )
558565 if err != nil {
559- return diag .FromErr (fmt .Errorf ("[ERROR] Error while removing security group %q for virtual network interface of share mount target %s\n %s: %q" , remove [i ], d .Id (), err , response ))
566+ tfErr := flex .TerraformErrorf (err , fmt .Sprintf ("Error deleting security group target binding %s\n %s" , err , response ), "ibm_is_share_mount_target" , "update" )
567+ log .Printf ("[DEBUG]\n %s" , tfErr .GetDebugMessage ())
568+ return tfErr .GetDiag ()
560569 }
561570 _ , err = WaitForVNIAvailable (vpcClient , networkID , d , d .Timeout (schema .TimeoutUpdate ))
562571 if err != nil {
563- return diag . FromErr (err )
572+ return flex . TerraformErrorf (err , fmt . Sprintf ( "WaitForVNIAvailable failed: %s" , err . Error ()), "ibm_is_share_mount_target" , "update" ). GetDiag ( )
564573 }
565574
566575 _ , err = WaitForTargetAvailable (context , vpcClient , shareId , mountTargetId , d , d .Timeout (schema .TimeoutUpdate ))
567576 if err != nil {
568- return diag . FromErr (err )
577+ return flex . TerraformErrorf (err , fmt . Sprintf ( "WaitForTargetAvailable failed: %s" , err . Error ()), "ibm_is_share_mount_target" , "update" ). GetDiag ( )
569578 }
570579 }
571580 }
@@ -574,7 +583,9 @@ func resourceIBMIsShareMountTargetUpdate(context context.Context, d *schema.Reso
574583 if ! d .IsNewResource () && (d .HasChange ("virtual_network_interface.0.primary_ip.0.name" ) || d .HasChange ("virtual_network_interface.0.primary_ip.0.auto_delete" )) {
575584 sess , err := meta .(conns.ClientSession ).VpcV1API ()
576585 if err != nil {
577- return diag .FromErr (err )
586+ tfErr := flex .DiscriminatedTerraformErrorf (err , err .Error (), "ibm_is_share_mount_target" , "update" , "initialize-client" )
587+ log .Printf ("[DEBUG]\n %s" , tfErr .GetDebugMessage ())
588+ return tfErr .GetDiag ()
578589 }
579590 subnetId := d .Get ("virtual_network_interface.0.subnet" ).(string )
580591 ripId := d .Get ("virtual_network_interface.0.primary_ip.0.reserved_ip" ).(string )
@@ -593,34 +604,36 @@ func resourceIBMIsShareMountTargetUpdate(context context.Context, d *schema.Reso
593604 }
594605 reservedIpPathAsPatch , err := reservedIpPath .AsPatch ()
595606 if err != nil {
596- return diag . FromErr ( fmt .Errorf ( "[ERROR] Error calling reserved ip as patch \n %s" , err ) )
607+ return flex . TerraformErrorf ( err , fmt .Sprintf ( "reservedIpPathAsPatch AsPatch failed: %s" , err . Error ()), "ibm_is_share_mount_target" , "update" ). GetDiag ( )
597608 }
598609 updateripoptions .ReservedIPPatch = reservedIpPathAsPatch
599610 _ , response , err := vpcClient .UpdateSubnetReservedIP (updateripoptions )
600611 if err != nil {
601- return diag .FromErr (fmt .Errorf ("[ERROR] Error updating instance network interface reserved ip(%s): %s\n %s" , ripId , err , response ))
612+ tfErr := flex .TerraformErrorf (err , fmt .Sprintf ("Error updating reserved IP %s\n %s" , err , response ), "ibm_is_share_mount_target" , "update" )
613+ log .Printf ("[DEBUG]\n %s" , tfErr .GetDebugMessage ())
614+ return tfErr .GetDiag ()
602615 }
603616 _ , err = isWaitForReservedIpAvailable (sess , subnetId , ripId , d .Timeout (schema .TimeoutUpdate ), d )
604617 if err != nil {
605- return diag . FromErr ( fmt .Errorf ( "[ERROR] Error waiting for the reserved IP to be available : %s" , err ) )
618+ return flex . TerraformErrorf ( err , fmt .Sprintf ( "isWaitForReservedIpAvailable failed : %s" , err . Error ()), "ibm_is_share_mount_target" , "update" ). GetDiag ( )
606619 }
607620 }
608621
609622 if hasChange {
610623 shareTargetPatch , err := shareTargetPatchModel .AsPatch ()
611624 if err != nil {
612- log .Printf ("[DEBUG] ShareMountTargetPatch AsPatch failed %s" , err )
613- return diag .FromErr (err )
625+ return flex .TerraformErrorf (err , fmt .Sprintf ("shareTargetPatch AsPatch failed: %s" , err .Error ()), "ibm_is_share_mount_target" , "update" ).GetDiag ()
614626 }
615627 updateShareMountTargetOptions .SetShareMountTargetPatch (shareTargetPatch )
616628 _ , response , err := vpcClient .UpdateShareMountTargetWithContext (context , updateShareMountTargetOptions )
617629 if err != nil {
618- log .Printf ("[DEBUG] UpdateShareMountTargetWithContext failed %s\n %s" , err , response )
619- return diag .FromErr (err )
630+ tfErr := flex .TerraformErrorf (err , fmt .Sprintf ("Error updating share mount target %s\n %s" , err , response ), "ibm_is_share_mount_target" , "update" )
631+ log .Printf ("[DEBUG]\n %s" , tfErr .GetDebugMessage ())
632+ return tfErr .GetDiag ()
620633 }
621634 _ , err = WaitForMountTargetAvailable (context , vpcClient , shareId , mountTargetId , d , d .Timeout (schema .TimeoutUpdate ))
622635 if err != nil {
623- return diag . FromErr (err )
636+ return flex . TerraformErrorf (err , fmt . Sprintf ( "WaitForMountTargetAvailable failed: %s" , err . Error ()), "ibm_is_share_mount_target" , "update" ). GetDiag ( )
624637 }
625638 }
626639
0 commit comments