tape: implement destroy_media
This commit is contained in:
@ -251,6 +251,16 @@ impl Inventory {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Remove a single media persistently
|
||||
pub fn remove_media(&mut self, uuid: &Uuid) -> Result<(), Error> {
|
||||
let _lock = self.lock()?;
|
||||
self.map = Self::load_media_db(&self.inventory_path)?;
|
||||
self.map.remove(uuid);
|
||||
self.update_helpers();
|
||||
self.replace_file()?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Lookup media
|
||||
pub fn lookup_media(&self, uuid: &Uuid) -> Option<&MediaId> {
|
||||
self.map.get(uuid)
|
||||
|
@ -201,6 +201,14 @@ impl MediaStateDatabase {
|
||||
self.store()
|
||||
}
|
||||
|
||||
/// Lock database, reload database, remove media, store database
|
||||
pub fn remove_media(&mut self, uuid: &Uuid) -> Result<(), Error> {
|
||||
let _lock = self.lock()?;
|
||||
self.map = Self::load_media_db(&self.database_path)?;
|
||||
self.map.remove(uuid);
|
||||
self.store()
|
||||
}
|
||||
|
||||
fn store(&self) -> Result<(), Error> {
|
||||
|
||||
let mut list = Vec::new();
|
||||
|
Reference in New Issue
Block a user