better logging in rescan_vault()
parent
b773dbc49c
commit
b051529da6
|
@ -1,18 +1,3 @@
|
||||||
use anyhow::{anyhow, Error, Result};
|
|
||||||
use chrono::prelude::*;
|
|
||||||
use diesel::sqlite::Sqlite;
|
|
||||||
use diesel::Connection;
|
|
||||||
use log::{error, info, trace};
|
|
||||||
use rayon::prelude::*;
|
|
||||||
use serde_json::Value;
|
|
||||||
use std::convert::TryFrom;
|
|
||||||
use std::path::{Component, Path, PathBuf};
|
|
||||||
use std::sync::{Arc, RwLock};
|
|
||||||
use std::time::{Instant, UNIX_EPOCH};
|
|
||||||
use std::{fs, iter};
|
|
||||||
use uuid::Uuid;
|
|
||||||
use walkdir::WalkDir;
|
|
||||||
|
|
||||||
use crate::addressing::Address;
|
use crate::addressing::Address;
|
||||||
use crate::database::{
|
use crate::database::{
|
||||||
bulk_retrieve_objects, file_set_valid, insert_entry, insert_file, query, retrieve_all_files,
|
bulk_retrieve_objects, file_set_valid, insert_entry, insert_file, query, retrieve_all_files,
|
||||||
|
@ -23,6 +8,20 @@ use crate::hash::Hashable;
|
||||||
use crate::jobs::{Job, JobContainer, JobId};
|
use crate::jobs::{Job, JobContainer, JobId};
|
||||||
use crate::models;
|
use crate::models;
|
||||||
use crate::models::File;
|
use crate::models::File;
|
||||||
|
use anyhow::{anyhow, Error, Result};
|
||||||
|
use chrono::prelude::*;
|
||||||
|
use diesel::sqlite::Sqlite;
|
||||||
|
use diesel::Connection;
|
||||||
|
use log::{error, info, trace, warn};
|
||||||
|
use rayon::prelude::*;
|
||||||
|
use serde_json::Value;
|
||||||
|
use std::convert::TryFrom;
|
||||||
|
use std::path::{Component, Path, PathBuf};
|
||||||
|
use std::sync::{Arc, RwLock};
|
||||||
|
use std::time::{Instant, UNIX_EPOCH};
|
||||||
|
use std::{fs, iter};
|
||||||
|
use uuid::Uuid;
|
||||||
|
use walkdir::WalkDir;
|
||||||
|
|
||||||
const DIR_TYPE: &str = "FS_DIR";
|
const DIR_TYPE: &str = "FS_DIR";
|
||||||
const DIR_KEY: &str = "DIR";
|
const DIR_KEY: &str = "DIR";
|
||||||
|
@ -447,9 +446,40 @@ fn _rescan_vault<T: AsRef<Path>>(
|
||||||
})
|
})
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
|
let mut failed: Vec<&Error> = vec![];
|
||||||
|
let mut created = 0;
|
||||||
|
let mut unchanged = 0;
|
||||||
|
let mut deleted = 0;
|
||||||
|
|
||||||
|
for result in &path_results {
|
||||||
|
match result {
|
||||||
|
Ok(result) => match result {
|
||||||
|
UpdatePathOutcome::Added(_) => created += 1,
|
||||||
|
UpdatePathOutcome::Unchanged(_) => unchanged += 1,
|
||||||
|
UpdatePathOutcome::Removed(_) => deleted += 1,
|
||||||
|
},
|
||||||
|
Err(err) => failed.push(err),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if !failed.is_empty() {
|
||||||
|
warn!(
|
||||||
|
"{} path updates failed! ({})",
|
||||||
|
failed.len(),
|
||||||
|
failed
|
||||||
|
.iter()
|
||||||
|
.map(|e| e.to_string())
|
||||||
|
.collect::<Vec<String>>()
|
||||||
|
.join(", ")
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
info!(
|
info!(
|
||||||
"Finished updating {}. Took {}s.",
|
"Finished updating {} ({} created, {} deleted, {} left unchanged). Took {}s.",
|
||||||
directory.as_ref().display(),
|
directory.as_ref().display(),
|
||||||
|
created,
|
||||||
|
deleted,
|
||||||
|
unchanged,
|
||||||
start.elapsed().as_secs()
|
start.elapsed().as_secs()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue