Skip to content

Commit 6cbf418

Browse files
Adding Redis cluster import sources (#13550) (#3733)
[upstream:74e5612d394d175e9ce2cf3ca96ea2d7f7affe3f] Signed-off-by: Modular Magician <[email protected]>
1 parent dfc30be commit 6cbf418

File tree

3 files changed

+61
-3
lines changed

3 files changed

+61
-3
lines changed

go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ require (
1313
github.com/hashicorp/hcl/v2 v2.23.0
1414
github.com/hashicorp/terraform-json v0.24.0
1515
github.com/hashicorp/terraform-plugin-sdk/v2 v2.36.0
16-
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250408205900-861cb68cc366
16+
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250408213959-041606b3a5ed
1717
github.com/mitchellh/go-homedir v1.1.0 // indirect
1818
github.com/pkg/errors v0.9.1
1919
github.com/stretchr/testify v1.10.0

go.sum

+2-2
Original file line numberDiff line numberDiff line change
@@ -175,8 +175,8 @@ github.com/hashicorp/terraform-plugin-sdk/v2 v2.36.0 h1:7/iejAPyCRBhqAg3jOx+4UcA
175175
github.com/hashicorp/terraform-plugin-sdk/v2 v2.36.0/go.mod h1:TiQwXAjFrgBf5tg5rvBRz8/ubPULpU0HjSaVi5UoJf8=
176176
github.com/hashicorp/terraform-plugin-testing v1.5.1 h1:T4aQh9JAhmWo4+t1A7x+rnxAJHCDIYW9kXyo4sVO92c=
177177
github.com/hashicorp/terraform-plugin-testing v1.5.1/go.mod h1:dg8clO6K59rZ8w9EshBmDp1CxTIPu3yA4iaDpX1h5u0=
178-
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250408205900-861cb68cc366 h1:vcTvLOYbiPg1qJlM0lZiywcZKqoll866qUpDX47oRiM=
179-
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250408205900-861cb68cc366/go.mod h1:nebsSmxY8nt9YCIJwjQdfUkFeITR5rGyTAQMfpexkiQ=
178+
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250408213959-041606b3a5ed h1:M07ojB57oxRMLqzC9FWkHWq32RwThsmGkIyOxJs+abQ=
179+
github.com/hashicorp/terraform-provider-google-beta v1.20.1-0.20250408213959-041606b3a5ed/go.mod h1:nebsSmxY8nt9YCIJwjQdfUkFeITR5rGyTAQMfpexkiQ=
180180
github.com/hashicorp/terraform-registry-address v0.2.4 h1:JXu/zHB2Ymg/TGVCRu10XqNa4Sh2bWcqCNyKWjnCPJA=
181181
github.com/hashicorp/terraform-registry-address v0.2.4/go.mod h1:tUNYTVyCtU4OIGXXMDp7WNcJ+0W1B4nmstVDgHMjfAU=
182182
github.com/hashicorp/terraform-svchost v0.1.1 h1:EZZimZ1GxdqFRinZ1tpJwVxxt49xc/S52uzrw4x0jKQ=

tfplan2cai/converters/google/resources/services/redis/redis_cluster.go

+58
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,18 @@ func GetRedisClusterCaiObject(d tpgresource.TerraformResourceData, config *trans
5656

5757
func GetRedisClusterApiObject(d tpgresource.TerraformResourceData, config *transport_tpg.Config) (map[string]interface{}, error) {
5858
obj := make(map[string]interface{})
59+
gcsSourceProp, err := expandRedisClusterGcsSource(d.Get("gcs_source"), d, config)
60+
if err != nil {
61+
return nil, err
62+
} else if v, ok := d.GetOkExists("gcs_source"); !tpgresource.IsEmptyValue(reflect.ValueOf(gcsSourceProp)) && (ok || !reflect.DeepEqual(v, gcsSourceProp)) {
63+
obj["gcsSource"] = gcsSourceProp
64+
}
65+
managedBackupSourceProp, err := expandRedisClusterManagedBackupSource(d.Get("managed_backup_source"), d, config)
66+
if err != nil {
67+
return nil, err
68+
} else if v, ok := d.GetOkExists("managed_backup_source"); !tpgresource.IsEmptyValue(reflect.ValueOf(managedBackupSourceProp)) && (ok || !reflect.DeepEqual(v, managedBackupSourceProp)) {
69+
obj["managedBackupSource"] = managedBackupSourceProp
70+
}
5971
automatedBackupConfigProp, err := expandRedisClusterAutomatedBackupConfig(d.Get("automated_backup_config"), d, config)
6072
if err != nil {
6173
return nil, err
@@ -156,6 +168,52 @@ func resourceRedisClusterEncoder(d tpgresource.TerraformResourceData, meta inter
156168
return obj, nil
157169
}
158170

171+
func expandRedisClusterGcsSource(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
172+
l := v.([]interface{})
173+
if len(l) == 0 || l[0] == nil {
174+
return nil, nil
175+
}
176+
raw := l[0]
177+
original := raw.(map[string]interface{})
178+
transformed := make(map[string]interface{})
179+
180+
transformedUris, err := expandRedisClusterGcsSourceUris(original["uris"], d, config)
181+
if err != nil {
182+
return nil, err
183+
} else if val := reflect.ValueOf(transformedUris); val.IsValid() && !tpgresource.IsEmptyValue(val) {
184+
transformed["uris"] = transformedUris
185+
}
186+
187+
return transformed, nil
188+
}
189+
190+
func expandRedisClusterGcsSourceUris(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
191+
return v, nil
192+
}
193+
194+
func expandRedisClusterManagedBackupSource(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
195+
l := v.([]interface{})
196+
if len(l) == 0 || l[0] == nil {
197+
return nil, nil
198+
}
199+
raw := l[0]
200+
original := raw.(map[string]interface{})
201+
transformed := make(map[string]interface{})
202+
203+
transformedBackup, err := expandRedisClusterManagedBackupSourceBackup(original["backup"], d, config)
204+
if err != nil {
205+
return nil, err
206+
} else if val := reflect.ValueOf(transformedBackup); val.IsValid() && !tpgresource.IsEmptyValue(val) {
207+
transformed["backup"] = transformedBackup
208+
}
209+
210+
return transformed, nil
211+
}
212+
213+
func expandRedisClusterManagedBackupSourceBackup(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
214+
return v, nil
215+
}
216+
159217
func expandRedisClusterAutomatedBackupConfig(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
160218
l := v.([]interface{})
161219
if len(l) == 0 || l[0] == nil {

0 commit comments

Comments
 (0)