Crates.io | sn_service_management |
lib.rs | sn_service_management |
version | 0.4.3 |
source | src |
created_at | 2024-03-14 06:01:37.541654 |
updated_at | 2024-11-12 19:07:35.199678 |
description | A command-line application for installing, managing and operating `safenode` as a service. |
homepage | https://maidsafe.net |
repository | https://github.com/maidsafe/safe_network |
max_upload_size | |
id | 1173038 |
size | 71,114 |
Provides utilities for dealing with services, which are mainly used by the node manager.
The RpcActions
trait defines the protocol that is currently available for interacting with safenode
:
node_info: Returns information about the node, such as its peer ID and version.
network_info: Retrieves network-related information, such as the peers currently connected to the node.
record_addresses: Provides a list of the node's record addresses.
restart_node: Requests the node to restart.
stop_node: Requests the node to stop its operations.
update_node: Updates the node with provided parameters.
Users of the crate can program against the trait rather than the RpcClient
implementation.
This can facilitate behaviour-based unit testing, like so:
use mockall::mock;
use mockall::predicate::*;
mock! {
pub RpcClient {}
#[async_trait]
impl RpcClientInterface for RpcClient {
async fn node_info(&self) -> RpcResult<NodeInfo>;
async fn network_info(&self) -> RpcResult<NetworkInfo>;
async fn record_addresses(&self) -> Result<Vec<RecordAddress>>;
async fn gossipsub_subscribe(&self, topic: &str) -> Result<()>;
async fn gossipsub_unsubscribe(&self, topic: &str) -> Result<()>;
async fn gossipsub_publish(&self, topic: &str, message: &str) -> Result<()>;
async fn node_restart(&self, delay_millis: u64) -> Result<()>;
async fn node_stop(&self, delay_millis: u64) -> Result<()>;
async fn node_update(&self, delay_millis: u64) -> Result<()>;
}
}