Skip to content

Commit 18be7d5

Browse files
authored
Add Microsoft.ContainerRegistry provider to the verify providers list (#558)
1 parent 9b086f7 commit 18be7d5

File tree

8 files changed

+44
-25
lines changed

8 files changed

+44
-25
lines changed

src/commands/createContainerApp/createContainerApp.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44
*--------------------------------------------------------------------------------------------*/
55

66
import type { ResourceGroup } from "@azure/arm-resources";
7-
import { LocationListStep, ResourceGroupListStep, VerifyProvidersStep } from "@microsoft/vscode-azext-azureutils";
7+
import { LocationListStep, ResourceGroupListStep } from "@microsoft/vscode-azext-azureutils";
88
import { AzureWizard, AzureWizardExecuteStep, AzureWizardPromptStep, IActionContext, createSubscriptionContext, nonNullProp, nonNullValue, nonNullValueAndProp } from "@microsoft/vscode-azext-utils";
9-
import { webProvider } from "../../constants";
109
import { ext } from "../../extensionVariables";
1110
import { ContainerAppItem } from "../../tree/ContainerAppItem";
1211
import type { ManagedEnvironmentItem } from "../../tree/ManagedEnvironmentItem";
1312
import { createActivityContext } from "../../utils/activity/activityUtils";
1413
import { isAzdExtensionInstalled } from "../../utils/azdUtils";
14+
import { getVerifyProvidersStep } from "../../utils/getVerifyProvidersStep";
1515
import { localize } from "../../utils/localize";
1616
import { pickEnvironment } from "../../utils/pickItem/pickEnvironment";
1717
import { ImageSourceListStep } from "../image/imageSource/ImageSourceListStep";
@@ -42,7 +42,7 @@ export async function createContainerApp(context: IActionContext, node?: Managed
4242
];
4343

4444
const executeSteps: AzureWizardExecuteStep<CreateContainerAppContext>[] = [
45-
new VerifyProvidersStep([webProvider]),
45+
getVerifyProvidersStep<CreateContainerAppContext>(),
4646
new ContainerAppCreateStep(),
4747
];
4848

src/commands/createManagedEnvironment/createManagedEnvironment.ts

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

6-
import { LocationListStep, ResourceGroupCreateStep, VerifyProvidersStep } from "@microsoft/vscode-azext-azureutils";
6+
import { LocationListStep, ResourceGroupCreateStep } from "@microsoft/vscode-azext-azureutils";
77
import { AzureWizard, AzureWizardExecuteStep, AzureWizardPromptStep, IActionContext, createSubscriptionContext, nonNullProp, subscriptionExperience } from "@microsoft/vscode-azext-utils";
88
import { AzureSubscription } from "@microsoft/vscode-azureresources-api";
9-
import { appProvider, managedEnvironmentsId, operationalInsightsProvider } from "../../constants";
9+
import { appProvider, managedEnvironmentsId } from "../../constants";
1010
import { ext } from "../../extensionVariables";
1111
import { createActivityContext } from "../../utils/activity/activityUtils";
12+
import { getVerifyProvidersStep } from "../../utils/getVerifyProvidersStep";
1213
import { localize } from "../../utils/localize";
1314
import { IManagedEnvironmentContext } from "./IManagedEnvironmentContext";
1415
import { LogAnalyticsCreateStep } from "./LogAnalyticsCreateStep";
@@ -30,7 +31,12 @@ export async function createManagedEnvironment(context: IActionContext, node?: {
3031
const executeSteps: AzureWizardExecuteStep<IManagedEnvironmentContext>[] = [];
3132

3233
promptSteps.push(new ManagedEnvironmentNameStep());
33-
executeSteps.push(new VerifyProvidersStep([appProvider, operationalInsightsProvider]), new ResourceGroupCreateStep(), new LogAnalyticsCreateStep(), new ManagedEnvironmentCreateStep());
34+
executeSteps.push(
35+
getVerifyProvidersStep<IManagedEnvironmentContext>(),
36+
new ResourceGroupCreateStep(),
37+
new LogAnalyticsCreateStep(),
38+
new ManagedEnvironmentCreateStep()
39+
);
3440
LocationListStep.addProviderForFiltering(wizardContext, appProvider, managedEnvironmentsId);
3541
LocationListStep.addStep(wizardContext, promptSteps);
3642

src/commands/deployWorkspaceProject/deployWorkspaceProject.ts

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

6-
import { LocationListStep, ResourceGroupCreateStep, VerifyProvidersStep } from "@microsoft/vscode-azext-azureutils";
6+
import { LocationListStep, ResourceGroupCreateStep } from "@microsoft/vscode-azext-azureutils";
77
import { AzureWizard, AzureWizardExecuteStep, AzureWizardPromptStep, GenericTreeItem, IActionContext, ISubscriptionContext, callWithTelemetryAndErrorHandling, createSubscriptionContext, nonNullProp, nonNullValueAndProp, subscriptionExperience } from "@microsoft/vscode-azext-utils";
88
import type { AzureSubscription } from "@microsoft/vscode-azureresources-api";
99
import { ProgressLocation, window } from "vscode";
10-
import { activityInfoIcon, activitySuccessContext, appProvider, managedEnvironmentsId, operationalInsightsProvider, webProvider } from "../../constants";
10+
import { activityInfoIcon, activitySuccessContext, appProvider, managedEnvironmentsId } from "../../constants";
1111
import { ext } from "../../extensionVariables";
1212
import { SetTelemetryProps } from "../../telemetry/SetTelemetryProps";
1313
import { DeployWorkspaceProjectNotificationTelemetryProps as NotificationTelemetryProps } from "../../telemetry/commandTelemetryProps";
1414
import { ContainerAppItem, ContainerAppModel, isIngressEnabled } from "../../tree/ContainerAppItem";
1515
import { ManagedEnvironmentItem } from "../../tree/ManagedEnvironmentItem";
1616
import { createActivityChildContext, createActivityContext } from "../../utils/activity/activityUtils";
17+
import { getVerifyProvidersStep } from "../../utils/getVerifyProvidersStep";
1718
import { localize } from "../../utils/localize";
1819
import { browseContainerApp } from "../browseContainerApp";
1920
import { ContainerAppCreateStep } from "../createContainerApp/ContainerAppCreateStep";
@@ -63,8 +64,6 @@ export async function deployWorkspaceProject(context: IActionContext, item?: Con
6364
new DeployWorkspaceProjectSaveSettingsStep()
6465
];
6566

66-
const providers: string[] = [];
67-
6867
// Resource group
6968
if (wizardContext.resourceGroup) {
7069
wizardContext.telemetry.properties.existingResourceGroup = 'true';
@@ -112,11 +111,6 @@ export async function deployWorkspaceProject(context: IActionContext, item?: Con
112111
new LogAnalyticsCreateStep(),
113112
new ManagedEnvironmentCreateStep()
114113
);
115-
116-
providers.push(
117-
appProvider,
118-
operationalInsightsProvider
119-
);
120114
}
121115

122116
// Azure Container Registry
@@ -135,8 +129,8 @@ export async function deployWorkspaceProject(context: IActionContext, item?: Con
135129

136130
ext.outputChannel.appendLog(localize('usingAcr', 'Using Azure Container Registry "{0}".', registryName));
137131
} else {
138-
wizardContext.telemetry.properties.existingRegistry = 'false';
139132
// ImageSourceListStep can already handle this creation logic
133+
wizardContext.telemetry.properties.existingRegistry = 'false';
140134
}
141135

142136
// Container app
@@ -170,10 +164,8 @@ export async function deployWorkspaceProject(context: IActionContext, item?: Con
170164
new IngressPromptStep(),
171165
);
172166

173-
providers.push(webProvider);
174-
175167
// Verify providers
176-
executeSteps.push(new VerifyProvidersStep(providers));
168+
executeSteps.push(getVerifyProvidersStep<DeployWorkspaceProjectContext>());
177169

178170
// Location
179171
if (LocationListStep.hasLocation(wizardContext)) {

src/commands/image/deployImageApi/deployImage.ts

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

6-
import { VerifyProvidersStep } from "@microsoft/vscode-azext-azureutils";
76
import { AzureWizard, AzureWizardExecuteStep, AzureWizardPromptStep, IActionContext, createSubscriptionContext } from "@microsoft/vscode-azext-utils";
8-
import { webProvider } from "../../../constants";
97
import type { ContainerAppItem } from "../../../tree/ContainerAppItem";
108
import { createActivityContext } from "../../../utils/activity/activityUtils";
9+
import { getVerifyProvidersStep } from "../../../utils/getVerifyProvidersStep";
1110
import { localize } from "../../../utils/localize";
1211
import { ContainerAppOverwriteConfirmStep } from "../../ContainerAppOverwriteConfirmStep";
1312
import { showContainerAppNotification } from "../../createContainerApp/showContainerAppNotification";
@@ -35,7 +34,7 @@ export async function deployImage(context: IActionContext & Partial<ContainerReg
3534
];
3635

3736
const executeSteps: AzureWizardExecuteStep<DeployImageApiContext>[] = [
38-
new VerifyProvidersStep([webProvider]),
37+
getVerifyProvidersStep<DeployImageApiContext>(),
3938
new ContainerAppUpdateStep()
4039
];
4140

src/commands/image/imageSource/containerRegistry/acr/createAcr/createAcr.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { AzureWizard, AzureWizardExecuteStep, AzureWizardPromptStep, IActionCont
88
import { AzureSubscription } from "@microsoft/vscode-azureresources-api";
99
import { ext } from "../../../../../../extensionVariables";
1010
import { createActivityContext } from "../../../../../../utils/activity/activityUtils";
11+
import { getVerifyProvidersStep } from "../../../../../../utils/getVerifyProvidersStep";
1112
import { localize } from "../../../../../../utils/localize";
1213
import { CreateAcrContext } from "./CreateAcrContext";
1314
import { RegistryCreateStep } from "./RegistryCreateStep";
@@ -31,6 +32,7 @@ export async function createAcr(context: IActionContext, node?: { subscription:
3132
];
3233

3334
const executeSteps: AzureWizardExecuteStep<CreateAcrContext>[] = [
35+
getVerifyProvidersStep<CreateAcrContext>(),
3436
new ResourceGroupCreateStep(),
3537
new RegistryCreateStep(),
3638
];

src/commands/image/updateImage/updateImage.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,15 @@
44
*--------------------------------------------------------------------------------------------*/
55

66
import { KnownActiveRevisionsMode, Revision } from "@azure/arm-appcontainers";
7-
import { VerifyProvidersStep } from "@microsoft/vscode-azext-azureutils";
87
import { AzureWizard, AzureWizardExecuteStep, AzureWizardPromptStep, ExecuteActivityContext, IActionContext, createSubscriptionContext } from "@microsoft/vscode-azext-utils";
9-
import { webProvider } from "../../../constants";
108
import { ext } from "../../../extensionVariables";
119
import { SetTelemetryProps } from "../../../telemetry/SetTelemetryProps";
1210
import { UpdateImageTelemetryProps as TelemetryProps } from "../../../telemetry/commandTelemetryProps";
1311
import type { ContainerAppItem, ContainerAppModel } from "../../../tree/ContainerAppItem";
1412
import type { RevisionDraftItem } from "../../../tree/revisionManagement/RevisionDraftItem";
1513
import type { RevisionItem } from "../../../tree/revisionManagement/RevisionItem";
1614
import { createActivityContext } from "../../../utils/activity/activityUtils";
15+
import { getVerifyProvidersStep } from "../../../utils/getVerifyProvidersStep";
1716
import { localize } from "../../../utils/localize";
1817
import { pickContainerApp } from "../../../utils/pickItem/pickContainerApp";
1918
import { pickRevision, pickRevisionDraft } from "../../../utils/pickItem/pickRevision";
@@ -62,7 +61,7 @@ export async function updateImage(context: IActionContext, node?: ContainerAppIt
6261
];
6362

6463
const executeSteps: AzureWizardExecuteStep<UpdateImageContext>[] = [
65-
new VerifyProvidersStep([webProvider]),
64+
getVerifyProvidersStep<UpdateImageContext>(),
6665
new UpdateRegistryAndSecretsStep(),
6766
new UpdateImageDraftStep(item)
6867
];

src/constants.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ export const managedEnvironmentsId = 'managedEnvironments';
1111
export const containerAppsId = 'containerApps';
1212
export const appProvider: string = 'Microsoft.App';
1313
export const webProvider: string = 'Microsoft.Web';
14+
export const registryProvider: string = 'Microsoft.ContainerRegistry';
1415
export const operationalInsightsProvider: string = 'Microsoft.OperationalInsights';
1516

1617
export const containerAppsWebProvider: string = `${webProvider}/${containerAppsId}`;
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/*---------------------------------------------------------------------------------------------
2+
* Copyright (c) Microsoft Corporation. All rights reserved.
3+
* Licensed under the MIT License. See License.md in the project root for license information.
4+
*--------------------------------------------------------------------------------------------*/
5+
6+
import { VerifyProvidersStep } from "@microsoft/vscode-azext-azureutils";
7+
import type { ISubscriptionActionContext } from "@microsoft/vscode-azext-utils";
8+
import { appProvider, operationalInsightsProvider, registryProvider, webProvider } from "../constants";
9+
10+
/**
11+
* Use to obtain a `VerifyProvidersStep` that registers all known container app providers to the user's subscription
12+
*/
13+
export function getVerifyProvidersStep<T extends ISubscriptionActionContext>(): VerifyProvidersStep<T> {
14+
return new VerifyProvidersStep<T>([
15+
appProvider,
16+
operationalInsightsProvider,
17+
webProvider,
18+
registryProvider
19+
]);
20+
}

0 commit comments

Comments
 (0)