@@ -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,7 +695,19 @@ 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
695712 filter_value = migrate_v1_v2 ( filter_value) ;
696713 let user_id = filter_value
@@ -933,7 +950,11 @@ impl Metastore for ObjectStoreMetastore {
933950 . collect :: < Vec < _ > > ( ) ;
934951
935952 for date in dates {
936- let date_path = object_store:: path:: Path :: from ( format ! ( "{}/{}" , stream_name, & date) ) ;
953+ let date_path = if let Some ( tenant) = tenant_id {
954+ object_store:: path:: Path :: from ( format ! ( "{}/{}/{}" , tenant, stream_name, & date) )
955+ } else {
956+ object_store:: path:: Path :: from ( format ! ( "{}/{}" , stream_name, & date) )
957+ } ;
937958 let resp = self . storage . list_with_delimiter ( Some ( date_path) ) . await ?;
938959
939960 let manifest_paths: Vec < String > = resp
0 commit comments