File tree Expand file tree Collapse file tree 3 files changed +25
-8
lines changed Expand file tree Collapse file tree 3 files changed +25
-8
lines changed Original file line number Diff line number Diff line change @@ -198,10 +198,28 @@ impl IngestServer {
198198 // generate the path for the object store
199199 let path = ingestor_metadata_path ( None ) ;
200200
201- if store. get_object ( & path) . await . is_ok ( ) {
202- log:: info!( "ingestor metadata already exists" ) ;
203- return Ok ( ( ) ) ;
204- } ;
201+ // we are considering that we can always get from object store
202+ if let Ok ( store_meta) = store. get_object ( & path) . await {
203+ log:: info!( "Ingestor Metadata is present. Checking for updates" ) ;
204+ let mut store_data = serde_json:: from_slice :: < IngestorMetadata > ( & store_meta)
205+ . map_err ( |_| anyhow ! ( "IngestorMetadata was not parseable as valid json" ) ) ?;
206+
207+ if store_data. domain_name != INGESTOR_META . domain_name {
208+ log:: info!( "Ingestor Metadata update needed." ) ;
209+ store_data. domain_name = INGESTOR_META . domain_name . clone ( ) ;
210+ store_data. port = INGESTOR_META . port . clone ( ) ;
211+
212+ let resource = serde_json:: to_string ( & store_data) ?
213+ . try_into_bytes ( )
214+ . map_err ( |err| anyhow ! ( err) ) ?;
215+
216+ // if pushing to object store fails propagate the error
217+ return store
218+ . put_object ( & path, resource)
219+ . await
220+ . map_err ( |err| anyhow ! ( err) ) ;
221+ }
222+ }
205223
206224 let resource = serde_json:: to_string ( & resource) ?
207225 . try_into_bytes ( )
Original file line number Diff line number Diff line change @@ -330,7 +330,6 @@ pub fn get_ingestor_info() -> anyhow::Result<IngestorMetadata> {
330330 ) ;
331331
332332 put_ingestor_info ( out. clone ( ) ) ?;
333-
334333 Ok ( out)
335334}
336335
Original file line number Diff line number Diff line change @@ -25,9 +25,8 @@ pub mod update;
2525use crate :: option:: CONFIG ;
2626use chrono:: { DateTime , NaiveDate , Timelike , Utc } ;
2727use sha2:: { Digest , Sha256 } ;
28+
2829use std:: env;
29- #[ allow( unused_imports) ]
30- use std:: net:: SocketAddr ;
3130use url:: Url ;
3231
3332#[ allow( dead_code) ]
@@ -270,8 +269,9 @@ pub fn get_ingestor_id() -> String {
270269 let mut hasher = Sha256 :: new ( ) ;
271270 hasher. update ( now) ;
272271 let result = format ! ( "{:x}" , hasher. finalize( ) ) ;
272+ let result = result. split_at ( 15 ) . 0 . to_string ( ) ;
273273 log:: debug!( "Ingestor ID: {}" , & result) ;
274- result
274+ result. to_string ( )
275275}
276276
277277#[ cfg( test) ]
You can’t perform that action at this time.
0 commit comments