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

Function Create

dbng/create.go:16–59  ·  view source on GitHub ↗
(ctx context.Context, params scalingo.DatabaseCreateParams, wait bool)

Source from the content-addressed store, hash-verified

14)
15
16func Create(ctx context.Context, params scalingo.DatabaseCreateParams, wait bool) error {
17 c, err := config.ScalingoClient(ctx)
18 if err != nil {
19 return errors.Wrap(ctx, err, "get Scalingo client")
20 }
21
22 addon := params.AddonProviderID
23
24 planID, err := utils.FindPlan(ctx, c, params.AddonProviderID, params.PlanID)
25 if err != nil {
26 return errors.Wrap(ctx, err, "invalid database plan")
27 }
28
29 // Adjust params fields.
30 params.AddonProviderID = addon
31 params.PlanID = planID
32
33 db, err := c.Preview().DatabaseCreate(ctx, params)
34 if err != nil {
35 return errors.Wrap(ctx, err, "create database")
36 }
37 io.Statusf("Your %s database %s ('%s') is being provisioned…\n\n",
38 db.Technology,
39 db.ID,
40 db.Name,
41 )
42
43 if wait {
44 spinner := spinner.New(spinner.CharSets[11], 100*time.Millisecond)
45 spinner.Suffix = " Waiting for the database to be ready\n"
46 spinner.Start()
47 defer spinner.Stop()
48
49 err = waitForRunningDatabase(ctx, c, db.ID)
50 if err != nil {
51 return errors.Wrap(ctx, err, "wait for running database")
52 }
53
54 spinner.Stop()
55 io.Status("Your database is up and running.")
56 }
57
58 return nil
59}
60
61// waitForRunningDatabase is a blocking function waiting for the database to be running.
62func waitForRunningDatabase(ctx context.Context, client *scalingo.Client, appID string) error {

Callers 1

databases_ng.goFile · 0.92

Calls 7

ScalingoClientFunction · 0.92
FindPlanFunction · 0.92
StatusfFunction · 0.92
StatusFunction · 0.92
waitForRunningDatabaseFunction · 0.85
StartMethod · 0.80
StopMethod · 0.80

Tested by

no test coverage detected