ML - displaying all Python and R packages (including system ones) (#10603)

* displaying all packages including readonly
This commit is contained in:
Leila Lali
2020-05-29 13:52:37 -07:00
committed by GitHub
parent 0e0eb7f237
commit 5955953b4a
7 changed files with 77 additions and 54 deletions

View File

@@ -70,8 +70,17 @@ export abstract class SqlPackageManageProviderBase {
* @param packages Packages to uninstall
*/
public async uninstallPackages(packages: nbExtensionApis.IPackageDetails[], databaseName: string): Promise<void> {
let allPackages = await this.listPackages(databaseName);
if (packages) {
await Promise.all(packages.map(x => this.executeScripts(ScriptMode.Uninstall, x, databaseName)));
await Promise.all(packages.map(x => {
const originalPackage = allPackages.find(p => p.name === x.name && p.version === x.version);
if (originalPackage && originalPackage.readonly) {
return Promise.reject(`Cannot uninstalled system package '${x.name}'`);
} else {
return this.executeScripts(ScriptMode.Uninstall, x, databaseName);
}
}));
}
}

View File

@@ -68,9 +68,10 @@ export class SqlRPackageManageProvider extends SqlPackageManageProviderBase impl
let credentials = await this._apiWrapper.getCredentials(connection.connectionId);
if (connection) {
let server = connection.serverName.replace('\\', '\\\\');
let database = databaseName ? `, database="${databaseName}"` : '';
const auth = connection.userName ? `, uid="${connection.userName}", pwd="${credentials[azdata.ConnectionOptionSpecialType.password]}"` : '';
let connectionParts = `server="${connection.serverName}"${auth}${database}`;
let connectionParts = `server="${server}"${auth}${database}`;
let rCommandScript = scriptMode === ScriptMode.Install ? 'sql_install.packages' : 'sql_remove.packages';
let scripts: string[] = [