Add cloud init configuration to VM definition
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2025-06-06 17:54:56 +02:00
parent 9bd702d60f
commit b3f56cea81
4 changed files with 35 additions and 0 deletions

View File

@ -4,6 +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::cloud_init_utils::CloudInitConfig;
use crate::utils::file_size_utils::FileSize;
use crate::utils::files_utils;
use crate::utils::vm_file_disks_utils::{VMDiskBus, VMDiskFormat, VMFileDisk};
@ -94,6 +95,9 @@ pub struct VMInfo {
pub tpm_module: bool,
/// Strings injected as OEM Strings in SMBios configuration
pub oem_strings: Vec<String>,
/// Cloud init configuration
#[serde(default)]
pub cloud_init: CloudInitConfig,
}
impl VMInfo {
@ -340,6 +344,7 @@ impl VMInfo {
virtweb: DomainMetadataVirtWebXML {
ns: "https://virtweb.communiquons.org".to_string(),
group: self.group.clone().map(|g| g.0),
cloud_init: Some(self.cloud_init.clone()),
},
}),
os: OSXML {
@ -582,6 +587,13 @@ impl VMInfo {
.and_then(|s| s.oem_strings)
.map(|s| s.entries.iter().map(|o| o.content.to_string()).collect())
.unwrap_or_default(),
cloud_init: domain
.metadata
.clone()
.unwrap_or_default()
.virtweb
.cloud_init
.unwrap_or_default(),
})
}
}