From f78706ec45ace0614f80e6cda5f4dad3cfc2e912 Mon Sep 17 00:00:00 2001 From: Toby Brain Date: Tue, 12 Sep 2023 20:29:18 +1000 Subject: [PATCH 1/3] Don't require elasticsearch for Kibana resources --- internal/kibana/space.go | 31 +++++++++++++++++-------------- internal/kibana/space_test.go | 2 -- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/internal/kibana/space.go b/internal/kibana/space.go index 908e3e213..4ba94a10c 100644 --- a/internal/kibana/space.go +++ b/internal/kibana/space.go @@ -2,6 +2,7 @@ package kibana import ( "context" + "strings" "github.com/disaster37/go-kibana-rest/v8/kbapi" "github.com/elastic/terraform-provider-elasticstack/internal/clients" @@ -121,12 +122,7 @@ func resourceSpaceUpsert(ctx context.Context, d *schema.ResourceData, meta inter } } - id, diags := client.ID(ctx, spaceResponse.ID) - if diags.HasError() { - return diags - } - - d.SetId(id.String()) + d.SetId(spaceResponse.ID) return resourceSpaceRead(ctx, d, meta) } @@ -136,11 +132,14 @@ func resourceSpaceRead(ctx context.Context, d *schema.ResourceData, meta interfa if diags.HasError() { return diags } - compId, diags := clients.CompositeIdFromStr(d.Id()) - if diags.HasError() { - return diags + id := d.Id() + if strings.Contains(id, "/") { + compId, diags := clients.CompositeIdFromStr(id) + if diags.HasError() { + return diags + } + id = compId.ResourceId } - id := compId.ResourceId kibana, err := client.GetKibanaClient() if err != nil { @@ -184,9 +183,13 @@ func resourceSpaceDelete(ctx context.Context, d *schema.ResourceData, meta inter if diags.HasError() { return diags } - compId, diags := clients.CompositeIdFromStr(d.Id()) - if diags.HasError() { - return diags + id := d.Id() + if strings.Contains(id, "/") { + compId, diags := clients.CompositeIdFromStr(id) + if diags.HasError() { + return diags + } + id = compId.ResourceId } kibana, err := client.GetKibanaClient() @@ -194,7 +197,7 @@ func resourceSpaceDelete(ctx context.Context, d *schema.ResourceData, meta inter return diag.FromErr(err) } - err = kibana.KibanaSpaces.Delete(compId.ResourceId) + err = kibana.KibanaSpaces.Delete(id) if err != nil { return diag.FromErr(err) } diff --git a/internal/kibana/space_test.go b/internal/kibana/space_test.go index 5cef8b750..ab3c2cde5 100644 --- a/internal/kibana/space_test.go +++ b/internal/kibana/space_test.go @@ -44,7 +44,6 @@ func TestAccResourceSpace(t *testing.T) { func testAccResourceSpaceCreate(id string) string { return fmt.Sprintf(` provider "elasticstack" { - elasticsearch {} kibana {} } @@ -59,7 +58,6 @@ resource "elasticstack_kibana_space" "test_space" { func testAccResourceSpaceUpdate(id string) string { return fmt.Sprintf(` provider "elasticstack" { - elasticsearch {} kibana {} } From c0d38aff72367fc2757e8668d15859d995d6926a Mon Sep 17 00:00:00 2001 From: Toby Brain Date: Mon, 16 Oct 2023 17:03:51 +1100 Subject: [PATCH 2/3] Fix acctest cleanup --- internal/kibana/space_test.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/internal/kibana/space_test.go b/internal/kibana/space_test.go index ab3c2cde5..16a4d25da 100644 --- a/internal/kibana/space_test.go +++ b/internal/kibana/space_test.go @@ -80,19 +80,18 @@ func checkResourceSpaceDestroy(s *terraform.State) error { if rs.Type != "elasticstack_kibana_space" { continue } - compId, _ := clients.CompositeIdFromStr(rs.Primary.ID) kibanaClient, err := client.GetKibanaClient() if err != nil { return err } - res, err := kibanaClient.KibanaSpaces.Get(compId.ResourceId) + res, err := kibanaClient.KibanaSpaces.Get(rs.Primary.ID) if err != nil { return err } if res != nil { - return fmt.Errorf("Space (%s) still exists", compId.ResourceId) + return fmt.Errorf("Space (%s) still exists", rs.Primary.ID) } } return nil From 5c0bd7a78a36501244459ca3f72766045cfca302 Mon Sep 17 00:00:00 2001 From: Toby Brain Date: Mon, 16 Oct 2023 17:06:42 +1100 Subject: [PATCH 3/3] Try and decode the space id as a composite it --- internal/kibana/space.go | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/internal/kibana/space.go b/internal/kibana/space.go index 4ba94a10c..a095c6238 100644 --- a/internal/kibana/space.go +++ b/internal/kibana/space.go @@ -2,7 +2,6 @@ package kibana import ( "context" - "strings" "github.com/disaster37/go-kibana-rest/v8/kbapi" "github.com/elastic/terraform-provider-elasticstack/internal/clients" @@ -133,11 +132,7 @@ func resourceSpaceRead(ctx context.Context, d *schema.ResourceData, meta interfa return diags } id := d.Id() - if strings.Contains(id, "/") { - compId, diags := clients.CompositeIdFromStr(id) - if diags.HasError() { - return diags - } + if compId, diags := clients.CompositeIdFromStr(id); diags == nil { id = compId.ResourceId } @@ -184,11 +179,7 @@ func resourceSpaceDelete(ctx context.Context, d *schema.ResourceData, meta inter return diags } id := d.Id() - if strings.Contains(id, "/") { - compId, diags := clients.CompositeIdFromStr(id) - if diags.HasError() { - return diags - } + if compId, diags := clients.CompositeIdFromStr(id); diags == nil { id = compId.ResourceId }