add 'disabled' state, fix handshake proxy send
This commit is contained in:
@ -36,7 +36,7 @@ pub async fn subcommand(arguments: &ArgMatches, pool: &DbPool, docker: &Docker)
|
||||
|
||||
if server.status == ServerStatus::Running {
|
||||
println!("Stopping container");
|
||||
srvmgr::stop_server(&docker, pool, server_name).await?;
|
||||
srvmgr::stop_server(&docker, pool, server_name, false).await?;
|
||||
println!("container stopped");
|
||||
}
|
||||
|
||||
|
||||
32
src/cli/disable.rs
Normal file
32
src/cli/disable.rs
Normal file
@ -0,0 +1,32 @@
|
||||
use bollard::Docker;
|
||||
use clap::Arg;
|
||||
use clap::{Command, ArgMatches};
|
||||
|
||||
use crate::DbPool;
|
||||
|
||||
use crate::srvmgr;
|
||||
use crate::status::ServerStatus;
|
||||
|
||||
use diesel::prelude::*;
|
||||
|
||||
use crate::schema;
|
||||
|
||||
pub fn create_subcommand() -> Command {
|
||||
Command::new("disable")
|
||||
.about("disable")
|
||||
.arg(Arg::new("NAME").required(true))
|
||||
}
|
||||
|
||||
pub async fn subcommand(arguments: &ArgMatches, pool: &DbPool, docker: &Docker) -> Result<(), String> {
|
||||
use schema::servers::dsl::*;
|
||||
let server_name = arguments.get_one::<String>("NAME").unwrap();
|
||||
println!("Stopping container");
|
||||
srvmgr::stop_server(&docker, pool, server_name, true).await?;
|
||||
println!("container stopped");
|
||||
|
||||
let conn = &mut pool.get().unwrap();
|
||||
|
||||
diesel::update(servers).filter(name.eq(server_name)).set(status.eq(ServerStatus::Disabled)).execute(conn).map_err(|e| format!("Failed to disable the server : {}", e))?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
@ -6,6 +6,7 @@ pub mod start;
|
||||
pub mod stop;
|
||||
pub mod set_state;
|
||||
pub mod archive;
|
||||
pub mod disable;
|
||||
|
||||
pub mod env_settings;
|
||||
|
||||
|
||||
@ -21,7 +21,8 @@ pub async fn subcommand(arguments: &ArgMatches, pool: &DbPool, docker: &Docker)
|
||||
|
||||
let conn = &mut pool.get().unwrap();
|
||||
|
||||
let _ = srvmgr::stop_server(docker, pool, server_name).await;
|
||||
println!("stopping container if it exists");
|
||||
srvmgr::stop_server(docker, pool, server_name, true).await?;
|
||||
|
||||
let deleted = diesel::delete(servers.filter(name.eq(server_name))).execute(conn).map_err(|_| "failed to delete from db".to_string())?;
|
||||
if deleted != 1 {
|
||||
|
||||
@ -15,7 +15,7 @@ pub fn create_subcommand() -> Command {
|
||||
pub async fn subcommand(arguments: &ArgMatches, pool: &DbPool, docker: &Docker) -> Result<(), String> {
|
||||
let server_name = arguments.get_one::<String>("NAME").unwrap();
|
||||
println!("Stopping container");
|
||||
srvmgr::stop_server(&docker, pool, server_name).await?;
|
||||
srvmgr::stop_server(&docker, pool, server_name, false).await?;
|
||||
println!("container stopped");
|
||||
|
||||
Ok(())
|
||||
|
||||
Reference in New Issue
Block a user