Skip to content

Commit 322c74f

Browse files
committed
Add import logic
1 parent 7cd7742 commit 322c74f

File tree

2 files changed

+26
-12
lines changed

2 files changed

+26
-12
lines changed

kubernetes/resource_kubernetes_config_map_v1.go

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ package kubernetes
55

66
import (
77
"context"
8+
"fmt"
89
"log"
910

1011
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
@@ -25,7 +26,29 @@ func resourceKubernetesConfigMapV1() *schema.Resource {
2526
UpdateContext: resourceKubernetesConfigMapV1Update,
2627
DeleteContext: resourceKubernetesConfigMapV1Delete,
2728
Importer: &schema.ResourceImporter{
28-
StateContext: schema.ImportStatePassthroughContext,
29+
StateContext: func(ctx context.Context, rd *schema.ResourceData, i interface{}) ([]*schema.ResourceData, error) {
30+
if rd.Id() != "" {
31+
return []*schema.ResourceData{rd}, nil
32+
}
33+
34+
rid, err := rd.Identity()
35+
if err != nil {
36+
return nil, err
37+
}
38+
39+
namespace, ok := rid.Get("namespace").(string)
40+
if !ok {
41+
return nil, fmt.Errorf("could not get namespace from resource identity")
42+
}
43+
name, ok := rid.Get("name").(string)
44+
if !ok {
45+
return nil, fmt.Errorf("could not get name from resource identity")
46+
}
47+
48+
rd.SetId(fmt.Sprintf("%s/%s", namespace, name))
49+
50+
return []*schema.ResourceData{rd}, nil
51+
},
2952
},
3053
CustomizeDiff: func(ctx context.Context, diff *schema.ResourceDiff, meta interface{}) error {
3154
if diff.Id() == "" {

kubernetes/resource_kubernetes_config_map_v1_test.go

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,6 @@ func TestAccKubernetesConfigMapV1_basic(t *testing.T) {
3030

3131
resource.ParallelTest(t, resource.TestCase{
3232
PreCheck: func() { testAccPreCheck(t) },
33-
IDRefreshName: resourceName,
34-
IDRefreshIgnore: []string{"metadata.0.resource_version"},
3533
ProviderFactories: testAccProviderFactories,
3634
CheckDestroy: testAccCheckKubernetesConfigMapV1Destroy,
3735
Steps: []resource.TestStep{
@@ -132,8 +130,6 @@ func TestAccKubernetesConfigMapV1_binaryData(t *testing.T) {
132130

133131
resource.ParallelTest(t, resource.TestCase{
134132
PreCheck: func() { testAccPreCheck(t) },
135-
IDRefreshName: resourceName,
136-
IDRefreshIgnore: []string{"metadata.0.resource_version"},
137133
ProviderFactories: testAccProviderFactories,
138134
CheckDestroy: testAccCheckKubernetesConfigMapV1Destroy,
139135
Steps: []resource.TestStep{
@@ -167,8 +163,6 @@ func TestAccKubernetesConfigMap_generatedName(t *testing.T) {
167163

168164
resource.ParallelTest(t, resource.TestCase{
169165
PreCheck: func() { testAccPreCheck(t) },
170-
IDRefreshName: resourceName,
171-
IDRefreshIgnore: []string{"metadata.0.resource_version"},
172166
ProviderFactories: testAccProviderFactories,
173167
CheckDestroy: testAccCheckKubernetesConfigMapV1Destroy,
174168
Steps: []resource.TestStep{
@@ -202,7 +196,6 @@ func TestAccKubernetesConfigMap_immutable(t *testing.T) {
202196

203197
resource.ParallelTest(t, resource.TestCase{
204198
PreCheck: func() { testAccPreCheck(t) },
205-
IDRefreshName: resourceName,
206199
ProviderFactories: testAccProviderFactories,
207200
CheckDestroy: testAccCheckKubernetesConfigMapV1Destroy,
208201
Steps: []resource.TestStep{
@@ -248,12 +241,10 @@ func TestAccKubernetesConfigMap_immutable(t *testing.T) {
248241

249242
func TestAccKubernetesConfigMap_identity(t *testing.T) {
250243
name := fmt.Sprintf("tf-acc-test-%s", acctest.RandStringFromCharSet(10, acctest.CharSetAlphaNum))
251-
resourceName := "kubernetes_config_map_v1.identity_test"
244+
resourceName := "kubernetes_config_map_v1.test"
252245

253246
resource.ParallelTest(t, resource.TestCase{
254247
PreCheck: func() { testAccPreCheck(t) },
255-
IDRefreshName: resourceName,
256-
IDRefreshIgnore: []string{"metadata.0.resource_version"},
257248
ProviderFactories: testAccProviderFactories,
258249
CheckDestroy: testAccCheckKubernetesConfigMapV1Destroy,
259250
TerraformVersionChecks: []tfversion.TerraformVersionCheck{
@@ -371,7 +362,7 @@ func testAccKubernetesConfigMapV1Config_nodata(name string) string {
371362
}
372363

373364
func testAccKubernetesConfigMapV1Config_basic(name string) string {
374-
return fmt.Sprintf(`resource "kubernetes_config_map_v1" "identity_test" {
365+
return fmt.Sprintf(`resource "kubernetes_config_map_v1" "test" {
375366
metadata {
376367
annotations = {
377368
TestAnnotationOne = "one"

0 commit comments

Comments
 (0)