graceful api shutdown (#3677)

This commit is contained in:
deevope
2022-01-07 14:24:54 +01:00
committed by GitHub
parent 2237f42144
commit c92d2e9fba
8 changed files with 134 additions and 97 deletions
+7 -2
View File
@@ -2,6 +2,7 @@ use grin_api as api;
use grin_util as util;
use crate::api::*;
use futures::channel::oneshot;
use hyper::{Body, Request, StatusCode};
use std::net::SocketAddr;
use std::sync::atomic::{AtomicUsize, Ordering};
@@ -71,7 +72,9 @@ fn test_start_api() {
router.add_middleware(counter.clone());
let server_addr = "127.0.0.1:14434";
let addr: SocketAddr = server_addr.parse().expect("unable to parse server address");
assert!(server.start(addr, router, None).is_ok());
let api_chan: &'static mut (oneshot::Sender<()>, oneshot::Receiver<()>) =
Box::leak(Box::new(oneshot::channel::<()>()));
assert!(server.start(addr, router, None, api_chan).is_ok());
let url = format!("http://{}/v1/", server_addr);
let index = request_with_retry(url.as_str()).unwrap();
assert_eq!(index.len(), 2);
@@ -96,7 +99,9 @@ fn test_start_api_tls() {
let router = build_router();
let server_addr = "0.0.0.0:14444";
let addr: SocketAddr = server_addr.parse().expect("unable to parse server address");
assert!(server.start(addr, router, Some(tls_conf)).is_ok());
let api_chan: &'static mut (oneshot::Sender<()>, oneshot::Receiver<()>) =
Box::leak(Box::new(oneshot::channel::<()>()));
assert!(server.start(addr, router, Some(tls_conf), api_chan).is_ok());
let index = request_with_retry("https://yourdomain.com:14444/v1/").unwrap();
assert_eq!(index.len(), 2);
assert!(!server.stop());