diff --git a/components/gitpod-protocol/src/workspace-cluster.ts b/components/gitpod-protocol/src/workspace-cluster.ts index 8725ed730dc052..30c047d038a3eb 100644 --- a/components/gitpod-protocol/src/workspace-cluster.ts +++ b/components/gitpod-protocol/src/workspace-cluster.ts @@ -104,6 +104,7 @@ export interface WorkspaceClusterDB { */ findFiltered(predicate: DeepPartial): Promise; } -export interface WorkspaceClusterFilter extends Pick { +export interface WorkspaceClusterFilter + extends Pick { minScore: number; } diff --git a/components/ws-manager-api/typescript/src/client-provider-source.ts b/components/ws-manager-api/typescript/src/client-provider-source.ts index 416bf85c4d4096..e4771439343f46 100644 --- a/components/ws-manager-api/typescript/src/client-provider-source.ts +++ b/components/ws-manager-api/typescript/src/client-provider-source.ts @@ -14,17 +14,17 @@ export interface WorkspaceManagerClientProviderSource { getAllWorkspaceClusters(): Promise; } - @injectable() export class WorkspaceManagerClientProviderEnvSource implements WorkspaceManagerClientProviderSource { protected _clusters: WorkspaceCluster[] | undefined = undefined; + readonly applicationCluster = process.env.GITPOD_INSTALLATION_SHORTNAME ?? ""; public async getWorkspaceCluster(name: string): Promise { - return this.clusters.find(m => m.name === name); + return this.clusters.find((m) => m.name === name && m.applicationCluster === this.applicationCluster); } public async getAllWorkspaceClusters(): Promise { - return this.clusters; + return this.clusters.filter((m) => m.applicationCluster === this.applicationCluster) ?? []; } protected get clusters(): WorkspaceCluster[] { @@ -63,13 +63,14 @@ export class WorkspaceManagerClientProviderEnvSource implements WorkspaceManager export class WorkspaceManagerClientProviderDBSource implements WorkspaceManagerClientProviderSource { @inject(WorkspaceClusterDB) protected readonly db: WorkspaceClusterDB; + readonly applicationCluster = process.env.GITPOD_INSTALLATION_SHORTNAME ?? ""; public async getWorkspaceCluster(name: string): Promise { - return await this.db.findByName(name); + return (await this.db.findFiltered({ name, applicationCluster: this.applicationCluster }))[0]; } public async getAllWorkspaceClusters(): Promise { - return await this.db.findFiltered({}); + return await this.db.findFiltered({ applicationCluster: this.applicationCluster }); } } @@ -105,4 +106,4 @@ export class WorkspaceManagerClientProviderCompositeSource implements WorkspaceM } return result; } -} \ No newline at end of file +}