Nasc/Compute and Storage Loading Page Bug Fix (#13150)

* fix git issues

* Merged fixes for loading error on compute&storage page. Clear out input boxes after save.
This commit is contained in:
nasc17
2020-10-30 09:03:37 -07:00
committed by GitHub
parent 680dc1b5da
commit f5fc5c648e
2 changed files with 59 additions and 42 deletions

View File

@@ -9,6 +9,7 @@ import * as vscode from 'vscode';
import * as loc from '../localizedConstants';
import { ControllerModel, Registration } from './controllerModel';
import { ResourceModel } from './resourceModel';
import { Deferred } from '../common/promise';
import { parseIpAndPort } from '../common/utils';
export class PostgresModel extends ResourceModel {
@@ -19,6 +20,8 @@ export class PostgresModel extends ResourceModel {
public onConfigUpdated = this._onConfigUpdated.event;
public configLastUpdated?: Date;
private _refreshPromise?: Deferred<void>;
constructor(private _controllerModel: ControllerModel, info: ResourceInfo, registration: Registration) {
super(info, registration);
this._azdataApi = <azdataExt.IExtension>vscode.extensions.getExtension(azdataExt.extension.name)?.exports;
@@ -81,9 +84,23 @@ export class PostgresModel extends ResourceModel {
/** Refreshes the model */
public async refresh() {
await this._controllerModel.azdataLogin();
this._config = (await this._azdataApi.azdata.arc.postgres.server.show(this.info.name)).result;
this.configLastUpdated = new Date();
this._onConfigUpdated.fire(this._config);
// Only allow one refresh to be happening at a time
if (this._refreshPromise) {
return this._refreshPromise.promise;
}
this._refreshPromise = new Deferred();
try {
await this._controllerModel.azdataLogin();
this._config = (await this._azdataApi.azdata.arc.postgres.server.show(this.info.name)).result;
this.configLastUpdated = new Date();
this._onConfigUpdated.fire(this._config);
this._refreshPromise.resolve();
} catch (err) {
this._refreshPromise.reject(err);
throw err;
} finally {
this._refreshPromise = undefined;
}
}
}