Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ go 1.24.0
toolchain go1.24.1

require (
github.com/RedisLabs/rediscloud-go-api v0.36.4
github.com/RedisLabs/rediscloud-go-api v0.36.5
github.com/bflad/tfproviderlint v0.31.0
github.com/hashicorp/go-cty v1.5.0
github.com/hashicorp/terraform-plugin-sdk/v2 v2.37.0
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERo
github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
github.com/ProtonMail/go-crypto v1.1.6 h1:ZcV+Ropw6Qn0AX9brlQLAUXfqLBc7Bl+f/DmNxpLfdw=
github.com/ProtonMail/go-crypto v1.1.6/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE=
github.com/RedisLabs/rediscloud-go-api v0.36.4 h1:EBoyJ3SyvfX4MjTB5MNs5s+hhYTVSVzjdhNtPJDcfMw=
github.com/RedisLabs/rediscloud-go-api v0.36.4/go.mod h1:Hkh3i/EsHnyfgV0ijednbofz/EmZC3sFnSNNruF3G6I=
github.com/RedisLabs/rediscloud-go-api v0.36.5 h1:zZ5C2+QHdfdlGqZDw3o2GMM7Wz5BhLUUW8U3yGFl1ck=
github.com/RedisLabs/rediscloud-go-api v0.36.5/go.mod h1:Hkh3i/EsHnyfgV0ijednbofz/EmZC3sFnSNNruF3G6I=
github.com/agext/levenshtein v1.2.2 h1:0S/Yg6LYmFJ5stwQeRp6EeOcCbj7xiqQSdNelsXvaqE=
github.com/agext/levenshtein v1.2.2/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558=
github.com/apparentlymart/go-textseg/v12 v12.0.0/go.mod h1:S/4uRK2UtaQttw1GenVJEynmyUenKwP++x/+DdGV/Ec=
Expand Down
2 changes: 1 addition & 1 deletion provider/privatelink/resource_rediscloud_private_link.go
Original file line number Diff line number Diff line change
Expand Up @@ -337,7 +337,7 @@ func resourceRedisCloudPrivateLinkDelete(ctx context.Context, d *schema.Resource
return diag.FromErr(err)
}

return resourceRedisCloudPrivateLinkDelete(ctx, d, meta)
return diags
}

