@@ -430,3 +430,151 @@ func testAccCheckEssentialsSubscriptionDestroy(s *terraform.State) error {
430430
431431 return nil
432432}
433+
434+ // there was a bug where removing the default user meant
435+ func TestAccResourceRedisCloudEssentialsDatabase_DisableDefaultUser (t * testing.T ) {
436+ testAccRequiresEnvVar (t , "EXECUTE_TESTS" )
437+
438+ subscriptionName := acctest .RandomWithPrefix (testResourcePrefix )
439+ databaseName := subscriptionName + "-db"
440+ databaseNameUpdated := databaseName + "-updated"
441+
442+ const resourceName = "rediscloud_essentials_database.example"
443+ const datasourceName = "data.rediscloud_essentials_database.example"
444+
445+ resource .ParallelTest (t , resource.TestCase {
446+ PreCheck : func () { testAccPreCheck (t ) },
447+ ProviderFactories : providerFactories ,
448+ CheckDestroy : testAccCheckEssentialsSubscriptionDestroy ,
449+ Steps : []resource.TestStep {
450+ {
451+ Config : fmt .Sprintf (testAccResourceRedisCloudEssentialsDatabaseDisableDefaultUserCreate , subscriptionName , databaseName ),
452+ Check : resource .ComposeAggregateTestCheckFunc (
453+ // Test creating resource
454+ resource .TestMatchResourceAttr (resourceName , "id" , regexp .MustCompile ("^\\ d+/\\ d+$" )),
455+ resource .TestCheckResourceAttrSet (resourceName , "subscription_id" ),
456+ resource .TestCheckResourceAttrSet (resourceName , "db_id" ),
457+ resource .TestCheckResourceAttr (resourceName , "name" , databaseName ),
458+ resource .TestCheckResourceAttr (resourceName , "enable_default_user" , "true" ),
459+ resource .TestCheckResourceAttr (resourceName , "password" , "j43589rhe39f" ),
460+
461+ // Test the datasource
462+ resource .TestMatchResourceAttr (datasourceName , "id" , regexp .MustCompile ("^\\ d+/\\ d+$" )),
463+ resource .TestCheckResourceAttrSet (datasourceName , "subscription_id" ),
464+ resource .TestCheckResourceAttrSet (datasourceName , "db_id" ),
465+ resource .TestCheckResourceAttr (datasourceName , "name" , databaseName ),
466+ resource .TestCheckResourceAttr (datasourceName , "enable_default_user" , "true" ),
467+ resource .TestCheckResourceAttr (datasourceName , "password" , "j43589rhe39f" ),
468+ ),
469+ },
470+ {
471+ // test update
472+ Config : fmt .Sprintf (testAccResourceRedisCloudEssentialsDatabaseDisableDefaultUserUpdate , subscriptionName , databaseNameUpdated ),
473+ Check : resource .ComposeAggregateTestCheckFunc (
474+ // Test the resource
475+ resource .TestMatchResourceAttr (resourceName , "id" , regexp .MustCompile ("^\\ d+/\\ d+$" )),
476+ resource .TestCheckResourceAttrSet (resourceName , "subscription_id" ),
477+ resource .TestCheckResourceAttrSet (resourceName , "db_id" ),
478+ resource .TestCheckResourceAttr (resourceName , "name" , databaseNameUpdated ),
479+ resource .TestCheckResourceAttr (resourceName , "enable_default_user" , "false" ),
480+ resource .TestCheckResourceAttr (resourceName , "password" , "" ),
481+
482+ // Test the datasource
483+ resource .TestMatchResourceAttr (datasourceName , "id" , regexp .MustCompile ("^\\ d+/\\ d+$" )),
484+ resource .TestCheckResourceAttrSet (datasourceName , "subscription_id" ),
485+ resource .TestCheckResourceAttrSet (datasourceName , "db_id" ),
486+ resource .TestCheckResourceAttr (datasourceName , "name" , databaseNameUpdated ),
487+ resource .TestCheckResourceAttr (datasourceName , "enable_default_user" , "false" ),
488+ ),
489+ },
490+ {
491+ Config : fmt .Sprintf (testAccResourceRedisCloudEssentialsDatabaseDisableDefaultUserUpdate , subscriptionName , databaseName ),
492+ ResourceName : resourceName ,
493+ ImportState : true ,
494+ ImportStateVerify : true ,
495+ ImportStateVerifyIgnore : []string {"password" , "enable_payg_features" },
496+ },
497+ },
498+ })
499+ }
500+
501+ const testAccResourceRedisCloudEssentialsDatabaseDisableDefaultUserCreate = `
502+
503+ data "rediscloud_payment_method" "card" {
504+ card_type = "Visa"
505+ }
506+
507+ data "rediscloud_essentials_plan" "example" {
508+ name = "Single-Zone_1GB"
509+ cloud_provider = "AWS"
510+ region = "eu-west-1"
511+ }
512+
513+ data "rediscloud_essentials_database" "example" {
514+ subscription_id = rediscloud_essentials_subscription.example.id
515+ name = rediscloud_essentials_database.example.name
516+ }
517+
518+ resource "rediscloud_essentials_subscription" "example" {
519+ name = "%s"
520+ plan_id = data.rediscloud_essentials_plan.example.id
521+ payment_method_id = data.rediscloud_payment_method.card.id
522+ }
523+
524+ resource "rediscloud_essentials_database" "example" {
525+ subscription_id = rediscloud_essentials_subscription.example.id
526+ name = "%s"
527+ enable_default_user = true
528+ password = "j43589rhe39f"
529+
530+ data_persistence = "none"
531+ replication = false
532+
533+ alert {
534+ name = "throughput-higher-than"
535+ value = 80
536+ }
537+ tags = {
538+ "envaaaa" = "qaaaa"
539+ }
540+ }
541+ `
542+
543+ const testAccResourceRedisCloudEssentialsDatabaseDisableDefaultUserUpdate = `
544+ data "rediscloud_payment_method" "card" {
545+ card_type = "Visa"
546+ }
547+
548+ data "rediscloud_essentials_plan" "example" {
549+ name = "Single-Zone_1GB"
550+ cloud_provider = "AWS"
551+ region = "eu-west-1"
552+ }
553+
554+ data "rediscloud_essentials_database" "example" {
555+ subscription_id = rediscloud_essentials_subscription.example.id
556+ name = rediscloud_essentials_database.example.name
557+ }
558+
559+ resource "rediscloud_essentials_subscription" "example" {
560+ name = "%s"
561+ plan_id = data.rediscloud_essentials_plan.example.id
562+ payment_method_id = data.rediscloud_payment_method.card.id
563+ }
564+
565+ resource "rediscloud_essentials_database" "example" {
566+ subscription_id = rediscloud_essentials_subscription.example.id
567+ name = "%s"
568+ enable_default_user = false
569+ data_persistence = "none"
570+ replication = false
571+
572+ alert {
573+ name = "throughput-higher-than"
574+ value = 80
575+ }
576+ tags = {
577+ "envaaaa" = "qaaaa"
578+ }
579+ }
580+ `
0 commit comments