55
66import { type ResourceGroup } from "@azure/arm-resources" ;
77import { ResourceGroupListStep , parseAzureResourceGroupId } from "@microsoft/vscode-azext-azureutils" ;
8- import { createSubscriptionContext , subscriptionExperience , type IActionContext , type ISubscriptionActionContext , type ISubscriptionContext } from "@microsoft/vscode-azext-utils" ;
8+ import { callWithTelemetryAndErrorHandling , createSubscriptionContext , subscriptionExperience , type IActionContext , type ISubscriptionActionContext , type ISubscriptionContext } from "@microsoft/vscode-azext-utils" ;
99import { type AzureSubscription } from "@microsoft/vscode-azureresources-api" ;
1010import { Uri , type WorkspaceFolder } from "vscode" ;
1111import { ext } from "../../extensionVariables" ;
@@ -14,40 +14,40 @@ import { deployWorkspaceProjectInternal, type DeployWorkspaceProjectInternalCont
1414import { getDeployWorkspaceProjectResults , type DeployWorkspaceProjectResults } from "../deployWorkspaceProject/getDeployWorkspaceProjectResults" ;
1515import type * as api from "./vscode-azurecontainerapps.api" ;
1616
17- export async function deployWorkspaceProjectApi ( context : IActionContext , deployWorkspaceProjectOptions : api . DeployWorkspaceProjectOptionsContract ) : Promise < DeployWorkspaceProjectResults > {
18- const { resourceGroupId, rootPath, dockerfilePath, srcPath, suppressConfirmation, suppressContainerAppCreation, ignoreExistingDeploySettings, shouldSaveDeploySettings } = deployWorkspaceProjectOptions ;
17+ export async function deployWorkspaceProjectApi ( deployWorkspaceProjectOptions : api . DeployWorkspaceProjectOptionsContract ) : Promise < DeployWorkspaceProjectResults > {
18+ return await callWithTelemetryAndErrorHandling ( 'containerApps.api.deployWorkspaceProject' , async ( context : IActionContext ) : Promise < DeployWorkspaceProjectResults > => {
19+ const { resourceGroupId, rootPath, dockerfilePath, srcPath, suppressConfirmation, suppressContainerAppCreation, ignoreExistingDeploySettings, shouldSaveDeploySettings } = deployWorkspaceProjectOptions ;
1920
20- const subscription : AzureSubscription = await subscriptionExperience ( context , ext . rgApiV2 . resources . azureResourceTreeDataProvider , {
21- selectBySubscriptionId : getSubscriptionIdFromOptions ( deployWorkspaceProjectOptions ) ,
22- showLoadingPrompt : false
23- } ) ;
24- const subscriptionContext : ISubscriptionContext = createSubscriptionContext ( subscription ) ;
21+ const subscription : AzureSubscription = await subscriptionExperience ( context , ext . rgApiV2 . resources . azureResourceTreeDataProvider , {
22+ selectBySubscriptionId : getSubscriptionIdFromOptions ( deployWorkspaceProjectOptions ) ,
23+ showLoadingPrompt : false
24+ } ) ;
25+ const subscriptionContext : ISubscriptionContext = createSubscriptionContext ( subscription ) ;
2526
26- const rootFolder : WorkspaceFolder | undefined = rootPath ? getWorkspaceFolderFromPath ( rootPath ) : undefined ;
27- const resourceGroup : ResourceGroup | undefined = resourceGroupId ? await getResourceGroupFromId ( { ...context , ...subscriptionContext } , resourceGroupId ) : undefined ;
27+ const rootFolder : WorkspaceFolder | undefined = rootPath ? getWorkspaceFolderFromPath ( rootPath ) : undefined ;
28+ const resourceGroup : ResourceGroup | undefined = resourceGroupId ? await getResourceGroupFromId ( { ...context , ...subscriptionContext } , resourceGroupId ) : undefined ;
2829
29- const deployWorkspaceProjectInternalContext : DeployWorkspaceProjectInternalContext = Object . assign ( context , {
30- ...subscriptionContext ,
31- subscription,
32- resourceGroup,
33- rootFolder,
34- srcPath : srcPath ? Uri . file ( srcPath ) . fsPath : undefined ,
35- dockerfilePath : dockerfilePath ? Uri . file ( dockerfilePath ) . fsPath : undefined ,
36- ignoreExistingDeploySettings,
37- shouldSaveDeploySettings : ! ! shouldSaveDeploySettings ,
38- } ) ;
30+ const deployWorkspaceProjectInternalContext : DeployWorkspaceProjectInternalContext = Object . assign ( context , {
31+ ...subscriptionContext ,
32+ subscription,
33+ resourceGroup,
34+ rootFolder,
35+ srcPath : srcPath ? Uri . file ( srcPath ) . fsPath : undefined ,
36+ dockerfilePath : dockerfilePath ? Uri . file ( dockerfilePath ) . fsPath : undefined ,
37+ ignoreExistingDeploySettings,
38+ shouldSaveDeploySettings : ! ! shouldSaveDeploySettings ,
39+ } ) ;
3940
40- const deployWorkspaceProjectResultContext = await deployWorkspaceProjectInternal ( deployWorkspaceProjectInternalContext , undefined , {
41- // Don't show activity log updates in ACA when another client extension calls into this API.
42- // Let each client decide how it wants to show its own activity log updates.
43- suppressActivity : true ,
44- suppressConfirmation,
45- suppressContainerAppCreation,
46- suppressProgress : true ,
47- suppressWizardTitle : true ,
48- } ) ;
41+ const deployWorkspaceProjectResultContext = await deployWorkspaceProjectInternal ( deployWorkspaceProjectInternalContext , undefined , {
42+ suppressActivity : true ,
43+ suppressConfirmation,
44+ suppressContainerAppCreation,
45+ suppressProgress : true ,
46+ suppressWizardTitle : true ,
47+ } ) ;
4948
50- return await getDeployWorkspaceProjectResults ( deployWorkspaceProjectResultContext ) ;
49+ return await getDeployWorkspaceProjectResults ( deployWorkspaceProjectResultContext ) ;
50+ } ) ?? { } ;
5151}
5252
5353function getSubscriptionIdFromOptions ( deployWorkspaceProjectOptions : api . DeployWorkspaceProjectOptionsContract ) : string | undefined {
0 commit comments