Prompt for arcdata install upon extension activation (fix) (#20167)

* Made prompt when no arcdata upon startup

* Changed to NoAzureCLIArcExtError

Co-authored-by: Candice Ye <canye@microsoft.com>
This commit is contained in:
Candice Ye
2022-07-26 16:45:30 -07:00
committed by GitHub
parent 518bb33a2f
commit 79ba314953
3 changed files with 5 additions and 8 deletions

View File

@@ -5,9 +5,7 @@
import * as azExt from 'az-ext';
import { IAzTool } from './az';
import Logger from './common/logger';
import { NoAzureCLIError } from './common/utils';
import * as loc from './localizedConstants';
import { AzToolService } from './services/azToolService';
/**
@@ -21,7 +19,6 @@ export function validateAz(az: IAzTool | undefined) {
export function throwIfNoAz(localAz: IAzTool | undefined): asserts localAz {
if (!localAz) {
Logger.log(loc.noAzureCLI);
throw new NoAzureCLIError();
}
}

View File

@@ -12,7 +12,7 @@ import * as vscode from 'vscode';
import { executeCommand, executeSudoCommand, ExitCodeError, ProcessOutput } from './common/childProcess';
import { HttpClient } from './common/httpClient';
import Logger from './common/logger';
import { AzureCLIArcExtError, NoAzureCLIError, searchForCmd } from './common/utils';
import { NoAzureCLIArcExtError, NoAzureCLIError, searchForCmd } from './common/utils';
import { azArcdataInstallKey, azConfigSection, azFound, debugConfigKey, latestAzArcExtensionVersion, azCliInstallKey, azArcFound, azHostname, azUri } from './constants';
import * as loc from './localizedConstants';
@@ -447,7 +447,7 @@ export async function checkAndInstallAz(userRequested: boolean = false): Promise
try {
return await findAzAndArc(); // find currently installed Az
} catch (err) {
if (err === AzureCLIArcExtError) {
if (err instanceof NoAzureCLIArcExtError) {
// Az found but arcdata extension not found. Prompt user to install it, then check again.
if (await promptToInstallArcdata(userRequested)) {
return await findAzAndArc();
@@ -478,7 +478,7 @@ export async function findAzAndArc(): Promise<IAzTool> {
Logger.log(loc.foundExistingAz(await azTool.getPath(), (await azTool.getSemVersionAz()).raw, (await azTool.getSemVersionArc()).raw));
return azTool;
} catch (err) {
if (err === AzureCLIArcExtError) {
if (err === NoAzureCLIArcExtError) {
Logger.log(loc.couldNotFindAzArc(err));
Logger.log(loc.noAzArc);
await vscode.commands.executeCommand('setContext', azArcFound, false); // save a context key that az was not found so that command for installing az is available in commandPalette and that for updating it is no longer available.
@@ -506,7 +506,7 @@ async function findSpecificAzAndArc(): Promise<IAzTool> {
// if no az has been found. If found, check if az arcdata extension exists.
const arcVersion = parseArcExtensionVersion(versionOutput.stdout);
if (arcVersion === undefined) {
throw AzureCLIArcExtError;
throw new NoAzureCLIArcExtError;
}
// Quietly attempt to update the arcdata extension to the latest. If it is already the latest, then it will not update.

View File

@@ -17,7 +17,7 @@ export class NoAzureCLIError extends Error implements azExt.ErrorWithLink {
}
}
export class AzureCLIArcExtError extends Error implements azExt.ErrorWithLink {
export class NoAzureCLIArcExtError extends Error implements azExt.ErrorWithLink {
constructor() {
super(loc.arcdataExtensionNotInstalled);
}