refactor: move report_node grpc call to general module and update CLI handler
This commit is contained in:
		
							parent
							
								
									703a3e2c18
								
							
						
					
					
						commit
						683c49564d
					
				| @ -1,9 +1,9 @@ | ||||
| use crate::config::Config; | ||||
| use crate::snp::grpc::proto::VmContract; | ||||
| use crate::utils::sign_request; | ||||
| use detee_shared::general_proto::ReportNodeReq; | ||||
| use log::{debug, info, warn}; | ||||
| use tokio_stream::StreamExt; | ||||
| // use tonic::metadata::errors::InvalidMetadataValue;
 | ||||
| 
 | ||||
| pub mod proto { | ||||
|     pub use detee_shared::common_proto::*; | ||||
| @ -23,12 +23,6 @@ pub enum Error { | ||||
|     #[error("Received error from brain: status: {}, message: {}",
 | ||||
|         _0.code().to_string(), _0.message())] | ||||
|     ResponseStatus(#[from] tonic::Status), | ||||
|     // #[error(transparent)]
 | ||||
|     // ConfigError(#[from] crate::config::Error),
 | ||||
|     // #[error("Could not find contract {0}")]
 | ||||
|     // VmContractNotFound(String),
 | ||||
|     // #[error(transparent)]
 | ||||
|     // InternalError(#[from] InvalidMetadataValue),
 | ||||
|     #[error(transparent)] | ||||
|     InternalError(#[from] crate::utils::Error), | ||||
|     #[error(transparent)] | ||||
| @ -107,6 +101,24 @@ pub async fn ban_user(user_wallet: String) -> Result<(), Error> { | ||||
|     Ok(()) | ||||
| } | ||||
| 
 | ||||
| pub async fn report_node( | ||||
|     node_pubkey: String, | ||||
|     contract: String, | ||||
|     reason: String, | ||||
| ) -> Result<(), Error> { | ||||
|     debug!("Getting contracts from brain..."); | ||||
|     let mut client = BrainGeneralCliClient::connect(Config::get_brain_url()).await?; | ||||
|     client | ||||
|         .report_node(sign_request(ReportNodeReq { | ||||
|             admin_pubkey: Config::get_detee_wallet()?, | ||||
|             node_pubkey, | ||||
|             contract, | ||||
|             reason, | ||||
|         })?) | ||||
|         .await?; | ||||
|     Ok(()) | ||||
| } | ||||
| 
 | ||||
| // super admin
 | ||||
| 
 | ||||
| pub async fn admin_list_accounts() -> Result<Vec<Account>, Error> { | ||||
|  | ||||
| @ -2,3 +2,15 @@ pub mod cli_handler; | ||||
| pub mod grpc; | ||||
| pub mod operators; | ||||
| pub mod packagers; | ||||
| 
 | ||||
| use crate::utils::block_on; | ||||
| use crate::SimpleOutput; | ||||
| 
 | ||||
| pub fn report_node( | ||||
|     node_pubkey: String, | ||||
|     contract: String, | ||||
|     reason: String, | ||||
| ) -> Result<SimpleOutput, grpc::Error> { | ||||
|     block_on(grpc::report_node(node_pubkey, contract, reason))?; | ||||
|     Ok(SimpleOutput::from("The node got reported.")) | ||||
| } | ||||
|  | ||||
| @ -1,3 +1,4 @@ | ||||
| use crate::general; | ||||
| use crate::name_generator; | ||||
| use crate::snp; | ||||
| use crate::{cli_print, SimpleOutput}; | ||||
| @ -37,7 +38,7 @@ pub fn handle_vm_nodes(matches: &ArgMatches) { | ||||
|             let contract_uuid: String = | ||||
|                 path_subcommand.get_one::<String>("contract").unwrap().clone(); | ||||
|             let reason: String = path_subcommand.get_one::<String>("reason").unwrap().clone(); | ||||
|             cli_print(snp::report_node(node_pubkey, contract_uuid, reason).map_err(Into::into)) | ||||
|             cli_print(general::report_node(node_pubkey, contract_uuid, reason).map_err(Into::into)) | ||||
|         } | ||||
|         _ => { | ||||
|             println!("Available commands are search and report. Use --help for more information.") | ||||
|  | ||||
| @ -4,12 +4,11 @@ pub mod proto { | ||||
| } | ||||
| 
 | ||||
| use crate::config::Config; | ||||
| use detee_shared::general_proto::brain_general_cli_client::BrainGeneralCliClient; | ||||
| use lazy_static::lazy_static; | ||||
| use log::{debug, info, warn}; | ||||
| use proto::{ | ||||
|     brain_vm_cli_client::BrainVmCliClient, DeleteVmReq, ExtendVmReq, ListVmContractsReq, NewVmReq, | ||||
|     NewVmResp, ReportNodeReq, UpdateVmReq, UpdateVmResp, VmContract, VmNodeFilters, VmNodeListResp, | ||||
|     NewVmResp, UpdateVmReq, UpdateVmResp, VmContract, VmNodeFilters, VmNodeListResp, | ||||
| }; | ||||
| use tokio_stream::StreamExt; | ||||
| use tonic::metadata::errors::InvalidMetadataValue; | ||||
| @ -128,24 +127,6 @@ pub async fn create_vm(req: NewVmReq) -> Result<NewVmResp, Error> { | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| pub async fn report_node( | ||||
|     node_pubkey: String, | ||||
|     contract: String, | ||||
|     reason: String, | ||||
| ) -> Result<(), Error> { | ||||
|     debug!("Getting contracts from brain..."); | ||||
|     let mut client = BrainGeneralCliClient::connect(Config::get_brain_url()).await?; | ||||
|     client | ||||
|         .report_node(sign_request(ReportNodeReq { | ||||
|             admin_pubkey: Config::get_detee_wallet()?, | ||||
|             node_pubkey, | ||||
|             contract, | ||||
|             reason, | ||||
|         })?) | ||||
|         .await?; | ||||
|     Ok(()) | ||||
| } | ||||
| 
 | ||||
| pub async fn list_contracts(req: ListVmContractsReq) -> Result<Vec<VmContract>, Error> { | ||||
|     debug!("Getting contracts from brain..."); | ||||
|     let mut client = BrainVmCliClient::connect(Config::get_brain_url()).await?; | ||||
|  | ||||
| @ -367,15 +367,6 @@ pub fn inspect_node(ip: String) -> Result<proto::VmNodeListResp, Error> { | ||||
|     Ok(block_on(grpc::get_one_node(req))?) | ||||
| } | ||||
| 
 | ||||
| pub fn report_node( | ||||
|     node_pubkey: String, | ||||
|     contract: String, | ||||
|     reason: String, | ||||
| ) -> Result<super::SimpleOutput, Error> { | ||||
|     block_on(grpc::report_node(node_pubkey, contract, reason))?; | ||||
|     Ok(super::SimpleOutput::from("The node got reported.")) | ||||
| } | ||||
| 
 | ||||
| pub fn calculate_nanolp( | ||||
|     vcpus: u32, | ||||
|     memory_mb: u32, | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user