From 23cf44f4c7ee46d68d1312be19f394b87ff4a661 Mon Sep 17 00:00:00 2001 From: Alexis Sellier Date: Sun, 29 Jan 2023 17:33:07 +0100 Subject: [PATCH] node: Rename `client` module to `runtime` --- radicle-node/src/control.rs | 28 +++++++++---------- radicle-node/src/lib.rs | 3 +- radicle-node/src/main.rs | 2 +- radicle-node/src/{client.rs => runtime.rs} | 6 ++-- .../src/{client => runtime}/handle.rs | 0 radicle-node/src/test/handle.rs | 26 ++++++++--------- radicle-node/src/tests.rs | 12 ++------ radicle-node/src/tests/e2e.rs | 4 +-- radicle-node/src/worker.rs | 2 +- 9 files changed, 40 insertions(+), 43 deletions(-) rename radicle-node/src/{client.rs => runtime.rs} (99%) rename radicle-node/src/{client => runtime}/handle.rs (100%) diff --git a/radicle-node/src/control.rs b/radicle-node/src/control.rs index b255f2ee..c3934e50 100644 --- a/radicle-node/src/control.rs +++ b/radicle-node/src/control.rs @@ -9,10 +9,10 @@ use std::{io, net}; use radicle::node::Handle; -use crate::client; use crate::identity::Id; use crate::node; use crate::node::FetchLookup; +use crate::runtime; #[derive(thiserror::Error, Debug)] pub enum Error { @@ -23,7 +23,7 @@ pub enum Error { } /// Listen for commands on the control socket, and process them. -pub fn listen>( +pub fn listen>( listener: UnixListener, mut handle: H, ) -> Result<(), Error> { @@ -62,15 +62,15 @@ enum DrainError { InvalidCommandArg(String, Box), #[error("unknown command `{0}`")] UnknownCommand(String), - #[error("client error: {0}")] - Client(#[from] client::handle::Error), + #[error("runtime error: {0}")] + Runtime(#[from] runtime::HandleError), #[error("i/o error: {0}")] Io(#[from] io::Error), #[error("shutdown requested")] Shutdown, } -fn drain>( +fn drain>( stream: &UnixStream, handle: &mut H, ) -> Result<(), DrainError> { @@ -104,7 +104,7 @@ fn drain>( } } Err(e) => { - return Err(DrainError::Client(e)); + return Err(DrainError::Runtime(e)); } }, Err(err) => { @@ -121,7 +121,7 @@ fn drain>( } } Err(e) => { - return Err(DrainError::Client(e)); + return Err(DrainError::Runtime(e)); } }, Err(err) => { @@ -144,7 +144,7 @@ fn drain>( } } Err(e) => { - return Err(DrainError::Client(e)); + return Err(DrainError::Runtime(e)); } }, Err(err) => { @@ -165,7 +165,7 @@ fn drain>( } } Err(e) => { - return Err(DrainError::Client(e)); + return Err(DrainError::Runtime(e)); } }, Err(err) => { @@ -175,7 +175,7 @@ fn drain>( Some(("announce-refs", arg)) => match arg.parse() { Ok(id) => { if let Err(e) = handle.announce_refs(id) { - return Err(DrainError::Client(e)); + return Err(DrainError::Runtime(e)); } writeln!(writer, "{}", node::RESPONSE_OK)?; } @@ -197,7 +197,7 @@ fn drain>( writeln!(writer, "{id} {seed}",)?; } } - Err(e) => return Err(DrainError::Client(e)), + Err(e) => return Err(DrainError::Runtime(e)), }, "inventory" => match handle.inventory() { Ok(c) => { @@ -205,7 +205,7 @@ fn drain>( writeln!(writer, "{id}")?; } } - Err(e) => return Err(DrainError::Client(e)), + Err(e) => return Err(DrainError::Runtime(e)), }, "shutdown" => { return Err(DrainError::Shutdown); @@ -218,14 +218,14 @@ fn drain>( Ok(()) } -fn fetch>( +fn fetch>( id: Id, mut writer: W, handle: &mut H, ) -> Result<(), DrainError> { match handle.fetch(id) { Err(e) => { - return Err(DrainError::Client(e)); + return Err(DrainError::Runtime(e)); } Ok(FetchLookup::Found { seeds, results }) => { let seeds = Vec::from(seeds); diff --git a/radicle-node/src/lib.rs b/radicle-node/src/lib.rs index 04e6166c..5c8fd57a 100644 --- a/radicle-node/src/lib.rs +++ b/radicle-node/src/lib.rs @@ -1,10 +1,10 @@ pub mod address; pub mod bounded; -pub mod client; pub mod clock; pub mod control; pub mod deserializer; pub mod logger; +pub mod runtime; pub mod service; pub mod sql; #[cfg(any(test, feature = "test"))] @@ -17,6 +17,7 @@ pub mod worker; pub use localtime::{LocalDuration, LocalTime}; pub use netservices::LinkDirection as Link; pub use radicle::{collections, crypto, git, identity, node, profile, rad, storage}; +pub use runtime::Runtime; pub mod prelude { pub use crate::bounded::BoundedVec; diff --git a/radicle-node/src/main.rs b/radicle-node/src/main.rs index 4f8f3079..aac84954 100644 --- a/radicle-node/src/main.rs +++ b/radicle-node/src/main.rs @@ -5,9 +5,9 @@ use cyphernet::addr::PeerAddr; use localtime::LocalDuration; use radicle::profile; -use radicle_node::client::Runtime; use radicle_node::crypto::ssh::keystore::{Keystore, MemorySigner}; use radicle_node::prelude::{Address, NodeId}; +use radicle_node::Runtime; use radicle_node::{logger, service}; #[derive(Debug)] diff --git a/radicle-node/src/client.rs b/radicle-node/src/runtime.rs similarity index 99% rename from radicle-node/src/client.rs rename to radicle-node/src/runtime.rs index 0a83d234..39272c46 100644 --- a/radicle-node/src/client.rs +++ b/radicle-node/src/runtime.rs @@ -1,3 +1,5 @@ +mod handle; + use std::io::{BufRead, BufReader}; use std::os::unix::net::UnixListener; use std::path::PathBuf; @@ -22,8 +24,8 @@ use crate::wire::Wire; use crate::worker::{WorkerPool, WorkerReq}; use crate::{crypto, service, LocalTime}; -pub mod handle; -use handle::Handle; +pub use handle::Error as HandleError; +pub use handle::Handle; /// Directory in `$RAD_HOME` under which node-specific files are stored. pub const NODE_DIR: &str = "node"; diff --git a/radicle-node/src/client/handle.rs b/radicle-node/src/runtime/handle.rs similarity index 100% rename from radicle-node/src/client/handle.rs rename to radicle-node/src/runtime/handle.rs diff --git a/radicle-node/src/test/handle.rs b/radicle-node/src/test/handle.rs index c9480198..56e48ee8 100644 --- a/radicle-node/src/test/handle.rs +++ b/radicle-node/src/test/handle.rs @@ -3,9 +3,9 @@ use std::sync::{Arc, Mutex}; use crossbeam_channel as chan; -use crate::client::handle::Error; use crate::identity::Id; use crate::node::FetchLookup; +use crate::runtime::HandleError; use crate::service; use crate::service::NodeId; @@ -17,56 +17,56 @@ pub struct Handle { } impl radicle::node::Handle for Handle { - type Error = Error; + type Error = HandleError; type Sessions = service::Sessions; fn is_running(&self) -> bool { true } - fn connect(&mut self, _node: NodeId, _addr: radicle::node::Address) -> Result<(), Error> { + fn connect(&mut self, _node: NodeId, _addr: radicle::node::Address) -> Result<(), Self::Error> { unimplemented!(); } - fn fetch(&mut self, _id: Id) -> Result { + fn fetch(&mut self, _id: Id) -> Result { Ok(FetchLookup::NotFound) } - fn track_repo(&mut self, id: Id) -> Result { + fn track_repo(&mut self, id: Id) -> Result { Ok(self.tracking_repos.insert(id)) } - fn untrack_repo(&mut self, id: Id) -> Result { + fn untrack_repo(&mut self, id: Id) -> Result { Ok(self.tracking_repos.remove(&id)) } - fn track_node(&mut self, id: NodeId, _alias: Option) -> Result { + fn track_node(&mut self, id: NodeId, _alias: Option) -> Result { Ok(self.tracking_nodes.insert(id)) } - fn untrack_node(&mut self, id: NodeId) -> Result { + fn untrack_node(&mut self, id: NodeId) -> Result { Ok(self.tracking_nodes.remove(&id)) } - fn announce_refs(&mut self, id: Id) -> Result<(), Error> { + fn announce_refs(&mut self, id: Id) -> Result<(), Self::Error> { self.updates.lock().unwrap().push(id); Ok(()) } - fn routing(&self) -> Result, Error> { + fn routing(&self) -> Result, Self::Error> { unimplemented!(); } - fn sessions(&self) -> Result { + fn sessions(&self) -> Result { unimplemented!(); } - fn inventory(&self) -> Result, Error> { + fn inventory(&self) -> Result, Self::Error> { unimplemented!(); } - fn shutdown(self) -> Result<(), Error> { + fn shutdown(self) -> Result<(), Self::Error> { Ok(()) } } diff --git a/radicle-node/src/tests.rs b/radicle-node/src/tests.rs index 9db754ac..f7ae90fb 100644 --- a/radicle-node/src/tests.rs +++ b/radicle-node/src/tests.rs @@ -33,7 +33,7 @@ use crate::test::storage::MockStorage; use crate::wire::Decode; use crate::wire::Encode; use crate::LocalTime; -use crate::{client, git, identity, rad, service, test}; +use crate::{git, identity, rad, runtime, service, test}; // NOTE // @@ -343,19 +343,13 @@ fn test_tracking() { let (sender, receiver) = chan::bounded(1); alice.command(Command::TrackRepo(proj_id, sender)); - let policy_change = receiver - .recv() - .map_err(client::handle::Error::from) - .unwrap(); + let policy_change = receiver.recv().map_err(runtime::HandleError::from).unwrap(); assert!(policy_change); assert!(alice.tracking().is_repo_tracked(&proj_id).unwrap()); let (sender, receiver) = chan::bounded(1); alice.command(Command::UntrackRepo(proj_id, sender)); - let policy_change = receiver - .recv() - .map_err(client::handle::Error::from) - .unwrap(); + let policy_change = receiver.recv().map_err(runtime::HandleError::from).unwrap(); assert!(policy_change); assert!(!alice.tracking().is_repo_tracked(&proj_id).unwrap()); } diff --git a/radicle-node/src/tests/e2e.rs b/radicle-node/src/tests/e2e.rs index e8394363..58d97876 100644 --- a/radicle-node/src/tests/e2e.rs +++ b/radicle-node/src/tests/e2e.rs @@ -21,7 +21,7 @@ use radicle::{assert_matches, rad}; use crate::node::NodeId; use crate::storage::git::transport; use crate::test::logger; -use crate::{client, client::handle::Handle, client::Runtime, service}; +use crate::{runtime, runtime::Handle, service, Runtime}; /// A node that can be run. struct Node { @@ -36,7 +36,7 @@ struct NodeHandle { storage: Storage, signer: MockSigner, addr: net::SocketAddr, - thread: ManuallyDrop>>, + thread: ManuallyDrop>>, handle: ManuallyDrop>, } diff --git a/radicle-node/src/worker.rs b/radicle-node/src/worker.rs index 023a4cb1..ec4c2132 100644 --- a/radicle-node/src/worker.rs +++ b/radicle-node/src/worker.rs @@ -13,8 +13,8 @@ use radicle::storage::{ReadRepository, RefUpdate, WriteRepository, WriteStorage} use radicle::{git, Storage}; use reactor::poller::popol; -use crate::client::handle::Handle; use crate::node::{FetchError, FetchResult}; +use crate::runtime::Handle; use crate::service::reactor::Fetch; use crate::wire::{WireReader, WireSession, WireWriter};