@@ -20,7 +20,7 @@ use tracing::instrument;
2020
2121use super :: make_rust_tls;
2222use crate :: core:: statistics:: event:: sender:: Sender ;
23- use crate :: core:: { self , statistics} ;
23+ use crate :: core:: { self , statistics, whitelist } ;
2424use crate :: servers:: http:: server:: { HttpServer , Launcher } ;
2525use crate :: servers:: http:: Version ;
2626use crate :: servers:: registar:: ServiceRegistrationForm ;
@@ -34,10 +34,11 @@ use crate::servers::registar::ServiceRegistrationForm;
3434///
3535/// It would panic if the `config::HttpTracker` struct would contain inappropriate values.
3636///
37- #[ instrument( skip( config, tracker, stats_event_sender, form) ) ]
37+ #[ instrument( skip( config, tracker, whitelist_authorization , stats_event_sender, form) ) ]
3838pub async fn start_job (
3939 config : & HttpTracker ,
4040 tracker : Arc < core:: Tracker > ,
41+ whitelist_authorization : Arc < whitelist:: authorization:: Authorization > ,
4142 stats_event_sender : Arc < Option < Box < dyn Sender > > > ,
4243 form : ServiceRegistrationForm ,
4344 version : Version ,
@@ -49,21 +50,32 @@ pub async fn start_job(
4950 . map ( |tls| tls. expect ( "it should have a valid http tracker tls configuration" ) ) ;
5051
5152 match version {
52- Version :: V1 => Some ( start_v1 ( socket, tls, tracker. clone ( ) , stats_event_sender. clone ( ) , form) . await ) ,
53+ Version :: V1 => Some (
54+ start_v1 (
55+ socket,
56+ tls,
57+ tracker. clone ( ) ,
58+ whitelist_authorization. clone ( ) ,
59+ stats_event_sender. clone ( ) ,
60+ form,
61+ )
62+ . await ,
63+ ) ,
5364 }
5465}
5566
5667#[ allow( clippy:: async_yields_async) ]
57- #[ instrument( skip( socket, tls, tracker, stats_event_sender, form) ) ]
68+ #[ instrument( skip( socket, tls, tracker, whitelist_authorization , stats_event_sender, form) ) ]
5869async fn start_v1 (
5970 socket : SocketAddr ,
6071 tls : Option < RustlsConfig > ,
6172 tracker : Arc < core:: Tracker > ,
73+ whitelist_authorization : Arc < whitelist:: authorization:: Authorization > ,
6274 stats_event_sender : Arc < Option < Box < dyn statistics:: event:: sender:: Sender > > > ,
6375 form : ServiceRegistrationForm ,
6476) -> JoinHandle < ( ) > {
6577 let server = HttpServer :: new ( Launcher :: new ( socket, tls) )
66- . start ( tracker, stats_event_sender, form)
78+ . start ( tracker, whitelist_authorization , stats_event_sender, form)
6779 . await
6880 . expect ( "it should be able to start to the http tracker" ) ;
6981
@@ -88,7 +100,9 @@ mod tests {
88100
89101 use crate :: bootstrap:: app:: initialize_global_services;
90102 use crate :: bootstrap:: jobs:: http_tracker:: start_job;
91- use crate :: core:: services:: { initialize_database, initialize_tracker, initialize_whitelist, statistics} ;
103+ use crate :: core:: services:: { initialize_database, initialize_tracker, statistics} ;
104+ use crate :: core:: whitelist;
105+ use crate :: core:: whitelist:: repository:: in_memory:: InMemoryWhitelist ;
92106 use crate :: servers:: http:: Version ;
93107 use crate :: servers:: registar:: Registar ;
94108
@@ -104,13 +118,24 @@ mod tests {
104118 initialize_global_services ( & cfg) ;
105119
106120 let database = initialize_database ( & cfg) ;
107- let whitelist_manager = initialize_whitelist ( database. clone ( ) ) ;
108- let tracker = Arc :: new ( initialize_tracker ( & cfg, & database, & whitelist_manager) ) ;
121+ let in_memory_whitelist = Arc :: new ( InMemoryWhitelist :: default ( ) ) ;
122+ let whitelist_authorization = Arc :: new ( whitelist:: authorization:: Authorization :: new (
123+ & cfg. core ,
124+ & in_memory_whitelist. clone ( ) ,
125+ ) ) ;
126+ let tracker = Arc :: new ( initialize_tracker ( & cfg, & database, & whitelist_authorization) ) ;
109127
110128 let version = Version :: V1 ;
111129
112- start_job ( config, tracker, stats_event_sender, Registar :: default ( ) . give_form ( ) , version)
113- . await
114- . expect ( "it should be able to join to the http tracker start-job" ) ;
130+ start_job (
131+ config,
132+ tracker,
133+ whitelist_authorization,
134+ stats_event_sender,
135+ Registar :: default ( ) . give_form ( ) ,
136+ version,
137+ )
138+ . await
139+ . expect ( "it should be able to join to the http tracker start-job" ) ;
115140 }
116141}
0 commit comments