Fixes issue where wrong property was checked for deployment type (#10933)

* Fixes issue where wrong property was checked for deployment type

* improve error message
This commit is contained in:
Benjin Dubishar
2020-06-15 19:19:02 -07:00
committed by GitHub
parent f02e2a4b72
commit 0f9f9c851e
2 changed files with 35 additions and 28 deletions

View File

@@ -87,6 +87,7 @@ export const databaseNameRequired = localize('databaseNameRequired', "Database n
export const invalidDataSchemaProvider = localize('invalidDataSchemaProvider', "Invalid DSP in .sqlproj file"); export const invalidDataSchemaProvider = localize('invalidDataSchemaProvider', "Invalid DSP in .sqlproj file");
export const invalidDatabaseReference = localize('invalidDatabaseReference', "Invalid database reference in .sqlproj file"); export const invalidDatabaseReference = localize('invalidDatabaseReference', "Invalid database reference in .sqlproj file");
export const databaseSelectionRequired = localize('databaseSelectionRequired', "Database selection is required to import a project"); export const databaseSelectionRequired = localize('databaseSelectionRequired', "Database selection is required to import a project");
export const unableToCreateDeploymentConnection = localize('unableToCreateDeploymentConnection', "Unable to construct connection");
export function projectAlreadyOpened(path: string) { return localize('projectAlreadyOpened', "Project '{0}' is already opened.", path); } export function projectAlreadyOpened(path: string) { return localize('projectAlreadyOpened', "Project '{0}' is already opened.", path); }
export function projectAlreadyExists(name: string, path: string) { return localize('projectAlreadyExists', "A project named {0} already exists in {1}.", name, path); } export function projectAlreadyExists(name: string, path: string) { return localize('projectAlreadyExists', "A project named {0} already exists in {1}.", name, path); }
export function noFileExist(fileName: string) { return localize('noFileExist', "File {0} doesn't exist", fileName); } export function noFileExist(fileName: string) { return localize('noFileExist', "File {0} doesn't exist", fileName); }

View File

@@ -6,6 +6,7 @@
import * as azdata from 'azdata'; import * as azdata from 'azdata';
import * as vscode from 'vscode'; import * as vscode from 'vscode';
import * as constants from '../common/constants'; import * as constants from '../common/constants';
import * as utils from '../common/utils';
import { Project } from '../models/project'; import { Project } from '../models/project';
import { SqlConnectionDataSource } from '../models/dataSources/sqlConnectionStringSource'; import { SqlConnectionDataSource } from '../models/dataSources/sqlConnectionStringSource';
@@ -115,42 +116,47 @@ export class DeployDatabaseDialog {
} }
public async getConnectionUri(): Promise<string> { public async getConnectionUri(): Promise<string> {
// if target connection is a data source, have to check if already connected or if connection dialog needs to be opened try {
let connId: string; // if target connection is a data source, have to check if already connected or if connection dialog needs to be opened
let connId: string;
if (this.dataSourcesRadioButton?.checked) { if (this.connectionIsDataSource) {
const dataSource = (this.dataSourcesDropDown!.value! as DataSourceDropdownValue).dataSource; const dataSource = (this.dataSourcesDropDown!.value! as DataSourceDropdownValue).dataSource;
const connProfile: azdata.IConnectionProfile = { const connProfile: azdata.IConnectionProfile = {
serverName: dataSource.server, serverName: dataSource.server,
databaseName: dataSource.database, databaseName: dataSource.database,
connectionName: dataSource.name, connectionName: dataSource.name,
userName: dataSource.username, userName: dataSource.username,
password: dataSource.password, password: dataSource.password,
authenticationType: dataSource.integratedSecurity ? 'Integrated' : 'SqlAuth', authenticationType: dataSource.integratedSecurity ? 'Integrated' : 'SqlAuth',
savePassword: false, savePassword: false,
providerName: 'MSSQL', providerName: 'MSSQL',
saveProfile: true, saveProfile: true,
id: dataSource.name + '-dataSource', id: dataSource.name + '-dataSource',
options: [] options: []
}; };
if (dataSource.integratedSecurity) { if (dataSource.integratedSecurity) {
connId = (await this.apiWrapper.connectionConnect(connProfile, false, false)).connectionId; connId = (await this.apiWrapper.connectionConnect(connProfile, false, false)).connectionId;
}
else {
connId = (await this.apiWrapper.openConnectionDialog(undefined, connProfile)).connectionId;
}
} }
else { else {
connId = (await this.apiWrapper.openConnectionDialog(undefined, connProfile)).connectionId; if (!this.connection) {
} throw new Error('Connection not defined.');
} }
else {
if (!this.connection) { connId = this.connection?.connectionId;
throw new Error('Connection not defined.');
} }
connId = this.connection?.connectionId; return await this.apiWrapper.getUriForConnection(connId);
}
catch (err) {
throw new Error(constants.unableToCreateDeploymentConnection + ': ' + utils.getErrorMessage(err));
} }
return await this.apiWrapper.getUriForConnection(connId);
} }
public async deployClick(): Promise<void> { public async deployClick(): Promise<void> {