mirror of
https://github.com/kasmtech/kasm-install-wizard.git
synced 2026-07-17 16:35:08 +00:00
KASM-8264 Fix for potential crash on gpu selection
This commit is contained in:
parent
a0ec262f83
commit
9bae28c7d4
2 changed files with 25 additions and 21 deletions
42
index.js
42
index.js
|
|
@ -146,28 +146,32 @@ async function installerBlobs() {
|
|||
currentVersion = '1.18.1!';
|
||||
}
|
||||
images = await fetchWorkspaceList(currentVersion, arch);
|
||||
let gpuData = [];
|
||||
let gpuCmd = spawn('/gpuinfo.sh');
|
||||
gpuCmd.stdout.on('data', function(data) {
|
||||
gpuData.push(data);
|
||||
});
|
||||
gpuCmd.on('close', function(code) {
|
||||
try {
|
||||
if (code == 0) {
|
||||
gpuInfo = JSON.parse(gpuData.join(''));
|
||||
} else {
|
||||
gpuInfo = {};
|
||||
await new Promise((resolve) => {
|
||||
let gpuData = [];
|
||||
let gpuCmd = spawn('/gpuinfo.sh');
|
||||
gpuCmd.stdout.on('data', function(data) {
|
||||
gpuData.push(data);
|
||||
});
|
||||
gpuCmd.on('close', function(code) {
|
||||
try {
|
||||
if (code == 0) {
|
||||
gpuInfo = JSON.parse(gpuData.join(''));
|
||||
} else {
|
||||
gpuInfo = {};
|
||||
}
|
||||
} catch (err) {
|
||||
// Manually backfill GPU info if available
|
||||
gpuInfo = {};
|
||||
}
|
||||
} catch (err) {
|
||||
// Manually backfill GPU info if available
|
||||
gpuInfo = {};
|
||||
for (let i = 0; i < 10; i++) {
|
||||
let num = i.toString();
|
||||
if (fs.existsSync('/dev/dri/card' + num)) {
|
||||
gpuInfo['/dev/dri/card' + num] = "Unknown GPU";
|
||||
for (let i = 0; i < 10; i++) {
|
||||
let num = i.toString();
|
||||
if (fs.existsSync('/dev/dri/card' + num)) {
|
||||
gpuInfo['/dev/dri/card' + num] = "Unknown GPU";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
installerBlobs();
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ function renderInstall(data) {
|
|||
titleChange('EULA');
|
||||
EULA = data[0];
|
||||
images = data[1];
|
||||
gpus = data[2];
|
||||
gpus = data[2] || {};
|
||||
versionChange(data[3], data[4]);
|
||||
let EULADiv = $('<div>', {id: 'EULA'}).text(EULA);
|
||||
$('#container').append(EULADiv);
|
||||
|
|
@ -231,7 +231,7 @@ async function pickSettings() {
|
|||
$('<input>', {name: 'userPass', id: 'userPass', type: 'password', required: true, placeholder: 'required'})
|
||||
]);
|
||||
let gpuOptions = [$('<option>', {value: 'disabled'}).text('Disabled')];
|
||||
for await (let card of Object.keys(gpus)) {
|
||||
for await (let card of Object.keys(gpus || {})) {
|
||||
gpuOptions.push($('<option>', {value: card + '|' + gpus[card]}).text(card + ' - ' + gpus[card]));
|
||||
}
|
||||
let forceGpu = $('<div>', {class: 'form-group'}).append([
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue