Skip to content

Commit 363b598

Browse files
committed
fix: import not working because ID needs to be fetched
1 parent b92e75d commit 363b598

File tree

3 files changed

+66
-55
lines changed

3 files changed

+66
-55
lines changed

provider/privatelink/resource_rediscloud_private_link.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,10 @@ func resourceRedisCloudPrivateLinkRead(ctx context.Context, d *schema.ResourceDa
202202
var diags diag.Diagnostics
203203
api := meta.(*client.ApiClient)
204204

205-
subId, err := strconv.Atoi(d.Get("subscription_id").(string))
205+
subId, err := strconv.Atoi(d.Id())
206+
if err != nil {
207+
return diag.FromErr(err)
208+
}
206209

207210
privateLink, err := api.Client.PrivateLink.GetPrivateLink(ctx, subId)
208211

@@ -256,7 +259,7 @@ func resourceRedisCloudPrivateLinkUpdate(ctx context.Context, d *schema.Resource
256259
var diags diag.Diagnostics
257260
api := meta.(*client.ApiClient)
258261

259-
if d.HasChange("principals") {
262+
if d.HasChange("principal") {
260263

261264
subId, err := strconv.Atoi(d.Get("subscription_id").(string))
262265

provider/privatelink/testdata/testActiveActivePrivateLink.tf

Lines changed: 48 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -3,78 +3,87 @@ locals {
33
rediscloud_cloud_account = "%s"
44
rediscloud_private_link_share_name = "%s"
55
rediscloud_database_password = "%s"
6-
rediscloud_principal_1 = "%s"
7-
rediscloud_principal_2 = "%s"
86
}
97

108
data "rediscloud_payment_method" "card" {
119
card_type = "Visa"
1210
last_four_numbers = "5556"
1311
}
1412

15-
data "rediscloud_cloud_account" "account" {
16-
exclude_internal_account = true
17-
provider_type = "AWS"
18-
name = local.rediscloud_cloud_account
19-
}
2013

21-
resource "rediscloud_active_active_subscription" "subscription" {
14+
resource "rediscloud_active_active_subscription" "aa_subscription" {
2215
name = local.rediscloud_subscription_name
16+
payment_method = "credit-card"
2317
payment_method_id = data.rediscloud_payment_method.card.id
18+
cloud_provider = "AWS"
2419

25-
cloud_provider {
26-
provider = data.rediscloud_cloud_account.account.provider_type
27-
cloud_account_id = data.rediscloud_cloud_account.account.id
20+
creation_plan {
21+
memory_limit_in_gb = 1
22+
quantity = 1
2823
region {
29-
region = "eu-west-1"
30-
networking_deployment_cidr = "10.0.0.0/24"
31-
preferred_availability_zones = ["eu-west-1a"]
24+
region = "eu-west-1"
25+
networking_deployment_cidr = "192.168.0.0/24"
26+
write_operations_per_second = 1000
27+
read_operations_per_second = 1000
28+
}
29+
region {
30+
region = "eu-west-2"
31+
networking_deployment_cidr = "10.0.1.0/24"
32+
write_operations_per_second = 1000
33+
read_operations_per_second = 1000
3234
}
33-
}
34-
35-
creation_plan {
36-
dataset_size_in_gb = 15
37-
quantity = 1
38-
replication = true
39-
throughput_measurement_by = "operations-per-second"
40-
throughput_measurement_value = 20000
4135
}
4236
}
4337

44-
resource "rediscloud_active_active_subscription_database" "database_resource" {
45-
subscription_id = rediscloud_active_active_subscription.subscription.id
38+
resource "rediscloud_active_active_subscription_database" "aa_database" {
39+
subscription_id = rediscloud_active_active_subscription.aa_subscription.id
4640
name = "db"
4741
memory_limit_in_gb = 1
4842
global_data_persistence = "aof-every-1-second"
4943
global_password = local.rediscloud_database_password
5044
}
5145

52-
data "rediscloud_active_active_subscription_regions" "regions_info" {
53-
subscription_name = rediscloud_active_active_subscription.subscription.name
54-
depends_on = [rediscloud_active_active_subscription_database.database_resource]
46+
data "rediscloud_active_active_subscription_regions" "aa_regions_info" {
47+
subscription_name = rediscloud_active_active_subscription.aa_subscription.name
48+
depends_on = [rediscloud_active_active_subscription_database.aa_database]
5549
}
5650

57-
resource "rediscloud_active_active_private_link" "private_link" {
58-
subscription_id = rediscloud_active_active_subscription.subscription.id
59-
share_name = local.rediscloud_private_link_share_name
60-
region_id = data.rediscloud_active_active_subscription_regions.regions_info.regions[0].region_id
51+
52+
resource "rediscloud_active_active_private_link" "aa_private_link" {
53+
subscription_id = rediscloud_active_active_subscription.aa_subscription.id
54+
region_id = data.rediscloud_active_active_subscription_regions.aa_regions_info.regions[0].region_id
55+
share_name = "private_link testing"
6156

6257
principal {
63-
principal = local.rediscloud_principal_1
64-
principal_type = "aws_account"
58+
principal = "123456789012"
59+
principal_type = "aws_account"
6560
principal_alias = "terraform test aws account"
6661
}
67-
6862
principal {
69-
principal = local.rediscloud_principal_2
70-
principal_type = "aws_account"
63+
principal = "688576139039"
64+
principal_type = "aws_account"
7165
principal_alias = "terraform test aws account 2"
7266
}
7367
}
7468

75-
data "rediscloud_active_active_private_link" "private_link" {
76-
subscription_id = rediscloud_active_active_private_link.private_link.subscription_id
77-
region_id = 1
69+
data "rediscloud_active_active_private_link" "aa_private_link" {
70+
subscription_id = rediscloud_active_active_private_link.aa_private_link.subscription_id
71+
region_id = data.rediscloud_active_active_subscription_regions.aa_regions_info.regions[0].region_id
7872
}
7973

74+
# data "rediscloud_private_link_endpoint_script" "endpoint_script" {
75+
# subscription_id = rediscloud_private_link.private_link.subscription_id
76+
# }
77+
78+
79+
output "resource_aa_private_link" {
80+
value = rediscloud_active_active_private_link.aa_private_link
81+
}
82+
83+
output "data_aa_private_link" {
84+
value = data.rediscloud_active_active_private_link.aa_private_link
85+
}
8086

87+
# output "endpoint_script" {
88+
# value = data.rediscloud_private_link_endpoint_script.endpoint_script.endpoint_script
89+
# }

provider/rediscloud_active_active_private_link_test.go

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,10 @@ func TestAccResourceRedisCloudActiveActivePrivateLink_CRUDI(t *testing.T) {
1717

1818
password := acctest.RandString(20)
1919

20-
principal1 := "123456789012"
21-
principal2 := "234567890123"
22-
2320
const resourceName = "rediscloud_private_link.private_link"
2421
const datasourceName = "data.rediscloud_private_link.private_link"
2522
shareName := acctest.RandomWithPrefix(testResourcePrefix) + "privatelink-active-active_test-share"
26-
terraformConfig := getRedisActiveActivePrivateLinkConfig(t, testActiveActivePrivateLinkConfigFile, shareName, password, principal1, principal2)
23+
terraformConfig := getRedisActiveActivePrivateLinkConfig(t, testActiveActivePrivateLinkConfigFile, shareName, password)
2724

2825
resource.ParallelTest(t, resource.TestCase{
2926
PreCheck: func() { testAccPreCheck(t) },
@@ -35,23 +32,25 @@ func TestAccResourceRedisCloudActiveActivePrivateLink_CRUDI(t *testing.T) {
3532
Check: resource.ComposeAggregateTestCheckFunc(
3633
resource.TestCheckResourceAttrSet(resourceName, "id"),
3734
resource.TestCheckResourceAttrSet(resourceName, "subscription_id"),
38-
resource.TestCheckResourceAttr(resourceName, "share_name", shareName),
39-
resource.TestCheckResourceAttrSet(resourceName, "principal"),
35+
resource.TestCheckResourceAttrSet(resourceName, "share_name"),
36+
resource.TestCheckResourceAttrSet(resourceName, "region_id"),
37+
resource.TestCheckResourceAttr(resourceName, "principal.#", "2"),
4038
resource.TestCheckResourceAttrSet(resourceName, "resource_configuration_id"),
4139
resource.TestCheckResourceAttrSet(resourceName, "resource_configuration_arn"),
4240
resource.TestCheckResourceAttrSet(resourceName, "share_arn"),
43-
resource.TestCheckResourceAttrSet(resourceName, "connections"),
44-
resource.TestCheckResourceAttrSet(resourceName, "databases"),
41+
resource.TestCheckResourceAttr(resourceName, "connections.#", "0"),
42+
resource.TestCheckResourceAttr(resourceName, "databases.#", "1"),
4543

4644
resource.TestCheckResourceAttrSet(datasourceName, "id"),
4745
resource.TestCheckResourceAttrSet(datasourceName, "subscription_id"),
48-
resource.TestCheckResourceAttr(datasourceName, "share_name", shareName),
49-
resource.TestCheckResourceAttrSet(datasourceName, "principal"),
46+
resource.TestCheckResourceAttrSet(datasourceName, "region_id"),
47+
resource.TestCheckResourceAttr(datasourceName, "principals.#", "2"),
48+
5049
resource.TestCheckResourceAttrSet(datasourceName, "resource_configuration_id"),
5150
resource.TestCheckResourceAttrSet(datasourceName, "resource_configuration_arn"),
5251
resource.TestCheckResourceAttrSet(datasourceName, "share_arn"),
53-
resource.TestCheckResourceAttrSet(datasourceName, "connections"),
54-
resource.TestCheckResourceAttrSet(datasourceName, "databases"),
52+
resource.TestCheckResourceAttr(datasourceName, "connections.#", "0"),
53+
resource.TestCheckResourceAttr(datasourceName, "databases.#", "1"),
5554
),
5655
},
5756
{
@@ -63,7 +62,7 @@ func TestAccResourceRedisCloudActiveActivePrivateLink_CRUDI(t *testing.T) {
6362
})
6463
}
6564

66-
func getRedisActiveActivePrivateLinkConfig(t *testing.T, testFile, shareName, password, principal1, principal2 string) string {
65+
func getRedisActiveActivePrivateLinkConfig(t *testing.T, testFile, shareName, password string) string {
6766
subName := acctest.RandomWithPrefix(testResourcePrefix) + "-aa-private-link"
6867
exampleCloudAccountName := os.Getenv("AWS_TEST_CLOUD_ACCOUNT_NAME")
6968

@@ -72,5 +71,5 @@ func getRedisActiveActivePrivateLinkConfig(t *testing.T, testFile, shareName, pa
7271
t.Fatalf("failed to read file: %v", err)
7372
}
7473

75-
return fmt.Sprintf(string(content), subName, exampleCloudAccountName, shareName, password, principal1, principal2)
74+
return fmt.Sprintf(string(content), subName, exampleCloudAccountName, shareName, password)
7675
}

0 commit comments

Comments
 (0)