Skip to content

Commit bad7b58

Browse files
committed
chore: adding debug to essentials db creation
1 parent 8eebe69 commit bad7b58

8 files changed

+201
-8
lines changed

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,4 +71,4 @@ require (
7171
)
7272

7373
// for local development, uncomment this
74-
//replace github.com/RedisLabs/rediscloud-go-api => ../rediscloud-go-api
74+
replace github.com/RedisLabs/rediscloud-go-api => ../rediscloud-go-api

provider/pro/resource_rediscloud_pro_database.go

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,12 @@ func ResourceRedisCloudProDatabase() *schema.Resource {
297297
Optional: true,
298298
Default: true,
299299
},
300+
"auto_minor_version_upgrade": {
301+
Description: "When 'true', enables auto minor version upgrades for this database. Default: 'true'",
302+
Type: schema.TypeBool,
303+
Optional: true,
304+
Default: true,
305+
},
300306
"port": {
301307
Description: "TCP port on which the database is available",
302308
Type: schema.TypeInt,
@@ -436,6 +442,10 @@ func resourceRedisCloudProDatabaseCreate(ctx context.Context, d *schema.Resource
436442
createDatabase.RespVersion = s
437443
})
438444

445+
utils.SetBool(d, "auto_minor_version_upgrade", func(b *bool) {
446+
createDatabase.AutoMinorVersionUpgrade = b
447+
})
448+
439449
// Confirm sub is ready to accept a db request
440450
if err := utils.WaitForSubscriptionToBeActive(ctx, subId, api); err != nil {
441451
return diag.FromErr(err)
@@ -731,12 +741,13 @@ func resourceRedisCloudProDatabaseUpdate(ctx context.Context, d *schema.Resource
731741
Value: utils.GetInt(d, "throughput_measurement_value"),
732742
},
733743

734-
DataPersistence: utils.GetString(d, "data_persistence"),
735-
DataEvictionPolicy: utils.GetString(d, "data_eviction"),
736-
SourceIP: utils.SetToStringSlice(d.Get("source_ips").(*schema.Set)),
737-
Alerts: &alerts,
738-
RemoteBackup: BuildBackupPlan(d.Get("remote_backup").([]interface{}), d.Get("periodic_backup_path")),
739-
EnableDefaultUser: utils.GetBool(d, "enable_default_user"),
744+
DataPersistence: utils.GetString(d, "data_persistence"),
745+
DataEvictionPolicy: utils.GetString(d, "data_eviction"),
746+
SourceIP: utils.SetToStringSlice(d.Get("source_ips").(*schema.Set)),
747+
Alerts: &alerts,
748+
RemoteBackup: BuildBackupPlan(d.Get("remote_backup").([]interface{}), d.Get("periodic_backup_path")),
749+
EnableDefaultUser: utils.GetBool(d, "enable_default_user"),
750+
AutoMinorVersionUpgrade: utils.GetBool(d, "auto_minor_version_upgrade"),
740751
}
741752

742753
// One of the following fields must be set, validation is handled in the schema (ExactlyOneOf)
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
locals {
2+
rediscloud_cloud_account = "%s"
3+
rediscloud_subscription_name = "%s"
4+
auto_minor_version_upgrade = %s
5+
}
6+
7+
data "rediscloud_payment_method" "card" {
8+
card_type = "Visa"
9+
last_four_numbers = "5556"
10+
}
11+
12+
data "rediscloud_cloud_account" "account" {
13+
exclude_internal_account = true
14+
provider_type = "AWS"
15+
name = local.rediscloud_cloud_account
16+
}
17+
18+
resource "rediscloud_subscription" "example" {
19+
name = local.rediscloud_subscription_name
20+
payment_method_id = data.rediscloud_payment_method.card.id
21+
memory_storage = "ram"
22+
cloud_provider {
23+
provider = data.rediscloud_cloud_account.account.provider_type
24+
cloud_account_id = data.rediscloud_cloud_account.account.id
25+
region {
26+
region = "eu-west-1"
27+
networking_deployment_cidr = "10.0.0.0/24"
28+
preferred_availability_zones = ["eu-west-1a"]
29+
}
30+
}
31+
32+
creation_plan {
33+
memory_limit_in_gb = 1
34+
quantity = 1
35+
replication = false
36+
throughput_measurement_by = "operations-per-second"
37+
throughput_measurement_value = 1000
38+
}
39+
}
40+
41+
resource "rediscloud_subscription_database" "example" {
42+
subscription_id = rediscloud_subscription.example.id
43+
name = "auto-minor-version-upgrade-test"
44+
protocol = "redis"
45+
memory_limit_in_gb = 1
46+
data_persistence = "none"
47+
throughput_measurement_by = "operations-per-second"
48+
throughput_measurement_value = 1000
49+
auto_minor_version_upgrade = local.auto_minor_version_upgrade
50+
}

