use crate::actors::libvirt_actor; use crate::actors::libvirt_actor::LibVirtActor; use crate::libvirt_lib_structures::{DomainXML, DomainXMLUuid}; use crate::libvirt_rest_structures::HypervisorInfo; use actix::Addr; #[derive(Clone)] pub struct LibVirtClient(pub Addr); impl LibVirtClient { /// Get hypervisor info pub async fn get_info(&self) -> anyhow::Result { self.0.send(libvirt_actor::GetHypervisorInfo).await? } /// Get the information about a single domain pub async fn get_single_domain(&self, id: DomainXMLUuid) -> anyhow::Result { self.0.send(libvirt_actor::GetDomainXMLReq(id)).await? } /// Update a domain pub async fn update_domain(&self, xml: DomainXML) -> anyhow::Result { self.0.send(libvirt_actor::DefineDomainReq(xml)).await? } }