Ready to refactor XML parsing
This commit is contained in:
parent
81f60ce766
commit
e638829da7
@ -102,7 +102,7 @@ impl Handler<GetDomainXMLReq> for LibVirtActor {
|
|||||||
let domain = Domain::lookup_by_uuid_string(&self.m, &msg.0.as_string())?;
|
let domain = Domain::lookup_by_uuid_string(&self.m, &msg.0.as_string())?;
|
||||||
let xml = domain.get_xml_desc(VIR_DOMAIN_XML_SECURE)?;
|
let xml = domain.get_xml_desc(VIR_DOMAIN_XML_SECURE)?;
|
||||||
log::debug!("XML = {}", xml);
|
log::debug!("XML = {}", xml);
|
||||||
Ok(serde_xml_rs::from_str(&xml)?)
|
DomainXML::parse_xml(&xml)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -436,7 +436,7 @@ impl Handler<GetNetworkXMLReq> for LibVirtActor {
|
|||||||
let network = Network::lookup_by_uuid_string(&self.m, &msg.0.as_string())?;
|
let network = Network::lookup_by_uuid_string(&self.m, &msg.0.as_string())?;
|
||||||
let xml = network.get_xml_desc(0)?;
|
let xml = network.get_xml_desc(0)?;
|
||||||
log::debug!("XML = {}", xml);
|
log::debug!("XML = {}", xml);
|
||||||
Ok(serde_xml_rs::from_str(&xml)?)
|
NetworkXML::parse_xml(&xml)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -308,6 +308,11 @@ pub struct DomainXML {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl DomainXML {
|
impl DomainXML {
|
||||||
|
/// Decode Domain structure from XML definition
|
||||||
|
pub fn parse_xml(xml: &str) -> anyhow::Result<Self> {
|
||||||
|
Ok(serde_xml_rs::from_str(xml)?)
|
||||||
|
}
|
||||||
|
|
||||||
/// Turn this domain into its XML definition
|
/// Turn this domain into its XML definition
|
||||||
pub fn into_xml(mut self) -> anyhow::Result<String> {
|
pub fn into_xml(mut self) -> anyhow::Result<String> {
|
||||||
// A issue with the disks & network interface definition serialization needs them to be serialized aside
|
// A issue with the disks & network interface definition serialization needs them to be serialized aside
|
||||||
|
@ -155,6 +155,9 @@ pub struct NetworkXML {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl NetworkXML {
|
impl NetworkXML {
|
||||||
|
pub fn parse_xml(xml: &str) -> anyhow::Result<Self> {
|
||||||
|
Ok(serde_xml_rs::from_str(xml)?)
|
||||||
|
}
|
||||||
pub fn into_xml(mut self) -> anyhow::Result<String> {
|
pub fn into_xml(mut self) -> anyhow::Result<String> {
|
||||||
// A issue with the IPs definition serialization needs them to be serialized aside
|
// A issue with the IPs definition serialization needs them to be serialized aside
|
||||||
let mut ips_xml = Vec::with_capacity(self.ips.len());
|
let mut ips_xml = Vec::with_capacity(self.ips.len());
|
||||||
|
Loading…
Reference in New Issue
Block a user