diff --git a/index.js b/index.js index a79bd94..212f1be 100644 --- a/index.js +++ b/index.js @@ -60,7 +60,7 @@ async function installerBlobs() { installerBlobs(); // GPU image yaml merging -async function setGpu(imagesD) { +async function setGpu(imagesI) { if (upgradeSettings['forceGpu'] !== undefined) { installSettings = upgradeSettings; } @@ -73,24 +73,17 @@ async function setGpu(imagesD) { if (gpuName.indexOf('NVIDIA') !== -1) { baseRun = JSON.parse('{"environment":{"KASM_EGL_CARD":"/dev/dri/card' + card + '","KASM_RENDERD":"/dev/dri/renderD' + render + '"},"devices":["/dev/dri/card' + card + ':/dev/dri/card' + card + ':rwm","/dev/dri/renderD' + render + ':/dev/dri/renderD' + render + ':rwm"],"device_requests":[{"driver": "","count": -1,"device_ids": null,"capabilities":[["gpu"]],"options":{}}]}'); } else { - baseRun = JSON.parse('{"environment":{"KASM_EGL_CARD":"/dev/dri/card' + card + '","KASM_RENDERD":"/dev/dri/renderD' + render + '"},"devices":["/dev/dri/card' + card + ':/dev/dri/card' + card + ':rwm","/dev/dri/renderD' + render + ':/dev/dri/renderD' + render + ':rwm"]}'); + baseRun = JSON.parse('{"environment":{"DRINODE":"/dev/dri/renderD' + render + '", "HW3D": true},"devices":["/dev/dri/card' + card + ':/dev/dri/card' + card + ':rwm","/dev/dri/renderD' + render + ':/dev/dri/renderD' + render + ':rwm"]}'); } let baseExec = JSON.parse('{"first_launch":{"user":"root","cmd": "bash -c \'chown -R kasm-user:kasm-user /dev/dri/*\'"}}'); - for await (let image of Object.keys(images.images)) { - if (imagesD.images[image]['run_config']) { - finalRun = _.merge(JSON.parse(imagesD.images[image]['run_config']), baseRun) - } else { - finalRun = baseRun; - } - if (imagesD.images[image]['exec_config']) { - finalExec = _.merge(JSON.parse(imagesD.images[image]['exec_config']), baseExec) - } else { - finalExec = baseExec; - } - imagesD.images[image]['run_config'] = JSON.stringify(finalRun); - imagesD.images[image]['exec_config'] = JSON.stringify(finalExec); + for (var i=0; i x.friendly_name === image); + srcImage['enabled'] = true; + selectedImages.images.push(srcImage); + selectedImages.group_images.push({image_id: srcImage.image_id, group_id: "68d557ac-4cac-42cc-a9f3-1c7c853de0f3"}); } socket.emit('install', [installSettings, selectedImages]); } @@ -46,15 +46,15 @@ async function upgrade() { showTerminal() titleChange('Upgrading'); // Create new object based on image selection - let selectedImages = {images: {}}; + let selectedImages = {alembic_version: images.alembic_version, images: [], group_images: []}; if (installImages.length == 0) { socket.emit('upgrade', [upgradeSettings, false]); } else { for await (let image of installImages) { - if (images.images[image].hasOwnProperty('enabled')) { - images.images[image].enabled = true; - } - Object.assign(selectedImages.images, {[image]: images.images[image]}); + let srcImage = images.images.find(x => x.friendly_name === image); + srcImage['enabled'] = true; + selectedImages.images.push(srcImage); + selectedImages.group_images.push({image_id: srcImage.image_id, group_id: "68d557ac-4cac-42cc-a9f3-1c7c853de0f3"}); } socket.emit('upgrade', [upgradeSettings, selectedImages]); } @@ -228,14 +228,6 @@ async function pickSettings() { $('