mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-27 01:25:36 -05:00
Allow 'ApplicationName' to be specified for MSSQL connections (#22890)
This commit is contained in:
@@ -13,6 +13,7 @@ import { isString } from 'vs/base/common/types';
|
||||
import { deepClone } from 'vs/base/common/objects';
|
||||
import * as Constants from 'sql/platform/connection/common/constants';
|
||||
import { URI } from 'vs/base/common/uri';
|
||||
import { adjustForMssqlAppName } from 'sql/platform/connection/common/utils';
|
||||
|
||||
export interface IconPath {
|
||||
light: URI;
|
||||
@@ -65,10 +66,17 @@ export class ConnectionProfile extends ProviderConnectionInfo implements interfa
|
||||
let capabilities = this.capabilitiesService.getCapabilities(this.providerName);
|
||||
if (capabilities && capabilities.connection && capabilities.connection.connectionOptions) {
|
||||
const options = capabilities.connection.connectionOptions;
|
||||
// MSSQL Provider doesn't treat appName as special type anymore.
|
||||
let appNameOption = options.find(option => option.specialValueType === interfaces.ConnectionOptionSpecialType.appName);
|
||||
if (appNameOption) {
|
||||
let appNameKey = appNameOption.name;
|
||||
this.options[appNameKey] = Constants.applicationName;
|
||||
} else if (this.providerName === Constants.mssqlProviderName || this.providerName === Constants.mssqlCmsProviderName) {
|
||||
// Update AppName here for MSSQL and MSSQL-CMS provider to be able to match connection URI with STS.
|
||||
appNameOption = options.find(option => option.name === Constants.mssqlApplicationNameOption);
|
||||
if (appNameOption) {
|
||||
this.options[Constants.mssqlApplicationNameOption] = adjustForMssqlAppName(model.options[Constants.mssqlApplicationNameOption]);
|
||||
}
|
||||
}
|
||||
// Set values for advanced options received in model.
|
||||
Object.keys(model.options).forEach(a => {
|
||||
|
||||
@@ -11,12 +11,14 @@ export const outputChannelName = 'MSSQL';
|
||||
export const capabilitiesOptions = 'OPTIONS_METADATA';
|
||||
|
||||
export const mssqlProviderName = 'MSSQL';
|
||||
export const mssqlCmsProviderName = 'MSSQL-CMS';
|
||||
export const mysqlProviderName = 'MYSQL';
|
||||
export const pgsqlProviderName = 'PGSQL';
|
||||
export const anyProviderName = '*';
|
||||
export const connectionProviderContextKey = 'connectionProvider';
|
||||
|
||||
export const applicationName = 'azdata';
|
||||
export const mssqlApplicationNameOption = 'applicationName';
|
||||
|
||||
export const defaultEngine = 'defaultEngine';
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ import { IConnectionProfile } from 'sql/platform/connection/common/interfaces';
|
||||
import { ConnectionProfile } from 'sql/platform/connection/common/connectionProfile';
|
||||
import { ConnectionProfileGroup } from 'sql/platform/connection/common/connectionProfileGroup';
|
||||
import * as sqlExtHostTypes from 'sql/workbench/api/common/sqlExtHostTypes';
|
||||
import { applicationName } from 'sql/platform/connection/common/constants';
|
||||
|
||||
// CONSTANTS //////////////////////////////////////////////////////////////////////////////////////
|
||||
const msInH = 3.6e6;
|
||||
@@ -170,3 +171,11 @@ export function convertToRpcConnectionProfile(profile: IConnectionProfile | unde
|
||||
|
||||
return connection;
|
||||
}
|
||||
|
||||
export function adjustForMssqlAppName(currentAppName: string, suffix?: string): string {
|
||||
let appName = suffix ? applicationName + '-' + suffix : applicationName;
|
||||
let finalSuffix = '-' + appName;
|
||||
return (currentAppName && currentAppName !== appName && !currentAppName.endsWith(finalSuffix))
|
||||
? currentAppName + finalSuffix
|
||||
: currentAppName ?? appName;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user