@@ -17,12 +17,10 @@ import (
1717// Checks CRUDI (CREATE, READ, UPDATE, IMPORT) operations on the database resource.
1818func TestAccResourceRedisCloudActiveActiveDatabase_CRUDI (t * testing.T ) {
1919
20- testAccRequiresEnvVar (t , "EXECUTE_TESTS" )
21-
2220 subscriptionName := acctest .RandomWithPrefix (testResourcePrefix ) + "-subscription"
23- name := acctest .RandomWithPrefix (testResourcePrefix ) + "-database"
21+ databaseName := acctest .RandomWithPrefix (testResourcePrefix ) + "-database"
2422 password := acctest .RandString (20 )
25- const resourceName = "rediscloud_active_active_subscription_database.example"
23+ const databaseResourceName = "rediscloud_active_active_subscription_database.example"
2624 const datasourceName = "data.rediscloud_active_active_subscription_database.example"
2725 const datasourceRegionName = "data.rediscloud_active_active_subscription_regions.foo"
2826 const subscriptionResourceName = "rediscloud_active_active_subscription.example"
@@ -36,44 +34,44 @@ func TestAccResourceRedisCloudActiveActiveDatabase_CRUDI(t *testing.T) {
3634 Steps : []resource.TestStep {
3735 // Test database creation
3836 {
39- Config : fmt .Sprintf (testAccResourceRedisCloudActiveActiveDatabase , subscriptionName , name , password ),
37+ Config : fmt .Sprintf (testAccResourceRedisCloudActiveActiveDatabase , subscriptionName , databaseName , password ),
4038 Check : resource .ComposeAggregateTestCheckFunc (
4139 // Test resource
42- resource .TestCheckResourceAttr (resourceName , "name" , name ),
43- resource .TestCheckResourceAttr (resourceName , "dataset_size_in_gb" , "3" ),
44- resource .TestCheckResourceAttr (resourceName , "support_oss_cluster_api" , "false" ),
45- resource .TestCheckResourceAttr (resourceName , "global_data_persistence" , "none" ),
46- resource .TestCheckResourceAttr (resourceName , "external_endpoint_for_oss_cluster_api" , "false" ),
47- resource .TestCheckResourceAttr (resourceName , "global_password" , password ),
48- resource .TestCheckResourceAttr (resourceName , "enable_tls" , "false" ),
49- resource .TestCheckResourceAttr (resourceName , "data_eviction" , "volatile-lru" ),
50- resource .TestCheckResourceAttr (resourceName , "global_alert.#" , "1" ),
51- resource .TestCheckResourceAttr (resourceName , "global_alert.0.name" , "dataset-size" ),
52- resource .TestCheckResourceAttr (resourceName , "global_alert.0.value" , "1" ),
53- resource .TestCheckResourceAttr (resourceName , "global_modules.#" , "1" ),
54- resource .TestCheckResourceAttr (resourceName , "global_modules.0" , "RedisJSON" ),
55- resource .TestCheckResourceAttr (resourceName , "global_source_ips.#" , "2" ),
56-
57- resource .TestCheckResourceAttr (resourceName , "override_region.#" , "2" ),
58- resource .TestCheckResourceAttr (resourceName , "override_region.0.name" , "us-east-1" ),
59- resource .TestCheckResourceAttr (resourceName , "override_region.0.override_global_data_persistence" , "aof-every-write" ),
60- resource .TestCheckResourceAttr (resourceName , "override_region.0.override_global_password" , "region-specific-password" ),
40+ resource .TestCheckResourceAttr (databaseResourceName , "name" , databaseName ),
41+ resource .TestCheckResourceAttr (databaseResourceName , "dataset_size_in_gb" , "3" ),
42+ resource .TestCheckResourceAttr (databaseResourceName , "support_oss_cluster_api" , "false" ),
43+ resource .TestCheckResourceAttr (databaseResourceName , "global_data_persistence" , "none" ),
44+ resource .TestCheckResourceAttr (databaseResourceName , "external_endpoint_for_oss_cluster_api" , "false" ),
45+ resource .TestCheckResourceAttr (databaseResourceName , "global_password" , password ),
46+ resource .TestCheckResourceAttr (databaseResourceName , "enable_tls" , "false" ),
47+ resource .TestCheckResourceAttr (databaseResourceName , "data_eviction" , "volatile-lru" ),
48+ resource .TestCheckResourceAttr (databaseResourceName , "global_alert.#" , "1" ),
49+ resource .TestCheckResourceAttr (databaseResourceName , "global_alert.0.name" , "dataset-size" ),
50+ resource .TestCheckResourceAttr (databaseResourceName , "global_alert.0.value" , "1" ),
51+ resource .TestCheckResourceAttr (databaseResourceName , "global_modules.#" , "1" ),
52+ resource .TestCheckResourceAttr (databaseResourceName , "global_modules.0" , "RedisJSON" ),
53+ resource .TestCheckResourceAttr (databaseResourceName , "global_source_ips.#" , "2" ),
54+
55+ resource .TestCheckResourceAttr (databaseResourceName , "override_region.#" , "2" ),
56+ resource .TestCheckResourceAttr (databaseResourceName , "override_region.0.name" , "us-east-1" ),
57+ resource .TestCheckResourceAttr (databaseResourceName , "override_region.0.override_global_data_persistence" , "aof-every-write" ),
58+ resource .TestCheckResourceAttr (databaseResourceName , "override_region.0.override_global_password" , "region-specific-password" ),
6159 // check override region alert block
62- resource .TestCheckResourceAttr (resourceName , "override_region.0.override_global_alert.#" , "1" ),
63- resource .TestCheckResourceAttr (resourceName , "override_region.0.override_global_alert.0.name" , "dataset-size" ),
64- resource .TestCheckResourceAttr (resourceName , "override_region.0.override_global_alert.0.value" , "42" ),
65- resource .TestCheckResourceAttr (resourceName , "override_region.0.override_global_source_ips.#" , "1" ),
66- resource .TestCheckResourceAttr (resourceName , "override_region.0.override_global_source_ips.0" , "192.175.0.0/16" ),
60+ resource .TestCheckResourceAttr (databaseResourceName , "override_region.0.override_global_alert.#" , "1" ),
61+ resource .TestCheckResourceAttr (databaseResourceName , "override_region.0.override_global_alert.0.name" , "dataset-size" ),
62+ resource .TestCheckResourceAttr (databaseResourceName , "override_region.0.override_global_alert.0.value" , "42" ),
63+ resource .TestCheckResourceAttr (databaseResourceName , "override_region.0.override_global_source_ips.#" , "1" ),
64+ resource .TestCheckResourceAttr (databaseResourceName , "override_region.0.override_global_source_ips.0" , "192.175.0.0/16" ),
6765
6866 // Check that global values are used for the second region where no override is set
69- resource .TestCheckResourceAttr (resourceName , "override_region.1.name" , "us-east-2" ),
70- resource .TestCheckResourceAttr (resourceName , "override_region.1.override_global_data_persistence" , "" ),
71- resource .TestCheckResourceAttr (resourceName , "override_region.1.override_global_password" , "" ),
72- resource .TestCheckResourceAttr (resourceName , "override_region.1.override_global_alert.#" , "0" ),
73- resource .TestCheckResourceAttr (resourceName , "override_region.1.override_source_ips.#" , "0" ),
67+ resource .TestCheckResourceAttr (databaseResourceName , "override_region.1.name" , "us-east-2" ),
68+ resource .TestCheckResourceAttr (databaseResourceName , "override_region.1.override_global_data_persistence" , "" ),
69+ resource .TestCheckResourceAttr (databaseResourceName , "override_region.1.override_global_password" , "" ),
70+ resource .TestCheckResourceAttr (databaseResourceName , "override_region.1.override_global_alert.#" , "0" ),
71+ resource .TestCheckResourceAttr (databaseResourceName , "override_region.1.override_source_ips.#" , "0" ),
7472
75- resource .TestCheckResourceAttr (resourceName , "tags.deployment_family" , "blue" ),
76- resource .TestCheckResourceAttr (resourceName , "tags.priority" , "code-2" ),
73+ resource .TestCheckResourceAttr (databaseResourceName , "tags.deployment_family" , "blue" ),
74+ resource .TestCheckResourceAttr (databaseResourceName , "tags.priority" , "code-2" ),
7775
7876 // Test databases exist
7977 func (s * terraform.State ) error {
@@ -109,7 +107,7 @@ func TestAccResourceRedisCloudActiveActiveDatabase_CRUDI(t *testing.T) {
109107 // Test subscription datasource
110108 resource .TestCheckResourceAttrSet (datasourceName , "subscription_id" ),
111109 resource .TestCheckResourceAttrSet (datasourceName , "db_id" ),
112- resource .TestCheckResourceAttr (datasourceName , "name" , name ),
110+ resource .TestCheckResourceAttr (datasourceName , "name" , databaseName ),
113111 resource .TestCheckResourceAttr (datasourceName , "dataset_size_in_gb" , "3" ),
114112 resource .TestCheckResourceAttr (datasourceName , "support_oss_cluster_api" , "false" ),
115113 resource .TestCheckResourceAttr (datasourceName , "external_endpoint_for_oss_cluster_api" , "false" ),
@@ -122,41 +120,53 @@ func TestAccResourceRedisCloudActiveActiveDatabase_CRUDI(t *testing.T) {
122120 resource .TestCheckResourceAttr (datasourceName , "tags.priority" , "code-2" ),
123121
124122 // Test the region datasource
125- resource .TestCheckResourceAttr (datasourceRegionName , "subscription_name" , name ),
123+ resource .TestCheckResourceAttr (datasourceRegionName , "subscription_name" , subscriptionName ),
124+ resource .TestCheckResourceAttrSet (datasourceRegionName , "regions.0.vpc_id" ),
126125 resource .TestCheckResourceAttr (datasourceRegionName , "regions.0.region" , "us-east-1" ),
127126 resource .TestCheckResourceAttr (datasourceRegionName , "regions.0.networking_deployment_cidr" , "192.168.0.0/24" ),
128- resource .TestCheckResourceAttrSet (datasourceRegionName , "regions.0.vpc_id" ),
127+
128+ resource .TestCheckResourceAttrSet (datasourceRegionName , "regions.0.databases.0.database_id" ),
129+ resource .TestCheckResourceAttr (datasourceRegionName , "regions.0.databases.0.database_name" , databaseName ),
130+ resource .TestCheckResourceAttr (datasourceRegionName , "regions.0.databases.0.read_operations_per_second" , "1000" ),
131+ resource .TestCheckResourceAttr (datasourceRegionName , "regions.0.databases.0.write_operations_per_second" , "1000" ),
132+
133+
134+ resource .TestCheckResourceAttrSet (datasourceRegionName , "regions.1.vpc_id" ),
129135 resource .TestCheckResourceAttr (datasourceRegionName , "regions.1.region" , "us-east-2" ),
130136 resource .TestCheckResourceAttr (datasourceRegionName , "regions.1.networking_deployment_cidr" , "10.0.1.0/24" ),
131- resource .TestCheckResourceAttrSet (datasourceRegionName , "regions.1.vpc_id" ),
137+
138+ resource .TestCheckResourceAttrSet (datasourceRegionName , "regions.1.databases.0.database_id" ),
139+ resource .TestCheckResourceAttr (datasourceRegionName , "regions.1.databases.0.database_name" , databaseName ),
140+ resource .TestCheckResourceAttr (datasourceRegionName , "regions.1.databases.0.read_operations_per_second" , "1000" ),
141+ resource .TestCheckResourceAttr (datasourceRegionName , "regions.1.databases.0.write_operations_per_second" , "1000" ),
132142 ),
133143 },
134144 // Test database is updated successfully, including updates to both global and local alerts and clearing modules
135145 {
136- Config : fmt .Sprintf (testAccResourceRedisCloudActiveActiveDatabaseUpdate , subscriptionName , name ),
146+ Config : fmt .Sprintf (testAccResourceRedisCloudActiveActiveDatabaseUpdate , subscriptionName , databaseName ),
137147 Check : resource .ComposeAggregateTestCheckFunc (
138148 // Test resource
139- resource .TestCheckResourceAttr (resourceName , "dataset_size_in_gb" , "1" ),
140- resource .TestCheckResourceAttr (resourceName , "support_oss_cluster_api" , "true" ),
141- resource .TestCheckResourceAttr (resourceName , "external_endpoint_for_oss_cluster_api" , "true" ),
142- resource .TestCheckResourceAttr (resourceName , "global_data_persistence" , "aof-every-1-second" ),
143- resource .TestCheckResourceAttr (resourceName , "global_password" , "updated-password" ),
144- resource .TestCheckResourceAttr (resourceName , "global_alert.#" , "1" ),
145- resource .TestCheckResourceAttr (resourceName , "global_alert.0.name" , "dataset-size" ),
146- resource .TestCheckResourceAttr (resourceName , "global_alert.0.value" , "60" ),
149+ resource .TestCheckResourceAttr (databaseResourceName , "dataset_size_in_gb" , "1" ),
150+ resource .TestCheckResourceAttr (databaseResourceName , "support_oss_cluster_api" , "true" ),
151+ resource .TestCheckResourceAttr (databaseResourceName , "external_endpoint_for_oss_cluster_api" , "true" ),
152+ resource .TestCheckResourceAttr (databaseResourceName , "global_data_persistence" , "aof-every-1-second" ),
153+ resource .TestCheckResourceAttr (databaseResourceName , "global_password" , "updated-password" ),
154+ resource .TestCheckResourceAttr (databaseResourceName , "global_alert.#" , "1" ),
155+ resource .TestCheckResourceAttr (databaseResourceName , "global_alert.0.name" , "dataset-size" ),
156+ resource .TestCheckResourceAttr (databaseResourceName , "global_alert.0.value" , "60" ),
147157
148158 // Changes are ignored after creation
149- resource .TestCheckResourceAttr (resourceName , "global_modules.#" , "1" ),
150- resource .TestCheckResourceAttr (resourceName , "global_modules.0" , "RedisJSON" ),
151-
152- resource .TestCheckResourceAttr (resourceName , "override_region.#" , "1" ),
153- resource .TestCheckResourceAttr (resourceName , "override_region.0.name" , "us-east-1" ),
154- resource .TestCheckResourceAttr (resourceName , "override_region.0.override_global_data_persistence" , "none" ),
155- resource .TestCheckResourceAttr (resourceName , "override_region.0.override_global_password" , "password-updated" ),
156- resource .TestCheckResourceAttr (resourceName , "override_region.0.override_global_alert.#" , "1" ),
157- resource .TestCheckResourceAttr (resourceName , "override_region.0.override_global_alert.0.name" , "dataset-size" ),
158- resource .TestCheckResourceAttr (resourceName , "override_region.0.override_global_alert.0.value" , "41" ),
159- resource .TestCheckResourceAttr (resourceName , "override_region.0.override_global_source_ips.#" , "0" ),
159+ resource .TestCheckResourceAttr (databaseResourceName , "global_modules.#" , "1" ),
160+ resource .TestCheckResourceAttr (databaseResourceName , "global_modules.0" , "RedisJSON" ),
161+
162+ resource .TestCheckResourceAttr (databaseResourceName , "override_region.#" , "1" ),
163+ resource .TestCheckResourceAttr (databaseResourceName , "override_region.0.name" , "us-east-1" ),
164+ resource .TestCheckResourceAttr (databaseResourceName , "override_region.0.override_global_data_persistence" , "none" ),
165+ resource .TestCheckResourceAttr (databaseResourceName , "override_region.0.override_global_password" , "password-updated" ),
166+ resource .TestCheckResourceAttr (databaseResourceName , "override_region.0.override_global_alert.#" , "1" ),
167+ resource .TestCheckResourceAttr (databaseResourceName , "override_region.0.override_global_alert.0.name" , "dataset-size" ),
168+ resource .TestCheckResourceAttr (databaseResourceName , "override_region.0.override_global_alert.0.value" , "41" ),
169+ resource .TestCheckResourceAttr (databaseResourceName , "override_region.0.override_global_source_ips.#" , "0" ),
160170
161171 // Test datasource
162172 resource .TestCheckResourceAttr (datasourceName , "dataset_size_in_gb" , "1" ),
@@ -166,28 +176,28 @@ func TestAccResourceRedisCloudActiveActiveDatabase_CRUDI(t *testing.T) {
166176 },
167177 // Test database is updated, including deletion of global and local alerts and replacing modules
168178 {
169- Config : fmt .Sprintf (testAccResourceRedisCloudActiveActiveDatabaseUpdateNoAlerts , subscriptionName , name ),
179+ Config : fmt .Sprintf (testAccResourceRedisCloudActiveActiveDatabaseUpdateNoAlerts , subscriptionName , databaseName ),
170180 Check : resource .ComposeAggregateTestCheckFunc (
171- resource .TestCheckResourceAttr (resourceName , "dataset_size_in_gb" , "1" ),
172- resource .TestCheckResourceAttr (resourceName , "support_oss_cluster_api" , "true" ),
173- resource .TestCheckResourceAttr (resourceName , "external_endpoint_for_oss_cluster_api" , "true" ),
174- resource .TestCheckResourceAttr (resourceName , "global_data_persistence" , "aof-every-1-second" ),
175- resource .TestCheckResourceAttr (resourceName , "global_password" , "updated-password" ),
176- resource .TestCheckResourceAttr (resourceName , "global_alert.#" , "0" ),
177- resource .TestCheckResourceAttr (resourceName , "global_modules.#" , "1" ),
178- resource .TestCheckResourceAttr (resourceName , "global_modules.0" , "RedisJSON" ),
179-
180- resource .TestCheckResourceAttr (resourceName , "override_region.#" , "1" ),
181- resource .TestCheckResourceAttr (resourceName , "override_region.0.name" , "us-east-1" ),
182- resource .TestCheckResourceAttr (resourceName , "override_region.0.override_global_data_persistence" , "none" ),
183- resource .TestCheckResourceAttr (resourceName , "override_region.0.override_global_password" , "password-updated" ),
184- resource .TestCheckResourceAttr (resourceName , "override_region.0.override_global_alert.#" , "0" ),
185- resource .TestCheckResourceAttr (resourceName , "override_region.0.override_global_source_ips.#" , "0" ),
181+ resource .TestCheckResourceAttr (databaseResourceName , "dataset_size_in_gb" , "1" ),
182+ resource .TestCheckResourceAttr (databaseResourceName , "support_oss_cluster_api" , "true" ),
183+ resource .TestCheckResourceAttr (databaseResourceName , "external_endpoint_for_oss_cluster_api" , "true" ),
184+ resource .TestCheckResourceAttr (databaseResourceName , "global_data_persistence" , "aof-every-1-second" ),
185+ resource .TestCheckResourceAttr (databaseResourceName , "global_password" , "updated-password" ),
186+ resource .TestCheckResourceAttr (databaseResourceName , "global_alert.#" , "0" ),
187+ resource .TestCheckResourceAttr (databaseResourceName , "global_modules.#" , "1" ),
188+ resource .TestCheckResourceAttr (databaseResourceName , "global_modules.0" , "RedisJSON" ),
189+
190+ resource .TestCheckResourceAttr (databaseResourceName , "override_region.#" , "1" ),
191+ resource .TestCheckResourceAttr (databaseResourceName , "override_region.0.name" , "us-east-1" ),
192+ resource .TestCheckResourceAttr (databaseResourceName , "override_region.0.override_global_data_persistence" , "none" ),
193+ resource .TestCheckResourceAttr (databaseResourceName , "override_region.0.override_global_password" , "password-updated" ),
194+ resource .TestCheckResourceAttr (databaseResourceName , "override_region.0.override_global_alert.#" , "0" ),
195+ resource .TestCheckResourceAttr (databaseResourceName , "override_region.0.override_global_source_ips.#" , "0" ),
186196 ),
187197 },
188198 // Test that that database is imported successfully
189199 {
190- Config : fmt .Sprintf (testAccResourceRedisCloudActiveActiveDatabaseImport , subscriptionName , name ),
200+ Config : fmt .Sprintf (testAccResourceRedisCloudActiveActiveDatabaseImport , subscriptionName , databaseName ),
191201 ResourceName : "rediscloud_active_active_subscription_database.example" ,
192202 ImportState : true ,
193203 ImportStateVerify : true ,
0 commit comments