e.g. on aarch64, there is no ide bus, so we can't use ide2. Instead use
'scsi2' there. We have to slightly adapt the MultiHDEdit panel to
account for a possibly different confid here.

Since windows is currently not available for aarch64, the confid for the
second cd stays the same for now, but has to be adapted if we allow
windows on aarch64 in the future.

Signed-off-by: Dominik Csapak <[email protected]>
---
 www/manager6/qemu/CreateWizard.js |  3 +++
 www/manager6/qemu/MultiHDEdit.js  |  4 +++-
 www/manager6/qemu/OSPanel.js      | 10 ++++++++++
 3 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/www/manager6/qemu/CreateWizard.js 
b/www/manager6/qemu/CreateWizard.js
index 14cb2c43..1302d9dc 100644
--- a/www/manager6/qemu/CreateWizard.js
+++ b/www/manager6/qemu/CreateWizard.js
@@ -225,6 +225,9 @@ Ext.define('PVE.qemu.CreateWizard', {
         {
             xtype: 'pveQemuOSPanel',
             title: gettext('OS'),
+            bind: {
+                arch: '{current.architecture}',
+            },
         },
         {
             xtype: 'pveQemuSystemPanel',
diff --git a/www/manager6/qemu/MultiHDEdit.js b/www/manager6/qemu/MultiHDEdit.js
index 220167de..e69f3885 100644
--- a/www/manager6/qemu/MultiHDEdit.js
+++ b/www/manager6/qemu/MultiHDEdit.js
@@ -45,11 +45,13 @@ Ext.define('PVE.qemu.MultiHDPanel', {
             let vm = me.getViewModel();
 
             let res = {
-                ide2: 'media=cdrom',
                 scsihw: vm.get('current.scsihw'),
                 ostype: vm.get('current.ostype'),
             };
 
+            let isoConfig = vm.get('current.isoConfig') ?? 'ide2';
+            res[isoConfig] = 'media=cdrom';
+
             if (vm.get('current.ide0') === 'some') {
                 res.ide0 = 'media=cdrom';
             }
diff --git a/www/manager6/qemu/OSPanel.js b/www/manager6/qemu/OSPanel.js
index 136c0316..3d2b5a3e 100644
--- a/www/manager6/qemu/OSPanel.js
+++ b/www/manager6/qemu/OSPanel.js
@@ -10,6 +10,16 @@ Ext.define('PVE.qemu.OSPanel', {
         padding: '0 10',
     },
 
+    setArch: function (arch) {
+        let me = this;
+        let [controller, id] = PVE.qemu.Architecture.defaultCDDrive[arch] ?? 
['ide', 2];
+        let vm = me.getController().getViewModel();
+        let conf = `${controller}${id}`;
+        vm.set('current.isoConfig', conf);
+        me.lookup('cdSelector').confid = conf;
+        // TODO change confid for second cd if windows is allowed for other 
architectures
+    },
+
     controller: {
         xclass: 'Ext.app.ViewController',
         control: {
-- 
2.47.3




Reply via email to