diff --git a/src/commands/deployImage/deployImageApi.ts b/src/commands/deployImage/deployImageApi.ts index 09511536a..d69120b7f 100644 --- a/src/commands/deployImage/deployImageApi.ts +++ b/src/commands/deployImage/deployImageApi.ts @@ -3,12 +3,10 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { SubscriptionTreeItemBase } from "@microsoft/vscode-azext-azureutils"; -import { ISubscriptionContext } from "@microsoft/vscode-azext-dev"; -import { callWithMaskHandling, IActionContext, ISubscriptionActionContext } from "@microsoft/vscode-azext-utils"; +import { callWithMaskHandling, createSubscriptionContext, ISubscriptionActionContext, ITreeItemPickerContext } from "@microsoft/vscode-azext-utils"; import { acrDomain } from "../../constants"; -import { ext } from "../../extensionVariables"; import { detectRegistryDomain, getRegistryFromAcrName } from "../../utils/imageNameUtils"; +import { pickContainerApp } from "../../utils/pickContainerApp"; import { deployImage } from "./deployImage"; import { IDeployImageContext } from "./IDeployImageContext"; @@ -21,9 +19,12 @@ interface DeployImageToAcaOptionsContract { secret?: string; } -export async function deployImageApi(context: IActionContext & Partial, deployImageOptions: DeployImageToAcaOptionsContract): Promise { - const subscription: ISubscriptionContext = (await ext.rgApi.appResourceTree.showTreeItemPicker(SubscriptionTreeItemBase.contextValue, context)).subscription; - Object.assign(context, subscription, deployImageOptions); +export async function deployImageApi(context: ITreeItemPickerContext & Partial, deployImageOptions: DeployImageToAcaOptionsContract): Promise { + context.suppressCreatePick = true; + const node = await pickContainerApp(context); + const { subscription } = node; + + Object.assign(context, {...createSubscriptionContext(subscription) }, deployImageOptions); context.registryDomain = detectRegistryDomain(deployImageOptions.registryName); if (context.registryDomain === acrDomain) { @@ -40,8 +41,8 @@ export async function deployImageApi(context: IActionContext & Partial(() => deployImage(context, undefined), deployImageOptions.secret); + return callWithMaskHandling(() => deployImage(context, node), deployImageOptions.secret); } else { - return deployImage(context, undefined); + return deployImage(context, node); } } diff --git a/src/extensionVariables.ts b/src/extensionVariables.ts index 92a5740b7..522514dd5 100644 --- a/src/extensionVariables.ts +++ b/src/extensionVariables.ts @@ -4,7 +4,6 @@ *--------------------------------------------------------------------------------------------*/ import { IAzExtOutputChannel, IExperimentationServiceAdapter } from "@microsoft/vscode-azext-utils"; -import { AzureHostExtensionApi } from "@microsoft/vscode-azext-utils/hostapi"; import { AzureResourcesExtensionApi } from "@microsoft/vscode-azureresources-api"; import { ExtensionContext } from "vscode"; import { ContainerAppsBranchDataProvider } from "./tree/ContainerAppsBranchDataProvider"; @@ -19,7 +18,6 @@ export namespace ext { export let ignoreBundle: boolean | undefined; export const prefix: string = 'containerApps'; export let experimentationService: IExperimentationServiceAdapter; - export let rgApi: AzureHostExtensionApi; export let rgApiV2: AzureResourcesExtensionApi; export let state: TreeItemStateStore;