Compare commits
No commits in common. "36df27f3e6df0f0ca0a7004f27e2f1e432beedba" and "30fc217ac381e5722622f172d437c141dc238227" have entirely different histories.
36df27f3e6
...
30fc217ac3
@ -1,8 +1,7 @@
|
|||||||
use clap::{builder::PossibleValue, Arg, ArgMatches, Command};
|
use clap::{builder::PossibleValue, Arg, ArgMatches, Command};
|
||||||
use clap_complete::{generate, Shell};
|
use clap_complete::{generate, Shell};
|
||||||
use detee_cli::general::cli_handler::handle_operators;
|
|
||||||
use detee_cli::sgx::cli_handler::handle_app;
|
use detee_cli::sgx::cli_handler::handle_app;
|
||||||
use detee_cli::snp::cli_handler::{handle_vm, handle_vm_nodes};
|
use detee_cli::snp::cli_handler::handle_vm;
|
||||||
use detee_cli::*;
|
use detee_cli::*;
|
||||||
use std::error::Error;
|
use std::error::Error;
|
||||||
use std::io;
|
use std::io;
|
||||||
@ -600,6 +599,26 @@ fn handle_completion(matches: &ArgMatches, cmd: Command) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn handle_vm_nodes(matches: &ArgMatches) {
|
||||||
|
match matches.subcommand() {
|
||||||
|
Some(("search", _)) => cli_print(snp::print_nodes().map_err(Into::into)),
|
||||||
|
Some(("inspect", path_subcommand)) => {
|
||||||
|
let ip: String = path_subcommand.get_one::<String>("ip").unwrap().clone();
|
||||||
|
cli_print(snp::inspect_node(ip).map_err(Into::into));
|
||||||
|
}
|
||||||
|
Some(("report", path_subcommand)) => {
|
||||||
|
let node_pubkey: String = path_subcommand.get_one::<String>("pubkey").unwrap().clone();
|
||||||
|
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))
|
||||||
|
}
|
||||||
|
_ => {
|
||||||
|
println!("Available commands are search and report. Use --help for more information.")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fn handle_account(matches: &ArgMatches) {
|
fn handle_account(matches: &ArgMatches) {
|
||||||
match matches.subcommand() {
|
match matches.subcommand() {
|
||||||
Some(("show", _)) => cli_print(Ok(config::Config::get_account_data())),
|
Some(("show", _)) => cli_print(Ok(config::Config::get_account_data())),
|
||||||
@ -619,6 +638,39 @@ fn handle_account(matches: &ArgMatches) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn handle_operators(matches: &ArgMatches) {
|
||||||
|
match matches.subcommand() {
|
||||||
|
Some(("list", _)) => {
|
||||||
|
cli_print(crate::operators::print_operators().map_err(Into::into));
|
||||||
|
}
|
||||||
|
Some(("register", subcom_args)) => {
|
||||||
|
let escrow: u64 = *subcom_args.get_one::<u64>("escrow").unwrap();
|
||||||
|
let email: String = subcom_args.get_one::<String>("email").unwrap().clone();
|
||||||
|
cli_print(crate::operators::register(escrow, email).map_err(Into::into));
|
||||||
|
}
|
||||||
|
Some(("inspect", inspect_args)) => {
|
||||||
|
let wallet = match inspect_args.get_one::<String>("wallet") {
|
||||||
|
Some(wallet) => wallet.to_string(),
|
||||||
|
None => config::Config::get_detee_wallet().unwrap_or("".to_string()),
|
||||||
|
};
|
||||||
|
cli_print(crate::operators::inspect_operator(wallet).map_err(Into::into));
|
||||||
|
}
|
||||||
|
Some(("kick", subcom_args)) => {
|
||||||
|
let uuid: String = subcom_args.get_one::<String>("contract").unwrap().clone();
|
||||||
|
let reason: String = subcom_args.get_one::<String>("reason").unwrap().clone();
|
||||||
|
cli_print(crate::operators::kick(uuid, reason).map_err(Into::into));
|
||||||
|
}
|
||||||
|
Some(("ban-user", subcom_args)) => {
|
||||||
|
let user_wallet: String = subcom_args.get_one::<String>("wallet").unwrap().clone();
|
||||||
|
cli_print(crate::operators::ban(user_wallet).map_err(Into::into));
|
||||||
|
}
|
||||||
|
Some(("decom", _)) => {
|
||||||
|
todo!("Currently decomissioning is not supported. Will be ");
|
||||||
|
}
|
||||||
|
_ => println!("To get more information about operators, use: detee-cli operator --help"),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fn handle_packagers(
|
fn handle_packagers(
|
||||||
_matches: &ArgMatches,
|
_matches: &ArgMatches,
|
||||||
) -> Result<Vec<crate::packagers::Packager>, Box<dyn Error>> {
|
) -> Result<Vec<crate::packagers::Packager>, Box<dyn Error>> {
|
||||||
|
|||||||
@ -1,36 +0,0 @@
|
|||||||
use super::operators;
|
|
||||||
use crate::{cli_print, config};
|
|
||||||
use clap::ArgMatches;
|
|
||||||
|
|
||||||
pub fn handle_operators(matches: &ArgMatches) {
|
|
||||||
match matches.subcommand() {
|
|
||||||
Some(("list", _)) => {
|
|
||||||
cli_print(operators::print_operators().map_err(Into::into));
|
|
||||||
}
|
|
||||||
Some(("register", subcom_args)) => {
|
|
||||||
let escrow: u64 = *subcom_args.get_one::<u64>("escrow").unwrap();
|
|
||||||
let email: String = subcom_args.get_one::<String>("email").unwrap().clone();
|
|
||||||
cli_print(operators::register(escrow, email).map_err(Into::into));
|
|
||||||
}
|
|
||||||
Some(("inspect", inspect_args)) => {
|
|
||||||
let wallet = match inspect_args.get_one::<String>("wallet") {
|
|
||||||
Some(wallet) => wallet.to_string(),
|
|
||||||
None => config::Config::get_detee_wallet().unwrap_or("".to_string()),
|
|
||||||
};
|
|
||||||
cli_print(operators::inspect_operator(wallet).map_err(Into::into));
|
|
||||||
}
|
|
||||||
Some(("kick", subcom_args)) => {
|
|
||||||
let uuid: String = subcom_args.get_one::<String>("contract").unwrap().clone();
|
|
||||||
let reason: String = subcom_args.get_one::<String>("reason").unwrap().clone();
|
|
||||||
cli_print(operators::kick(uuid, reason).map_err(Into::into));
|
|
||||||
}
|
|
||||||
Some(("ban-user", subcom_args)) => {
|
|
||||||
let user_wallet: String = subcom_args.get_one::<String>("wallet").unwrap().clone();
|
|
||||||
cli_print(operators::ban(user_wallet).map_err(Into::into));
|
|
||||||
}
|
|
||||||
Some(("decom", _)) => {
|
|
||||||
todo!("Currently decomissioning is not supported. Will be ");
|
|
||||||
}
|
|
||||||
_ => println!("To get more information about operators, use: detee-cli operator --help"),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,3 +0,0 @@
|
|||||||
pub mod cli_handler;
|
|
||||||
pub mod operators;
|
|
||||||
// pub mod grpc;
|
|
||||||
@ -1,7 +1,7 @@
|
|||||||
pub mod config;
|
pub mod config;
|
||||||
pub mod constants;
|
pub mod constants;
|
||||||
pub mod general;
|
|
||||||
pub mod name_generator;
|
pub mod name_generator;
|
||||||
|
pub mod operators;
|
||||||
pub mod packagers;
|
pub mod packagers;
|
||||||
pub mod sgx;
|
pub mod sgx;
|
||||||
pub mod snp;
|
pub mod snp;
|
||||||
|
|||||||
@ -26,12 +26,12 @@ impl From<grpc::brain::ListOperatorsResp> for TabledOperator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn register(escrow: u64, email: String) -> Result<crate::SimpleOutput, grpc::Error> {
|
pub fn register(escrow: u64, email: String) -> Result<super::SimpleOutput, grpc::Error> {
|
||||||
block_on(grpc::register_operator(escrow, email))?;
|
block_on(grpc::register_operator(escrow, email))?;
|
||||||
Ok(crate::SimpleOutput::from("Successfully registered you as operator."))
|
Ok(super::SimpleOutput::from("Successfully registered you as operator."))
|
||||||
}
|
}
|
||||||
|
|
||||||
impl crate::HumanOutput for brain::InspectOperatorResp {
|
impl super::HumanOutput for brain::InspectOperatorResp {
|
||||||
fn human_cli_print(&self) {
|
fn human_cli_print(&self) {
|
||||||
match &self.operator {
|
match &self.operator {
|
||||||
Some(op) => {
|
Some(op) => {
|
||||||
@ -65,7 +65,7 @@ pub fn inspect_operator(wallet: String) -> Result<brain::InspectOperatorResp, gr
|
|||||||
block_on(grpc::inspect_operator(wallet))
|
block_on(grpc::inspect_operator(wallet))
|
||||||
}
|
}
|
||||||
|
|
||||||
impl crate::HumanOutput for Vec<brain::ListOperatorsResp> {
|
impl super::HumanOutput for Vec<brain::ListOperatorsResp> {
|
||||||
fn human_cli_print(&self) {
|
fn human_cli_print(&self) {
|
||||||
let operators: Vec<TabledOperator> = self.iter().map(|op| op.clone().into()).collect();
|
let operators: Vec<TabledOperator> = self.iter().map(|op| op.clone().into()).collect();
|
||||||
|
|
||||||
@ -80,14 +80,14 @@ pub fn print_operators() -> Result<Vec<brain::ListOperatorsResp>, grpc::Error> {
|
|||||||
Ok(block_on(grpc::list_operators())?)
|
Ok(block_on(grpc::list_operators())?)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn kick(contract_uuid: String, reason: String) -> Result<crate::SimpleOutput, grpc::Error> {
|
pub fn kick(contract_uuid: String, reason: String) -> Result<super::SimpleOutput, grpc::Error> {
|
||||||
let nano_lp = block_on(grpc::kick_contract(contract_uuid, reason))?;
|
let nano_lp = block_on(grpc::kick_contract(contract_uuid, reason))?;
|
||||||
Ok(crate::SimpleOutput::from(
|
Ok(super::SimpleOutput::from(
|
||||||
format!("Successfully terminated contract. Refunded {} nanoLP.", nano_lp).as_str(),
|
format!("Successfully terminated contract. Refunded {} nanoLP.", nano_lp).as_str(),
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn ban(wallet: String) -> Result<crate::SimpleOutput, grpc::Error> {
|
pub fn ban(wallet: String) -> Result<super::SimpleOutput, grpc::Error> {
|
||||||
block_on(grpc::ban_user(wallet))?;
|
block_on(grpc::ban_user(wallet))?;
|
||||||
Ok(crate::SimpleOutput::from("Successfully banned user"))
|
Ok(super::SimpleOutput::from("Successfully banned user"))
|
||||||
}
|
}
|
||||||
@ -24,27 +24,6 @@ pub fn handle_vm(matches: &ArgMatches) {
|
|||||||
_ => println!("No valid VM subcommand provided."),
|
_ => println!("No valid VM subcommand provided."),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn handle_vm_nodes(matches: &ArgMatches) {
|
|
||||||
match matches.subcommand() {
|
|
||||||
Some(("search", _)) => cli_print(snp::print_nodes().map_err(Into::into)),
|
|
||||||
Some(("inspect", path_subcommand)) => {
|
|
||||||
let ip: String = path_subcommand.get_one::<String>("ip").unwrap().clone();
|
|
||||||
cli_print(snp::inspect_node(ip).map_err(Into::into));
|
|
||||||
}
|
|
||||||
Some(("report", path_subcommand)) => {
|
|
||||||
let node_pubkey: String = path_subcommand.get_one::<String>("pubkey").unwrap().clone();
|
|
||||||
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))
|
|
||||||
}
|
|
||||||
_ => {
|
|
||||||
println!("Available commands are search and report. Use --help for more information.")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn handle_vm_deploy(matches: &ArgMatches) -> Result<snp::VmSshArgs, Box<dyn Error>> {
|
fn handle_vm_deploy(matches: &ArgMatches) -> Result<snp::VmSshArgs, Box<dyn Error>> {
|
||||||
if let Some(path) = matches.get_one::<String>("yaml-path") {
|
if let Some(path) = matches.get_one::<String>("yaml-path") {
|
||||||
return Ok(snp::deploy::Request::load_from_yaml(path)?);
|
return Ok(snp::deploy::Request::load_from_yaml(path)?);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user