Changes to remove Pip3 based installations for azdata (#8577)

* saving intermediate work - to merge master

* remove inadvertent change

* Remove Pip3 installation from all tools

* working version

* making some small fixes

* add back accidently removed file

* Update resourceTypePickerDialog.ts

* Removing redundant trailing ","

* Remove commented dead code

* fix casing of nls string

* remove inadvertent change

* change installation locations from field to properties so that they are constructed at run time'
This commit is contained in:
Arvind Ranasaria
2019-12-05 17:15:27 -08:00
committed by GitHub
parent 4787d7ba5c
commit 7201025a15
11 changed files with 129 additions and 160 deletions

View File

@@ -7,7 +7,7 @@ import * as path from 'path';
import { SemVer } from 'semver';
import * as vscode from 'vscode';
import * as nls from 'vscode-nls';
import { azdataPipInstallArgsKey, AzdataPipInstallUriKey, DeploymentConfigurationKey } from '../../constants';
import { AzdataInstallLocationKey, DeploymentConfigurationKey } from '../../constants';
import { Command, OsDistribution, ToolType } from '../../interfaces';
import { IPlatformService } from '../platformService';
import { dependencyType, ToolBase } from './toolBase';
@@ -62,11 +62,6 @@ export class AzdataTool extends ToolBase {
}
return version;
}
get autoInstallSupported(): boolean {
return true;
}
protected async getSearchPaths(): Promise<string[]> {
switch (this.osDistribution) {
case OsDistribution.win32:
@@ -87,109 +82,100 @@ export class AzdataTool extends ToolBase {
protected get allInstallationCommands(): Map<OsDistribution, Command[]> {
return new Map<OsDistribution, Command[]>([
[OsDistribution.debian, debianInstallationCommands],
[OsDistribution.win32, win32InstallationCommands],
[OsDistribution.darwin, macOsInstallationCommands],
[OsDistribution.others, this.defaultInstallationCommands]
[OsDistribution.debian, this.debianInstallationCommands],
[OsDistribution.win32, this.win32InstallationCommands],
[OsDistribution.darwin, this.macOsInstallationCommands],
[OsDistribution.others, []]
]);
}
protected get uninstallCommand(): string | undefined {
return this.defaultUninstallCommand;
private get azdataInstallLocation(): string {
return vscode.workspace.getConfiguration(DeploymentConfigurationKey)[AzdataInstallLocationKey] || this.defaultInstallLocationByDistribution.get(this.osDistribution);
}
private get defaultInstallationCommands(): Command[] {
return [
{
comment: localize('resourceDeployment.Azdata.InstallUpdatePythonRequestsPackage', "installing/updating to latest version of requests python package azdata …"),
command: `pip3 install -U requests`
},
{
comment: localize('resourceDeployment.Azdata.InstallingAzdata', "installing azdata …"),
command: `pip3 install -r ${this.azdataInstallUri} ${this.azdataInstallAdditionalArgs} --quiet --user`
}
];
}
private get defaultUninstallCommand(): string {
return `pip3 uninstall -r ${this.azdataInstallUri} ${this.azdataInstallAdditionalArgs} -y `;
}
private get azdataInstallUri(): string {
return vscode.workspace.getConfiguration(DeploymentConfigurationKey)[AzdataPipInstallUriKey];
}
private get azdataInstallAdditionalArgs(): string {
return vscode.workspace.getConfiguration(DeploymentConfigurationKey)[azdataPipInstallArgsKey];
}
private defaultInstallLocationByDistribution: Map<OsDistribution, string> = new Map<OsDistribution, string>([
[OsDistribution.debian, 'https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-2019.list'],
[OsDistribution.win32, 'https://aka.ms/azdata-msi'],
[OsDistribution.darwin, 'microsoft/azdata-cli-release'],
[OsDistribution.others, '']
]);
protected dependenciesByOsType: Map<OsDistribution, dependencyType[]> = new Map<OsDistribution, dependencyType[]>([
[OsDistribution.debian, []],
[OsDistribution.win32, []],
[OsDistribution.darwin, []],
[OsDistribution.others, [dependencyType.PythonAndPip3]]
[OsDistribution.darwin, [dependencyType.Brew]],
[OsDistribution.others, []]
]);
}
const win32InstallationCommands = [
{
comment: localize('resourceDeployment.Azdata.DeletingPreviousAzdata.msi', "deleting previously downloaded Azdata.msi if one exists …"),
command: `IF EXIST .\\Azdata.msi DEL /F .\\Azdata.msi`
},
{
sudo: true,
comment: localize('resourceDeployment.Azdata.DownloadingAndInstallingAzdata', "downloading Azdata.msi and installing azdata-cli …"),
command: `powershell -Command "& {(New-Object System.Net.WebClient).DownloadFile('https://aka.ms/azdata-msi', 'Azdata.msi'); Start-Process msiexec.exe -Wait -ArgumentList '/I Azdata.msi /passive /quiet /lvx ADS_AzdataInstall.log'}"`
},
{
comment: localize('resourceDeployment.Azdata.DisplayingInstallationLog', "displaying the installation log …"),
command: `type ADS_AzdataInstall.log | findstr /i /v ^MSI"`,
ignoreError: true
private get win32InstallationCommands() {
return [
{
comment: localize('resourceDeployment.Azdata.DeletingPreviousAzdata.msi', "deleting previously downloaded Azdata.msi if one exists …"),
command: `IF EXIST .\\Azdata.msi DEL /F .\\Azdata.msi`
},
{
sudo: true,
comment: localize('resourceDeployment.Azdata.DownloadingAndInstallingAzdata', "downloading Azdata.msi and installing azdata-cli …"),
command: `powershell -Command "& {(New-Object System.Net.WebClient).DownloadFile('${this.azdataInstallLocation}', 'Azdata.msi'); Start-Process msiexec.exe -Wait -ArgumentList '/I Azdata.msi /passive /quiet /lvx ADS_AzdataInstall.log'}"`
},
{
comment: localize('resourceDeployment.Azdata.DisplayingInstallationLog', "displaying the installation log …"),
command: `type ADS_AzdataInstall.log | findstr /i /v ^MSI"`,
ignoreError: true
}
];
}
];
const macOsInstallationCommands = [
{
comment: localize('resourceDeployment.Azdata.TappingBrewRepository', "tapping into the brew repository for azdata-cli …"),
command: 'brew tap microsoft/azdata-cli-release'
},
{
comment: localize('resourceDeployment.Azdata.UpdatingBrewRepository', "updating the brew repository for azdata-cli installation …"),
command: 'brew update'
},
{
comment: localize('resourceDeployment.Azdata.InstallingAzdata', "installing azdata …"),
command: 'brew install azdata-cli'
private get macOsInstallationCommands() {
return [
{
comment: localize('resourceDeployment.Azdata.TappingBrewRepository', "tapping into the brew repository for azdata-cli …"),
command: `brew tap ${this.azdataInstallLocation}`
},
{
comment: localize('resourceDeployment.Azdata.UpdatingBrewRepository', "updating the brew repository for azdata-cli installation …"),
command: 'brew update'
},
{
comment: localize('resourceDeployment.Azdata.InstallingAzdata', "installing azdata …"),
command: 'brew install azdata-cli'
}
];
}
];
const debianInstallationCommands = [
{
sudo: true,
comment: localize('resourceDeployment.Azdata.AptGetUpdate', "updating repository information …"),
command: 'apt-get update'
},
{
sudo: true,
comment: localize('resourceDeployment.Azdata.AptGetPackages', "getting packages needed for azdata installation …"),
command: 'apt-get install gnupg ca-certificates curl apt-transport-https lsb-release -y'
},
{
sudo: true,
comment: localize('resourceDeployment.Azdata.DownloadAndInstallingSigningKey', "downloading and installing the signing key for azdata …"),
command: 'wget -qO- https://packages.microsoft.com/keys/microsoft.asc | apt-key add -'
},
{
sudo: true,
comment: localize('resourceDeployment.Azdata.AddingAzdataRepositoryInformation', "adding the azdata repository information …"),
command: 'add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-2019.list)"'
},
{
sudo: true,
comment: localize('resourceDeployment.Azdata.AptGetUpdate', "updating repository information …"),
command: 'apt-get update'
},
{
sudo: true,
comment: localize('resourceDeployment.Azdata.InstallingAzdata', "installing azdata …"),
command: 'apt-get install -y azdata-cli'
private get debianInstallationCommands() {
return [
{
sudo: true,
comment: localize('resourceDeployment.Azdata.AptGetUpdate', "updating repository information …"),
command: 'apt-get update'
},
{
sudo: true,
comment: localize('resourceDeployment.Azdata.AptGetPackages', "getting packages needed for azdata installation …"),
command: 'apt-get install gnupg ca-certificates curl apt-transport-https lsb-release -y'
},
{
sudo: true,
comment: localize('resourceDeployment.Azdata.DownloadAndInstallingSigningKey', "downloading and installing the signing key for azdata …"),
command: 'wget -qO- https://packages.microsoft.com/keys/microsoft.asc | apt-key add -'
},
{
sudo: true,
comment: localize('resourceDeployment.Azdata.AddingAzdataRepositoryInformation', "adding the azdata repository information …"),
command: `add-apt-repository "$(wget -qO- ${this.azdataInstallLocation})"`
},
{
sudo: true,
comment: localize('resourceDeployment.Azdata.AptGetUpdate', "updating repository information …"),
command: 'apt-get update'
},
{
sudo: true,
comment: localize('resourceDeployment.Azdata.InstallingAzdata', "installing azdata …"),
command: 'apt-get install -y azdata-cli'
}
];
}
];
}