@@ -573,6 +573,9 @@ TViewerPipeClient::TRequestResponse<TEvTxProxySchemeCache::TEvNavigateKeySetResu
573
573
void TViewerPipeClient::RequestTxProxyDescribe (const TString& path) {
574
574
THolder<TEvTxUserProxy::TEvNavigate> request (new TEvTxUserProxy::TEvNavigate ());
575
575
request->Record .MutableDescribePath ()->SetPath (path);
576
+ if (!Event->Get ()->UserToken .empty ()) {
577
+ request->Record .SetUserToken (Event->Get ()->UserToken );
578
+ }
576
579
SendRequest (MakeTxProxyID (), request.Release ());
577
580
}
578
581
@@ -748,12 +751,6 @@ void TViewerPipeClient::RequestDone(ui32 requests) {
748
751
}
749
752
}
750
753
751
- void TViewerPipeClient::ResetAndBootstrap () {
752
- Requests = 0 ;
753
- DelayedRequests.clear ();
754
- Bootstrap ();
755
- }
756
-
757
754
void TViewerPipeClient::Handle (TEvTabletPipe::TEvClientConnected::TPtr& ev) {
758
755
if (ev->Get ()->Status != NKikimrProto::OK) {
759
756
ui32 requests = FailPipeConnect (ev->Get ()->TabletId );
@@ -769,13 +766,15 @@ void TViewerPipeClient::HandleResolveResource(TEvTxProxySchemeCache::TEvNavigate
769
766
SharedDatabase = CanonizePath (entry.Path );
770
767
if (SharedDatabase == AppData ()->TenantName ) {
771
768
Direct = true ;
772
- return ResetAndBootstrap (); // retry bootstrap without redirect this time
769
+ Bootstrap (); // retry bootstrap without redirect this time
770
+ } else {
771
+ DatabaseBoardInfoResponse = MakeRequestStateStorageEndpointsLookup (SharedDatabase);
773
772
}
774
- DatabaseBoardInfoResponse = MakeRequestStateStorageEndpointsLookup (SharedDatabase);
775
773
} else {
776
- ReplyAndPassAway (GetHTTPBADREQUEST (" text/plain" , " Failed to resolve database - shared database not found" ));
774
+ return ReplyAndPassAway (GetHTTPBADREQUEST (" text/plain" , " Failed to resolve database - shared database not found" ));
777
775
}
778
776
}
777
+ RequestDone ();
779
778
}
780
779
781
780
void TViewerPipeClient::HandleResolveDatabase (TEvTxProxySchemeCache::TEvNavigateKeySetResult::TPtr& ev) {
@@ -786,25 +785,27 @@ void TViewerPipeClient::HandleResolveDatabase(TEvTxProxySchemeCache::TEvNavigate
786
785
if (entry.DomainInfo && entry.DomainInfo ->ResourcesDomainKey && entry.DomainInfo ->DomainKey != entry.DomainInfo ->ResourcesDomainKey ) {
787
786
ResourceNavigateResponse = MakeRequestSchemeCacheNavigate (TPathId (entry.DomainInfo ->ResourcesDomainKey ));
788
787
Become (&TViewerPipeClient::StateResolveResource);
789
- return ;
788
+ } else {
789
+ DatabaseBoardInfoResponse = MakeRequestStateStorageEndpointsLookup (CanonizePath (entry.Path ));
790
790
}
791
- DatabaseBoardInfoResponse = MakeRequestStateStorageEndpointsLookup (CanonizePath (entry.Path ));
792
791
} else {
793
- ReplyAndPassAway (GetHTTPBADREQUEST (" text/plain" , " Failed to resolve database - not found" ));
792
+ return ReplyAndPassAway (GetHTTPBADREQUEST (" text/plain" , " Failed to resolve database - not found" ));
794
793
}
795
794
}
795
+ RequestDone ();
796
796
}
797
797
798
798
void TViewerPipeClient::HandleResolve (TEvStateStorage::TEvBoardInfo::TPtr& ev) {
799
799
if (DatabaseBoardInfoResponse) {
800
800
DatabaseBoardInfoResponse->Set (std::move (ev));
801
801
if (DatabaseBoardInfoResponse->IsOk ()) {
802
- ReplyAndPassAway (MakeForward (GetNodesFromBoardReply (DatabaseBoardInfoResponse->GetRef ())));
802
+ return ReplyAndPassAway (MakeForward (GetNodesFromBoardReply (DatabaseBoardInfoResponse->GetRef ())));
803
803
} else {
804
804
Direct = true ;
805
- ResetAndBootstrap (); // retry bootstrap without redirect this time
805
+ Bootstrap (); // retry bootstrap without redirect this time
806
806
}
807
807
}
808
+ RequestDone ();
808
809
}
809
810
810
811
void TViewerPipeClient::HandleTimeout () {
0 commit comments