Skip to content

Commit 19bee17

Browse files
committed
centralize getDeployWorkspaceProjectResults
1 parent 3521e6f commit 19bee17

File tree

3 files changed

+33
-34
lines changed

3 files changed

+33
-34
lines changed

src/commands/api/deployWorkspaceProjectApi.ts

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
* Licensed under the MIT License. See License.md in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6-
import { type RegistryPassword } from "@azure/arm-containerregistry";
76
import { type ResourceGroup } from "@azure/arm-resources";
87
import { ResourceGroupListStep, parseAzureResourceGroupId } from "@microsoft/vscode-azext-azureutils";
98
import { createSubscriptionContext, subscriptionExperience, type IActionContext, type ISubscriptionActionContext, type ISubscriptionContext } from "@microsoft/vscode-azext-utils";
@@ -12,10 +11,10 @@ import { Uri, type WorkspaceFolder } from "vscode";
1211
import { ext } from "../../extensionVariables";
1312
import { getWorkspaceFolderFromPath } from "../../utils/workspaceUtils";
1413
import { deployWorkspaceProjectInternal, type DeployWorkspaceProjectInternalContext } from "../deployWorkspaceProject/deployWorkspaceProjectInternal";
15-
import { listCredentialsFromRegistry } from "../image/imageSource/containerRegistry/acr/listCredentialsFromRegistry";
14+
import { getDeployWorkspaceProjectResults, type DeployWorkspaceProjectResults } from "../deployWorkspaceProject/getDeployWorkspaceProjectResults";
1615
import type * as api from "./vscode-azurecontainerapps.api";
1716

