@@ -208,6 +208,7 @@ resource "rediscloud_essentials_database" "example" {
208208 "department" = "finance"
209209 }
210210}
211+
211212data "rediscloud_essentials_database" "example" {
212213 subscription_id = rediscloud_essentials_subscription.example.id
213214 name = rediscloud_essentials_database.example.name
@@ -249,8 +250,157 @@ resource "rediscloud_essentials_database" "example" {
249250 "department" = "finance"
250251 }
251252}
253+
252254data "rediscloud_essentials_database" "example" {
253255 subscription_id = rediscloud_essentials_subscription.example.id
254256 name = rediscloud_essentials_database.example.name
255257}
256258`
259+
260+ // there was a bug where removing the default user would cause issues with passwords
261+ func TestAccResourceRedisCloudEssentialsDatabase_DisableDefaultUser (t * testing.T ) {
262+ testAccRequiresEnvVar (t , "EXECUTE_TESTS" )
263+
264+ subscriptionName := acctest .RandomWithPrefix (testResourcePrefix )
265+ databaseName := subscriptionName + "-db"
266+ databaseNameUpdated := databaseName + "-updated"
267+
268+ const resourceName = "rediscloud_essentials_database.example"
269+ const datasourceName = "data.rediscloud_essentials_database.example"
270+
271+ resource .ParallelTest (t , resource.TestCase {
272+ PreCheck : func () { testAccPreCheck (t ) },
273+ ProviderFactories : providerFactories ,
274+ CheckDestroy : testAccCheckEssentialsSubscriptionDestroy ,
275+ Steps : []resource.TestStep {
276+ {
277+ Config : fmt .Sprintf (testAccResourceRedisCloudEssentialsDatabaseDisableDefaultUserCreate , subscriptionName , databaseName ),
278+ Check : resource .ComposeAggregateTestCheckFunc (
279+ // Test creating resource
280+ resource .TestMatchResourceAttr (resourceName , "id" , regexp .MustCompile ("^\\ d+/\\ d+$" )),
281+ resource .TestCheckResourceAttrSet (resourceName , "subscription_id" ),
282+ resource .TestCheckResourceAttrSet (resourceName , "db_id" ),
283+ resource .TestCheckResourceAttr (resourceName , "name" , databaseName ),
284+ resource .TestCheckResourceAttr (resourceName , "enable_default_user" , "true" ),
285+ resource .TestCheckResourceAttr (resourceName , "password" , "j43589rhe39f" ),
286+
287+ // Test the datasource
288+ resource .TestMatchResourceAttr (datasourceName , "id" , regexp .MustCompile ("^\\ d+/\\ d+$" )),
289+ resource .TestCheckResourceAttrSet (datasourceName , "subscription_id" ),
290+ resource .TestCheckResourceAttrSet (datasourceName , "db_id" ),
291+ resource .TestCheckResourceAttr (datasourceName , "name" , databaseName ),
292+ resource .TestCheckResourceAttr (datasourceName , "enable_default_user" , "true" ),
293+ resource .TestCheckResourceAttr (datasourceName , "password" , "j43589rhe39f" ),
294+ ),
295+ },
296+ {
297+ // test update
298+ Config : fmt .Sprintf (testAccResourceRedisCloudEssentialsDatabaseDisableDefaultUserUpdate , subscriptionName , databaseNameUpdated ),
299+ Check : resource .ComposeAggregateTestCheckFunc (
300+ // Test the resource
301+ resource .TestMatchResourceAttr (resourceName , "id" , regexp .MustCompile ("^\\ d+/\\ d+$" )),
302+ resource .TestCheckResourceAttrSet (resourceName , "subscription_id" ),
303+ resource .TestCheckResourceAttrSet (resourceName , "db_id" ),
304+ resource .TestCheckResourceAttr (resourceName , "name" , databaseNameUpdated ),
305+ resource .TestCheckResourceAttr (resourceName , "enable_default_user" , "false" ),
306+ resource .TestCheckResourceAttr (resourceName , "password" , "" ),
307+
308+ // Test the datasource
309+ resource .TestMatchResourceAttr (datasourceName , "id" , regexp .MustCompile ("^\\ d+/\\ d+$" )),
310+ resource .TestCheckResourceAttrSet (datasourceName , "subscription_id" ),
311+ resource .TestCheckResourceAttrSet (datasourceName , "db_id" ),
312+ resource .TestCheckResourceAttr (datasourceName , "name" , databaseNameUpdated ),
313+ resource .TestCheckResourceAttr (datasourceName , "enable_default_user" , "false" ),
314+ ),
315+ },
316+ {
317+ Config : fmt .Sprintf (testAccResourceRedisCloudEssentialsDatabaseDisableDefaultUserUpdate , subscriptionName , databaseName ),
318+ ResourceName : resourceName ,
319+ ImportState : true ,
320+ ImportStateVerify : true ,
321+ ImportStateVerifyIgnore : []string {"password" , "enable_payg_features" },
322+ },
323+ },
324+ })
325+ }
326+
327+ const testAccResourceRedisCloudEssentialsDatabaseDisableDefaultUserCreate = `
328+
329+ data "rediscloud_payment_method" "card" {
330+ card_type = "Visa"
331+ }
332+
333+ data "rediscloud_essentials_plan" "example" {
334+ name = "Single-Zone_1GB"
335+ cloud_provider = "AWS"
336+ region = "eu-west-1"
337+ }
338+
339+ data "rediscloud_essentials_database" "example" {
340+ subscription_id = rediscloud_essentials_subscription.example.id
341+ name = rediscloud_essentials_database.example.name
342+ }
343+
344+ resource "rediscloud_essentials_subscription" "example" {
345+ name = "%s"
346+ plan_id = data.rediscloud_essentials_plan.example.id
347+ payment_method_id = data.rediscloud_payment_method.card.id
348+ }
349+
350+ resource "rediscloud_essentials_database" "example" {
351+ subscription_id = rediscloud_essentials_subscription.example.id
352+ name = "%s"
353+ enable_default_user = true
354+ password = "j43589rhe39f"
355+
356+ data_persistence = "none"
357+ replication = false
358+
359+ alert {
360+ name = "throughput-higher-than"
361+ value = 80
362+ }
363+ tags = {
364+ "envaaaa" = "qaaaa"
365+ }
366+ }
367+ `
368+
369+ const testAccResourceRedisCloudEssentialsDatabaseDisableDefaultUserUpdate = `
370+ data "rediscloud_payment_method" "card" {
371+ card_type = "Visa"
372+ }
373+
374+ data "rediscloud_essentials_plan" "example" {
375+ name = "Single-Zone_1GB"
376+ cloud_provider = "AWS"
377+ region = "eu-west-1"
378+ }
379+
380+ data "rediscloud_essentials_database" "example" {
381+ subscription_id = rediscloud_essentials_subscription.example.id
382+ name = rediscloud_essentials_database.example.name
383+ }
384+
385+ resource "rediscloud_essentials_subscription" "example" {
386+ name = "%s"
387+ plan_id = data.rediscloud_essentials_plan.example.id
388+ payment_method_id = data.rediscloud_payment_method.card.id
389+ }
390+
391+ resource "rediscloud_essentials_database" "example" {
392+ subscription_id = rediscloud_essentials_subscription.example.id
393+ name = "%s"
394+ enable_default_user = false
395+ data_persistence = "none"
396+ replication = false
397+
398+ alert {
399+ name = "throughput-higher-than"
400+ value = 80
401+ }
402+ tags = {
403+ "envaaaa" = "qaaaa"
404+ }
405+ }
406+ `
0 commit comments