diff --git a/components/ws-manager-bridge/ee/src/bridge.ts b/components/ws-manager-bridge/ee/src/bridge.ts index 598ec79cec837d..8289a7337db6f9 100644 --- a/components/ws-manager-bridge/ee/src/bridge.ts +++ b/components/ws-manager-bridge/ee/src/bridge.ts @@ -114,12 +114,21 @@ export class WorkspaceManagerBridgeEE extends WorkspaceManagerBridge { } } - protected async controlPrebuildInstance(instance: WorkspaceInstance): Promise { + protected async stopPrebuildInstance(ctx: TraceContext, instance: WorkspaceInstance): Promise { + const span = TraceContext.startSpan("stopPrebuildInstance", ctx); + const prebuild = await this.workspaceDB.trace({}).findPrebuildByWorkspaceID(instance.workspaceId); - if (prebuild && prebuild.state == 'building') { + if (prebuild) { // this is a prebuild - set it to aborted prebuild.state = 'aborted'; await this.workspaceDB.trace({}).storePrebuiltWorkspace(prebuild); + + { // notify about prebuild updated + const info = (await this.workspaceDB.trace({span}).findPrebuildInfos([prebuild.id]))[0]; + if (info) { + this.messagebus.notifyOnPrebuildUpdate({ info, status: prebuild.state }); + } + } } } diff --git a/components/ws-manager-bridge/src/bridge.ts b/components/ws-manager-bridge/src/bridge.ts index 48dfd451e76636..64642ca95da7c7 100644 --- a/components/ws-manager-bridge/src/bridge.ts +++ b/components/ws-manager-bridge/src/bridge.ts @@ -312,7 +312,7 @@ export class WorkspaceManagerBridge implements Disposable { instance.stoppedTime = new Date().toISOString(); promises.push(this.workspaceDB.trace({}).storeInstance(instance)); promises.push(this.onInstanceStopped({}, ri.workspace.ownerId, instance)); - promises.push(this.controlPrebuildInstance(instance)); + promises.push(this.stopPrebuildInstance(ctx, instance)); } await Promise.all(promises); } @@ -325,7 +325,7 @@ export class WorkspaceManagerBridge implements Disposable { // prebuilds are an EE feature - we just need the hook here } - protected async controlPrebuildInstance(instance: WorkspaceInstance): Promise { + protected async stopPrebuildInstance(ctx: TraceContext, instance: WorkspaceInstance): Promise { // prebuilds are an EE feature - we just need the hook here }