From 6bd5b8856baea9bc367955846a767e4965202d40 Mon Sep 17 00:00:00 2001 From: William Brown Date: Fri, 28 Dec 2018 15:33:09 +1000 Subject: [PATCH] Add plugins directory --- src/clients/whoami.rs | 4 ++++ src/lib/core.rs | 7 +++++-- src/lib/lib.rs | 1 + src/lib/plugins/mod.rs | 8 ++++++++ src/lib/plugins/uuid.rs | 0 src/lib/server.rs | 7 ++++++- 6 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 src/lib/plugins/mod.rs create mode 100644 src/lib/plugins/uuid.rs diff --git a/src/clients/whoami.rs b/src/clients/whoami.rs index 73446d043..390a56c87 100644 --- a/src/clients/whoami.rs +++ b/src/clients/whoami.rs @@ -5,4 +5,8 @@ use rsidm::proto_v1; fn main() { println!("Hello whoami"); + + // Given the current ~/.rsidm/cookie (or none) + // we should check who we are plus show the auth token that the server + // would generate for us. } diff --git a/src/lib/core.rs b/src/lib/core.rs index 3211fffa5..0ad6234e6 100644 --- a/src/lib/core.rs +++ b/src/lib/core.rs @@ -1,4 +1,4 @@ -use actix::SystemRunner; +// use actix::SystemRunner; use actix_web::{ error, http, middleware, App, AsyncResponder, Error, FutureResponse, HttpMessage, HttpRequest, HttpResponse, Path, State, Result, @@ -9,7 +9,10 @@ use bytes::BytesMut; use futures::{future, Future, Stream}; use super::config::Configuration; -use super::event::{CreateEvent, SearchEvent, SearchResult}; + +// SearchResult +use super::event::{CreateEvent, SearchEvent, + }; use super::filter::Filter; use super::log; use super::proto_v1::{CreateRequest, Response, SearchRequest, SearchResponse}; diff --git a/src/lib/lib.rs b/src/lib/lib.rs index 7f41b25ab..bb44532a4 100644 --- a/src/lib/lib.rs +++ b/src/lib/lib.rs @@ -33,6 +33,7 @@ mod entry; mod event; mod schema; mod server; +mod plugins; pub mod config; pub mod core; diff --git a/src/lib/plugins/mod.rs b/src/lib/plugins/mod.rs new file mode 100644 index 000000000..541f05966 --- /dev/null +++ b/src/lib/plugins/mod.rs @@ -0,0 +1,8 @@ + +mod uuid; + +// We should define the order that plugins should run + +// How do we deal with plugin activation? Config? +// What do plugins default to? + diff --git a/src/lib/plugins/uuid.rs b/src/lib/plugins/uuid.rs new file mode 100644 index 000000000..e69de29bb diff --git a/src/lib/server.rs b/src/lib/server.rs index 5552bdc54..9f2531d7c 100644 --- a/src/lib/server.rs +++ b/src/lib/server.rs @@ -3,12 +3,14 @@ use actix::prelude::*; use audit::AuditScope; use be::{Backend, BackendError}; +use plugins; use entry::Entry; use error::OperationError; use event::{CreateEvent, OpResult, SearchEvent, SearchResult}; use log::EventLog; use schema::Schema; + pub fn start(log: actix::Addr, path: &str, threads: usize) -> actix::Addr { let mut audit = AuditScope::new("server_start"); audit_segment!(audit, || { @@ -86,6 +88,9 @@ impl QueryServer { // be handled by fe? pub fn create(&mut self, au: &mut AuditScope, ce: &CreateEvent) -> Result<(), OperationError> { // Start a txn + + // run any pre plugins + // Run any pre checks // FIXME: Normalise all entries incoming @@ -114,7 +119,7 @@ impl QueryServer { }); au.append_scope(audit_be); - // Run and post checks + // Run any post plugins // Commit/Abort the txn res }