in src/login/commands/loginToCloud.ts [23:66]
export async function loginToCloud(): Promise<void> {
const current: Environment = await getSelectedEnvironment();
const selected: QuickPickItem & { environment: Environment } | undefined = await window.showQuickPick<QuickPickItem & { environment: Environment }>(getEnvironments(true /* includePartial */)
.then(environments => environments.map(environment => ({
label: environmentLabels[environment.name],
description: environment.name === current.name ? localize('azure-account.currentCloud', '(Current)') : undefined,
environment
}))), {
placeHolder: localize('azure-account.chooseCloudToLogin', "Choose cloud to sign in to")
});
if (selected) {
const config: WorkspaceConfiguration = workspace.getConfiguration(extensionPrefix);
if (config.get(cloudSetting) !== selected.environment.name) {
let armUrl: string | undefined;
if (selected.environment.name === azureCustomCloud) {
armUrl = await window.showInputBox({
prompt: localize('azure-account.enterArmUrl', "Enter the Azure Resource Manager endpoint"),
placeHolder: 'https://management.local.azurestack.external',
ignoreFocusOut: true
});
if (!armUrl) {
// directly return when user didn't type in anything or press esc for resourceManagerEndpointUrl inputbox
return;
}
}
const tenantId: string | undefined = await window.showInputBox({
prompt: localize('azure-account.enterTenantId', "Enter the tenant id"),
placeHolder: localize('azure-account.tenantIdPlaceholder', "Enter your tenant id, or '{0}' for the default tenant", commonTenantId),
ignoreFocusOut: true});
if (tenantId) {
if (armUrl) {
await config.update(customCloudArmUrlSetting, armUrl, getCurrentTarget(config.inspect(customCloudArmUrlSetting)));
}
await config.update(tenantSetting, tenantId, getCurrentTarget(config.inspect(tenantSetting)));
// if outside of normal range, set ppe setting
await config.update(tenantSetting, selected.environment.name, getCurrentTarget(config.inspect(cloudSetting)));
} else {
return;
}
}
return ext.loginHelper.login('loginToCloud');
}
}