export async function loginToCloud()

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');
	}
}