Add QCow2 file format support on backend
This commit is contained in:
@ -4,7 +4,7 @@ use crate::libvirt_lib_structures::XMLUuid;
|
||||
use crate::libvirt_lib_structures::domain::*;
|
||||
use crate::libvirt_rest_structures::LibVirtStructError;
|
||||
use crate::libvirt_rest_structures::LibVirtStructError::StructureExtraction;
|
||||
use crate::utils::disks_utils::Disk;
|
||||
use crate::utils::file_disks_utils::{DiskFormat, FileDisk};
|
||||
use crate::utils::files_utils;
|
||||
use crate::utils::files_utils::convert_size_unit_to_mb;
|
||||
use lazy_regex::regex;
|
||||
@ -78,7 +78,7 @@ pub struct VMInfo {
|
||||
/// 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<Disk>,
|
||||
pub disks: Vec<FileDisk>,
|
||||
/// Network cards
|
||||
pub networks: Vec<Network>,
|
||||
/// Add a TPM v2.0 module
|
||||
@ -129,6 +129,7 @@ impl VMInfo {
|
||||
|
||||
let mut disks = vec![];
|
||||
|
||||
// Add ISO files
|
||||
for iso_file in &self.iso_files {
|
||||
if !files_utils::check_file_name(iso_file) {
|
||||
return Err(StructureExtraction("ISO filename is invalid!").into());
|
||||
@ -267,7 +268,10 @@ impl VMInfo {
|
||||
device: "disk".to_string(),
|
||||
driver: DiskDriverXML {
|
||||
name: "qemu".to_string(),
|
||||
r#type: "raw".to_string(),
|
||||
r#type: match disk.format {
|
||||
DiskFormat::Raw { .. } => "raw".to_string(),
|
||||
DiskFormat::QCow2 => "qcow2".to_string(),
|
||||
},
|
||||
cache: "none".to_string(),
|
||||
},
|
||||
source: DiskSourceXML {
|
||||
@ -429,7 +433,7 @@ impl VMInfo {
|
||||
.disks
|
||||
.iter()
|
||||
.filter(|d| d.device == "disk")
|
||||
.map(|d| Disk::load_from_file(&d.source.file).unwrap())
|
||||
.map(|d| FileDisk:: load_from_file(&d.source.file).unwrap())
|
||||
.collect(),
|
||||
|
||||
networks: domain
|
||||
|
Reference in New Issue
Block a user