Skip to content

Commit 0c0bd11

Browse files
authored
chore(consumable-errors): Make errors consumable and consistent in vpc file share (IBM-Cloud#6162)
* chore(consumable-errors): Make errors consumable and consistent in vpc file share * additional error messages for shares * updates to share * updates to the error messages * additional data source changes * corrections * updated method name in log for accessor binding delete resource
1 parent e6ddea3 commit 0c0bd11

15 files changed

+352
-202
lines changed

ibm/service/vpc/data_source_ibm_is_share.go

Lines changed: 58 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -597,7 +597,9 @@ func DataSourceIbmIsShare() *schema.Resource {
597597
func dataSourceIbmIsShareRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
598598
vpcClient, err := meta.(conns.ClientSession).VpcV1API()
599599
if err != nil {
600-
return diag.FromErr(err)
600+
tfErr := flex.TerraformErrorf(err, fmt.Sprintf("vpcClient creation failed: %s", err.Error()), "(Data) ibm_is_share", "read")
601+
log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage())
602+
return tfErr.GetDiag()
601603
}
602604

603605
shareName := d.Get("name").(string)
@@ -610,8 +612,9 @@ func dataSourceIbmIsShareRead(context context.Context, d *schema.ResourceData, m
610612

611613
shareItem, response, err := vpcClient.GetShareWithContext(context, getShareOptions)
612614
if err != nil {
613-
log.Printf("[DEBUG] GetShareWithContext failed %s\n%s", err, response)
614-
return diag.FromErr(fmt.Errorf("[ERROR] GetShareWithContext failed %s\n%s", err, response))
615+
tfErr := flex.TerraformErrorf(err, fmt.Sprintf("GetShareWithContext failed: %s\n%s", err.Error(), response), "(Data) ibm_is_share", "read")
616+
log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage())
617+
return tfErr.GetDiag()
615618
}
616619
share = shareItem
617620
} else if shareName != "" {
@@ -622,8 +625,9 @@ func dataSourceIbmIsShareRead(context context.Context, d *schema.ResourceData, m
622625
}
623626
shareCollection, response, err := vpcClient.ListSharesWithContext(context, listSharesOptions)
624627
if err != nil {
625-
log.Printf("[DEBUG] ListSharesWithContext failed %s\n%s", err, response)
626-
return diag.FromErr(err)
628+
tfErr := flex.TerraformErrorf(err, fmt.Sprintf("ListSharesWithContext failed: %s\n%s", err.Error(), response), "(Data) ibm_is_share", "read")
629+
log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage())
630+
return tfErr.GetDiag()
627631
}
628632
for _, sharesItem := range shareCollection.Shares {
629633
if *sharesItem.Name == shareName {
@@ -632,32 +636,38 @@ func dataSourceIbmIsShareRead(context context.Context, d *schema.ResourceData, m
632636
}
633637
}
634638
if share == nil {
635-
return diag.FromErr(fmt.Errorf("[ERROR] Share with provided name %s not found", shareName))
639+
return flex.TerraformErrorf(err, fmt.Sprintf("[ERROR] Share with provided name %s not found", shareName), "(Data) ibm_is_share", "read").GetDiag()
636640
}
637641
}
638642

639643
d.SetId(*share.ID)
640644
if err = d.Set("created_at", share.CreatedAt.String()); err != nil {
641-
return diag.FromErr(fmt.Errorf("Error setting created_at: %s", err))
645+
err = fmt.Errorf("Error setting captured_at: %s", err)
646+
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_is_share", "read", "set-captured_at").GetDiag()
642647
}
643648
if err = d.Set("crn", share.CRN); err != nil {
644-
return diag.FromErr(fmt.Errorf("Error setting crn: %s", err))
649+
err = fmt.Errorf("Error setting crn: %s", err)
650+
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_is_share", "read", "set-crn").GetDiag()
645651
}
646652
if err = d.Set("encryption", share.Encryption); err != nil {
647-
return diag.FromErr(fmt.Errorf("Error setting encryption: %s", err))
653+
err = fmt.Errorf("Error setting encryption: %s", err)
654+
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_is_share", "read", "set-encryption").GetDiag()
648655
}
649656

