Skip to content

Commit ef63b2a

Browse files
committed
[bridge] Fix PreparingUpdateEmulator initialization
1 parent 5f6114c commit ef63b2a

File tree

3 files changed

+10
-5
lines changed

3 files changed

+10
-5
lines changed

components/ws-manager-bridge/src/bridge.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* See License-AGPL.txt in the project root for license information.
55
*/
66

7-
import { inject, injectable } from "inversify";
7+
import { inject, injectable, interfaces } from "inversify";
88
import { MessageBusIntegration } from "./messagebus-integration";
99
import { Disposable, WorkspaceInstance, Queue, WorkspaceInstancePort, PortVisibility, RunningWorkspaceInfo, DisposableCollection } from "@gitpod/gitpod-protocol";
1010
import { WorkspaceStatus, WorkspacePhase, GetWorkspacesRequest, WorkspaceConditionBool, PortVisibility as WsManPortVisibility, WorkspaceType, PromisifiedWorkspaceManagerClient } from "@gitpod/ws-manager/lib";
@@ -20,7 +20,7 @@ import { Timestamp } from "google-protobuf/google/protobuf/timestamp_pb";
2020
import { Configuration } from "./config";
2121
import { WorkspaceCluster } from "@gitpod/gitpod-protocol/lib/workspace-cluster";
2222
import { repeat } from "@gitpod/gitpod-protocol/lib/util/repeat";
23-
import { PreparingUpdateEmulator } from "./preparing-update-emulator";
23+
import { PreparingUpdateEmulator, PreparingUpdateEmulatorFactory } from "./preparing-update-emulator";
2424

2525
export const WorkspaceManagerBridgeFactory = Symbol("WorkspaceManagerBridgeFactory");
2626

@@ -51,6 +51,9 @@ export class WorkspaceManagerBridge implements Disposable {
5151
@inject(Configuration)
5252
protected readonly config: Configuration;
5353

54+
@inject(PreparingUpdateEmulatorFactory)
55+
protected readonly preparingUpdateEmulatorFactory: interfaces.Factory<PreparingUpdateEmulator>;
56+
5457
@inject(IAnalyticsWriter)
5558
protected readonly analytics: IAnalyticsWriter;
5659

@@ -88,7 +91,7 @@ export class WorkspaceManagerBridge implements Disposable {
8891
startStatusUpdateHandler(false);
8992

9093
// emulate WorkspaceInstance updates for all Workspaces in the "preparing" phase in this cluster
91-
const updateEmulator = new PreparingUpdateEmulator();
94+
const updateEmulator = this.preparingUpdateEmulatorFactory() as PreparingUpdateEmulator;
9295
this.disposables.push(updateEmulator);
9396
updateEmulator.start(cluster.name);
9497
}

components/ws-manager-bridge/src/container-module.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import { newAnalyticsWriterFromEnv } from '@gitpod/gitpod-protocol/lib/util/anal
2525
import { MetaInstanceController } from './meta-instance-controller';
2626
import { IClientCallMetrics } from '@gitpod/content-service/lib/client-call-metrics';
2727
import { PrometheusClientCallMetrics } from "@gitpod/gitpod-protocol/lib/messaging/client-call-metrics";
28-
import { PreparingUpdateEmulator } from './preparing-update-emulator';
28+
import { PreparingUpdateEmulator, PreparingUpdateEmulatorFactory } from './preparing-update-emulator';
2929

3030
export const containerModule = new ContainerModule(bind => {
3131

@@ -70,5 +70,5 @@ export const containerModule = new ContainerModule(bind => {
7070

7171
bind(IAnalyticsWriter).toDynamicValue(newAnalyticsWriterFromEnv).inSingletonScope();
7272

73-
bind(PreparingUpdateEmulator).toSelf().inSingletonScope();
73+
bind(PreparingUpdateEmulatorFactory).toAutoFactory(PreparingUpdateEmulator);
7474
});

components/ws-manager-bridge/src/preparing-update-emulator.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ import { MessageBusIntegration } from "./messagebus-integration";
1414
import { GarbageCollectedCache } from "@gitpod/gitpod-protocol/lib/util/garbage-collected-cache";
1515
import * as crypto from 'crypto';
1616

17+
export const PreparingUpdateEmulatorFactory = Symbol("PreparingUpdateEmulatorFactory");
18+
1719
interface CacheEntry {
1820
instance: WorkspaceInstance,
1921
userId: string,

0 commit comments

Comments
 (0)