summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordanilalexeev <[email protected]>2025-01-22 18:02:16 +0300
committerdanilalexeev <[email protected]>2025-01-22 18:22:11 +0300
commit45a4df69199261678034e345d9ae7a93aa08d383 (patch)
tree21ba97025a126aed83a1e1b7f4d3dbbeacc8f627
parentfc450d0b4461cf0d0c4069b384f0efcf6d4541a5 (diff)
YT-23070: Implement the CollectCoverage command in native protocol
commit_hash:11b0dd0c7b2d16e3377353018a4d70ef317064c9
-rw-r--r--yt/yt/client/api/admin_client.h13
-rw-r--r--yt/yt/client/api/delegating_client.h5
-rw-r--r--yt/yt/client/api/rpc_proxy/client_impl.cpp7
-rw-r--r--yt/yt/client/api/rpc_proxy/client_impl.h4
-rw-r--r--yt/yt/client/federated/client.cpp1
-rw-r--r--yt/yt/client/hedging/hedging.cpp1
-rw-r--r--yt/yt/client/security_client/access_control.h3
-rw-r--r--yt/yt/client/security_client/public.h1
-rw-r--r--yt/yt/client/unittests/mock/client.h5
9 files changed, 39 insertions, 1 deletions
diff --git a/yt/yt/client/api/admin_client.h b/yt/yt/client/api/admin_client.h
index 1ebd2cf0607..c8653563b8b 100644
--- a/yt/yt/client/api/admin_client.h
+++ b/yt/yt/client/api/admin_client.h
@@ -199,6 +199,15 @@ struct TRequestRestartOptions
struct TRequestRestartResult
{ };
+struct TCollectCoverageOptions
+ : public TTimeoutOptions
+{ };
+
+struct TCollectCoverageResult
+{
+ TString CoverageMap;
+};
+
////////////////////////////////////////////////////////////////////////////////
struct IAdminClient
@@ -317,6 +326,10 @@ struct IAdminClient
virtual TFuture<TRequestRestartResult> RequestRestart(
const std::string& nodeAddress,
const TRequestRestartOptions& options = {}) = 0;
+
+ virtual TFuture<TCollectCoverageResult> CollectCoverage(
+ const std::string& address,
+ const TCollectCoverageOptions& options = {}) = 0;
};
////////////////////////////////////////////////////////////////////////////////
diff --git a/yt/yt/client/api/delegating_client.h b/yt/yt/client/api/delegating_client.h
index ec546404b5d..da38978c015 100644
--- a/yt/yt/client/api/delegating_client.h
+++ b/yt/yt/client/api/delegating_client.h
@@ -716,6 +716,11 @@ public:
const TRequestRestartOptions& options),
(nodeAddress, options))
+ DELEGATE_METHOD(TFuture<TCollectCoverageResult>, CollectCoverage, (
+ const std::string& address,
+ const TCollectCoverageOptions& options),
+ (address, options))
+
DELEGATE_METHOD(TFuture<void>, SetUserPassword, (
const std::string& user,
const TString& currentPasswordSha256,
diff --git a/yt/yt/client/api/rpc_proxy/client_impl.cpp b/yt/yt/client/api/rpc_proxy/client_impl.cpp
index ee2fdbc2d30..74e545e7f22 100644
--- a/yt/yt/client/api/rpc_proxy/client_impl.cpp
+++ b/yt/yt/client/api/rpc_proxy/client_impl.cpp
@@ -2234,6 +2234,13 @@ TFuture<TRequestRestartResult> TClient::RequestRestart(
}));
}
+TFuture<TCollectCoverageResult> TClient::CollectCoverage(
+ const std::string& /*address*/,
+ const NApi::TCollectCoverageOptions& /*options*/)
+{
+ ThrowUnimplemented("CollectCoverage");
+}
+
TFuture<NQueryTrackerClient::TQueryId> TClient::StartQuery(
NQueryTrackerClient::EQueryEngine engine,
const TString& query,
diff --git a/yt/yt/client/api/rpc_proxy/client_impl.h b/yt/yt/client/api/rpc_proxy/client_impl.h
index a161cfe88dc..87241e21e26 100644
--- a/yt/yt/client/api/rpc_proxy/client_impl.h
+++ b/yt/yt/client/api/rpc_proxy/client_impl.h
@@ -457,6 +457,10 @@ public:
const std::string& nodeAddress,
const TRequestRestartOptions& options) override;
+ TFuture<TCollectCoverageResult> CollectCoverage(
+ const std::string& address,
+ const NApi::TCollectCoverageOptions& options) override;
+
// Query tracker
TFuture<NQueryTrackerClient::TQueryId> StartQuery(
diff --git a/yt/yt/client/federated/client.cpp b/yt/yt/client/federated/client.cpp
index 4eaee7d9198..da84323bbbd 100644
--- a/yt/yt/client/federated/client.cpp
+++ b/yt/yt/client/federated/client.cpp
@@ -456,6 +456,7 @@ public:
UNIMPLEMENTED_METHOD(TFuture<TDestroyChunkLocationsResult>, DestroyChunkLocations, (const std::string&, bool, const std::vector<TGuid>&, const TDestroyChunkLocationsOptions&));
UNIMPLEMENTED_METHOD(TFuture<TResurrectChunkLocationsResult>, ResurrectChunkLocations, (const std::string&, const std::vector<TGuid>&, const TResurrectChunkLocationsOptions&));
UNIMPLEMENTED_METHOD(TFuture<TRequestRestartResult>, RequestRestart, (const std::string&, const TRequestRestartOptions&));
+ UNIMPLEMENTED_METHOD(TFuture<TCollectCoverageResult>, CollectCoverage, (const std::string&, const TCollectCoverageOptions&));
UNIMPLEMENTED_METHOD(TFuture<void>, SetUserPassword, (const std::string&, const TString&, const TString&, const TSetUserPasswordOptions&));
UNIMPLEMENTED_METHOD(TFuture<TIssueTokenResult>, IssueToken, (const std::string&, const TString&, const TIssueTokenOptions&));
UNIMPLEMENTED_METHOD(TFuture<void>, RevokeToken, (const std::string&, const TString&, const TString&, const TRevokeTokenOptions&));
diff --git a/yt/yt/client/hedging/hedging.cpp b/yt/yt/client/hedging/hedging.cpp
index e5bdd74b228..0ad52946f02 100644
--- a/yt/yt/client/hedging/hedging.cpp
+++ b/yt/yt/client/hedging/hedging.cpp
@@ -204,6 +204,7 @@ public:
UNSUPPORTED_METHOD(TFuture<TDestroyChunkLocationsResult>, DestroyChunkLocations, (const std::string&, bool, const std::vector<TGuid>&, const TDestroyChunkLocationsOptions&));
UNSUPPORTED_METHOD(TFuture<TResurrectChunkLocationsResult>, ResurrectChunkLocations, (const std::string&, const std::vector<TGuid>&, const TResurrectChunkLocationsOptions&));
UNSUPPORTED_METHOD(TFuture<TRequestRestartResult>, RequestRestart, (const std::string&, const TRequestRestartOptions&));
+ UNSUPPORTED_METHOD(TFuture<TCollectCoverageResult>, CollectCoverage, (const std::string&, const TCollectCoverageOptions&));
UNSUPPORTED_METHOD(TFuture<TPullRowsResult>, PullRows, (const TYPath&, const TPullRowsOptions&));
UNSUPPORTED_METHOD(TFuture<void>, SetUserPassword, (const std::string&, const TString&, const TString&, const TSetUserPasswordOptions&));
UNSUPPORTED_METHOD(TFuture<TIssueTokenResult>, IssueToken, (const std::string&, const TString&, const TIssueTokenOptions&));
diff --git a/yt/yt/client/security_client/access_control.h b/yt/yt/client/security_client/access_control.h
index 4152b9f7bcd..c24384b824f 100644
--- a/yt/yt/client/security_client/access_control.h
+++ b/yt/yt/client/security_client/access_control.h
@@ -47,7 +47,8 @@ const THashMap<EAccessControlObject, TAccessControlObjectDescriptor> AccessContr
ACCESS_CONTROL_ENTRY(EAccessControlObjectNamespace::AdminCommands, EAccessControlObject::MasterExitReadOnly),
ACCESS_CONTROL_ENTRY(EAccessControlObjectNamespace::AdminCommands, EAccessControlObject::DiscombobulateNonvotingPeers),
ACCESS_CONTROL_ENTRY(EAccessControlObjectNamespace::AdminCommands, EAccessControlObject::SwitchLeader),
- ACCESS_CONTROL_ENTRY(EAccessControlObjectNamespace::AdminCommands, EAccessControlObject::RequestRestart)
+ ACCESS_CONTROL_ENTRY(EAccessControlObjectNamespace::AdminCommands, EAccessControlObject::RequestRestart),
+ ACCESS_CONTROL_ENTRY(EAccessControlObjectNamespace::AdminCommands, EAccessControlObject::CollectCoverage)
};
////////////////////////////////////////////////////////////////////////////////
diff --git a/yt/yt/client/security_client/public.h b/yt/yt/client/security_client/public.h
index 5ae69da4f83..2bb6eaeffb6 100644
--- a/yt/yt/client/security_client/public.h
+++ b/yt/yt/client/security_client/public.h
@@ -98,6 +98,7 @@ DEFINE_ENUM(EAccessControlObject,
(DiscombobulateNonvotingPeers)
(SwitchLeader)
(RequestRestart)
+ (CollectCoverage)
);
////////////////////////////////////////////////////////////////////////////////
diff --git a/yt/yt/client/unittests/mock/client.h b/yt/yt/client/unittests/mock/client.h
index e29d989ceb5..69cffebbb48 100644
--- a/yt/yt/client/unittests/mock/client.h
+++ b/yt/yt/client/unittests/mock/client.h
@@ -361,6 +361,11 @@ public:
const TRemoveMaintenanceOptions& options),
(override));
+ MOCK_METHOD(TFuture<TCollectCoverageResult>, CollectCoverage, (
+ const std::string& address,
+ const TCollectCoverageOptions& options),
+ (override));
+
MOCK_METHOD(void, Terminate, (),
(override));
MOCK_METHOD(const NChaosClient::IReplicationCardCachePtr&, GetReplicationCardCache, (),