in src/cloudConsole/cloudConsoleLauncher.ts [79:101]
export async function provisionConsole(accessToken: string, armEndpoint: string, userSettings: UserSettings, osType: string): Promise<string> {
let response = await createTerminal(accessToken, armEndpoint, userSettings, osType, true);
for (let i = 0; i < 10; i++ , response = await createTerminal(accessToken, armEndpoint, userSettings, osType, false)) {
if (response.statusCode < 200 || response.statusCode > 299) {
if (response.statusCode === 409 && response.body && response.body.error && response.body.error.code === Errors.DeploymentOsTypeConflict) {
throw new Error(Errors.DeploymentOsTypeConflict);
} else if (response.body && response.body.error && response.body.error.message) {
throw new Error(`${response.body.error.message} (${response.statusCode})`);
} else {
throw new Error(`${response.statusCode} ${response.headers} ${response.body}`);
}
}
const consoleResource = response.body;
if (consoleResource.properties.provisioningState === 'Succeeded') {
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
return consoleResource.properties.uri;
} else if (consoleResource.properties.provisioningState === 'Failed') {
break;
}
}
throw new Error(`Sorry, your Cloud Shell failed to provision. Please retry later. Request correlation id: ${response.headers['x-ms-routing-request-id']}`);
}