@@ -564,6 +564,9 @@ TViewerPipeClient::TRequestResponse<TEvTxProxySchemeCache::TEvNavigateKeySetResu
564
564
void TViewerPipeClient::RequestTxProxyDescribe (const TString& path) {
565
565
THolder<TEvTxUserProxy::TEvNavigate> request (new TEvTxUserProxy::TEvNavigate ());
566
566
request->Record .MutableDescribePath ()->SetPath (path);
567
+ if (!Event->Get ()->UserToken .empty ()) {
568
+ request->Record .SetUserToken (Event->Get ()->UserToken );
569
+ }
567
570
SendRequest (MakeTxProxyID (), request.Release ());
568
571
}
569
572
@@ -754,13 +757,15 @@ void TViewerPipeClient::HandleResolveResource(TEvTxProxySchemeCache::TEvNavigate
754
757
SharedDatabase = CanonizePath (entry.Path );
755
758
if (SharedDatabase == AppData ()->TenantName ) {
756
759
Direct = true ;
757
- return Bootstrap (); // retry bootstrap without redirect this time
760
+ Bootstrap (); // retry bootstrap without redirect this time
761
+ } else {
762
+ DatabaseBoardInfoResponse = MakeRequestStateStorageEndpointsLookup (SharedDatabase);
758
763
}
759
- DatabaseBoardInfoResponse = MakeRequestStateStorageEndpointsLookup (SharedDatabase);
760
764
} else {
761
- ReplyAndPassAway (GetHTTPBADREQUEST (" text/plain" , " Failed to resolve database - shared database not found" ));
765
+ return ReplyAndPassAway (GetHTTPBADREQUEST (" text/plain" , " Failed to resolve database - shared database not found" ));
762
766
}
763
767
}
768
+ RequestDone ();
764
769
}
765
770
766
771
void TViewerPipeClient::HandleResolveDatabase (TEvTxProxySchemeCache::TEvNavigateKeySetResult::TPtr& ev) {
@@ -771,24 +776,27 @@ void TViewerPipeClient::HandleResolveDatabase(TEvTxProxySchemeCache::TEvNavigate
771
776
if (entry.DomainInfo && entry.DomainInfo ->ResourcesDomainKey && entry.DomainInfo ->DomainKey != entry.DomainInfo ->ResourcesDomainKey ) {
772
777
ResourceNavigateResponse = MakeRequestSchemeCacheNavigate (TPathId (entry.DomainInfo ->ResourcesDomainKey ));
773
778
Become (&TViewerPipeClient::StateResolveResource);
774
- return ;
779
+ } else {
780
+ DatabaseBoardInfoResponse = MakeRequestStateStorageEndpointsLookup (CanonizePath (entry.Path ));
775
781
}
776
- DatabaseBoardInfoResponse = MakeRequestStateStorageEndpointsLookup (CanonizePath (entry.Path ));
777
782
} else {
778
- ReplyAndPassAway (GetHTTPBADREQUEST (" text/plain" , " Failed to resolve database - not found" ));
783
+ return ReplyAndPassAway (GetHTTPBADREQUEST (" text/plain" , " Failed to resolve database - not found" ));
779
784
}
780
785
}
786
+ RequestDone ();
781
787
}
782
788
783
789
void TViewerPipeClient::HandleResolve (TEvStateStorage::TEvBoardInfo::TPtr& ev) {
784
790
if (DatabaseBoardInfoResponse) {
785
791
DatabaseBoardInfoResponse->Set (std::move (ev));
786
792
if (DatabaseBoardInfoResponse->IsOk ()) {
787
- ReplyAndPassAway (MakeForward (GetNodesFromBoardReply (DatabaseBoardInfoResponse->GetRef ())));
793
+ return ReplyAndPassAway (MakeForward (GetNodesFromBoardReply (DatabaseBoardInfoResponse->GetRef ())));
788
794
} else {
789
- ReplyAndPassAway (GetHTTPBADREQUEST (" text/plain" , " Failed to resolve database - no nodes found" ));
795
+ Direct = true ;
796
+ Bootstrap (); // retry bootstrap without redirect this time
790
797
}
791
798
}
799
+ RequestDone ();
792
800
}
793
801
794
802
void TViewerPipeClient::HandleTimeout () {
0 commit comments