Ready to refactor XML parsing
This commit is contained in:
		@@ -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());
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user