Skip to content

Commit 5874203

Browse files
authored
Support imports on plugin framework index (#777)
1 parent b38ec22 commit 5874203

File tree

3 files changed

+24
-6
lines changed

3 files changed

+24
-6
lines changed

internal/elasticsearch/index/index/acc_test.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,19 @@ func TestAccResourceIndex(t *testing.T) {
6060
resource.TestCheckResourceAttr("elasticstack_elasticsearch_index.test", "number_of_replicas", "0"),
6161
),
6262
},
63+
{
64+
Config: testAccResourceIndexZeroReplicas(indexName),
65+
ImportState: true,
66+
ResourceName: "elasticstack_elasticsearch_index.test",
67+
Check: resource.ComposeTestCheckFunc(
68+
resource.TestCheckResourceAttr("elasticstack_elasticsearch_index.test", "name", indexName),
69+
resource.TestMatchTypeSetElemNestedAttrs("elasticstack_elasticsearch_index.test", "alias.*", map[string]*regexp.Regexp{
70+
"name": regexp.MustCompile("test_alias_1"),
71+
}),
72+
resource.TestCheckResourceAttr("elasticstack_elasticsearch_index.test", "alias.#", "1"),
73+
resource.TestCheckResourceAttr("elasticstack_elasticsearch_index.test", "number_of_replicas", "0"),
74+
),
75+
},
6376
},
6477
})
6578
}

internal/elasticsearch/index/index/resource.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,15 @@ import (
55

66
"github.com/elastic/terraform-provider-elasticstack/internal/clients"
77
"github.com/hashicorp/terraform-plugin-framework/diag"
8+
"github.com/hashicorp/terraform-plugin-framework/path"
89
"github.com/hashicorp/terraform-plugin-framework/resource"
910
)
1011

12+
// Ensure provider defined types fully satisfy framework interfaces
13+
var _ resource.Resource = &Resource{}
14+
var _ resource.ResourceWithConfigure = &Resource{}
15+
var _ resource.ResourceWithImportState = &Resource{}
16+
1117
type Resource struct {
1218
client *clients.ApiClient
1319
}
@@ -33,3 +39,8 @@ func (r *Resource) Configure(ctx context.Context, request resource.ConfigureRequ
3339
func (r *Resource) Metadata(ctx context.Context, request resource.MetadataRequest, response *resource.MetadataResponse) {
3440
response.TypeName = request.ProviderTypeName + "_elasticsearch_index"
3541
}
42+
43+
func (r *Resource) ImportState(ctx context.Context, req resource.ImportStateRequest, resp *resource.ImportStateResponse) {
44+
// Retrieve import ID and save to id attribute
45+
resource.ImportStatePassthroughID(ctx, path.Root("id"), req, resp)
46+
}

internal/elasticsearch/index/index/schema.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,6 @@ import (
2626
"github.com/hashicorp/terraform-plugin-framework/types"
2727
)
2828

29-
// Ensure provider defined types fully satisfy framework interfaces
30-
var _ resource.Resource = &Resource{}
31-
var _ resource.ResourceWithConfigure = &Resource{}
32-
33-
// var _ resource.ResourceWithImportState = &Resource{}
34-
3529
func (r *Resource) Schema(_ context.Context, _ resource.SchemaRequest, resp *resource.SchemaResponse) {
3630
resp.Schema = getSchema()
3731
}

0 commit comments

Comments
 (0)