Skip to content

Commit

Permalink
Fix DBaaS datastore resize by flavor
Browse files Browse the repository at this point in the history
Fix datastore resize if client change flavor to flavor_id or the other
way. Now we set only flavor_id or flavor if we change one of these
fields
  • Loading branch information
Gogen120 committed Sep 20, 2024
1 parent 4b87dd2 commit 871724e
Showing 1 changed file with 12 additions and 11 deletions.
23 changes: 12 additions & 11 deletions selectel/dbaas.go
Original file line number Diff line number Diff line change
Expand Up @@ -325,26 +325,27 @@ func resizeDatastore(ctx context.Context, d *schema.ResourceData, client *dbaas.
nodeCount := d.Get("node_count").(int)
resizeOpts.NodeCount = nodeCount

flavorID := d.Get("flavor_id")
flavorRaw := d.Get("flavor")

flavorSet := flavorRaw.(*schema.Set)
flavor, err := resourceDBaaSDatastoreV1FlavorFromSet(flavorSet)
if err != nil {
return errParseDatastoreV1Resize(err)
if d.HasChange("flavor_id") {
flavorID := d.Get("flavor_id")
resizeOpts.FlavorID = flavorID.(string)
} else if d.HasChange("flavor") {
flavorRaw := d.Get("flavor")
flavorSet := flavorRaw.(*schema.Set)
flavor, err := resourceDBaaSDatastoreV1FlavorFromSet(flavorSet)
if err != nil {
return errParseDatastoreV1Resize(err)
}
resizeOpts.Flavor = flavor
}

typeID := d.Get("type_id").(string)
datastoreType, err := client.DatastoreType(ctx, typeID)
if err != nil {
return errors.New("Couldnt get datastore type with id" + typeID)
}

if datastoreType.Engine == "redis" {
resizeOpts.Flavor = nil
resizeOpts.FlavorID = flavorID.(string)
} else {
resizeOpts.Flavor = flavor
resizeOpts.FlavorID = flavorID.(string)
}

log.Print(msgUpdate(objectDatastore, d.Id(), resizeOpts))
Expand Down

0 comments on commit 871724e

Please sign in to comment.