@@ -544,24 +544,29 @@ void TViewerPipeClient::RequestBSControllerPDiskUpdateStatus(const NKikimrBlobSt
544544 SendRequestToPipe (pipeClient, request.Release ());
545545}
546546
547- void TViewerPipeClient::RequestSchemeCacheNavigate (const TString& path) {
547+ THolder<NSchemeCache::TSchemeCacheNavigate> TViewerPipeClient::SchemeCacheNavigateRequestBuilder (
548+ NSchemeCache::TSchemeCacheNavigate::TEntry&& entry
549+ ) {
548550 THolder<NSchemeCache::TSchemeCacheNavigate> request = MakeHolder<NSchemeCache::TSchemeCacheNavigate>();
549- NSchemeCache::TSchemeCacheNavigate::TEntry entry;
550- entry.Path = SplitPath (path);
551551 entry.RedirectRequired = false ;
552552 entry.Operation = NSchemeCache::TSchemeCacheNavigate::EOp::OpPath;
553- request->ResultSet .emplace_back (entry);
553+ request->ResultSet .emplace_back (std::move (entry));
554+ return request;
555+ }
556+
557+ void TViewerPipeClient::RequestSchemeCacheNavigate (const TString& path) {
558+ NSchemeCache::TSchemeCacheNavigate::TEntry entry;
559+ entry.Path = SplitPath (path);
560+
561+ auto request = SchemeCacheNavigateRequestBuilder (std::move (entry));
554562 SendRequest (MakeSchemeCacheID (), new TEvTxProxySchemeCache::TEvNavigateKeySet (request.Release ()));
555563}
556564
557565void TViewerPipeClient::RequestSchemeCacheNavigate (const TPathId& pathId) {
558- THolder<NSchemeCache::TSchemeCacheNavigate> request = MakeHolder<NSchemeCache::TSchemeCacheNavigate>();
559566 NSchemeCache::TSchemeCacheNavigate::TEntry entry;
560567 entry.TableId .PathId = pathId;
561568 entry.RequestType = NSchemeCache::TSchemeCacheNavigate::TEntry::ERequestType::ByTableId;
562- entry.RedirectRequired = false ;
563- entry.Operation = NSchemeCache::TSchemeCacheNavigate::EOp::OpPath;
564- request->ResultSet .emplace_back (entry);
569+ auto request = SchemeCacheNavigateRequestBuilder (std::move (entry));
565570 SendRequest (MakeSchemeCacheID (), new TEvTxProxySchemeCache::TEvNavigateKeySet (request.Release ()));
566571}
567572
@@ -594,6 +599,42 @@ TViewerPipeClient::TRequestResponse<TEvTxProxySchemeCache::TEvNavigateKeySetResu
594599 return response;
595600}
596601
602+ TViewerPipeClient::TRequestResponse<NSchemeShard::TEvSchemeShard::TEvDescribeSchemeResult>
603+ TViewerPipeClient::MakeRequestSchemeShardDescribe (TTabletId schemeShardId, const TString& path, const NKikimrSchemeOp::TDescribeOptions& options, ui64 cookie) {
604+ auto request = std::make_unique<NSchemeShard::TEvSchemeShard::TEvDescribeScheme>();
605+ request->Record .SetSchemeshardId (schemeShardId);
606+ request->Record .SetPath (path);
607+ request->Record .MutableOptions ()->CopyFrom (options);
608+ auto pipe = ConnectTabletPipe (schemeShardId);
609+ auto response = MakeRequest<NSchemeShard::TEvSchemeShard::TEvDescribeSchemeResult>(pipe, request.release (), cookie);
610+ if (response.Span ) {
611+ response.Span .Attribute (" path" , path);
612+ }
613+ return response;
614+ }
615+
616+ TViewerPipeClient::TRequestResponse<TEvTxProxySchemeCache::TEvNavigateKeySetResult> TViewerPipeClient::MakeRequestSchemeCacheNavigateWithToken (
617+ const TString& path, bool showPrivate, ui32 access, ui64 cookie
618+ ) {
619+ NSchemeCache::TSchemeCacheNavigate::TEntry entry;
620+ entry.Path = SplitPath (path);
621+ entry.ShowPrivatePath = showPrivate;
622+ entry.Access = access;
623+ auto request = SchemeCacheNavigateRequestBuilder (std::move (entry));
624+
625+ if (!Event->Get ()->UserToken .empty ())
626+ request->UserToken = new NACLib::TUserToken (Event->Get ()->UserToken );
627+
628+ auto response = MakeRequest<TEvTxProxySchemeCache::TEvNavigateKeySetResult>(
629+ MakeSchemeCacheID (),
630+ new TEvTxProxySchemeCache::TEvNavigateKeySet (request.Release ()), 0 /* flags*/ , cookie
631+ );
632+ if (response.Span ) {
633+ response.Span .Attribute (" path" , path);
634+ }
635+ return response;
636+ }
637+
597638void TViewerPipeClient::RequestTxProxyDescribe (const TString& path) {
598639 THolder<TEvTxUserProxy::TEvNavigate> request (new TEvTxUserProxy::TEvNavigate ());
599640 request->Record .MutableDescribePath ()->SetPath (path);
@@ -776,6 +817,10 @@ TString TViewerPipeClient::GetHTTPBADREQUEST(TString contentType, TString respon
776817 return Viewer->GetHTTPBADREQUEST (GetRequest (), std::move (contentType), std::move (response));
777818}
778819
820+ TString TViewerPipeClient::GetHTTPNOTFOUND (TString, TString) {
821+ return Viewer->GetHTTPNOTFOUND (GetRequest ());
822+ }
823+
779824TString TViewerPipeClient::GetHTTPINTERNALERROR (TString contentType, TString response) {
780825 return Viewer->GetHTTPINTERNALERROR (GetRequest (), std::move (contentType), std::move (response));
781826}
0 commit comments