650657
if share.EncryptionKey != nil {
651658
err = d.Set("encryption_key", *share.EncryptionKey.CRN)
652659
if err != nil {
653-
return diag.FromErr(fmt.Errorf("Error setting encryption_key %s", err))
660+
err = fmt.Errorf("Error setting encryption_key: %s", err)
661+
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_is_share", "read", "set-encryption_key").GetDiag()
654662
}
655663
}
656664
if err = d.Set("href", share.Href); err != nil {
657-
return diag.FromErr(fmt.Errorf("Error setting href: %s", err))
665+
err = fmt.Errorf("Error setting href: %s", err)
666+
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_is_share", "read", "set-href").GetDiag()
658667
}
659668
if err = d.Set("iops", share.Iops); err != nil {
660-
return diag.FromErr(fmt.Errorf("Error setting iops: %s", err))
669+
err = fmt.Errorf("Error setting iops: %s", err)
670+
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_is_share", "read", "set-iops").GetDiag()
661671
}
662672
latest_syncs := []map[string]interface{}{}
663673
if share.LatestSync != nil {
@@ -673,15 +683,18 @@ func dataSourceIbmIsShareRead(context context.Context, d *schema.ResourceData, m
673683
if share.LatestJob != nil {
674684
err = d.Set("latest_job", dataSourceShareFlattenLatestJob(*share.LatestJob))
675685
if err != nil {
676-
return diag.FromErr(fmt.Errorf("Error setting latest_job %s", err))
686+
err = fmt.Errorf("Error setting latest_job: %s", err)
687+
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_is_share", "read", "set-latest_job").GetDiag()
677688
}
678689
}
679690

680691
if err = d.Set("lifecycle_state", share.LifecycleState); err != nil {
681-
return diag.FromErr(fmt.Errorf("Error setting lifecycle_state: %s", err))
692+
err = fmt.Errorf("Error setting lifecycle_state: %s", err)
693+
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_is_share", "read", "set-lifecycle_state").GetDiag()
682694
}
683695
if err = d.Set("name", share.Name); err != nil {
684-
return diag.FromErr(fmt.Errorf("Error setting name: %s", err))
696+
err = fmt.Errorf("Error setting name: %s", err)
697+
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_is_share", "read", "set-name").GetDiag()
685698
}
686699
if share.AccessControlMode != nil {
687700
d.Set("access_control_mode", *share.AccessControlMode)
@@ -715,66 +728,79 @@ func dataSourceIbmIsShareRead(context context.Context, d *schema.ResourceData, m
715728
if share.Profile != nil {
716729
err = d.Set("profile", *share.Profile.Name)
717730
if err != nil {
718-
return diag.FromErr(fmt.Errorf("Error setting profile %s", err))
731+
err = fmt.Errorf("Error setting profile: %s", err)
732+
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_is_share", "read", "set-profile").GetDiag()
719733
}
720734
}
721735

722736
if share.ReplicaShare != nil {
723737
err = d.Set("replica_share", dataSourceShareFlattenReplicaShare(*share.ReplicaShare))
724738
if err != nil {
725-
return diag.FromErr(fmt.Errorf("Error setting replica_share %s", err))
739+
err = fmt.Errorf("Error setting replica_share: %s", err)
740+
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_is_share", "read", "set-replica_share").GetDiag()
726741
}
727742
}
728743
if err = d.Set("replication_cron_spec", share.ReplicationCronSpec); err != nil {
729-
return diag.FromErr(fmt.Errorf("Error setting replication_cron_spec: %s", err))
744+
err = fmt.Errorf("Error setting replication_cron_spec: %s", err)
745+
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_is_share", "read", "set-replication_cron_spec").GetDiag()
730746
}
731747
if err = d.Set("replication_role", share.ReplicationRole); err != nil {
732-
return diag.FromErr(fmt.Errorf("Error setting replication_role: %s", err))
748+
err = fmt.Errorf("Error setting replication_role: %s", err)
749+
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_is_share", "read", "set-replication_role").GetDiag()
733750
}
734751
if err = d.Set("replication_status", share.ReplicationStatus); err != nil {
735-
return diag.FromErr(fmt.Errorf("Error setting replication_status: %s", err))
752+
err = fmt.Errorf("Error setting replication_status: %s", err)
753+
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_is_share", "read", "set-replication_status").GetDiag()
736754
}
737755

738756
if share.ReplicationStatusReasons != nil {
739757
err = d.Set("replication_status_reasons", dataSourceShareFlattenReplicationStatusReasons(share.ReplicationStatusReasons))
740758
if err != nil {
741-
return diag.FromErr(fmt.Errorf("Error setting replication_status_reasons %s", err))
759+
err = fmt.Errorf("Error setting replication_status_reasons: %s", err)
760+
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_is_share", "read", "set-replication_status_reasons").GetDiag()
742761
}
743762
}
744763

745764
if share.ResourceGroup != nil {
746765
err = d.Set("resource_group", *share.ResourceGroup.ID)
747766
if err != nil {
748-
return diag.FromErr(fmt.Errorf("Error setting resource_group %s", err))
767+
err = fmt.Errorf("Error setting resource_group: %s", err)
768+
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_is_share", "read", "set-resource_group").GetDiag()
749769
}
750770
}
751771
if err = d.Set("resource_type", share.ResourceType); err != nil {
752-
return diag.FromErr(fmt.Errorf("Error setting resource_type: %s", err))
772+
err = fmt.Errorf("Error setting resource_type: %s", err)
773+
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_is_share", "read", "set-resource_type").GetDiag()
753774
}
754775
if err = d.Set("size", share.Size); err != nil {
755-
return diag.FromErr(fmt.Errorf("Error setting size: %s", err))
776+
err = fmt.Errorf("Error setting size: %s", err)
777+
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_is_share", "read", "set-size").GetDiag()
756778
}
757779
if share.SourceShare != nil {
758780
err = d.Set("source_share", dataSourceShareFlattenSourceShare(*share.SourceShare))
759781
if err != nil {
760-
return diag.FromErr(fmt.Errorf("Error setting source_share %s", err))
782+
err = fmt.Errorf("Error setting source_share: %s", err)
783+
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_is_share", "read", "set-source_share").GetDiag()
761784
}
762785
}
763786
if share.MountTargets != nil {
764787
err = d.Set("share_targets", dataSourceShareFlattenTargets(share.MountTargets))
765788
if err != nil {
766-
return diag.FromErr(fmt.Errorf("Error setting targets %s", err))
789+
err = fmt.Errorf("Error setting share_targets: %s", err)
790+
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_is_share", "read", "set-share_targets").GetDiag()
767791
}
768792
err = d.Set("mount_targets", dataSourceShareFlattenTargets(share.MountTargets))
769793
if err != nil {
770-
return diag.FromErr(fmt.Errorf("Error setting targets %s", err))
794+
err = fmt.Errorf("Error setting mount_targets: %s", err)
795+
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_is_share", "read", "set-mount_targets").GetDiag()
771796
}
772797
}
773798

774799
if share.Zone != nil {
775800
err = d.Set("zone", *share.Zone.Name)
776801
if err != nil {
777-
return diag.FromErr(fmt.Errorf("Error setting zone %s", err))
802+
err = fmt.Errorf("Error setting zone: %s", err)
803+
return flex.DiscriminatedTerraformErrorf(err, err.Error(), "(Data) ibm_is_share", "read", "set-zone").GetDiag()
778804
}
779805
}
780806
if err = d.Set("snapshot_count", flex.IntValue(share.SnapshotCount)); err != nil {
@@ -797,14 +823,16 @@ func dataSourceIbmIsShareRead(context context.Context, d *schema.ResourceData, m
797823
}
798824
accesstags, err := flex.GetGlobalTagsUsingCRN(meta, *share.CRN, "", isAccessTagType)
799825
if err != nil {
826+
tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting shares (%s) access tags: %s", d.Id(), err), "(Data) ibm_is_share", "read")
800827
log.Printf(
801-
"Error getting shares (%s) access tags: %s", d.Id(), err)
828+
"[ERROR] %s", tfErr.GetDebugMessage())
802829
}
803830

804831
if share.UserTags != nil {
805832
if err = d.Set(isFileShareTags, share.UserTags); err != nil {
833+
tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting shares (%s) user tags: %s", d.Id(), err), "(Data) ibm_is_share", "read")
806834
log.Printf(
807-
"Error setting shares (%s) user tags: %s", d.Id(), err)
835+
"[ERROR] %s", tfErr.GetDebugMessage())
808836
}
809837
}
810838

ibm/service/vpc/data_source_ibm_is_share_accessor_binding.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,8 +157,7 @@ func DataSourceIBMIsShareAccessorBinding() *schema.Resource {
157157
func dataSourceIBMIsShareAccessorBindingRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
158158
vpcClient, err := meta.(conns.ClientSession).VpcV1API()
159159
if err != nil {
160-
// Error is coming from SDK client, so it doesn't need to be discriminated.
161-
tfErr := flex.TerraformErrorf(err, err.Error(), "(Data) ibm_is_share_accessor_binding", "read")
160+
tfErr := flex.TerraformErrorf(err, fmt.Sprintf("vpcClient creation failed: %s", err.Error()), "(Data) ibm_is_share_accessor_binding", "read")
162161
log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage())
163162
return tfErr.GetDiag()
164163
}

ibm/service/vpc/data_source_ibm_is_share_accessor_bindings.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ func DataSourceIBMIsShareAccessorBindings() *schema.Resource {
167167
func dataSourceIBMIsShareAccessorBindingsRead(context context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
168168
vpcClient, err := meta.(conns.ClientSession).VpcV1API()
169169
if err != nil {
170-
tfErr := flex.TerraformErrorf(err, err.Error(), "(Data) ibm_is_share_accessor_bindings", "read")
170+
tfErr := flex.TerraformErrorf(err, fmt.Sprintf("vpcClient creation failed: %s", err.Error()), "(Data) ibm_is_share_accessor_bindings", "read")
171171
log.Printf("[DEBUG]\n%s", tfErr.GetDebugMessage())
172172
return tfErr.GetDiag()
173173
}
@@ -204,8 +204,7 @@ func dataSourceIBMIsShareAccessorBindingsRead(context context.Context, d *schema
204204
}
205205

206206
if err = d.Set("accessor_bindings", mapSlice); err != nil {
207-
tfErr := flex.TerraformErrorf(err, fmt.Sprintf("Error setting accessor_bindings %s", err), "(Data) ibm_is_share_accessor_bindings", "read")
208-
return tfErr.GetDiag()
207+
return flex.DiscriminatedTerraformErrorf(err, fmt.Sprintf("Error setting accessor_bindings: %s", err), "(Data) ibm_is_share_accessor_bindings", "read", "set-accessor_bindings").GetDiag()
209208
}
210209

211210
return nil

0 commit comments

Comments
 (0)