func createOtherPrincipals(ctx context.Context, api *client.ApiClient, subId int, otherPrincipals []pl.PrivateLinkPrincipal) error {
Expand Down
133 changes: 68 additions & 65 deletions provider/privatelink/testdata/testPrivateLink.tf
Original file line number Diff line number Diff line change
@@ -1,70 +1,73 @@
# locals {
# rediscloud_subscription_name = "%s"
# rediscloud_cloud_account = "%s"
# rediscloud_private_link_share_name = "%s"
# rediscloud_principal_1 = "%s"
# rediscloud_principal_2 = "%s"
# }
#
# data "rediscloud_payment_method" "card" {
# card_type = "Visa"
# last_four_numbers = "5556"
# }
#
# data "rediscloud_cloud_account" "account" {
# exclude_internal_account = true
# provider_type = "AWS"
# name = local.rediscloud_cloud_account
# }
#
# resource "rediscloud_subscription" "subscription" {
# name = local.rediscloud_subscription_name
# payment_method_id = data.rediscloud_payment_method.card.id
#
# cloud_provider {
# provider = data.rediscloud_cloud_account.account.provider_type
# cloud_account_id = data.rediscloud_cloud_account.account.id
# region {
# region = "eu-west-1"
# networking_deployment_cidr = "10.0.0.0/24"
# preferred_availability_zones = ["eu-west-1a"]
# }
# }
#
# creation_plan {
# dataset_size_in_gb = 15
# quantity = 1
# replication = true
# throughput_measurement_by = "operations-per-second"
# throughput_measurement_value = 20000
# }
# }
#
# resource "rediscloud_private_link" "private_link" {
# subscription_id = rediscloud_subscription.subscription.id
# share_name = local.rediscloud_private_link_share_name
#
# principal {
# principal = local.rediscloud_principal_1
# principal_type = "aws_account"
# principal_alias = "terraform test aws account"
# }
#
# principal {
# principal = local.rediscloud_principal_2
# principal_type = "aws_account"
# principal_alias = "terraform test aws account 2"
# }
# }
#
# data "rediscloud_private_link" "private_link" {
locals {
rediscloud_subscription_name = "%s"
rediscloud_cloud_account = "%s"
rediscloud_private_link_share_name = "%s"
rediscloud_principal_1 = "%s"
rediscloud_principal_2 = "%s"
}

data "rediscloud_payment_method" "card" {
card_type = "Visa"
last_four_numbers = "5556"
}

data "rediscloud_cloud_account" "account" {
exclude_internal_account = true
provider_type = "AWS"
name = local.rediscloud_cloud_account
}

resource "rediscloud_subscription" "pro_subscription" {
name = local.rediscloud_subscription_name
payment_method_id = data.rediscloud_payment_method.card.id

cloud_provider {
provider = data.rediscloud_cloud_account.account.provider_type
cloud_account_id = data.rediscloud_cloud_account.account.id
region {
region = "eu-west-1"
networking_deployment_cidr = "10.0.0.0/24"
preferred_availability_zones = ["eu-west-1a"]
}
}

creation_plan {
dataset_size_in_gb = 15
quantity = 1
replication = true
throughput_measurement_by = "operations-per-second"
throughput_measurement_value = 20000
}
}

resource "rediscloud_private_link" "pro_private_link" {
subscription_id = rediscloud_subscription.pro_subscription.id
share_name = local.rediscloud_private_link_share_name

principal {
principal = local.rediscloud_principal_1
principal_type = "aws_account"
principal_alias = "terraform test aws account"
}

principal {
principal = local.rediscloud_principal_2
principal_type = "aws_account"
principal_alias = "terraform test aws account 2"
}
}

data "rediscloud_private_link" "pro_private_link" {
subscription_id = rediscloud_private_link.pro_private_link.subscription_id
}

# not working yet
# data "rediscloud_private_link_endpoint_script" "endpoint_script" {
# subscription_id = rediscloud_private_link.private_link.subscription_id
# }
#
# data "rediscloud_private_link_endpoint_script" "endpoint_script" {
# subscription_id = rediscloud_private_link.private_link.subscription_id
# output "endpoint_script" {
# value = data.rediscloud_private_link_endpoint_script.endpoint_script
# }

data "rediscloud_private_link" "pro_private_link" {
subscription_id = "122401"
}

4 changes: 2 additions & 2 deletions provider/privatelink/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -158,9 +158,9 @@ func flattenConnections(connections []*pl.PrivateLinkConnection) []map[string]in
for _, connection := range connections {
tf := map[string]interface{}{
"association_id": redis.StringValue(connection.AssociationId),
"connection_id": redis.IntValue(connection.ConnectionId),
"connection_id": redis.StringValue(connection.ConnectionId),
"type": redis.StringValue(connection.Type),
"owner_id": redis.IntValue(connection.OwnerId),
"owner_id": redis.StringValue(connection.OwnerId),
"association_date": redis.StringValue(connection.AssociationDate),
}
tfs = append(tfs, tf)
Expand Down
23 changes: 12 additions & 11 deletions provider/rediscloud_private_link_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ package provider

import (
"fmt"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest"
"os"
"testing"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)

Expand All @@ -32,19 +32,20 @@ func TestAccResourceRedisCloudPrivateLink_CRUDI(t *testing.T) {
{
Config: terraformConfig,
Check: resource.ComposeAggregateTestCheckFunc(
//resource.TestCheckResourceAttrSet(resourceName, "id"),
//resource.TestCheckResourceAttrSet(resourceName, "subscription_id"),
//resource.TestCheckResourceAttrSet(resourceName, "share_name"),
//resource.TestCheckResourceAttrSet(resourceName, "principal"),
//resource.TestCheckResourceAttrSet(resourceName, "resource_configuration_id"),
//resource.TestCheckResourceAttrSet(resourceName, "resource_configuration_arn"),
//resource.TestCheckResourceAttrSet(resourceName, "share_arn"),
//resource.TestCheckResourceAttrSet(resourceName, "connections"),
//resource.TestCheckResourceAttrSet(resourceName, "databases"),
resource.TestCheckResourceAttrSet(resourceName, "id"),
resource.TestCheckResourceAttrSet(resourceName, "subscription_id"),
resource.TestCheckResourceAttrSet(resourceName, "share_name"),
resource.TestCheckResourceAttr(resourceName, "principal.#", "2"),
resource.TestCheckResourceAttrSet(resourceName, "resource_configuration_id"),
resource.TestCheckResourceAttrSet(resourceName, "resource_configuration_arn"),
resource.TestCheckResourceAttrSet(resourceName, "share_arn"),
resource.TestCheckResourceAttr(resourceName, "connections.#", "5"),
resource.TestCheckResourceAttr(resourceName, "databases.#", "1"),

resource.TestCheckResourceAttrSet(datasourceName, "id"),
resource.TestCheckResourceAttrSet(datasourceName, "subscription_id"),
resource.TestCheckResourceAttrSet(datasourceName, "principal"),
resource.TestCheckResourceAttr(datasourceName, "principals.#", "2"),

resource.TestCheckResourceAttrSet(datasourceName, "resource_configuration_id"),
resource.TestCheckResourceAttrSet(datasourceName, "resource_configuration_arn"),
resource.TestCheckResourceAttrSet(datasourceName, "share_arn"),
Expand Down
Loading