diff --git a/ibm/service/vpc/data_source_ibm_is_share.go b/ibm/service/vpc/data_source_ibm_is_share.go index 6c321acb330..f27b5480bc6 100644 --- a/ibm/service/vpc/data_source_ibm_is_share.go +++ b/ibm/service/vpc/data_source_ibm_is_share.go @@ -552,15 +552,8 @@ func dataSourceIbmIsShareRead(context context.Context, d *schema.ResourceData, m shareItem, response, err := vpcClient.GetShareWithContext(context, getShareOptions) if err != nil { - if response != nil { - if response.StatusCode == 404 { - d.SetId("") - } - log.Printf("[DEBUG] GetShareWithContext failed %s\n%s", err, response) - return nil - } - log.Printf("[DEBUG] GetShareWithContext failed %s\n", err) - return diag.FromErr(err) + log.Printf("[DEBUG] GetShareWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("[ERROR] GetShareWithContext failed %s\n%s", err, response)) } share = shareItem } else if shareName != "" { diff --git a/ibm/service/vpc/data_source_ibm_is_share_test.go b/ibm/service/vpc/data_source_ibm_is_share_test.go index d50e4d4e09f..afdcf8a4953 100644 --- a/ibm/service/vpc/data_source_ibm_is_share_test.go +++ b/ibm/service/vpc/data_source_ibm_is_share_test.go @@ -5,6 +5,7 @@ package vpc_test import ( "fmt" + "regexp" "testing" acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" @@ -39,6 +40,19 @@ func TestAccIbmIsShareDataSourceBasic(t *testing.T) { }, }) } +func TestAccIbmIsShareDataSource404(t *testing.T) { + shareId := "8843-5fr454ft-f6-4565-9555-5f889f5f3f7777" + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + Steps: []resource.TestStep{ + { + Config: testAccCheckIbmIsShareDataSourceConfig404(shareId), + ExpectError: regexp.MustCompile("GetShareWithContext failed"), + }, + }, + }) +} func TestAccIbmIsShareDataSourceAllArgs(t *testing.T) { shareName := fmt.Sprintf("tf-fs-name-%d", acctest.RandIntRange(10, 100)) @@ -93,6 +107,13 @@ func testAccCheckIbmIsShareDataSourceConfigBasic(name string) string { } `, name, acc.ShareProfileName) } +func testAccCheckIbmIsShareDataSourceConfig404(id string) string { + return fmt.Sprintf(` + data "ibm_is_share" "is_share" { + share = "%s" + } + `, id) +} func testAccCheckIbmIsShareDataSourceConfig(vpcName, shareName string, shareSize int, shareTargetName string) string { return fmt.Sprintf(` diff --git a/ibm/service/vpc/data_source_ibm_is_source_share.go b/ibm/service/vpc/data_source_ibm_is_source_share.go index a25a049fa0f..59b38cf3961 100644 --- a/ibm/service/vpc/data_source_ibm_is_source_share.go +++ b/ibm/service/vpc/data_source_ibm_is_source_share.go @@ -62,15 +62,8 @@ func dataSourceIbmIsSourceShareRead(context context.Context, d *schema.ResourceD share, response, err := vpcClient.GetShareSourceWithContext(context, getShareSourceOptions) if err != nil { - if response != nil { - if response.StatusCode == 404 { - d.SetId("") - } - log.Printf("[DEBUG] GetShareWithContext failed %s\n%s", err, response) - return nil - } - log.Printf("[DEBUG] GetShareWithContext failed %s\n", err) - return diag.FromErr(fmt.Errorf("[DEBUG] GetShareWithContext failed %s\n", err)) + log.Printf("[DEBUG] GetShareSourceWithContext failed %s\n%s", err, response) + return diag.FromErr(fmt.Errorf("[ERROR] GetShareSourceWithContext failed %s\n%s", err, response)) } d.SetId(*share.ID) diff --git a/ibm/service/vpc/data_source_ibm_is_source_share_test.go b/ibm/service/vpc/data_source_ibm_is_source_share_test.go index 8d8c510d36b..5b6f850be8d 100644 --- a/ibm/service/vpc/data_source_ibm_is_source_share_test.go +++ b/ibm/service/vpc/data_source_ibm_is_source_share_test.go @@ -5,6 +5,7 @@ package vpc_test import ( "fmt" + "regexp" "testing" acc "github.com/IBM-Cloud/terraform-provider-ibm/ibm/acctest" @@ -54,3 +55,25 @@ func testAccCheckIbmIsSourceShareDataSourceConfigBasic(vpcname, vpcname1, shareN } `) } +func TestAccIbmIsSourceShareDataSource404(t *testing.T) { + srId := "8843-5fr454ft-f6-4565-9555-5f889f5f3f7777" + resource.Test(t, resource.TestCase{ + PreCheck: func() { acc.TestAccPreCheck(t) }, + Providers: acc.TestAccProviders, + Steps: []resource.TestStep{ + { + Config: testAccCheckIbmIsSourceShareDataSourceConfig404(srId), + ExpectError: regexp.MustCompile("GetShareSourceWithContext failed"), + }, + }, + }) +} + +func testAccCheckIbmIsSourceShareDataSourceConfig404(srId string) string { + return fmt.Sprintf(` + + data "ibm_is_source_share" "test" { + share_replica = "%s" + } + `, srId) +}