Add support for QCow2 file format in web ui
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2025-05-22 18:41:04 +02:00
parent 53a8963fc4
commit 94ee8f8c78
4 changed files with 75 additions and 44 deletions

View File

@ -77,8 +77,8 @@ pub struct VMInfo {
pub vnc_access: bool,
/// Attach ISO file(s)
pub iso_files: Vec<String>,
/// Storage - https://access.redhat.com/documentation/fr-fr/red_hat_enterprise_linux/6/html/virtualization_administration_guide/sect-virtualization-virtualized_block_devices-adding_storage_devices_to_guests#sect-Virtualization-Adding_storage_devices_to_guests-Adding_file_based_storage_to_a_guest
pub disks: Vec<FileDisk>,
/// File Storage - https://access.redhat.com/documentation/fr-fr/red_hat_enterprise_linux/6/html/virtualization_administration_guide/sect-virtualization-virtualized_block_devices-adding_storage_devices_to_guests#sect-Virtualization-Adding_storage_devices_to_guests-Adding_file_based_storage_to_a_guest
pub file_disks: Vec<FileDisk>,
/// Network cards
pub networks: Vec<Network>,
/// Add a TPM v2.0 module
@ -247,15 +247,21 @@ impl VMInfo {
}
// Check disks name for duplicates
for disk in &self.disks {
if self.disks.iter().filter(|d| d.name == disk.name).count() > 1 {
for disk in &self.file_disks {
if self
.file_disks
.iter()
.filter(|d| d.name == disk.name)
.count()
> 1
{
return Err(StructureExtraction("Two different disks have the same name!").into());
}
}
// Apply disks configuration. Starting from now, the function should ideally never fail due to
// bad user input
for disk in &self.disks {
for disk in &self.file_disks {
disk.check_config()?;
disk.apply_config(uuid)?;
@ -428,7 +434,7 @@ impl VMInfo {
.map(|d| d.source.file.rsplit_once('/').unwrap().1.to_string())
.collect(),
disks: domain
file_disks: domain
.devices
.disks
.iter()