Skip to content

Commit 9897e35

Browse files
committed
chore: changing to deferred unlock on mutex
1 parent 213523c commit 9897e35

File tree

2 files changed

+2
-7
lines changed

2 files changed

+2
-7
lines changed

provider/pro/resource_rediscloud_pro_database.go

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,7 @@ func resourceRedisCloudProDatabaseCreate(ctx context.Context, d *schema.Resource
363363

364364
subId := *utils.GetInt(d, "subscription_id")
365365
utils.SubscriptionMutex.Lock(subId)
366+
defer utils.SubscriptionMutex.Unlock(subId)
366367

367368
createModules := make([]*databases.Module, 0)
368369
modules := d.Get("modules").(*schema.Set)
@@ -453,25 +454,21 @@ func resourceRedisCloudProDatabaseCreate(ctx context.Context, d *schema.Resource
453454

454455
dbId, err := api.Client.Database.Create(ctx, subId, createDatabase)
455456
if err != nil {
456-
utils.SubscriptionMutex.Unlock(subId)
457457
return diag.FromErr(err)
458458
}
459459

460460
d.SetId(utils.BuildResourceId(subId, dbId))
461461

462462
// Confirm db + sub active status
463463
if err := utils.WaitForDatabaseToBeActive(ctx, subId, dbId, api); err != nil {
464-
utils.SubscriptionMutex.Unlock(subId)
465464
return diag.FromErr(err)
466465
}
467466
if err := utils.WaitForSubscriptionToBeActive(ctx, subId, api); err != nil {
468-
utils.SubscriptionMutex.Unlock(subId)
469467
return diag.FromErr(err)
470468
}
471469

472470
// Some attributes on a database are not accessible by the subscription creation API.
473471
// Run the subscription update function to apply any additional changes to the databases, such as password, enableDefaultUser and so on.
474-
utils.SubscriptionMutex.Unlock(subId)
475472
return resourceRedisCloudProDatabaseUpdate(ctx, d, meta)
476473
}
477474

provider/resource_rediscloud_essentials_database.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,7 @@ func resourceRedisCloudEssentialsDatabaseCreate(ctx context.Context, d *schema.R
305305
subId := d.Get("subscription_id").(int)
306306

307307
utils.SubscriptionMutex.Lock(subId)
308+
defer utils.SubscriptionMutex.Unlock(subId)
308309

309310
createDatabaseRequest := fixedDatabases.CreateFixedDatabase{
310311
Name: redis.String(d.Get("name").(string)),
@@ -426,7 +427,6 @@ func resourceRedisCloudEssentialsDatabaseCreate(ctx context.Context, d *schema.R
426427
databaseId, err := api.Client.FixedDatabases.Create(ctx, subId, createDatabaseRequest)
427428
if err != nil {
428429
log.Printf("[ERROR] FixedDatabases.Create failed for subscription %d: %v", subId, err)
429-
utils.SubscriptionMutex.Unlock(subId)
430430
return diag.FromErr(err)
431431
}
432432
log.Printf("[DEBUG] FixedDatabases.Create succeeded for subscription %d, database ID: %d", subId, databaseId)
@@ -436,14 +436,12 @@ func resourceRedisCloudEssentialsDatabaseCreate(ctx context.Context, d *schema.R
436436
// Confirm Subscription Active status
437437
err = waitForEssentialsDatabaseToBeActive(ctx, subId, databaseId, api)
438438
if err != nil {
439-
utils.SubscriptionMutex.Unlock(subId)
440439
return diag.FromErr(err)
441440
}
442441

443442
// Some attributes on a database are not accessible by the subscription creation API.
444443
// Run the subscription update function to apply any additional changes to the databases (enableDefaultUser)
445444
// Others are omitted here _because_ the update will take care of them, such as tags
446-
utils.SubscriptionMutex.Unlock(subId)
447445
return resourceRedisCloudEssentialsDatabaseUpdate(ctx, d, meta)
448446
}
449447

0 commit comments

Comments
 (0)