@@ -26,7 +26,9 @@ use axum_extra::{
26
26
TypedHeader ,
27
27
} ;
28
28
use futures:: { future:: BoxFuture , FutureExt } ;
29
- use orchestrator:: coordinator:: { self , CoordinatorFactory , DockerBackend , Versions } ;
29
+ use orchestrator:: coordinator:: {
30
+ self , CoordinatorFactory , DockerBackend , Versions , TRACKED_CONTAINERS ,
31
+ } ;
30
32
use snafu:: prelude:: * ;
31
33
use std:: {
32
34
convert:: TryInto ,
@@ -101,6 +103,10 @@ pub(crate) async fn serve(config: Config) {
101
103
. route ( "/websocket" , get ( websocket) )
102
104
. route ( "/nowebsocket" , post ( nowebsocket) )
103
105
. route ( "/internal/debug/whynowebsocket" , get ( whynowebsocket) )
106
+ . route (
107
+ "/internal/debug/tracked-containers" ,
108
+ get ( tracked_containers) ,
109
+ )
104
110
. layer ( Extension ( factory) )
105
111
. layer ( Extension ( db_handle) )
106
112
. layer ( Extension ( Arc :: new ( SandboxCache :: default ( ) ) ) )
@@ -680,6 +686,16 @@ async fn whynowebsocket() -> String {
680
686
format ! ( "{:#?}" , WS_ERRORS . lock( ) . unwrap_or_else( |e| e. into_inner( ) ) )
681
687
}
682
688
689
+ async fn tracked_containers ( ) -> String {
690
+ let tracked_containers = TRACKED_CONTAINERS
691
+ . lock ( )
692
+ . unwrap_or_else ( |e| e. into_inner ( ) )
693
+ . clone ( ) ;
694
+ tracked_containers
695
+ . iter ( )
696
+ . fold ( String :: new ( ) , |a, s| a + s + "\n " )
697
+ }
698
+
683
699
#[ derive( Debug ) ]
684
700
struct MetricsAuthorization ;
685
701
0 commit comments