@@ -116,17 +116,16 @@ pub async fn detect_schema(body: Bytes) -> Result<impl Responder, StreamError> {
116116
117117pub async fn schema ( req : HttpRequest ) -> Result < impl Responder , StreamError > {
118118 let stream_name: String = req. match_info ( ) . get ( "logstream" ) . unwrap ( ) . parse ( ) . unwrap ( ) ;
119- let schema = if let Ok ( schema ) = STREAM_INFO . schema ( & stream_name) {
120- schema
121- } else if CONFIG . parseable . mode == Mode :: Query {
122- let stream_found = create_stream_and_schema_from_storage ( & stream_name) . await ?;
123- if !stream_found {
124- return Err ( StreamError :: StreamNotFound ( stream_name . clone ( ) ) ) ;
125- } else {
126- STREAM_INFO . schema ( & stream_name ) ?
119+ let schema = match STREAM_INFO . schema ( & stream_name) {
120+ Ok ( schema) => schema ,
121+ Err ( _ ) if CONFIG . parseable . mode == Mode :: Query => {
122+ if create_stream_and_schema_from_storage ( & stream_name) . await ? {
123+ STREAM_INFO . schema ( & stream_name ) ?
124+ } else {
125+ return Err ( StreamError :: StreamNotFound ( stream_name . clone ( ) ) ) ;
126+ }
127127 }
128- } else {
129- return Err ( StreamError :: StreamNotFound ( stream_name) ) ;
128+ Err ( _) => return Err ( StreamError :: StreamNotFound ( stream_name) ) ,
130129 } ;
131130
132131 Ok ( ( web:: Json ( schema) , StatusCode :: OK ) )
@@ -196,12 +195,9 @@ pub async fn put_alert(
196195
197196 if !STREAM_INFO . stream_initialized ( & stream_name) ? {
198197 if CONFIG . parseable . mode == Mode :: Query {
199- if let Ok ( stream_found) = create_stream_and_schema_from_storage ( & stream_name) . await {
200- if !stream_found {
201- return Err ( StreamError :: StreamNotFound ( stream_name. clone ( ) ) ) ;
202- }
203- } else {
204- return Err ( StreamError :: StreamNotFound ( stream_name. clone ( ) ) ) ;
198+ match create_stream_and_schema_from_storage ( & stream_name) . await {
199+ Ok ( true ) => { }
200+ Ok ( false ) | Err ( _) => return Err ( StreamError :: StreamNotFound ( stream_name. clone ( ) ) ) ,
205201 }
206202 } else {
207203 return Err ( StreamError :: UninitializedLogstream ) ;
@@ -244,12 +240,9 @@ pub async fn get_retention(req: HttpRequest) -> Result<impl Responder, StreamErr
244240 let stream_name: String = req. match_info ( ) . get ( "logstream" ) . unwrap ( ) . parse ( ) . unwrap ( ) ;
245241 if !STREAM_INFO . stream_exists ( & stream_name) {
246242 if CONFIG . parseable . mode == Mode :: Query {
247- if let Ok ( stream_found) = create_stream_and_schema_from_storage ( & stream_name) . await {
248- if !stream_found {
249- return Err ( StreamError :: StreamNotFound ( stream_name. clone ( ) ) ) ;
250- }
251- } else {
252- return Err ( StreamError :: StreamNotFound ( stream_name. clone ( ) ) ) ;
243+ match create_stream_and_schema_from_storage ( & stream_name) . await {
244+ Ok ( true ) => { }
245+ Ok ( false ) | Err ( _) => return Err ( StreamError :: StreamNotFound ( stream_name. clone ( ) ) ) ,
253246 }
254247 } else {
255248 return Err ( StreamError :: StreamNotFound ( stream_name) ) ;
@@ -362,14 +355,11 @@ pub async fn get_stats_date(stream_name: &str, date: &str) -> Result<Stats, Stre
362355pub async fn get_stats ( req : HttpRequest ) -> Result < impl Responder , StreamError > {
363356 let stream_name: String = req. match_info ( ) . get ( "logstream" ) . unwrap ( ) . parse ( ) . unwrap ( ) ;
364357
365- if !metadata:: STREAM_INFO . stream_exists ( & stream_name) {
366- if CONFIG . parseable . mode != Mode :: All {
367- if let Ok ( stream_found) = create_stream_and_schema_from_storage ( & stream_name) . await {
368- if !stream_found {
369- return Err ( StreamError :: StreamNotFound ( stream_name. clone ( ) ) ) ;
370- }
371- } else {
372- return Err ( StreamError :: StreamNotFound ( stream_name. clone ( ) ) ) ;
358+ if !STREAM_INFO . stream_exists ( & stream_name) {
359+ if CONFIG . parseable . mode == Mode :: Query {
360+ match create_stream_and_schema_from_storage ( & stream_name) . await {
361+ Ok ( true ) => { }
362+ Ok ( false ) | Err ( _) => return Err ( StreamError :: StreamNotFound ( stream_name. clone ( ) ) ) ,
373363 }
374364 } else {
375365 return Err ( StreamError :: StreamNotFound ( stream_name) ) ;
@@ -541,12 +531,11 @@ pub async fn create_stream(
541531
542532pub async fn get_stream_info ( req : HttpRequest ) -> Result < impl Responder , StreamError > {
543533 let stream_name: String = req. match_info ( ) . get ( "logstream" ) . unwrap ( ) . parse ( ) . unwrap ( ) ;
544- if !metadata :: STREAM_INFO . stream_exists ( & stream_name) {
534+ if !STREAM_INFO . stream_exists ( & stream_name) {
545535 if CONFIG . parseable . mode == Mode :: Query {
546- if let Ok ( stream_found) = create_stream_and_schema_from_storage ( & stream_name) . await {
547- if !stream_found {
548- return Err ( StreamError :: StreamNotFound ( stream_name. clone ( ) ) ) ;
549- }
536+ match create_stream_and_schema_from_storage ( & stream_name) . await {
537+ Ok ( true ) => { }
538+ Ok ( false ) | Err ( _) => return Err ( StreamError :: StreamNotFound ( stream_name. clone ( ) ) ) ,
550539 }
551540 } else {
552541 return Err ( StreamError :: StreamNotFound ( stream_name) ) ;
@@ -592,12 +581,11 @@ pub async fn put_stream_hot_tier(
592581 body : web:: Json < serde_json:: Value > ,
593582) -> Result < impl Responder , StreamError > {
594583 let stream_name: String = req. match_info ( ) . get ( "logstream" ) . unwrap ( ) . parse ( ) . unwrap ( ) ;
595- if !metadata :: STREAM_INFO . stream_exists ( & stream_name) {
584+ if !STREAM_INFO . stream_exists ( & stream_name) {
596585 if CONFIG . parseable . mode == Mode :: Query {
597- if let Ok ( stream_found) = create_stream_and_schema_from_storage ( & stream_name) . await {
598- if !stream_found {
599- return Err ( StreamError :: StreamNotFound ( stream_name. clone ( ) ) ) ;
600- }
586+ match create_stream_and_schema_from_storage ( & stream_name) . await {
587+ Ok ( true ) => { }
588+ Ok ( false ) | Err ( _) => return Err ( StreamError :: StreamNotFound ( stream_name. clone ( ) ) ) ,
601589 }
602590 } else {
603591 return Err ( StreamError :: StreamNotFound ( stream_name) ) ;
@@ -650,12 +638,11 @@ pub async fn put_stream_hot_tier(
650638pub async fn get_stream_hot_tier ( req : HttpRequest ) -> Result < impl Responder , StreamError > {
651639 let stream_name: String = req. match_info ( ) . get ( "logstream" ) . unwrap ( ) . parse ( ) . unwrap ( ) ;
652640
653- if !metadata :: STREAM_INFO . stream_exists ( & stream_name) {
641+ if !STREAM_INFO . stream_exists ( & stream_name) {
654642 if CONFIG . parseable . mode == Mode :: Query {
655- if let Ok ( stream_found) = create_stream_and_schema_from_storage ( & stream_name) . await {
656- if !stream_found {
657- return Err ( StreamError :: StreamNotFound ( stream_name. clone ( ) ) ) ;
658- }
643+ match create_stream_and_schema_from_storage ( & stream_name) . await {
644+ Ok ( true ) => { }
645+ Ok ( false ) | Err ( _) => return Err ( StreamError :: StreamNotFound ( stream_name. clone ( ) ) ) ,
659646 }
660647 } else {
661648 return Err ( StreamError :: StreamNotFound ( stream_name) ) ;
@@ -683,12 +670,11 @@ pub async fn get_stream_hot_tier(req: HttpRequest) -> Result<impl Responder, Str
683670pub async fn delete_stream_hot_tier ( req : HttpRequest ) -> Result < impl Responder , StreamError > {
684671 let stream_name: String = req. match_info ( ) . get ( "logstream" ) . unwrap ( ) . parse ( ) . unwrap ( ) ;
685672
686- if !metadata :: STREAM_INFO . stream_exists ( & stream_name) {
673+ if !STREAM_INFO . stream_exists ( & stream_name) {
687674 if CONFIG . parseable . mode == Mode :: Query {
688- if let Ok ( stream_found) = create_stream_and_schema_from_storage ( & stream_name) . await {
689- if !stream_found {
690- return Err ( StreamError :: StreamNotFound ( stream_name. clone ( ) ) ) ;
691- }
675+ match create_stream_and_schema_from_storage ( & stream_name) . await {
676+ Ok ( true ) => { }
677+ Ok ( false ) | Err ( _) => return Err ( StreamError :: StreamNotFound ( stream_name. clone ( ) ) ) ,
692678 }
693679 } else {
694680 return Err ( StreamError :: StreamNotFound ( stream_name) ) ;
0 commit comments