Fix node infinitely loading when a firewall dialog is cancelled (#7970)

* add back icons for azure actions

* fix firewall infinite loop

* formatting

* change message to firewall canceled

* fix tests
This commit is contained in:
Aditya Bist
2019-10-23 21:37:21 -07:00
committed by GitHub
parent fb4fccf2d5
commit a16bfbfedd
3 changed files with 9 additions and 3 deletions

View File

@@ -246,6 +246,9 @@ export class ConnectionManagementService extends Disposable implements IConnecti
if (!connectionResult.connected && !connectionResult.errorHandled) {
// If connection fails show the dialog
return this.showConnectionDialogOnError(connection, owner, connectionResult, options);
} else if (!connectionResult.connected && connectionResult.errorHandled) {
// Cancelled firewall dialog
return undefined;
} else {
//Resolve with the connection result
return connectionResult;

View File

@@ -593,8 +593,7 @@ suite('SQL ConnectionManagementService tests', () => {
};
connect(uri, options, false, connectionProfile, error, errorCode, errorCallStack).then(result => {
assert.equal(result.connected, expectedConnection);
assert.equal(result.errorMessage, connectionResult.errorMessage);
assert.equal(result, undefined);
verifyShowFirewallRuleDialog(connectionProfile, true);
verifyShowConnectionDialog(connectionProfile, ConnectionType.default, uri, true, connectionResult, false);
done();

View File

@@ -83,7 +83,7 @@ export class OEShimService extends Disposable implements IOEShimService {
private async connectOrPrompt(connProfile: ConnectionProfile): Promise<ConnectionProfile> {
connProfile = await new Promise(async (resolve, reject) => {
await this.cm.connect(connProfile, undefined, { showConnectionDialogOnError: true, showFirewallRuleOnError: true, saveTheConnection: false, showDashboard: false, params: undefined }, {
let result = await this.cm.connect(connProfile, undefined, { showConnectionDialogOnError: true, showFirewallRuleOnError: true, saveTheConnection: false, showDashboard: false, params: undefined }, {
onConnectSuccess: async (e, profile) => {
let existingConnection = this.cm.findExistingConnection(profile);
connProfile = new ConnectionProfile(this.capabilities, existingConnection);
@@ -97,6 +97,10 @@ export class OEShimService extends Disposable implements IOEShimService {
onConnectStart: undefined,
onDisconnect: undefined
});
// connection cancelled from firewall dialog
if (!result) {
reject(new UserCancelledConnectionError(localize('firewallCanceled', "Firewall dialog canceled")));
}
});
return connProfile;
}