18-
export async function deployWorkspaceProjectApi(context: IActionContext, deployWorkspaceProjectOptions: api.DeployWorkspaceProjectOptionsContract): Promise<api.DeployWorkspaceProjectResults> {
17+
export async function deployWorkspaceProjectApi(context: IActionContext, deployWorkspaceProjectOptions: api.DeployWorkspaceProjectOptionsContract): Promise<DeployWorkspaceProjectResults> {
1918
const { resourceGroupId, rootPath, dockerfilePath, srcPath, suppressConfirmation, suppressContainerAppCreation, ignoreExistingDeploySettings, shouldSaveDeploySettings } = deployWorkspaceProjectOptions;
2019

2120
const subscription: AzureSubscription = await subscriptionExperience(context, ext.rgApiV2.resources.azureResourceTreeDataProvider, {
@@ -49,20 +48,7 @@ export async function deployWorkspaceProjectApi(context: IActionContext, deployW
4948
suppressWizardTitle: true,
5049
});
5150

52-
const registryCredentials: { username: string, password: RegistryPassword } | undefined = deployWorkspaceProjectResultContext.registry ?
53-
await listCredentialsFromRegistry(deployWorkspaceProjectResultContext, deployWorkspaceProjectResultContext.registry) : undefined;
54-
55-
return {
56-
resourceGroupId: deployWorkspaceProjectResultContext.resourceGroup?.id,
57-
logAnalyticsWorkspaceId: deployWorkspaceProjectResultContext.logAnalyticsWorkspace?.id,
58-
managedEnvironmentId: deployWorkspaceProjectResultContext.managedEnvironment?.id,
59-
containerAppId: deployWorkspaceProjectResultContext.containerApp?.id,
60-
registryId: deployWorkspaceProjectResultContext.registry?.id,
61-
registryLoginServer: deployWorkspaceProjectResultContext.registry?.loginServer,
62-
registryUsername: registryCredentials?.username,
63-
registryPassword: registryCredentials?.password.value,
64-
imageName: deployWorkspaceProjectResultContext.imageName
65-
};
51+
return await getDeployWorkspaceProjectResults(deployWorkspaceProjectResultContext);
6652
}
6753

6854
function getSubscriptionIdFromOptions(deployWorkspaceProjectOptions: api.DeployWorkspaceProjectOptionsContract): string | undefined {

src/commands/deployWorkspaceProject/deployWorkspaceProject.ts

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
* Licensed under the MIT License. See License.md in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6-
import { type RegistryPassword } from "@azure/arm-containerregistry";
76
import { callWithTelemetryAndErrorHandling, createSubscriptionContext, nonNullProp, subscriptionExperience, type IActionContext, type ISubscriptionContext } from "@microsoft/vscode-azext-utils";
87
import { type AzureSubscription } from "@microsoft/vscode-azureresources-api";
98
import { window } from "vscode";
@@ -16,9 +15,9 @@ import { createActivityContext } from "../../utils/activity/activityUtils";
1615
import { localize } from "../../utils/localize";
1716
import { type DeployWorkspaceProjectResults } from "../api/vscode-azurecontainerapps.api";
1817
import { browseContainerApp } from "../browseContainerApp";
19-
import { listCredentialsFromRegistry } from "../image/imageSource/containerRegistry/acr/listCredentialsFromRegistry";
2018
import { type DeployWorkspaceProjectContext } from "./DeployWorkspaceProjectContext";
2119
import { deployWorkspaceProjectInternal, type DeployWorkspaceProjectInternalContext } from "./deployWorkspaceProjectInternal";
20+
import { getDeployWorkspaceProjectResults } from "./getDeployWorkspaceProjectResults";
2221

2322
export async function deployWorkspaceProject(context: IActionContext & Partial<DeployWorkspaceProjectContext>, item?: ContainerAppItem | ManagedEnvironmentItem): Promise<DeployWorkspaceProjectResults> {
2423
// If an incompatible tree item is passed, treat it as if no item was passed
@@ -46,21 +45,7 @@ export async function deployWorkspaceProject(context: IActionContext & Partial<D
4645
});
4746

4847
displayNotification(deployWorkspaceProjectResultContext);
49-
50-
const registryCredentials: { username: string, password: RegistryPassword } | undefined = deployWorkspaceProjectResultContext.registry ?
51-
await listCredentialsFromRegistry(deployWorkspaceProjectResultContext, deployWorkspaceProjectResultContext.registry) : undefined;
52-
53-
return {
54-
resourceGroupId: deployWorkspaceProjectResultContext.resourceGroup?.id,
55-
logAnalyticsWorkspaceId: deployWorkspaceProjectResultContext.logAnalyticsWorkspace?.id,
56-
managedEnvironmentId: deployWorkspaceProjectResultContext.managedEnvironment?.id,
57-
containerAppId: deployWorkspaceProjectResultContext.containerApp?.id,
58-
registryId: deployWorkspaceProjectResultContext.registry?.id,
59-
registryLoginServer: deployWorkspaceProjectResultContext.registry?.loginServer,
60-
registryUsername: registryCredentials?.username,
61-
registryPassword: registryCredentials?.password.value,
62-
imageName: deployWorkspaceProjectResultContext.imageName
63-
};
48+
return await getDeployWorkspaceProjectResults(deployWorkspaceProjectResultContext);
6449
}
6550

6651
function displayNotification(context: DeployWorkspaceProjectContext): void {
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/*---------------------------------------------------------------------------------------------
2+
* Copyright (c) Microsoft Corporation. All rights reserved.
3+
* Licensed under the MIT License. See License.txt in the project root for license information.
4+
*--------------------------------------------------------------------------------------------*/
5+
6+
import { type RegistryPassword } from "@azure/arm-containerregistry";
7+
import type * as api from "../api/vscode-azurecontainerapps.api";
8+
import { listCredentialsFromRegistry } from "../image/imageSource/containerRegistry/acr/listCredentialsFromRegistry";
9+
import { type DeployWorkspaceProjectContext } from "./DeployWorkspaceProjectContext";
10+
11+
export type DeployWorkspaceProjectResults = api.DeployWorkspaceProjectResults;
12+
13+
export async function getDeployWorkspaceProjectResults(context: DeployWorkspaceProjectContext): Promise<DeployWorkspaceProjectResults> {
14+
const registryCredentials: { username: string, password: RegistryPassword } | undefined = context.registry ?
15+
await listCredentialsFromRegistry(context, context.registry) : undefined;
16+
17+
return {
18+
resourceGroupId: context.resourceGroup?.id,
19+
logAnalyticsWorkspaceId: context.logAnalyticsWorkspace?.id,
20+
managedEnvironmentId: context.managedEnvironment?.id,
21+
containerAppId: context.containerApp?.id,
22+
registryId: context.registry?.id,
23+
registryLoginServer: context.registry?.loginServer,
24+
registryUsername: registryCredentials?.username,
25+
registryPassword: registryCredentials?.password.value,
26+
imageName: context.imageName
27+
};
28+
}

0 commit comments

Comments
 (0)