@@ -514,9 +514,9 @@ impl Metastore for ObjectStoreMetastore {
514514
515515 /// Fetch all dashboards
516516 async fn get_dashboards ( & self ) -> Result < HashMap < String , Vec < Bytes > > , MetastoreError > {
517- let mut dashboards = HashMap :: new ( ) ;
517+ let mut dashboards: HashMap < String , Vec < Bytes > > = HashMap :: new ( ) ;
518518 let base_paths = PARSEABLE . list_tenants ( ) . unwrap_or_else ( || vec ! [ "" . into( ) ] ) ;
519- for mut tenant in base_paths {
519+ for tenant in base_paths {
520520 let tenant_id = & Some ( tenant. clone ( ) ) ;
521521 let users_dir = RelativePathBuf :: from_iter ( [ & tenant, USERS_ROOT_DIR ] ) ;
522522 for user in self
@@ -533,11 +533,16 @@ impl Metastore for ObjectStoreMetastore {
533533 tenant_id,
534534 )
535535 . await ?;
536- if tenant. is_empty ( ) {
537- tenant. clone_from ( & DEFAULT_TENANT . to_string ( ) ) ;
538- }
539- dashboards. insert ( tenant. to_owned ( ) , dashboard_bytes) ;
540- // dashboards.extend(dashboard_bytes);
536+
537+ let tenant_key = if tenant. is_empty ( ) {
538+ DEFAULT_TENANT . to_string ( )
539+ } else {
540+ tenant. clone ( )
541+ } ;
542+ dashboards
543+ . entry ( tenant_key)
544+ . or_default ( )
545+ . extend ( dashboard_bytes) ;
541546 }
542547 }
543548
@@ -690,9 +695,21 @@ impl Metastore for ObjectStoreMetastore {
690695
691696 if version == Some ( "v1" ) {
692697 // delete older version of the filter
693- self . storage . delete_object ( & filters_path, tenant_id) . await ?;
698+ // get filter id to delete
699+ let filterid = meta
700+ . get ( "filter_id" )
701+ . and_then ( |filter_id| filter_id. as_str ( ) ) ;
702+ if let Some ( filterid) = filterid {
703+ self . storage
704+ . delete_object (
705+ & filters_path. join ( format ! ( "{filterid}.json" ) ) ,
706+ tenant_id,
707+ )
708+ . await ?;
709+ }
710+ // self.storage.delete_object(&filters_path, tenant_id).await?;
694711
695- filter_value = migrate_v1_v2 ( filter_value) ;
712+ filter_value = migrate_v1_v2 ( filter_value, tenant_id ) ;
696713 let user_id = filter_value
697714 . as_object ( )
698715 . unwrap ( )
@@ -717,6 +734,7 @@ impl Metastore for ObjectStoreMetastore {
717734 user_id,
718735 stream_name,
719736 & format ! ( "{filter_id}.json" ) ,
737+ tenant_id,
720738 ) ;
721739 let filter_bytes = to_bytes ( & filter_value) ;
722740 self . storage
@@ -933,7 +951,11 @@ impl Metastore for ObjectStoreMetastore {
933951 . collect :: < Vec < _ > > ( ) ;
934952
935953 for date in dates {
936- let date_path = object_store:: path:: Path :: from ( format ! ( "{}/{}" , stream_name, & date) ) ;
954+ let date_path = if let Some ( tenant) = tenant_id {
955+ object_store:: path:: Path :: from ( format ! ( "{}/{}/{}" , tenant, stream_name, & date) )
956+ } else {
957+ object_store:: path:: Path :: from ( format ! ( "{}/{}" , stream_name, & date) )
958+ } ;
937959 let resp = self . storage . list_with_delimiter ( Some ( date_path) ) . await ?;
938960
939961 let manifest_paths: Vec < String > = resp
0 commit comments