@@ -4,12 +4,13 @@ import (
44 "context"
55 "flag"
66 "fmt"
7- client2 "github.com/RedisLabs/terraform-provider-rediscloud/provider/client "
7+ "os "
88 "regexp"
99 "strconv"
1010 "testing"
1111
1212 "github.com/RedisLabs/rediscloud-go-api/redis"
13+ client2 "github.com/RedisLabs/terraform-provider-rediscloud/provider/client"
1314 "github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest"
1415 "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
1516 "github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
@@ -40,7 +41,7 @@ func TestAccResourceRedisCloudActiveActiveSubscription_CRUDI(t *testing.T) {
4041 CheckDestroy : testAccCheckActiveActiveSubscriptionDestroy ,
4142 Steps : []resource.TestStep {
4243 {
43- Config : fmt . Sprintf ( testAccResourceRedisCloudActiveActiveSubscription , name , name ),
44+ Config : testAccResourceRedisCloudActiveActiveSubscription ( t , name ),
4445 Check : resource .ComposeAggregateTestCheckFunc (
4546 // Test the resource
4647 resource .TestCheckResourceAttr (resourceName , "name" , name ),
@@ -175,11 +176,14 @@ func TestAccResourceRedisCloudActiveActiveSubscription_CRUDI(t *testing.T) {
175176 resource .TestCheckResourceAttr (datasourceRegionName , "regions.1.region" , "us-east-2" ),
176177 resource .TestCheckResourceAttr (datasourceRegionName , "regions.1.networking_deployment_cidr" , "10.0.1.0/24" ),
177178 resource .TestCheckResourceAttrSet (datasourceRegionName , "regions.1.vpc_id" ),
179+
180+ // checks enabling default user is true
181+ //resource.TestCheckResourceAttr(resourceName, "regions.1.enable_default_user", "true"),
178182 ),
179183 },
180184 {
181185 // Checks if the changes in the creation plan are ignored.
182- Config : fmt . Sprintf ( testAccResourceRedisCloudActiveActiveSubscriptionNoCreationPlan , name , "AWS" ),
186+ Config : testAccResourceRedisCloudActiveActiveSubscriptionUpdate ( t , name , "AWS" ),
183187 Check : resource .ComposeAggregateTestCheckFunc (
184188 resource .TestCheckResourceAttr (resourceName , "name" , name ),
185189 resource .TestCheckResourceAttr (resourceName , "cloud_provider" , "AWS" ),
@@ -194,6 +198,9 @@ func TestAccResourceRedisCloudActiveActiveSubscription_CRUDI(t *testing.T) {
194198 resource .TestCheckResourceAttr (resourceName , "creation_plan.0.region.1.write_operations_per_second" , "1000" ),
195199 resource .TestCheckResourceAttr (resourceName , "creation_plan.0.region.1.read_operations_per_second" , "1000" ),
196200
201+ // also checks user has removed default user
202+ //resource.TestCheckResourceAttr(resourceName, "regions.1.enable_default_user", "false"),
203+
197204 // maintenance windows spec is omitted so should default back to automatic
198205 resource .TestCheckResourceAttr (resourceName , "maintenance_windows.0.mode" , "automatic" ),
199206 resource .TestCheckResourceAttr (resourceName , "maintenance_windows.0.window.#" , "0" ),
@@ -343,96 +350,6 @@ func testAccCheckActiveActiveSubscriptionDestroy(s *terraform.State) error {
343350 return nil
344351}
345352
346- // TF config for provisioning a new subscription.
347- const testAccResourceRedisCloudActiveActiveSubscription = `
348- data "rediscloud_payment_method" "card" {
349- card_type = "Visa"
350- last_four_numbers = "5556"
351- }
352-
353- resource "rediscloud_active_active_subscription" "example" {
354- name = "%s"
355- payment_method_id = data.rediscloud_payment_method.card.id
356- cloud_provider = "AWS"
357-
358- creation_plan {
359- memory_limit_in_gb = 1
360- modules = ["RedisJSON"]
361- quantity = 1
362- region {
363- region = "us-east-1"
364- networking_deployment_cidr = "192.168.0.0/24"
365- write_operations_per_second = 1000
366- read_operations_per_second = 1000
367- }
368- region {
369- region = "us-east-2"
370- networking_deployment_cidr = "10.0.1.0/24"
371- write_operations_per_second = 1000
372- read_operations_per_second = 1000
373- }
374- }
375-
376- maintenance_windows {
377- mode = "manual"
378- window {
379- start_hour = 22
380- duration_in_hours = 8
381- days = ["Monday", "Thursday"]
382- }
383- window {
384- start_hour = 12
385- duration_in_hours = 6
386- days = ["Friday", "Saturday", "Sunday"]
387- }
388- }
389- }
390-
391- resource "rediscloud_active_active_subscription_database" "example" {
392- subscription_id = rediscloud_active_active_subscription.example.id
393- name = "%s"
394- dataset_size_in_gb = 1
395- global_data_persistence = "aof-every-1-second"
396- global_password = "some-random-pass-2"
397- global_source_ips = ["192.168.0.0/16"]
398- global_alert {
399- name = "dataset-size"
400- value = 40
401- }
402-
403- global_modules = ["RedisJSON"]
404-
405- override_region {
406- name = "us-east-2"
407- override_global_source_ips = ["192.10.0.0/16"]
408- }
409-
410- override_region {
411- name = "us-east-1"
412- override_global_data_persistence = "none"
413- override_global_password = "region-specific-password"
414- override_global_alert {
415- name = "dataset-size"
416- value = 60
417- }
418- }
419-
420- tags = {
421- "environment" = "production"
422- "cost_center" = "0700"
423- }
424- }
425-
426-
427- data "rediscloud_active_active_subscription" "example" {
428- name = rediscloud_active_active_subscription.example.name
429- }
430-
431- data "rediscloud_active_active_subscription_regions" "example" {
432- subscription_name = rediscloud_active_active_subscription.example.name
433- }
434- `
435-
436353const testAccResourceRedisCloudActiveActiveSubscriptionNoCreationPlan = `
437354
438355data "rediscloud_payment_method" "card" {
@@ -536,3 +453,23 @@ resource "rediscloud_active_active_subscription" "example" {
536453 }
537454 }
538455`
456+
457+ func testAccResourceRedisCloudActiveActiveSubscription (t * testing.T , subscriptionName string ) string {
458+
459+ content , err := os .ReadFile ("./activeactive/testdata//testAccResourceRedisCloudActiveActiveSubscription.tf" )
460+ if err != nil {
461+ t .Fatalf ("failed to read file: %v" , err )
462+ }
463+
464+ return fmt .Sprintf (string (content ), subscriptionName )
465+ }
466+
467+ func testAccResourceRedisCloudActiveActiveSubscriptionUpdate (t * testing.T , subscriptionName string , cloudProvider string ) string {
468+
469+ content , err := os .ReadFile ("./activeactive/testdata/testAccResourceRedisCloudActiveActiveSubscriptionUpdate.tf" )
470+ if err != nil {
471+ t .Fatalf ("failed to read file: %v" , err )
472+ }
473+
474+ return fmt .Sprintf (string (content ), subscriptionName , cloudProvider )
475+ }
0 commit comments