From a01cd0ad57595a5b052b99aba2bf46436a31f759 Mon Sep 17 00:00:00 2001 From: Kanji Yomoda Date: Sun, 30 Oct 2022 20:02:30 +0900 Subject: [PATCH] Fix not found handling for snapshot repository (#175) * Fix not found handling for snapshot repository * Add this fix to CHANGELOG --- CHANGELOG.md | 1 + internal/clients/cluster.go | 7 +------ internal/elasticsearch/cluster/snapshot_repository.go | 2 ++ 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f6f1e5df..80c864ab9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ### Fixed - Remove unnecessary unsetting id on delete ([#174](https://github.com/elastic/terraform-provider-elasticstack/pull/174)) +- Fix not found handling for snapshot repository ([#175](https://github.com/elastic/terraform-provider-elasticstack/pull/175)) ## [0.4.0] - 2022-10-07 ### Added diff --git a/internal/clients/cluster.go b/internal/clients/cluster.go index f7bc75021..498ee9065 100644 --- a/internal/clients/cluster.go +++ b/internal/clients/cluster.go @@ -39,12 +39,7 @@ func (a *ApiClient) GetElasticsearchSnapshotRepository(ctx context.Context, name } defer res.Body.Close() if res.StatusCode == http.StatusNotFound { - diags = append(diags, diag.Diagnostic{ - Severity: diag.Error, - Summary: "Unable to find requested repository", - Detail: fmt.Sprintf(`Repository "%s" is missing in the ES API response`, name), - }) - return nil, diags + return nil, nil } if diags := utils.CheckError(res, fmt.Sprintf("Unable to get the information about snapshot repository: %s", name)); diags.HasError() { return nil, diags diff --git a/internal/elasticsearch/cluster/snapshot_repository.go b/internal/elasticsearch/cluster/snapshot_repository.go index b9d0026f5..96c9965a3 100644 --- a/internal/elasticsearch/cluster/snapshot_repository.go +++ b/internal/elasticsearch/cluster/snapshot_repository.go @@ -10,6 +10,7 @@ import ( "github.com/elastic/terraform-provider-elasticstack/internal/clients" "github.com/elastic/terraform-provider-elasticstack/internal/models" "github.com/elastic/terraform-provider-elasticstack/internal/utils" + "github.com/hashicorp/terraform-plugin-log/tflog" "github.com/hashicorp/terraform-plugin-sdk/v2/diag" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation" @@ -374,6 +375,7 @@ func resourceSnapRepoRead(ctx context.Context, d *schema.ResourceData, meta inte currentRepo, diags := client.GetElasticsearchSnapshotRepository(ctx, compId.ResourceId) if currentRepo == nil && diags == nil { + tflog.Warn(ctx, fmt.Sprintf(`Snapshot repository "%s" not found, removing from state`, compId.ResourceId)) d.SetId("") return diags }