Made database location configurable
This commit is contained in:
parent
7d7ff22526
commit
3c67388fae
5 changed files with 13 additions and 8 deletions
|
@ -3,6 +3,7 @@ use serde::{Deserialize, Serialize};
|
||||||
#[derive(Serialize, Deserialize, Clone, Debug)]
|
#[derive(Serialize, Deserialize, Clone, Debug)]
|
||||||
pub struct Config {
|
pub struct Config {
|
||||||
pub i2p_private_key: Option<String>,
|
pub i2p_private_key: Option<String>,
|
||||||
|
pub database_location: String,
|
||||||
pub api_config: ApiConfig,
|
pub api_config: ApiConfig,
|
||||||
pub jwt_secret: String,
|
pub jwt_secret: String,
|
||||||
}
|
}
|
||||||
|
@ -11,6 +12,7 @@ impl Default for Config {
|
||||||
fn default() -> Self {
|
fn default() -> Self {
|
||||||
Config {
|
Config {
|
||||||
i2p_private_key: None,
|
i2p_private_key: None,
|
||||||
|
database_location: "mem".to_string(),
|
||||||
api_config: Default::default(),
|
api_config: Default::default(),
|
||||||
jwt_secret: "insecuresecret".to_string(),
|
jwt_secret: "insecuresecret".to_string(),
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,7 @@ pub struct Ubisync {
|
||||||
|
|
||||||
impl Ubisync {
|
impl Ubisync {
|
||||||
pub async fn new(config: &Config) -> anyhow::Result<Self> {
|
pub async fn new(config: &Config) -> anyhow::Result<Self> {
|
||||||
let state = State::new().await?;
|
let state = State::new(&config.database_location).await?;
|
||||||
let comm_handle = Arc::new(CommHandle::new(CommState::new(state.clone()), config)?);
|
let comm_handle = Arc::new(CommHandle::new(CommState::new(state.clone()), config)?);
|
||||||
state.set_comm_handle(comm_handle.clone());
|
state.set_comm_handle(comm_handle.clone());
|
||||||
|
|
||||||
|
|
|
@ -115,7 +115,7 @@ mod tests {
|
||||||
tracing_setup!(Level::DEBUG);
|
tracing_setup!(Level::DEBUG);
|
||||||
|
|
||||||
let state = ApiState::new(
|
let state = ApiState::new(
|
||||||
State::new().await.unwrap(),
|
State::new("mem").await.unwrap(),
|
||||||
"abcdabcdabcdabcdabcdabcdabcdabcd",
|
"abcdabcdabcdabcdabcdabcdabcdabcd",
|
||||||
);
|
);
|
||||||
let id = state
|
let id = state
|
||||||
|
@ -132,9 +132,9 @@ mod tests {
|
||||||
#[serial_test::serial]
|
#[serial_test::serial]
|
||||||
async fn test_element_write() {
|
async fn test_element_write() {
|
||||||
tracing_setup!(Level::DEBUG);
|
tracing_setup!(Level::DEBUG);
|
||||||
|
|
||||||
let state = ApiState::new(
|
let state = ApiState::new(
|
||||||
State::new().await.unwrap(),
|
State::new("mem").await.unwrap(),
|
||||||
"abcdabcdabcdabcdabcdabcdabcdabcd",
|
"abcdabcdabcdabcdabcdabcdabcdabcd",
|
||||||
);
|
);
|
||||||
let id = state
|
let id = state
|
||||||
|
|
|
@ -92,7 +92,7 @@ mod tests {
|
||||||
async fn test_element_add() {
|
async fn test_element_add() {
|
||||||
tracing_setup!(Level::DEBUG);
|
tracing_setup!(Level::DEBUG);
|
||||||
|
|
||||||
let state = CommState::new(State::new().await.unwrap());
|
let state = CommState::new(State::new("mem").await.unwrap());
|
||||||
let id = ElementId::new();
|
let id = ElementId::new();
|
||||||
state
|
state
|
||||||
.add_received_element(
|
.add_received_element(
|
||||||
|
@ -113,7 +113,7 @@ mod tests {
|
||||||
async fn test_element_update() {
|
async fn test_element_update() {
|
||||||
tracing_setup!(Level::DEBUG);
|
tracing_setup!(Level::DEBUG);
|
||||||
|
|
||||||
let state = CommState::new(State::new().await.unwrap());
|
let state = CommState::new(State::new("mem").await.unwrap());
|
||||||
let id = ElementId::new();
|
let id = ElementId::new();
|
||||||
state
|
state
|
||||||
.add_received_element(
|
.add_received_element(
|
||||||
|
|
|
@ -22,8 +22,11 @@ pub struct State {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl State {
|
impl State {
|
||||||
pub async fn new() -> anyhow::Result<Arc<State>> {
|
pub async fn new(db_location: &str) -> anyhow::Result<Arc<State>> {
|
||||||
let db = DbInstance::new("mem", "", Default::default());
|
let db = match db_location {
|
||||||
|
"mem" => DbInstance::new("mem", "", Default::default()),
|
||||||
|
path => DbInstance::new("rocksdb", path, Default::default()),
|
||||||
|
};
|
||||||
match db {
|
match db {
|
||||||
Ok(d) => {
|
Ok(d) => {
|
||||||
schema::add_schema(&d)?;
|
schema::add_schema(&d)?;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue