@@ -28,7 +28,7 @@ use crate::rbac::Users;
2828use crate :: rbac:: role:: Action ;
2929use crate :: stats:: { Stats , event_labels_date, storage_size_labels_date} ;
3030use crate :: storage:: retention:: Retention ;
31- use crate :: storage:: { StreamInfo , StreamType } ;
31+ use crate :: storage:: { ObjectStoreFormat , StreamInfo , StreamType } ;
3232use crate :: utils:: actix:: extract_session_key_from_req;
3333use crate :: utils:: json:: flatten:: {
3434 self , convert_to_array, generic_flattening, has_more_than_max_allowed_levels,
@@ -413,7 +413,12 @@ pub async fn put_stream_hot_tier(
413413 . put_hot_tier ( & stream_name, & mut hottier)
414414 . await ?;
415415 let storage = PARSEABLE . storage ( ) . get_object_store ( ) ;
416- let mut stream_metadata = storage. get_object_store_format ( & stream_name) . await ?;
416+ let mut stream_metadata: ObjectStoreFormat = serde_json:: from_slice (
417+ & PARSEABLE
418+ . metastore
419+ . get_stream_json ( & stream_name, false )
420+ . await ?,
421+ ) ?;
417422 stream_metadata. hot_tier_enabled = true ;
418423 storage
419424 . put_stream_manifest ( & stream_name, & stream_metadata)
@@ -491,6 +496,7 @@ pub mod error {
491496
492497 use crate :: {
493498 hottier:: HotTierError ,
499+ metastore:: MetastoreError ,
494500 parseable:: StreamNotFound ,
495501 storage:: ObjectStorageError ,
496502 validator:: error:: {
@@ -563,6 +569,8 @@ pub mod error {
563569 HotTierError ( #[ from] HotTierError ) ,
564570 #[ error( "Invalid query parameter: {0}" ) ]
565571 InvalidQueryParameter ( String ) ,
572+ #[ error( "{0:?}" ) ]
573+ MetastoreError ( #[ from] MetastoreError ) ,
566574 }
567575
568576 impl actix_web:: ResponseError for StreamError {
@@ -599,13 +607,21 @@ pub mod error {
599607 StreamError :: HotTierValidation ( _) => StatusCode :: BAD_REQUEST ,
600608 StreamError :: HotTierError ( _) => StatusCode :: INTERNAL_SERVER_ERROR ,
601609 StreamError :: InvalidQueryParameter ( _) => StatusCode :: BAD_REQUEST ,
610+ StreamError :: MetastoreError ( e) => e. status_code ( ) ,
602611 }
603612 }
604613
605614 fn error_response ( & self ) -> actix_web:: HttpResponse < actix_web:: body:: BoxBody > {
606- actix_web:: HttpResponse :: build ( self . status_code ( ) )
607- . insert_header ( ContentType :: plaintext ( ) )
608- . body ( self . to_string ( ) )
615+ match self {
616+ StreamError :: MetastoreError ( metastore_error) => {
617+ actix_web:: HttpResponse :: build ( metastore_error. status_code ( ) )
618+ . insert_header ( ContentType :: json ( ) )
619+ . json ( metastore_error. to_detail ( ) )
620+ }
621+ _ => actix_web:: HttpResponse :: build ( self . status_code ( ) )
622+ . insert_header ( ContentType :: plaintext ( ) )
623+ . body ( self . to_string ( ) ) ,
624+ }
609625 }
610626 }
611627}
0 commit comments