provider/rediscloud_active_active_database_test.go

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -515,3 +515,36 @@ resource "rediscloud_active_active_subscription_database" "example" {
515515
}
516516
}
517517
`
518+
519+
func TestAccResourceRedisCloudActiveActiveDatabase_autoMinorVersionUpgrade(t *testing.T) {
520+
521+
utils.AccRequiresEnvVar(t, "EXECUTE_TESTS")
522+
523+
subscriptionName := acctest.RandomWithPrefix(testResourcePrefix) + "-subscription"
524+
name := acctest.RandomWithPrefix(testResourcePrefix) + "-database"
525+
const resourceName = "rediscloud_active_active_subscription_database.example"
526+
testCloudAccountName := os.Getenv("AWS_TEST_CLOUD_ACCOUNT_NAME")
527+
528+
resource.ParallelTest(t, resource.TestCase{
529+
PreCheck: func() { testAccPreCheck(t); testAccAwsPreExistingCloudAccountPreCheck(t) },
530+
ProviderFactories: providerFactories,
531+
CheckDestroy: testAccCheckActiveActiveSubscriptionDestroy,
532+
Steps: []resource.TestStep{
533+
// Test database creation with auto_minor_version_upgrade set to false
534+
{
535+
Config: fmt.Sprintf(utils.GetTestConfig(t, "./testdata/active_active_database_auto_minor_version_upgrade.tf"), testCloudAccountName, subscriptionName, name, "false"),
536+
Check: resource.ComposeAggregateTestCheckFunc(
537+
resource.TestCheckResourceAttr(resourceName, "name", "auto-minor-version-upgrade-test"),
538+
resource.TestCheckResourceAttr(resourceName, "auto_minor_version_upgrade", "false"),
539+
),
540+
},
541+
// Test database update with auto_minor_version_upgrade set to true
542+
{
543+
Config: fmt.Sprintf(utils.GetTestConfig(t, "./testdata/active_active_database_auto_minor_version_upgrade.tf"), testCloudAccountName, subscriptionName, name, "true"),
544+
Check: resource.ComposeAggregateTestCheckFunc(
545+
resource.TestCheckResourceAttr(resourceName, "auto_minor_version_upgrade", "true"),
546+
),
547+
},
548+
},
549+
})
550+
}

provider/resource_rediscloud_active_active_database.go

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,13 @@ func resourceRedisCloudActiveActiveDatabase() *schema.Resource {
206206
Type: schema.TypeBool,
207207
Optional: true,
208208
},
209-
"override_region": {
209+
"auto_minor_version_upgrade": {
210+
Description: "When 'true', enables auto minor version upgrades for this database. Default: 'true'",
211+
Type: schema.TypeBool,
212+
Optional: true,
213+
Default: true,
214+
},
215+
"override_region": {
210216
Description: "Region-specific configuration parameters to override the global configuration",
211217
Type: schema.TypeSet,
212218
Optional: true,
@@ -447,6 +453,10 @@ func resourceRedisCloudActiveActiveDatabaseCreate(ctx context.Context, d *schema
447453
createDatabase.RedisVersion = s
448454
})
449455

456+
utils.SetBool(d, "auto_minor_version_upgrade", func(b *bool) {
457+
createDatabase.AutoMinorVersionUpgrade = b
458+
})
459+
450460
// Confirm Subscription Active status before creating database
451461
err = utils.WaitForSubscriptionToBeActive(ctx, subId, api)
452462
if err != nil {
@@ -799,6 +809,10 @@ func resourceRedisCloudActiveActiveDatabaseUpdate(ctx context.Context, d *schema
799809
update.GlobalEnableDefaultUser = redis.Bool(v.(bool))
800810
}
801811

812+
if v, ok := d.GetOk("auto_minor_version_upgrade"); ok {
813+
update.AutoMinorVersionUpgrade = redis.Bool(v.(bool))
814+
}
815+
802816
if v, ok := d.GetOk("support_oss_cluster_api"); ok {
803817
update.SupportOSSClusterAPI = redis.Bool(v.(bool))
804818
}

provider/resource_rediscloud_essentials_database.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,7 @@ func resourceRedisCloudEssentialsDatabaseCreate(ctx context.Context, d *schema.R
306306
api := meta.(*client.ApiClient)
307307

308308
subId := d.Get("subscription_id").(int)
309+
log.Printf("[DEBUG] Creating essentials database in subscription %d", subId)
309310

310311
utils.SubscriptionMutex.Lock(subId)
311312

@@ -316,6 +317,11 @@ func resourceRedisCloudEssentialsDatabaseCreate(ctx context.Context, d *schema.R
316317
Replication: redis.Bool(d.Get("replication").(bool)),
317318
PeriodicBackupPath: redis.String(d.Get("periodic_backup_path").(string)),
318319
}
320+
log.Printf("[DEBUG] Essentials database create request - Name: %s, DataPersistence: %s, DataEviction: %s, Replication: %v",
321+
redis.StringValue(createDatabaseRequest.Name),
322+
redis.StringValue(createDatabaseRequest.DataPersistence),
323+
redis.StringValue(createDatabaseRequest.DataEvictionPolicy),
324+
redis.BoolValue(createDatabaseRequest.Replication))
319325

320326
protocol := d.Get("protocol").(string)
321327
if protocol != "" {
@@ -411,11 +417,14 @@ func resourceRedisCloudEssentialsDatabaseCreate(ctx context.Context, d *schema.R
411417
createDatabaseRequest.EnableTls = redis.Bool(d.Get("enable_tls").(bool))
412418
}
413419

420+
log.Printf("[DEBUG] Calling FixedDatabases.Create API for subscription %d with database name: %s", subId, redis.StringValue(createDatabaseRequest.Name))
414421
databaseId, err := api.Client.FixedDatabases.Create(ctx, subId, createDatabaseRequest)
415422
if err != nil {
423+
log.Printf("[ERROR] FixedDatabases.Create failed for subscription %d: %v", subId, err)
416424
utils.SubscriptionMutex.Unlock(subId)
417425
return diag.FromErr(err)
418426
}
427+
log.Printf("[DEBUG] FixedDatabases.Create succeeded for subscription %d, database ID: %d", subId, databaseId)
419428

420429
d.SetId(utils.BuildResourceId(subId, databaseId))
421430

provider/resource_rediscloud_pro_database_test.go

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,3 +274,35 @@ func TestAccResourceRedisCloudProDatabase_respversion(t *testing.T) {
274274
},
275275
})
276276
}
277+
278+
func TestAccResourceRedisCloudProDatabase_autoMinorVersionUpgrade(t *testing.T) {
279+
280+
utils.AccRequiresEnvVar(t, "EXECUTE_TESTS")
281+
282+
name := acctest.RandomWithPrefix(testResourcePrefix)
283+
const resourceName = "rediscloud_subscription_database.example"
284+
testCloudAccountName := os.Getenv("AWS_TEST_CLOUD_ACCOUNT_NAME")
285+
286+
resource.ParallelTest(t, resource.TestCase{
287+
PreCheck: func() { testAccPreCheck(t); testAccAwsPreExistingCloudAccountPreCheck(t) },
288+
ProviderFactories: providerFactories,
289+
CheckDestroy: testAccCheckProSubscriptionDestroy,
290+
Steps: []resource.TestStep{
291+
// Test database creation with auto_minor_version_upgrade set to false
292+
{
293+
Config: fmt.Sprintf(utils.GetTestConfig(t, "./pro/testdata/pro_database_auto_minor_version_upgrade.tf"), testCloudAccountName, name, "false"),
294+
Check: resource.ComposeAggregateTestCheckFunc(
295+
resource.TestCheckResourceAttr(resourceName, "name", "auto-minor-version-upgrade-test"),
296+
resource.TestCheckResourceAttr(resourceName, "auto_minor_version_upgrade", "false"),
297+
),
298+
},
299+
// Test database update with auto_minor_version_upgrade set to true
300+
{
301+
Config: fmt.Sprintf(utils.GetTestConfig(t, "./pro/testdata/pro_database_auto_minor_version_upgrade.tf"), testCloudAccountName, name, "true"),
302+
Check: resource.ComposeAggregateTestCheckFunc(
303+
resource.TestCheckResourceAttr(resourceName, "auto_minor_version_upgrade", "true"),
304+
),
305+
},
306+
},
307+
})
308+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
locals {
2+
rediscloud_cloud_account = "%s"
3+
rediscloud_subscription_name = "%s"
4+
}
5+
6+
data "rediscloud_payment_method" "card" {
7+
card_type = "Visa"
8+
last_four_numbers = "5556"
9+
}
10+
11+
data "rediscloud_cloud_account" "account" {
12+
exclude_internal_account = true
13+
provider_type = "AWS"
14+
name = local.rediscloud_cloud_account
15+
}
16+
17+
resource "rediscloud_active_active_subscription" "example" {
18+
name = local.rediscloud_subscription_name
19+
payment_method_id = data.rediscloud_payment_method.card.id
20+
storage_encryption = true
21+
22+
region {
23+
region = "eu-west-1"
24+
networking_deployment_cidr = "10.0.0.0/24"
25+
preferred_availability_zones = ["eu-west-1a"]
26+
}
27+
28+
region {
29+
region = "us-east-1"
30+
networking_deployment_cidr = "10.1.0.0/24"
31+
preferred_availability_zones = ["us-east-1a"]
32+
}
33+
}
34+
35+
resource "rediscloud_active_active_subscription_database" "example" {
36+
subscription_id = rediscloud_active_active_subscription.example.id
37+
name = "auto-minor-version-upgrade-test"
38+
protocol = "redis"
39+
dataset_size_in_gb = 1
40+
data_eviction = "allkeys-random"
41+
throughput_measurement_by = "operations-per-second"
42+
throughput_measurement_value = 1000
43+
auto_minor_version_upgrade = %s
44+
}

0 commit comments

Comments
 (0)