use std::io;
use super::{lxc, Container};
pub struct Snapshot<'a> {
_container: &'a Container,
name: String
}
impl<'a> Snapshot<'a> {
pub fn new(container: &'a Container, name: &str) -> io::Result<Snapshot<'a>> {
lxc(&["snapshot", container.name(), name])?;
let full_name = format!("{}/{}", container.name(), name);
Ok(Snapshot {
_container: container,
name: full_name
})
}
pub fn publish(&self, alias: &str) -> io::Result<()> {
lxc(&["publish", &self.name, "--alias", alias])
}
}
impl<'a> Drop for Snapshot<'a> {
fn drop(&mut self) {
let _ = lxc(&["delete", &self.name]);
}
}