in src/configure/configure.ts [390:433]
private async getAzureResourceDetails(): Promise<void> {
// show available subscriptions and get the chosen one
let subscriptionList = extensionVariables.azureAccountExtensionApi.filters.map((subscriptionObject) => {
return <QuickPickItemWithData>{
label: `${<string>subscriptionObject.subscription.displayName}`,
data: subscriptionObject,
description: `${<string>subscriptionObject.subscription.subscriptionId}`
};
});
if(this.inputs.pipelineParameters.pipelineTemplate.targetType != TargetResourceType.None) {
let selectedSubscription: QuickPickItemWithData = await this.controlProvider.showQuickPick(constants.SelectSubscription, subscriptionList, { placeHolder: Messages.selectSubscription });
this.inputs.targetResource.subscriptionId = selectedSubscription.data.subscription.subscriptionId;
this.inputs.azureSession = getSubscriptionSession(this.inputs.targetResource.subscriptionId);
// show available resources and get the chosen one
this.appServiceClient = new AppServiceClient(this.inputs.azureSession.credentials2, this.inputs.azureSession.tenantId, this.inputs.azureSession.environment.portalUrl, this.inputs.targetResource.subscriptionId);
let resourceArray: Promise<Array<{label: string, data: ResourceManagementModels.GenericResource}>> = null;
let selectAppText: string = "";
let placeHolderText: string = "";
switch(this.inputs.pipelineParameters.pipelineTemplate.targetType) {
case TargetResourceType.WebApp:
default:
resourceArray = this.appServiceClient.GetAppServices(this.inputs.pipelineParameters.pipelineTemplate.targetKind)
.then((webApps) => webApps.map(x => { return { label: x.name, data: x }; }));
selectAppText = this.getSelectAppText(this.inputs.pipelineParameters.pipelineTemplate.targetKind);
placeHolderText = this.getPlaceholderText(this.inputs.pipelineParameters.pipelineTemplate.targetKind);
break;
}
let selectedResource: QuickPickItemWithData = await this.controlProvider.showQuickPick(
selectAppText,
resourceArray,
{ placeHolder: placeHolderText },
TelemetryKeys.WebAppListCount);
this.inputs.targetResource.resource = selectedResource.data;
} else if(subscriptionList.length > 0 ) {
this.inputs.targetResource.subscriptionId = subscriptionList[0].data.subscription.subscriptionId;
this.inputs.azureSession = getSubscriptionSession(this.inputs.targetResource.subscriptionId);
}
}