Feat/tool install master merge back to master (#7819)

* add install tools button (#7454)

* add install tools button

* address comments

* remove description for install tools hint message

* First working version of AutoDeployment of tools (#7647)

First working version of AutoDeployment of tools.

This pull request adds feature to install the tools needed for doing BDC/TINA deployments.

This has been tested so far only on win32 and testing on other platforms is in progress.

* removing TODO and redundant code

* Not localizing azuredatastudio product name

* convert methods returning Promises to async-await

* changing from null to undefined

* Localize all the command labels

* using existing sudo-prompt typings

* progres/error status in ModalDialogue && PR fixes

* review feedback to change warning to information

* revert settings.json changes

* fix resource-Deployment Extension Unit Test

* ensuring platform service's working directory

* incorporate review feedback

* review feedback

* addressing PR feedback

* PR fixes

* PR Feedback

* remove debug logs

* disable UI deployment containers when installing

* addding data type to stdout/stderr messaging

* remove commented code

* revert accidental change

* addressing review feedback

* fix failed install with zero exit code

* fixing bug due to typo

* fixes for linux

* Misc fixes during mac testing

* PR fixes
This commit is contained in:
Arvind Ranasaria
2019-10-18 23:17:21 -07:00
committed by GitHub
parent a2f105a913
commit 4dd6db57ee
18 changed files with 893 additions and 141 deletions

View File

@@ -3,7 +3,7 @@
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import * as azdata from 'azdata';
import { SemVer } from 'semver';
import * as vscode from 'vscode';
export const NoteBookEnvironmentVariablePrefix = 'AZDATA_NB_VAR_';
@@ -168,12 +168,12 @@ export interface FieldInfo {
editable?: boolean; // for editable dropdown
}
export enum LabelPosition {
export const enum LabelPosition {
Top = 'top',
Left = 'left'
}
export enum FontStyle {
export const enum FontStyle {
Normal = 'normal',
Italic = 'italic'
}
@@ -200,6 +200,13 @@ export interface NotebookInfo {
linux: string;
}
export enum OsType {
win32 = 'win32',
darwin = 'darwin',
linux = 'linux',
others = 'others'
}
export interface ToolRequirementInfo {
name: string;
version: string;
@@ -212,20 +219,46 @@ export enum ToolType {
Azdata
}
export const enum ToolStatus {
NotInstalled = 'NotInstalled',
Installed = 'Installed',
Installing = 'Installing',
Error = 'Error',
Failed = 'Failed'
}
export interface ITool {
isInstalling: any;
readonly name: string;
readonly displayName: string;
readonly description: string;
readonly type: ToolType;
readonly version: SemVer | undefined;
readonly homePage: string;
readonly isInstalled: boolean;
loadInformation(): Promise<void>;
readonly displayStatus: string;
readonly statusDescription: string | undefined;
readonly autoInstallSupported: boolean;
readonly autoInstallRequired: boolean;
readonly isNotInstalled: boolean;
readonly needsInstallation: boolean;
readonly outputChannelName: string;
readonly fullVersion: string | undefined;
readonly onDidUpdateData: vscode.Event<ITool>;
showOutputChannel(preserveFocus?: boolean): void;
loadInformation(): Promise<void>;
install(): Promise<void>;
}
export enum BdcDeploymentType {
export const enum BdcDeploymentType {
NewAKS = 'new-aks',
ExistingAKS = 'existing-aks',
ExistingKubeAdm = 'existing-kubeadm'
}
export interface Command {
command: string;
sudo?: boolean;
comment?: string;
workingDirectory?: string;
additionalEnvironmentVariables?: NodeJS.ProcessEnv;
ignoreError?: boolean;
}