MCPcopy Create free account
hub / github.com/Scalingo/cli / waitForDatabasePlanChange

Function waitForDatabasePlanChange

dbng/upgrade.go:90–106  ·  view source on GitHub ↗
(ctx context.Context, client *scalingo.Client, databaseID string)

Source from the content-addressed store, hash-verified

88}
89
90func waitForDatabasePlanChange(ctx context.Context, client *scalingo.Client, databaseID string) error {
91 db, err := client.Preview().DatabaseShow(ctx, databaseID)
92 if err != nil {
93 return errors.Wrapf(ctx, err, "get database %s before plan change", databaseID)
94 }
95
96 if db.Database.Status == scalingo.DatabaseStatusRunning {
97 err = waitForDatabaseStatus(ctx, client, databaseID, func(status scalingo.DatabaseStatus) bool {
98 return status != scalingo.DatabaseStatusRunning
99 })
100 if err != nil {
101 return errors.Wrapf(ctx, err, "wait for database %s to leave running state", databaseID)
102 }
103 }
104
105 return waitForRunningDatabase(ctx, client, databaseID)
106}
107
108func waitForDatabaseStatus(ctx context.Context, client *scalingo.Client, databaseID string, check func(scalingo.DatabaseStatus) bool) error {
109 ticker := time.NewTicker(10 * time.Second)

Callers 1

UpgradeFunction · 0.85

Calls 2

waitForDatabaseStatusFunction · 0.85
waitForRunningDatabaseFunction · 0.85

Tested by

no test coverage detected