StartServerWithExternalPg starts the main server with external Postgres.
(ctx context.Context)
| 156 | |
| 157 | // StartServerWithExternalPg starts the main server with external Postgres. |
| 158 | func (ctl *controller) StartServerWithExternalPg(ctx context.Context) (context.Context, error) { |
| 159 | pgMainURL := fmt.Sprintf("postgresql://postgres:root-password@%s:%s/postgres", externalPgHost, externalPgPort) |
| 160 | db, err := sql.Open("pgx", pgMainURL) |
| 161 | if err != nil { |
| 162 | return nil, err |
| 163 | } |
| 164 | defer db.Close() |
| 165 | databaseName := getTestDatabaseString() |
| 166 | if _, err := db.Exec(fmt.Sprintf("CREATE DATABASE %s", databaseName)); err != nil { |
| 167 | return nil, err |
| 168 | } |
| 169 | |
| 170 | pgURL := fmt.Sprintf("postgresql://postgres:root-password@%s:%s/%s", externalPgHost, externalPgPort, databaseName) |
| 171 | serverPort := getTestPort() |
| 172 | profile := getTestProfileWithExternalPg(serverPort, pgURL) |
| 173 | server, err := server.NewServer(ctx, profile) |
| 174 | if err != nil { |
| 175 | return nil, err |
| 176 | } |
| 177 | ctl.server = server |
| 178 | ctl.profile = profile |
| 179 | |
| 180 | metaCtx, err := ctl.start(ctx, serverPort) |
| 181 | if err != nil { |
| 182 | return nil, err |
| 183 | } |
| 184 | if err := ctl.setLicense(metaCtx); err != nil { |
| 185 | return nil, err |
| 186 | } |
| 187 | if err := ctl.initWorkspaceProfile(metaCtx); err != nil { |
| 188 | return nil, err |
| 189 | } |
| 190 | for _, environment := range []string{"test", "prod"} { |
| 191 | if _, err := ctl.orgPolicyServiceClient.CreatePolicy(metaCtx, connect.NewRequest(&v1pb.CreatePolicyRequest{ |
| 192 | Parent: fmt.Sprintf("environments/%s", environment), |
| 193 | Policy: &v1pb.Policy{ |
| 194 | Type: v1pb.PolicyType_ROLLOUT_POLICY, |
| 195 | Policy: &v1pb.Policy_RolloutPolicy{ |
| 196 | RolloutPolicy: &v1pb.RolloutPolicy{ |
| 197 | Automatic: false, |
| 198 | }, |
| 199 | }, |
| 200 | }, |
| 201 | })); err != nil { |
| 202 | return nil, err |
| 203 | } |
| 204 | } |
| 205 | |
| 206 | projectID := "test-project" |
| 207 | resp, err := ctl.projectServiceClient.CreateProject(metaCtx, connect.NewRequest(&v1pb.CreateProjectRequest{ |
| 208 | Project: &v1pb.Project{ |
| 209 | Title: projectID, |
| 210 | AllowSelfApproval: true, |
| 211 | }, |
| 212 | ProjectId: projectID, |
| 213 | })) |
| 214 | if err != nil { |
| 215 | return nil, err |