Skip to content

Commit d167401

Browse files
committed
Use ports order from supervisor
1 parent c94db98 commit d167401

File tree

2 files changed

+15
-7
lines changed

2 files changed

+15
-7
lines changed

extensions/gitpod-web/src/extension.ts

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,7 @@ async function registerPorts(context: GitpodExtensionContext): Promise<void> {
363363
context.subscriptions.push(experiments);
364364

365365
const portMap = new Map<number, GitpodWorkspacePort>();
366+
let portList: GitpodWorkspacePort[] = [];
366367
const tunnelMap = new Map<number, vscode.TunnelDescription>();
367368

368369
// register tree view
@@ -394,11 +395,14 @@ async function registerPorts(context: GitpodExtensionContext): Promise<void> {
394395
evts.on('error', reject);
395396
evts.on('data', (update: PortsStatusResponse) => {
396397
portMap.clear();
397-
const portList = update.getPortsList().map(p => p.toObject());
398-
for (const portStatus of portList) {
399-
portMap.set(portStatus.localPort, new GitpodWorkspacePort(portStatus.localPort, portStatus, tunnelMap.get(portStatus.localPort)));
398+
portList = [];
399+
const tmpPortList = update.getPortsList().map(p => p.toObject());
400+
for (const portStatus of tmpPortList) {
401+
const port = new GitpodWorkspacePort(portStatus.localPort, portStatus, tunnelMap.get(portStatus.localPort));
402+
portList.push(port);
403+
portMap.set(portStatus.localPort, port);
400404
}
401-
portViewProvider.updatePortsStatus(portList);
405+
portViewProvider.updatePortsStatus(tmpPortList);
402406
gitpodWorkspaceTreeDataProvider.updatePortsStatus(update);
403407
});
404408
});
@@ -504,7 +508,8 @@ async function registerPorts(context: GitpodExtensionContext): Promise<void> {
504508
async function updateStatusBar(): Promise<void> {
505509
const exposedPorts: number[] = [];
506510

507-
for (const port of portMap.values()) {
511+
512+
for (const port of portList) {
508513
if (isExposedServedGitpodWorkspacePort(port)) {
509514
exposedPorts.push(port.status.localPort);
510515
}

extensions/gitpod-web/src/portViewProvider.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export class GitpodPortViewProvider implements vscode.WebviewViewProvider {
1616
private _view?: vscode.WebviewView;
1717

1818
readonly portMap = new Map<number, GitpodWorkspacePort>();
19+
private portList: GitpodWorkspacePort[] = [];
1920

2021
private readonly onDidExposeServedPortEmitter = new vscode.EventEmitter<ExposedServedGitpodWorkspacePort>();
2122
readonly onDidExposeServedPort = this.onDidExposeServedPortEmitter.event;
@@ -82,6 +83,7 @@ export class GitpodPortViewProvider implements vscode.WebviewViewProvider {
8283
this.updating = true;
8384
try {
8485
if (!this.portStatus) { return; }
86+
this.portList = [];
8587
this.portStatus.forEach(e => {
8688
const localPort = e.localPort;
8789
const tunnel = this.tunnelsMap.get(localPort);
@@ -90,8 +92,10 @@ export class GitpodPortViewProvider implements vscode.WebviewViewProvider {
9092
if (!gitpodPort) {
9193
gitpodPort = new GitpodWorkspacePort(localPort, e, tunnel);
9294
this.portMap.set(localPort, gitpodPort);
95+
this.portList.push(gitpodPort);
9396
} else {
9497
gitpodPort.update(e, tunnel);
98+
this.portList.push(gitpodPort);
9599
}
96100
if (isExposedServedGitpodWorkspacePort(gitpodPort) && !isExposedServedPort(prevStatus)) {
97101
this.onDidExposeServedPortEmitter.fire(gitpodPort);
@@ -105,8 +109,7 @@ export class GitpodPortViewProvider implements vscode.WebviewViewProvider {
105109
}
106110

107111
private updateHtml(): void {
108-
const ports = Array.from(this.portMap.values()).map(e => e.toSvelteObject());
109-
this._view?.webview.postMessage({ command: 'updatePorts', ports });
112+
this._view?.webview.postMessage({ command: 'updatePorts', ports: this.portList.map(e => e.toSvelteObject()) });
110113
}
111114

112115
private onHtmlCommand() {

0 commit comments

Comments
 (0)