16306: Merge branch 'master'
[arvados.git] / lib / boot / seed.go
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 package boot
6
7 import (
8         "context"
9 )
10
11 // Populate a blank database with arvados tables and seed rows.
12 type seedDatabase struct{}
13
14 func (seedDatabase) String() string {
15         return "seedDatabase"
16 }
17
18 func (seedDatabase) Run(ctx context.Context, fail func(error), super *Supervisor) error {
19         err := super.wait(ctx, runPostgreSQL{}, installPassenger{src: "services/api"})
20         if err != nil {
21                 return err
22         }
23         if super.ClusterType == "production" {
24                 return nil
25         }
26         err = super.RunProgram(ctx, "services/api", nil, railsEnv, "bundle", "exec", "rake", "db:setup")
27         if err != nil {
28                 return err
29         }
30         err = super.RunProgram(ctx, "services/api", nil, railsEnv, "bundle", "exec", "./script/get_anonymous_user_token.rb")
31         if err != nil {
32                 return err
33         }
34         return nil
35 }