aboutsummaryrefslogtreecommitdiff
path: root/src/rpc/system.rs
diff options
context:
space:
mode:
authorAlex <alex@adnab.me>2024-02-15 12:51:52 +0000
committerAlex <alex@adnab.me>2024-02-15 12:51:52 +0000
commit7be3f15e45fcfff10a45302a040c2919a3ba8ccd (patch)
treeeb32dadec4de88e5ec69dbdf5e73f68f9299201a /src/rpc/system.rs
parenta2ab275da80159ea2f0606d129790d79d43b4e24 (diff)
parent125c662860621f9c834e254d62b29b5d5ace5dd4 (diff)
downloadgarage-7be3f15e45fcfff10a45302a040c2919a3ba8ccd.tar.gz
garage-7be3f15e45fcfff10a45302a040c2919a3ba8ccd.zip
Merge pull request 'import Netapp code into Garage codebase' (#717) from import-netapp into main
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/717
Diffstat (limited to 'src/rpc/system.rs')
-rw-r--r--src/rpc/system.rs32
1 files changed, 16 insertions, 16 deletions
diff --git a/src/rpc/system.rs b/src/rpc/system.rs
index 4cec369b..de44e656 100644
--- a/src/rpc/system.rs
+++ b/src/rpc/system.rs
@@ -16,11 +16,11 @@ use tokio::select;
use tokio::sync::watch;
use tokio::sync::Mutex;
-use netapp::endpoint::{Endpoint, EndpointHandler};
-use netapp::message::*;
-use netapp::peering::fullmesh::FullMeshPeeringStrategy;
-use netapp::util::parse_and_resolve_peer_addr_async;
-use netapp::{NetApp, NetworkKey, NodeID, NodeKey};
+use garage_net::endpoint::{Endpoint, EndpointHandler};
+use garage_net::message::*;
+use garage_net::peering::PeeringManager;
+use garage_net::util::parse_and_resolve_peer_addr_async;
+use garage_net::{NetApp, NetworkKey, NodeID, NodeKey};
#[cfg(feature = "kubernetes-discovery")]
use garage_util::config::KubernetesDiscoveryConfig;
@@ -92,7 +92,7 @@ pub struct System {
node_status: RwLock<HashMap<Uuid, (u64, NodeStatus)>>,
pub netapp: Arc<NetApp>,
- fullmesh: Arc<FullMeshPeeringStrategy>,
+ peering: Arc<PeeringManager>,
pub rpc: RpcHelper,
system_endpoint: Arc<Endpoint<SystemRpc, System>>,
@@ -326,9 +326,9 @@ impl System {
}
let netapp = NetApp::new(GARAGE_VERSION_TAG, network_key, node_key);
- let fullmesh = FullMeshPeeringStrategy::new(netapp.clone(), vec![], rpc_public_addr);
+ let peering = PeeringManager::new(netapp.clone(), vec![], rpc_public_addr);
if let Some(ping_timeout) = config.rpc_ping_timeout_msec {
- fullmesh.set_ping_timeout_millis(ping_timeout);
+ peering.set_ping_timeout_millis(ping_timeout);
}
let system_endpoint = netapp.endpoint(SYSTEM_RPC_PATH.into());
@@ -358,10 +358,10 @@ impl System {
local_status: ArcSwap::new(Arc::new(local_status)),
node_status: RwLock::new(HashMap::new()),
netapp: netapp.clone(),
- fullmesh: fullmesh.clone(),
+ peering: peering.clone(),
rpc: RpcHelper::new(
netapp.id.into(),
- fullmesh,
+ peering,
ring.clone(),
config.rpc_timeout_msec.map(Duration::from_millis),
),
@@ -393,7 +393,7 @@ impl System {
self.netapp
.clone()
.listen(self.rpc_listen_addr, None, must_exit.clone()),
- self.fullmesh.clone().run(must_exit.clone()),
+ self.peering.clone().run(must_exit.clone()),
self.discovery_loop(must_exit.clone()),
self.status_exchange_loop(must_exit.clone()),
);
@@ -405,7 +405,7 @@ impl System {
pub fn get_known_nodes(&self) -> Vec<KnownNodeInfo> {
let node_status = self.node_status.read().unwrap();
let known_nodes = self
- .fullmesh
+ .peering
.get_peer_list()
.iter()
.map(|n| KnownNodeInfo {
@@ -726,10 +726,10 @@ impl System {
async fn discovery_loop(self: &Arc<Self>, mut stop_signal: watch::Receiver<bool>) {
while !*stop_signal.borrow() {
let not_configured = self.ring.borrow().layout.check().is_err();
- let no_peers = self.fullmesh.get_peer_list().len() < self.replication_factor;
+ let no_peers = self.peering.get_peer_list().len() < self.replication_factor;
let expected_n_nodes = self.ring.borrow().layout.num_nodes();
let bad_peers = self
- .fullmesh
+ .peering
.get_peer_list()
.iter()
.filter(|p| p.is_up())
@@ -811,7 +811,7 @@ impl System {
// Prepare new peer list to save to file
// It is a vec of tuples (node ID as Uuid, node SocketAddr)
let mut peer_list = self
- .fullmesh
+ .peering
.get_peer_list()
.iter()
.map(|n| (n.id.into(), n.addr))
@@ -985,7 +985,7 @@ async fn resolve_peers(peers: &[String]) -> Vec<(NodeID, SocketAddr)> {
fn connect_error_message(
addr: SocketAddr,
pubkey: ed25519::PublicKey,
- e: netapp::error::Error,
+ e: garage_net::error::Error,
) -> String {
format!("Error establishing RPC connection to remote node: {}@{}.\nThis can happen if the remote node is not reachable on the network, but also if the two nodes are not configured with the same rpc_secret.\n{}", hex::encode(pubkey), addr, e)
}