From 4813fa9f440a35b7c9f763d15cb85838fd5c8bd9 Mon Sep 17 00:00:00 2001 From: Joris-K Date: Wed, 26 Feb 2025 15:11:11 +0100 Subject: [PATCH] wip --- .../lite/src/libs/xen-api/xen-api.ts | 8 ++-- .../lite/src/views/new-vm/NewVmView.vue | 27 +++++++------ @xen-orchestra/web-core/lib/locales/en.json | 39 +++++++++++++++++++ @xen-orchestra/web-core/lib/locales/fr.json | 39 +++++++++++++++++++ 4 files changed, 97 insertions(+), 16 deletions(-) diff --git a/@xen-orchestra/lite/src/libs/xen-api/xen-api.ts b/@xen-orchestra/lite/src/libs/xen-api/xen-api.ts index b85a636a8e6..af1730bbe2c 100644 --- a/@xen-orchestra/lite/src/libs/xen-api/xen-api.ts +++ b/@xen-orchestra/lite/src/libs/xen-api/xen-api.ts @@ -463,8 +463,8 @@ export default class XenApi { vmRefs: VmRef, device: string, networkRef: NetworkRef, - mac: string, - mtu: string, + MAC: string, + MTU: string, other_config = {}, qos_algorithm_params = {}, qos_algorithm_type: string @@ -475,8 +475,8 @@ export default class XenApi { vmRef, networkRef, device, - mac, - mtu, + MAC, + MTU, other_config, qos_algorithm_params, qos_algorithm_type, diff --git a/@xen-orchestra/lite/src/views/new-vm/NewVmView.vue b/@xen-orchestra/lite/src/views/new-vm/NewVmView.vue index 5978f2e5040..9042b43ea44 100644 --- a/@xen-orchestra/lite/src/views/new-vm/NewVmView.vue +++ b/@xen-orchestra/lite/src/views/new-vm/NewVmView.vue @@ -713,7 +713,9 @@ const createVM = async () => { const vifsToDestroy = [] as XenApiVif[] const vmVifByDevice = keyBy(vifs, 'device') - vifs.forEach(vif => { + vifs.forEach(vif2 => { + const vif = getOpaqueRefVif(vif2) + if (vif.device === undefined) { vif.device = devices.shift() vifsToCreate.push(vif) @@ -737,16 +739,16 @@ const createVM = async () => { await Promise.all(vifsToDestroy.map(vif => xapi.vif.delete(vif.$ref))) await Promise.all( vifsToCreate.map(vif => - xapi.vif.create({ - ipv4_allowed: vif.ipv4_allowed, - ipv6_allowed: vif.ipv6_allowed, - device: vif.device, - locking_mode: isEmpty(vif.ipv4_allowed) && isEmpty(vif.ipv6_allowed) ? 'network_default' : 'locked', - MTU: vif.mtu, - network: vif.network, - VM: vmRef, - MAC: vif.mac, - }) + xapi.vif.create( + vmRef, + vif.network, + vif.device, + vif.MAC, + vif.MTU, + vif.ipv4_allowed, + vif.ipv6_allowed + // !vif.ipv4_allowed && !vif.ipv6_allowed ? 'network_default' : 'locked' + ) ) ) } @@ -769,7 +771,8 @@ const createVM = async () => { } watchEffect(() => { - console.log('selected network', vmState) + console.log('vmState', vmState) + console.log('vmState.new_vm_template?.VIFs', vmState.new_vm_template?.VIFs) console.log('templates', templates) }) diff --git a/@xen-orchestra/web-core/lib/locales/en.json b/@xen-orchestra/web-core/lib/locales/en.json index 0021104c12b..a9b212c63ca 100644 --- a/@xen-orchestra/web-core/lib/locales/en.json +++ b/@xen-orchestra/web-core/lib/locales/en.json @@ -263,6 +263,45 @@ "networks": "Networks", "new": "New", "new-features-are-coming": "New features are coming soon!", + "new-vm": "New VM", + "new-vm.add": "Add", + "new-vm.template": "Template", + "new-vm.pick-template": "Pick template", + "new-vm.install-settings": "Install settings", + "new-vm.no-config": "No configuration", + "new-vm.ssh-key": "SSH key", + "new-vm.custom-config": "Custom config", + "new-vm.user-config": "User config", + "new-vm.network-config": "Network config", + "new-vm.iso-dvd": "ISO/DVD", + "new-vm.pxe": "PXE", + "new-vm.system": "System", + "new-vm.multi-creation": "Multi creation", + "new-vm.vm-name": "VM name", + "new-vm.tags": "Tags", + "new-vm.boot-firmware": "Boot firmware", + "new-vm.copy-host": "Copy host", + "new-vm.vm-description": "VM description", + "new-vm.affinity-host": "Affinity host", + "new-vm.memory": "Memory", + "new-vm.vcpu": "VCPU", + "new-vm.ram": "RAM", + "new-vm.topology": "Topology", + "new-vm.network": "Network", + "new-vm.interfaces": "Interfaces", + "new-vm.mac-addresses": "Mac addresses", + "new-vm.new": "New", + "new-vm.storage": "Storage", + "new-vm.storage-repositories": "Storage repositories", + "new-vm.disk-name": "Disk name", + "new-vm.size": "Size", + "new-vm.description": "Description", + "new-vm.settings": "Settings", + "new-vm.boot-vm": "Boot VM", + "new-vm.auto-power": "Auto power", + "new-vm.fast-clone": "Fast clone", + "new-vm.summary": "Summary", + "new-vm.create": "Create", "news": "News", "news-name": "{name} news", "no-alarm-triggered": "No alarm triggered", diff --git a/@xen-orchestra/web-core/lib/locales/fr.json b/@xen-orchestra/web-core/lib/locales/fr.json index b7cb3a7ede7..dc32ceaf79a 100644 --- a/@xen-orchestra/web-core/lib/locales/fr.json +++ b/@xen-orchestra/web-core/lib/locales/fr.json @@ -263,6 +263,45 @@ "networks": "Réseaux", "new": "Nouveau", "new-features-are-coming": "De nouvelles fonctionnalités arrivent bientôt !", + "new-vm": "Nouvelle VM", + "new-vm.add": "Ajouter", + "new-vm.template": "Modèle", + "new-vm.pick-template": "Choisir un modèle", + "new-vm.install-settings": "Paramètres d'installation", + "new-vm.no-config": "Aucune configuration", + "new-vm.ssh-key": "Clé SSH", + "new-vm.custom-config": "Configuration personnalisée", + "new-vm.user-config": "Configuration utilisateur", + "new-vm.network-config": "Configuration réseau", + "new-vm.iso-dvd": "ISO/DVD", + "new-vm.pxe": "PXE", + "new-vm.system": "Système", + "new-vm.multi-creation": "Création multiple", + "new-vm.vm-name": "Nom de la VM", + "new-vm.tags": "Tags", + "new-vm.boot-firmware": "Firmware de démarrage", + "new-vm.copy-host": "Copier l'hôte", + "new-vm.vm-description": "Description de la VM", + "new-vm.affinity-host": "Affinity host", + "new-vm.memory": "Mémoire", + "new-vm.vcpu": "VCPU", + "new-vm.ram": "RAM", + "new-vm.topology": "Topologie", + "new-vm.network": "Réseau", + "new-vm.interfaces": "Interfaces", + "new-vm.mac-addresses": "Adresses MAC", + "new-vm.new": "Nouveau", + "new-vm.storage": "Stockage", + "new-vm.storage-repositories": "Dépôts de stockage", + "new-vm.disk-name": "Nom du disque", + "new-vm.size": "Taille", + "new-vm.description": "Description", + "new-vm.settings": "Paramètres", + "new-vm.boot-vm": "Démarrer la VM", + "new-vm.auto-power": "Alimentation automatique", + "new-vm.fast-clone": "Clonage rapide", + "new-vm.summary": "Résumé", + "new-vm.create": "Créer", "news": "Actualités", "news-name": "Actualités {name}", "no-alarm-triggered": "Aucune alarme déclenchée",