6
6
7
7
import { DownloadUrlRequest , DownloadUrlResponse , UploadUrlRequest , UploadUrlResponse } from '@gitpod/content-service/lib/blobs_pb' ;
8
8
import { AppInstallationDB , UserDB , UserMessageViewsDB , WorkspaceDB , DBWithTracing , TracedWorkspaceDB , DBGitpodToken , DBUser , UserStorageResourcesDB , TeamDB } from '@gitpod/gitpod-db/lib' ;
9
- import { AuthProviderEntry , AuthProviderInfo , CommitContext , Configuration , CreateWorkspaceMode , DisposableCollection , GetWorkspaceTimeoutResult , GitpodClient as GitpodApiClient , GitpodServer , GitpodToken , GitpodTokenType , InstallPluginsParams , PermissionName , PortVisibility , PrebuiltWorkspace , PrebuiltWorkspaceContext , PreparePluginUploadParams , ResolvedPlugins , ResolvePluginsParams , SetWorkspaceTimeoutResult , StartPrebuildContext , StartWorkspaceResult , Terms , Token , UninstallPluginParams , User , UserEnvVar , UserEnvVarValue , UserInfo , WhitelistedRepository , Workspace , WorkspaceContext , WorkspaceCreationResult , WorkspaceImageBuild , WorkspaceInfo , WorkspaceInstance , WorkspaceInstancePort , WorkspaceInstanceUser , WorkspaceTimeoutDuration , GuessGitTokenScopesParams , GuessedGitTokenScopes , Team , TeamMemberInfo , TeamMembershipInvite , CreateProjectParams , Project , ProviderRepository , TeamMemberRole , WithDefaultConfig , FindPrebuildsParams , PrebuildWithStatus , StartPrebuildResult , ClientHeaderFields , WorkspaceClusterPreference } from '@gitpod/gitpod-protocol' ;
9
+ import { AuthProviderEntry , AuthProviderInfo , CommitContext , Configuration , CreateWorkspaceMode , DisposableCollection , GetWorkspaceTimeoutResult , GitpodClient as GitpodApiClient , GitpodServer , GitpodToken , GitpodTokenType , InstallPluginsParams , PermissionName , PortVisibility , PrebuiltWorkspace , PrebuiltWorkspaceContext , PreparePluginUploadParams , ResolvedPlugins , ResolvePluginsParams , SetWorkspaceTimeoutResult , StartPrebuildContext , StartWorkspaceResult , Terms , Token , UninstallPluginParams , User , UserEnvVar , UserEnvVarValue , UserInfo , WhitelistedRepository , Workspace , WorkspaceContext , WorkspaceCreationResult , WorkspaceImageBuild , WorkspaceInfo , WorkspaceInstance , WorkspaceInstancePort , WorkspaceInstanceUser , WorkspaceTimeoutDuration , GuessGitTokenScopesParams , GuessedGitTokenScopes , Team , TeamMemberInfo , TeamMembershipInvite , CreateProjectParams , Project , ProviderRepository , TeamMemberRole , WithDefaultConfig , FindPrebuildsParams , PrebuildWithStatus , StartPrebuildResult , ClientHeaderFields , WorkspaceClusterPreference , WorkspaceClusterRTTEndpoints } from '@gitpod/gitpod-protocol' ;
10
10
import { AccountStatement } from "@gitpod/gitpod-protocol/lib/accounting-protocol" ;
11
11
import { AdminBlockUserRequest , AdminGetListRequest , AdminGetListResult , AdminGetWorkspacesRequest , AdminModifyPermanentWorkspaceFeatureFlagRequest , AdminModifyRoleOrPermissionRequest , WorkspaceAndInstance } from '@gitpod/gitpod-protocol/lib/admin-protocol' ;
12
12
import { GetLicenseInfoResult , LicenseFeature , LicenseValidationResult } from '@gitpod/gitpod-protocol/lib/license-protocol' ;
@@ -57,7 +57,7 @@ import { PartialProject } from '@gitpod/gitpod-protocol/src/teams-projects-proto
57
57
import { ClientMetadata } from '../websocket/websocket-connection-manager' ;
58
58
import { ConfigurationService } from '../config/configuration-service' ;
59
59
import { ProjectEnvVar } from '@gitpod/gitpod-protocol/src/protocol' ;
60
- import { AdmissionPreferenceRegion , WorkspaceClusterDB } from '@gitpod/gitpod-protocol/lib/workspace-cluster' ;
60
+ import { AdmissionPreferenceRegion } from '@gitpod/gitpod-protocol/lib/workspace-cluster' ;
61
61
62
62
// shortcut
63
63
export const traceWI = ( ctx : TraceContext , wi : Omit < LogContext , "userId" > ) => TraceContext . setOWI ( ctx , wi ) ; // userId is already taken care of in WebsocketConnectionManager
@@ -115,8 +115,6 @@ export class GitpodServerImpl implements GitpodServerWithTracing, Disposable {
115
115
116
116
@inject ( IDEConfigService ) protected readonly ideConfigService : IDEConfigService ;
117
117
118
- @inject ( WorkspaceClusterDB ) protected readonly workspaceClusterDB : WorkspaceClusterDB ;
119
-
120
118
/** Id the uniquely identifies this server instance */
121
119
public readonly uuid : string = uuidv4 ( ) ;
122
120
public readonly clientMetadata : ClientMetadata ;
@@ -2206,8 +2204,10 @@ export class GitpodServerImpl implements GitpodServerWithTracing, Disposable {
2206
2204
return ideConfig . ideOptions ;
2207
2205
}
2208
2206
2209
- async listWorkspaceClusterRTTEndpoints ( ctx : TraceContext ) : Promise < { region : string ; endpoint : string ; } [ ] > {
2210
- const candidates = await this . workspaceClusterDB . findFiltered ( { state : 'available' } ) ;
2207
+ async listWorkspaceClusterRTTEndpoints ( ctx : TraceContext ) : Promise < WorkspaceClusterRTTEndpoints > {
2208
+ const user = this . checkUser ( "listWorkspaceClusterRTTEndpoints" ) ;
2209
+
2210
+ const candidates = await this . workspaceManagerClientProvider . getAvailableStartCluster ( user ) ;
2211
2211
const allEndpoints = candidates . flatMap ( c => ( c . admissionPreferences || [ ] ) . filter ( ap => ap . type === 'region' ) ) . map ( ap => {
2212
2212
const rap = ap as AdmissionPreferenceRegion ;
2213
2213
return {
@@ -2216,7 +2216,9 @@ export class GitpodServerImpl implements GitpodServerWithTracing, Disposable {
2216
2216
} ;
2217
2217
} ) ;
2218
2218
2219
- return [ ...new Set ( allEndpoints ) ] ;
2219
+ return {
2220
+ candidates : [ ...new Set ( allEndpoints ) ]
2221
+ } ;
2220
2222
}
2221
2223
2222
2224
async setWorkspaceClusterPreferences ( ctx : TraceContext , pref : WorkspaceClusterPreference ) : Promise < void > {
0 commit comments