diff options
author | Aleksandr Khoroshilov <hor911@gmail.com> | 2022-04-29 19:43:26 +0300 |
---|---|---|
committer | Aleksandr Khoroshilov <hor911@gmail.com> | 2022-04-29 19:43:26 +0300 |
commit | c4c92365eb01dc2d236f5de5d86ab57a48aa47ed (patch) | |
tree | 73e728084d2d99318b02ed7cf92479215823785f | |
parent | 834e8f736d5a87b2f173edc237bf3f0c98f3a6ee (diff) | |
download | ydb-c4c92365eb01dc2d236f5de5d86ab57a48aa47ed.tar.gz |
Templatenization
ref:b6c3734f98652c0e92aec30eba7ebe23cd238fbe
-rw-r--r-- | ydb/core/yq/libs/control_plane_storage/events/events.h | 1182 |
1 files changed, 78 insertions, 1104 deletions
diff --git a/ydb/core/yq/libs/control_plane_storage/events/events.h b/ydb/core/yq/libs/control_plane_storage/events/events.h index 0e867a47610..fc614a09a04 100644 --- a/ydb/core/yq/libs/control_plane_storage/events/events.h +++ b/ydb/core/yq/libs/control_plane_storage/events/events.h @@ -200,13 +200,14 @@ struct TEvControlPlaneStorage { static_assert(EvEnd <= YqEventSubspaceEnd(NYq::TYqEventSubspace::ControlPlaneStorage), "All events must be in their subspace"); - struct TEvCreateQueryRequest : NActors::TEventLocal<TEvCreateQueryRequest, EvCreateQueryRequest> { - explicit TEvCreateQueryRequest(const TString& scope, - const YandexQuery::CreateQueryRequest& request, - const TString& user, - const TString& token, - const TString& cloudId, - TPermissions permissions) + template<typename ProtoMessage, ui32 EventType> + struct TControlPlaneRequest : NActors::TEventLocal<TControlPlaneRequest<ProtoMessage, EventType>, EventType> { + explicit TControlPlaneRequest(const TString& scope, + const ProtoMessage& request, + const TString& user, + const TString& token, + const TString& cloudId, + TPermissions permissions) : Scope(scope) , Request(request) , User(user) @@ -226,598 +227,21 @@ struct TEvControlPlaneStorage { } TString Scope; - YandexQuery::CreateQueryRequest Request; + ProtoMessage Request; TString User; TString Token; TString CloudId; TPermissions Permissions; }; - struct TEvCreateQueryResponse : NActors::TEventLocal<TEvCreateQueryResponse, EvCreateQueryResponse> { - explicit TEvCreateQueryResponse(const YandexQuery::CreateQueryResult& result, - const TAuditDetails<YandexQuery::Query>& auditDetails) + template<typename TDerived, typename ProtoMessage, ui32 EventType> + struct TControlPlaneResponse : NActors::TEventLocal<TDerived, EventType> { + explicit TControlPlaneResponse(const ProtoMessage& result) : Result(result) - , AuditDetails(auditDetails) - { - } - - explicit TEvCreateQueryResponse(const NYql::TIssues& issues) - : Issues(issues) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Result.ByteSizeLong() - + AuditDetails.GetByteSize() - + GetIssuesByteSize(Issues) - + GetDebugInfoByteSize(DebugInfo); - } - - YandexQuery::CreateQueryResult Result; - TAuditDetails<YandexQuery::Query> AuditDetails; - NYql::TIssues Issues; - TDebugInfoPtr DebugInfo; - }; - - struct TEvListQueriesRequest : NActors::TEventLocal<TEvListQueriesRequest, EvListQueriesRequest> { - explicit TEvListQueriesRequest(const TString& scope, - const YandexQuery::ListQueriesRequest& request, - const TString& user, - const TString& token, - const TString& cloudId, - TPermissions permissions) - : Scope(scope) - , Request(request) - , User(user) - , Token(token) - , CloudId(cloudId) - , Permissions(permissions) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Scope.Size() - + Request.ByteSizeLong() - + User.Size() - + Token.Size() - + CloudId.Size(); - } - - TString Scope; - YandexQuery::ListQueriesRequest Request; - TString User; - TString Token; - TString CloudId; - TPermissions Permissions; - }; - - struct TEvListQueriesResponse : NActors::TEventLocal<TEvListQueriesResponse, EvListQueriesResponse> { - explicit TEvListQueriesResponse(const YandexQuery::ListQueriesResult& result) - : Result(result) - { - } - - explicit TEvListQueriesResponse(const NYql::TIssues& issues) - : Issues(issues) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Result.ByteSizeLong() - + GetIssuesByteSize(Issues) - + GetDebugInfoByteSize(DebugInfo); - } - - YandexQuery::ListQueriesResult Result; - NYql::TIssues Issues; - TDebugInfoPtr DebugInfo; - }; - - struct TEvDescribeQueryRequest : NActors::TEventLocal<TEvDescribeQueryRequest, EvDescribeQueryRequest> { - explicit TEvDescribeQueryRequest(const TString& scope, - const YandexQuery::DescribeQueryRequest& request, - const TString& user, - const TString& token, - const TString& cloudId, - TPermissions permissions) - : Scope(scope) - , Request(request) - , User(user) - , Token(token) - , CloudId(cloudId) - , Permissions(permissions) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Scope.Size() - + Request.ByteSizeLong() - + User.Size() - + Token.Size() - + CloudId.Size(); - } - - TString Scope; - YandexQuery::DescribeQueryRequest Request; - TString User; - TString Token; - TString CloudId; - TPermissions Permissions; - }; - - struct TEvDescribeQueryResponse : NActors::TEventLocal<TEvDescribeQueryResponse, EvDescribeQueryResponse> { - explicit TEvDescribeQueryResponse(const YandexQuery::DescribeQueryResult& result) - : Result(result) - { - } - - explicit TEvDescribeQueryResponse(const NYql::TIssues& issues) - : Issues(issues) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Result.ByteSizeLong() - + GetIssuesByteSize(Issues) - + GetDebugInfoByteSize(DebugInfo); - } - - YandexQuery::DescribeQueryResult Result; - NYql::TIssues Issues; - TDebugInfoPtr DebugInfo; - }; - - struct TEvGetQueryStatusRequest : NActors::TEventLocal<TEvGetQueryStatusRequest, EvGetQueryStatusRequest> { - explicit TEvGetQueryStatusRequest(const TString& scope, - const YandexQuery::GetQueryStatusRequest& request, - const TString& user, - const TString& token, - const TString& cloudId, - TPermissions permissions) - : Scope(scope) - , Request(request) - , User(user) - , Token(token) - , CloudId(cloudId) - , Permissions(permissions) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Scope.Size() - + Request.ByteSizeLong() - + User.Size() - + Token.Size() - + CloudId.Size(); - } - - TString Scope; - YandexQuery::GetQueryStatusRequest Request; - TString User; - TString Token; - TString CloudId; - TPermissions Permissions; - }; - - struct TEvGetQueryStatusResponse : NActors::TEventLocal<TEvGetQueryStatusResponse, EvGetQueryStatusResponse> { - explicit TEvGetQueryStatusResponse(const YandexQuery::GetQueryStatusResult& result) - : Result(result) - { - } - - explicit TEvGetQueryStatusResponse(const NYql::TIssues& issues) - : Issues(issues) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Result.ByteSizeLong() - + GetIssuesByteSize(Issues) - + GetDebugInfoByteSize(DebugInfo); - } - - YandexQuery::GetQueryStatusResult Result; - NYql::TIssues Issues; - TDebugInfoPtr DebugInfo; - }; - - struct TEvModifyQueryRequest : NActors::TEventLocal<TEvModifyQueryRequest, EvModifyQueryRequest> { - explicit TEvModifyQueryRequest(const TString& scope, - const YandexQuery::ModifyQueryRequest& request, - const TString& user, - const TString& token, - const TString& cloudId, - TPermissions permissions) - : Scope(scope) - , Request(request) - , User(user) - , Token(token) - , CloudId(cloudId) - , Permissions(permissions) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Scope.Size() - + Request.ByteSizeLong() - + User.Size() - + Token.Size() - + CloudId.Size(); - } - - TString Scope; - YandexQuery::ModifyQueryRequest Request; - TString User; - TString Token; - TString CloudId; - TPermissions Permissions; - }; - - struct TEvModifyQueryResponse : NActors::TEventLocal<TEvModifyQueryResponse, EvModifyQueryResponse> { - explicit TEvModifyQueryResponse(const YandexQuery::ModifyQueryResult& result, - const TAuditDetails<YandexQuery::Query>& auditDetails) - : Result(result) - , AuditDetails(auditDetails) - { - } - - explicit TEvModifyQueryResponse(const NYql::TIssues& issues) - : Issues(issues) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Result.ByteSizeLong() - + AuditDetails.GetByteSize() - + GetIssuesByteSize(Issues) - + GetDebugInfoByteSize(DebugInfo); - } - - YandexQuery::ModifyQueryResult Result; - TAuditDetails<YandexQuery::Query> AuditDetails; - NYql::TIssues Issues; - TDebugInfoPtr DebugInfo; - }; - - struct TEvDeleteQueryRequest : NActors::TEventLocal<TEvDeleteQueryRequest, EvDeleteQueryRequest> { - explicit TEvDeleteQueryRequest(const TString& scope, - const YandexQuery::DeleteQueryRequest& request, - const TString& user, - const TString& token, - const TString& cloudId, - TPermissions permissions) - : Scope(scope) - , Request(request) - , User(user) - , Token(token) - , CloudId(cloudId) - , Permissions(permissions) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Scope.Size() - + Request.ByteSizeLong() - + User.Size() - + Token.Size() - + CloudId.Size(); - } - - TString Scope; - YandexQuery::DeleteQueryRequest Request; - TString User; - TString Token; - TString CloudId; - TPermissions Permissions; - }; - - struct TEvDeleteQueryResponse : NActors::TEventLocal<TEvDeleteQueryResponse, EvDeleteQueryResponse> { - explicit TEvDeleteQueryResponse(const YandexQuery::DeleteQueryResult& result, - const TAuditDetails<YandexQuery::Query>& auditDetails) - : Result(result) - , AuditDetails(auditDetails) - { - } - - explicit TEvDeleteQueryResponse(const NYql::TIssues& issues) - : Issues(issues) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Result.ByteSizeLong() - + AuditDetails.GetByteSize() - + GetIssuesByteSize(Issues) - + GetDebugInfoByteSize(DebugInfo); - } - - YandexQuery::DeleteQueryResult Result; - TAuditDetails<YandexQuery::Query> AuditDetails; - NYql::TIssues Issues; - TDebugInfoPtr DebugInfo; - }; - - struct TEvControlQueryRequest : NActors::TEventLocal<TEvControlQueryRequest, EvControlQueryRequest> { - explicit TEvControlQueryRequest(const TString& scope, - const YandexQuery::ControlQueryRequest& request, - const TString& user, - const TString& token, - const TString& cloudId, - TPermissions permissions) - : Scope(scope) - , Request(request) - , User(user) - , Token(token) - , CloudId(cloudId) - , Permissions(permissions) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Scope.Size() - + Request.ByteSizeLong() - + User.Size() - + Token.Size() - + CloudId.Size(); - } - - TString Scope; - YandexQuery::ControlQueryRequest Request; - TString User; - TString Token; - TString CloudId; - TPermissions Permissions; - }; - - struct TEvControlQueryResponse : NActors::TEventLocal<TEvControlQueryResponse, EvControlQueryResponse> { - explicit TEvControlQueryResponse(const YandexQuery::ControlQueryResult& result, - const TAuditDetails<YandexQuery::Query>& auditDetails) - : Result(result) - , AuditDetails(auditDetails) - { - } - - explicit TEvControlQueryResponse(const NYql::TIssues& issues) - : Issues(issues) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Result.ByteSizeLong() - + AuditDetails.GetByteSize() - + GetIssuesByteSize(Issues) - + GetDebugInfoByteSize(DebugInfo); - } - - YandexQuery::ControlQueryResult Result; - TAuditDetails<YandexQuery::Query> AuditDetails; - NYql::TIssues Issues; - TDebugInfoPtr DebugInfo; - }; - - struct TEvGetResultDataRequest : NActors::TEventLocal<TEvGetResultDataRequest, EvGetResultDataRequest> { - explicit TEvGetResultDataRequest(const TString& scope, - const YandexQuery::GetResultDataRequest& request, - const TString& user, - const TString& token, - const TString& cloudId, - TPermissions permissions) - : Scope(scope) - , Request(request) - , User(user) - , Token(token) - , CloudId(cloudId) - , Permissions(permissions) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Scope.Size() - + Request.ByteSizeLong() - + User.Size() - + Token.Size() - + CloudId.Size(); - } - - TString Scope; - YandexQuery::GetResultDataRequest Request; - TString User; - TString Token; - TString CloudId; - TPermissions Permissions; - }; - - struct TEvGetResultDataResponse : NActors::TEventLocal<TEvGetResultDataResponse, EvGetResultDataResponse> { - explicit TEvGetResultDataResponse(const YandexQuery::GetResultDataResult& result) - : Result(result) - { - } - - explicit TEvGetResultDataResponse(const NYql::TIssues& issues) - : Issues(issues) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Result.ByteSizeLong() - + GetIssuesByteSize(Issues) - + GetDebugInfoByteSize(DebugInfo); - } - - YandexQuery::GetResultDataResult Result; - NYql::TIssues Issues; - TDebugInfoPtr DebugInfo; - }; - - struct TEvListJobsRequest : NActors::TEventLocal<TEvListJobsRequest, EvListJobsRequest> { - explicit TEvListJobsRequest(const TString& scope, - const YandexQuery::ListJobsRequest& request, - const TString& user, - const TString& token, - const TString& cloudId, - TPermissions permissions) - : Scope(scope) - , Request(request) - , User(user) - , Token(token) - , CloudId(cloudId) - , Permissions(permissions) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Scope.Size() - + Request.ByteSizeLong() - + User.Size() - + Token.Size() - + CloudId.Size(); - } - - TString Scope; - YandexQuery::ListJobsRequest Request; - TString User; - TString Token; - TString CloudId; - TPermissions Permissions; - }; - - struct TEvListJobsResponse : NActors::TEventLocal<TEvListJobsResponse, EvListJobsResponse> { - explicit TEvListJobsResponse(const YandexQuery::ListJobsResult& result) - : Result(result) - { - } - - explicit TEvListJobsResponse(const NYql::TIssues& issues) - : Issues(issues) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Result.ByteSizeLong() - + GetIssuesByteSize(Issues) - + GetDebugInfoByteSize(DebugInfo); - } - - YandexQuery::ListJobsResult Result; - NYql::TIssues Issues; - TDebugInfoPtr DebugInfo; - }; - - struct TEvDescribeJobRequest : NActors::TEventLocal<TEvDescribeJobRequest, EvDescribeJobRequest> { - explicit TEvDescribeJobRequest(const TString& scope, - const YandexQuery::DescribeJobRequest& request, - const TString& user, - const TString& token, - const TString& cloudId, - TPermissions permissions) - : Scope(scope) - , Request(request) - , User(user) - , Token(token) - , CloudId(cloudId) - , Permissions(permissions) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Scope.Size() - + Request.ByteSizeLong() - + User.Size() - + Token.Size() - + CloudId.Size(); - } - - TString Scope; - YandexQuery::DescribeJobRequest Request; - TString User; - TString Token; - TString CloudId; - TPermissions Permissions; - }; - - struct TEvDescribeJobResponse : NActors::TEventLocal<TEvDescribeJobResponse, EvDescribeJobResponse> { - explicit TEvDescribeJobResponse(const YandexQuery::DescribeJobResult& result) - : Result(result) - { - } - - explicit TEvDescribeJobResponse(const NYql::TIssues& issues) - : Issues(issues) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Result.ByteSizeLong() - + GetIssuesByteSize(Issues) - + GetDebugInfoByteSize(DebugInfo); - } - - YandexQuery::DescribeJobResult Result; - NYql::TIssues Issues; - TDebugInfoPtr DebugInfo; - }; - - struct TEvCreateConnectionRequest : NActors::TEventLocal<TEvCreateConnectionRequest, EvCreateConnectionRequest> { - explicit TEvCreateConnectionRequest(const TString& scope, - const YandexQuery::CreateConnectionRequest& request, - const TString& user, - const TString& token, - const TString& cloudId, - TPermissions permissions) - : Scope(scope) - , Request(request) - , User(user) - , Token(token) - , CloudId(cloudId) - , Permissions(permissions) { } - size_t GetByteSize() const { - return sizeof(*this) - + Scope.Size() - + Request.ByteSizeLong() - + User.Size() - + Token.Size() - + CloudId.Size(); - } - - TString Scope; - YandexQuery::CreateConnectionRequest Request; - TString User; - TString Token; - TString CloudId; - TPermissions Permissions; - }; - - struct TEvCreateConnectionResponse : NActors::TEventLocal<TEvCreateConnectionResponse, EvCreateConnectionResponse> { - explicit TEvCreateConnectionResponse(const YandexQuery::CreateConnectionResult& result, - const TAuditDetails<YandexQuery::Connection>& auditDetails) - : Result(result) - , AuditDetails(auditDetails) - { - } - - explicit TEvCreateConnectionResponse(const NYql::TIssues& issues) + explicit TControlPlaneResponse(const NYql::TIssues& issues) : Issues(issues) { } @@ -825,540 +249,90 @@ struct TEvControlPlaneStorage { size_t GetByteSize() const { return sizeof(*this) + Result.ByteSizeLong() - + AuditDetails.GetByteSize() + GetIssuesByteSize(Issues) + GetDebugInfoByteSize(DebugInfo); } - YandexQuery::CreateConnectionResult Result; - TAuditDetails<YandexQuery::Connection> AuditDetails; + ProtoMessage Result; NYql::TIssues Issues; TDebugInfoPtr DebugInfo; }; - struct TEvListConnectionsRequest : NActors::TEventLocal<TEvListConnectionsRequest, EvListConnectionsRequest> { - explicit TEvListConnectionsRequest(const TString& scope, - const YandexQuery::ListConnectionsRequest& request, - const TString& user, - const TString& token, - const TString& cloudId, - TPermissions permissions) - : Scope(scope) - , Request(request) - , User(user) - , Token(token) - , CloudId(cloudId) - , Permissions(permissions) + template<typename ProtoMessage, ui32 EventType> + struct TControlPlaneNonAuditableResponse : TControlPlaneResponse<TControlPlaneNonAuditableResponse<ProtoMessage, EventType>, ProtoMessage, EventType> { + explicit TControlPlaneNonAuditableResponse(const ProtoMessage& result) + : TControlPlaneResponse<TControlPlaneNonAuditableResponse<ProtoMessage, EventType>, ProtoMessage, EventType>(result) { } - size_t GetByteSize() const { - return sizeof(*this) - + Scope.Size() - + Request.ByteSizeLong() - + User.Size() - + Token.Size() - + CloudId.Size(); - } - - TString Scope; - YandexQuery::ListConnectionsRequest Request; - TString User; - TString Token; - TString CloudId; - TPermissions Permissions; - }; - - struct TEvListConnectionsResponse : NActors::TEventLocal<TEvListConnectionsResponse, EvListConnectionsResponse> { - explicit TEvListConnectionsResponse(const YandexQuery::ListConnectionsResult& result) - : Result(result) + explicit TControlPlaneNonAuditableResponse(const NYql::TIssues& issues) + : TControlPlaneResponse<TControlPlaneNonAuditableResponse<ProtoMessage, EventType>, ProtoMessage, EventType>(issues) { } - - explicit TEvListConnectionsResponse(const NYql::TIssues& issues) - : Issues(issues) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Result.ByteSizeLong() - + GetIssuesByteSize(Issues) - + GetDebugInfoByteSize(DebugInfo); - } - - YandexQuery::ListConnectionsResult Result; - NYql::TIssues Issues; - TDebugInfoPtr DebugInfo; - }; - - struct TEvDescribeConnectionRequest : NActors::TEventLocal<TEvDescribeConnectionRequest, EvDescribeConnectionRequest> { - explicit TEvDescribeConnectionRequest(const TString& scope, - const YandexQuery::DescribeConnectionRequest& request, - const TString& user, - const TString& token, - const TString& cloudId, - TPermissions permissions) - : Scope(scope) - , Request(request) - , User(user) - , Token(token) - , CloudId(cloudId) - , Permissions(permissions) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Scope.Size() - + Request.ByteSizeLong() - + User.Size() - + Token.Size() - + CloudId.Size(); - } - - TString Scope; - YandexQuery::DescribeConnectionRequest Request; - TString User; - TString Token; - TString CloudId; - TPermissions Permissions; }; - struct TEvDescribeConnectionResponse : NActors::TEventLocal<TEvDescribeConnectionResponse, EvDescribeConnectionResponse> { - explicit TEvDescribeConnectionResponse(const YandexQuery::DescribeConnectionResult& result) - : Result(result) - { - } - - explicit TEvDescribeConnectionResponse(const NYql::TIssues& issues) - : Issues(issues) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Result.ByteSizeLong() - + GetIssuesByteSize(Issues) - + GetDebugInfoByteSize(DebugInfo); - } - - YandexQuery::DescribeConnectionResult Result; - NYql::TIssues Issues; - TDebugInfoPtr DebugInfo; - }; - - struct TEvModifyConnectionRequest : NActors::TEventLocal<TEvModifyConnectionRequest, EvModifyConnectionRequest> { - explicit TEvModifyConnectionRequest(const TString& scope, - const YandexQuery::ModifyConnectionRequest& request, - const TString& user, - const TString& token, - const TString& cloudId, - TPermissions permissions) - : Scope(scope) - , Request(request) - , User(user) - , Token(token) - , CloudId(cloudId) - , Permissions(permissions) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Scope.Size() - + Request.ByteSizeLong() - + User.Size() - + Token.Size() - + CloudId.Size(); - } - - TString Scope; - YandexQuery::ModifyConnectionRequest Request; - TString User; - TString Token; - TString CloudId; - TPermissions Permissions; - }; - - struct TEvModifyConnectionResponse : NActors::TEventLocal<TEvModifyConnectionResponse, EvModifyConnectionResponse> { - explicit TEvModifyConnectionResponse(const YandexQuery::ModifyConnectionResult& result, - const TAuditDetails<YandexQuery::Connection>& auditDetails) - : Result(result) - , AuditDetails(auditDetails) - { - } - - explicit TEvModifyConnectionResponse(const NYql::TIssues& issues) - : Issues(issues) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Result.ByteSizeLong() - + AuditDetails.GetByteSize() - + GetIssuesByteSize(Issues) - + GetDebugInfoByteSize(DebugInfo); - } - - YandexQuery::ModifyConnectionResult Result; - TAuditDetails<YandexQuery::Connection> AuditDetails; - NYql::TIssues Issues; - TDebugInfoPtr DebugInfo; - }; - - struct TEvDeleteConnectionRequest : NActors::TEventLocal<TEvDeleteConnectionRequest, EvDeleteConnectionRequest> { - explicit TEvDeleteConnectionRequest(const TString& scope, - const YandexQuery::DeleteConnectionRequest& request, - const TString& user, - const TString& token, - const TString& cloudId, - TPermissions permissions) - : Scope(scope) - , Request(request) - , User(user) - , Token(token) - , CloudId(cloudId) - , Permissions(permissions) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Scope.Size() - + Request.ByteSizeLong() - + User.Size() - + Token.Size() - + CloudId.Size(); - } - - TString Scope; - YandexQuery::DeleteConnectionRequest Request; - TString User; - TString Token; - TString CloudId; - TPermissions Permissions; - }; - - struct TEvDeleteConnectionResponse : NActors::TEventLocal<TEvDeleteConnectionResponse, EvDeleteConnectionResponse> { - explicit TEvDeleteConnectionResponse(const YandexQuery::DeleteConnectionResult& result, - const TAuditDetails<YandexQuery::Connection>& auditDetails) - : Result(result) + template<typename ProtoMessage, typename AuditMessage, ui32 EventType> + struct TControlPlaneAuditableResponse : TControlPlaneResponse<TControlPlaneAuditableResponse<ProtoMessage, AuditMessage, EventType>, ProtoMessage, EventType> { + explicit TControlPlaneAuditableResponse(const ProtoMessage& result, + const TAuditDetails<AuditMessage>& auditDetails) + : TControlPlaneResponse<TControlPlaneAuditableResponse<ProtoMessage, AuditMessage, EventType>, ProtoMessage, EventType>(result) , AuditDetails(auditDetails) { } - explicit TEvDeleteConnectionResponse(const NYql::TIssues& issues) - : Issues(issues) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Result.ByteSizeLong() - + AuditDetails.GetByteSize() - + GetIssuesByteSize(Issues) - + GetDebugInfoByteSize(DebugInfo); - } - - YandexQuery::DeleteConnectionResult Result; - TAuditDetails<YandexQuery::Connection> AuditDetails; - NYql::TIssues Issues; - TDebugInfoPtr DebugInfo; - }; - - struct TEvCreateBindingRequest : NActors::TEventLocal<TEvCreateBindingRequest, EvCreateBindingRequest> { - explicit TEvCreateBindingRequest(const TString& scope, - const YandexQuery::CreateBindingRequest& request, - const TString& user, - const TString& token, - const TString& cloudId, - TPermissions permissions) - : Scope(scope) - , Request(request) - , User(user) - , Token(token) - , CloudId(cloudId) - , Permissions(permissions) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Scope.Size() - + Request.ByteSizeLong() - + User.Size() - + Token.Size() - + CloudId.Size(); - } - - TString Scope; - YandexQuery::CreateBindingRequest Request; - TString User; - TString Token; - TString CloudId; - TPermissions Permissions; - }; - - struct TEvCreateBindingResponse : NActors::TEventLocal<TEvCreateBindingResponse, EvCreateBindingResponse> { - explicit TEvCreateBindingResponse(const YandexQuery::CreateBindingResult& result, - const TAuditDetails<YandexQuery::Binding>& auditDetails) - : Result(result) - , AuditDetails(auditDetails) - { - } - - explicit TEvCreateBindingResponse(const NYql::TIssues& issues) - : Issues(issues) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Result.ByteSizeLong() - + AuditDetails.GetByteSize() - + GetIssuesByteSize(Issues) - + GetDebugInfoByteSize(DebugInfo); - } - - YandexQuery::CreateBindingResult Result; - TAuditDetails<YandexQuery::Binding> AuditDetails; - NYql::TIssues Issues; - TDebugInfoPtr DebugInfo; - }; - - struct TEvListBindingsRequest : NActors::TEventLocal<TEvListBindingsRequest, EvListBindingsRequest> { - explicit TEvListBindingsRequest(const TString& scope, - const YandexQuery::ListBindingsRequest& request, - const TString& user, - const TString& token, - const TString& cloudId, - TPermissions permissions) - : Scope(scope) - , Request(request) - , User(user) - , Token(token) - , CloudId(cloudId) - , Permissions(permissions) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Scope.Size() - + Request.ByteSizeLong() - + User.Size() - + Token.Size() - + CloudId.Size(); - } - - TString Scope; - YandexQuery::ListBindingsRequest Request; - TString User; - TString Token; - TString CloudId; - TPermissions Permissions; - }; - - struct TEvListBindingsResponse : NActors::TEventLocal<TEvListBindingsResponse, EvListBindingsResponse> { - explicit TEvListBindingsResponse(const YandexQuery::ListBindingsResult& result) - : Result(result) - { - } - - explicit TEvListBindingsResponse(const NYql::TIssues& issues) - : Issues(issues) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Result.ByteSizeLong() - + GetIssuesByteSize(Issues) - + GetDebugInfoByteSize(DebugInfo); - } - - YandexQuery::ListBindingsResult Result; - NYql::TIssues Issues; - TDebugInfoPtr DebugInfo; - }; - - struct TEvDescribeBindingRequest : NActors::TEventLocal<TEvDescribeBindingRequest, EvDescribeBindingRequest> { - explicit TEvDescribeBindingRequest(const TString& scope, - const YandexQuery::DescribeBindingRequest& request, - const TString& user, - const TString& token, - const TString& cloudId, - TPermissions permissions) - : Scope(scope) - , Request(request) - , User(user) - , Token(token) - , CloudId(cloudId) - , Permissions(permissions) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Scope.Size() - + Request.ByteSizeLong() - + User.Size() - + Token.Size() - + CloudId.Size(); - } - - TString Scope; - YandexQuery::DescribeBindingRequest Request; - TString User; - TString Token; - TString CloudId; - TPermissions Permissions; - }; - - struct TEvDescribeBindingResponse : NActors::TEventLocal<TEvDescribeBindingResponse, EvDescribeBindingResponse> { - explicit TEvDescribeBindingResponse(const YandexQuery::DescribeBindingResult& result) - : Result(result) - { - } - - explicit TEvDescribeBindingResponse(const NYql::TIssues& issues) - : Issues(issues) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Result.ByteSizeLong() - + GetIssuesByteSize(Issues) - + GetDebugInfoByteSize(DebugInfo); - } - - YandexQuery::DescribeBindingResult Result; - NYql::TIssues Issues; - TDebugInfoPtr DebugInfo; - }; - - struct TEvModifyBindingRequest : NActors::TEventLocal<TEvModifyBindingRequest, EvModifyBindingRequest> { - explicit TEvModifyBindingRequest(const TString& scope, - const YandexQuery::ModifyBindingRequest& request, - const TString& user, - const TString& token, - const TString& cloudId, - TPermissions permissions) - : Scope(scope) - , Request(request) - , User(user) - , Token(token) - , CloudId(cloudId) - , Permissions(permissions) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Scope.Size() - + Request.ByteSizeLong() - + User.Size() - + Token.Size() - + CloudId.Size(); - } - - TString Scope; - YandexQuery::ModifyBindingRequest Request; - TString User; - TString Token; - TString CloudId; - TPermissions Permissions; - }; - - struct TEvModifyBindingResponse : NActors::TEventLocal<TEvModifyBindingResponse, EvModifyBindingResponse> { - explicit TEvModifyBindingResponse(const YandexQuery::ModifyBindingResult& result, - const TAuditDetails<YandexQuery::Binding>& auditDetails) - : Result(result) - , AuditDetails(auditDetails) - { - } - - explicit TEvModifyBindingResponse(const NYql::TIssues& issues) - : Issues(issues) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Result.ByteSizeLong() - + AuditDetails.GetByteSize() - + GetIssuesByteSize(Issues) - + GetDebugInfoByteSize(DebugInfo); - } - - YandexQuery::ModifyBindingResult Result; - TAuditDetails<YandexQuery::Binding> AuditDetails; - NYql::TIssues Issues; - TDebugInfoPtr DebugInfo; - }; - - struct TEvDeleteBindingRequest : NActors::TEventLocal<TEvDeleteBindingRequest, EvDeleteBindingRequest> { - explicit TEvDeleteBindingRequest(const TString& scope, - const YandexQuery::DeleteBindingRequest& request, - const TString& user, - const TString& token, - const TString& cloudId, - TPermissions permissions) - : Scope(scope) - , Request(request) - , User(user) - , Token(token) - , CloudId(cloudId) - , Permissions(permissions) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Scope.Size() - + Request.ByteSizeLong() - + User.Size() - + Token.Size() - + CloudId.Size(); - } - - TString Scope; - YandexQuery::DeleteBindingRequest Request; - TString User; - TString Token; - TString CloudId; - TPermissions Permissions; - }; - - struct TEvDeleteBindingResponse : NActors::TEventLocal<TEvDeleteBindingResponse, EvDeleteBindingResponse> { - explicit TEvDeleteBindingResponse(const YandexQuery::DeleteBindingResult& result, - const TAuditDetails<YandexQuery::Binding>& auditDetails) - : Result(result) - , AuditDetails(auditDetails) - { - } - - explicit TEvDeleteBindingResponse(const NYql::TIssues& issues) - : Issues(issues) - { - } - - size_t GetByteSize() const { - return sizeof(*this) - + Result.ByteSizeLong() - + AuditDetails.GetByteSize() - + GetIssuesByteSize(Issues) - + GetDebugInfoByteSize(DebugInfo); - } - - YandexQuery::DeleteBindingResult Result; - TAuditDetails<YandexQuery::Binding> AuditDetails; - NYql::TIssues Issues; - TDebugInfoPtr DebugInfo; - }; + explicit TControlPlaneAuditableResponse(const NYql::TIssues& issues) + : TControlPlaneResponse<TControlPlaneAuditableResponse<ProtoMessage, AuditMessage, EventType>, ProtoMessage, EventType>(issues) + { + } + + size_t GetByteSize() const { + return TControlPlaneResponse<TControlPlaneAuditableResponse<ProtoMessage, AuditMessage, EventType>, ProtoMessage, EventType>::GetByteSize() + + AuditDetails.GetByteSize(); + } + + TAuditDetails<AuditMessage> AuditDetails; + }; + + using TEvCreateQueryRequest = TControlPlaneRequest<YandexQuery::CreateQueryRequest, EvCreateQueryRequest>; + using TEvCreateQueryResponse = TControlPlaneAuditableResponse<YandexQuery::CreateQueryResult, YandexQuery::Query, EvCreateQueryResponse>; + using TEvListQueriesRequest = TControlPlaneRequest<YandexQuery::ListQueriesRequest, EvListQueriesRequest>; + using TEvListQueriesResponse = TControlPlaneNonAuditableResponse<YandexQuery::ListQueriesResult, EvListQueriesResponse>; + using TEvDescribeQueryRequest = TControlPlaneRequest<YandexQuery::DescribeQueryRequest, EvDescribeQueryRequest>; + using TEvDescribeQueryResponse = TControlPlaneNonAuditableResponse<YandexQuery::DescribeQueryResult, EvDescribeQueryResponse>; + using TEvGetQueryStatusRequest = TControlPlaneRequest<YandexQuery::GetQueryStatusRequest, EvGetQueryStatusRequest>; + using TEvGetQueryStatusResponse = TControlPlaneNonAuditableResponse<YandexQuery::GetQueryStatusResult, EvGetQueryStatusResponse>; + using TEvModifyQueryRequest = TControlPlaneRequest<YandexQuery::ModifyQueryRequest, EvModifyQueryRequest>; + using TEvModifyQueryResponse = TControlPlaneAuditableResponse<YandexQuery::ModifyQueryResult, YandexQuery::Query, EvModifyQueryResponse>; + using TEvDeleteQueryRequest = TControlPlaneRequest<YandexQuery::DeleteQueryRequest, EvDeleteQueryRequest>; + using TEvDeleteQueryResponse = TControlPlaneAuditableResponse<YandexQuery::DeleteQueryResult, YandexQuery::Query, EvDeleteQueryResponse>; + using TEvControlQueryRequest = TControlPlaneRequest<YandexQuery::ControlQueryRequest, EvControlQueryRequest>; + using TEvControlQueryResponse = TControlPlaneAuditableResponse<YandexQuery::ControlQueryResult, YandexQuery::Query, EvControlQueryResponse>; + using TEvGetResultDataRequest = TControlPlaneRequest<YandexQuery::GetResultDataRequest, EvGetResultDataRequest>; + using TEvGetResultDataResponse = TControlPlaneNonAuditableResponse<YandexQuery::GetResultDataResult, EvGetResultDataResponse>; + using TEvListJobsRequest = TControlPlaneRequest<YandexQuery::ListJobsRequest, EvListJobsRequest>; + using TEvListJobsResponse = TControlPlaneNonAuditableResponse<YandexQuery::ListJobsResult, EvListJobsResponse>; + using TEvDescribeJobRequest = TControlPlaneRequest<YandexQuery::DescribeJobRequest, EvDescribeJobRequest>; + using TEvDescribeJobResponse = TControlPlaneNonAuditableResponse<YandexQuery::DescribeJobResult, EvDescribeJobResponse>; + using TEvCreateConnectionRequest = TControlPlaneRequest<YandexQuery::CreateConnectionRequest, EvCreateConnectionRequest>; + using TEvCreateConnectionResponse = TControlPlaneAuditableResponse<YandexQuery::CreateConnectionResult, YandexQuery::Connection, EvCreateConnectionResponse>; + using TEvListConnectionsRequest = TControlPlaneRequest<YandexQuery::ListConnectionsRequest, EvListConnectionsRequest>; + using TEvListConnectionsResponse = TControlPlaneNonAuditableResponse<YandexQuery::ListConnectionsResult, EvListConnectionsResponse>; + using TEvDescribeConnectionRequest = TControlPlaneRequest<YandexQuery::DescribeConnectionRequest, EvDescribeConnectionRequest>; + using TEvDescribeConnectionResponse = TControlPlaneNonAuditableResponse<YandexQuery::DescribeConnectionResult, EvDescribeConnectionResponse>; + using TEvModifyConnectionRequest = TControlPlaneRequest<YandexQuery::ModifyConnectionRequest, EvModifyConnectionRequest>; + using TEvModifyConnectionResponse = TControlPlaneAuditableResponse<YandexQuery::ModifyConnectionResult, YandexQuery::Connection, EvModifyConnectionResponse>; + using TEvDeleteConnectionRequest = TControlPlaneRequest<YandexQuery::DeleteConnectionRequest, EvDeleteConnectionRequest>; + using TEvDeleteConnectionResponse = TControlPlaneAuditableResponse<YandexQuery::DeleteConnectionResult, YandexQuery::Connection, EvDeleteConnectionResponse>; + using TEvCreateBindingRequest = TControlPlaneRequest<YandexQuery::CreateBindingRequest, EvCreateBindingRequest>; + using TEvCreateBindingResponse = TControlPlaneAuditableResponse<YandexQuery::CreateBindingResult, YandexQuery::Binding, EvCreateBindingResponse>; + using TEvListBindingsRequest = TControlPlaneRequest<YandexQuery::ListBindingsRequest, EvListBindingsRequest>; + using TEvListBindingsResponse = TControlPlaneNonAuditableResponse<YandexQuery::ListBindingsResult, EvListBindingsResponse>; + using TEvDescribeBindingRequest = TControlPlaneRequest<YandexQuery::DescribeBindingRequest, EvDescribeBindingRequest>; + using TEvDescribeBindingResponse = TControlPlaneNonAuditableResponse<YandexQuery::DescribeBindingResult, EvDescribeBindingResponse>; + using TEvModifyBindingRequest = TControlPlaneRequest<YandexQuery::ModifyBindingRequest, EvModifyBindingRequest>; + using TEvModifyBindingResponse = TControlPlaneAuditableResponse<YandexQuery::ModifyBindingResult, YandexQuery::Binding, EvModifyBindingResponse>; + using TEvDeleteBindingRequest = TControlPlaneRequest<YandexQuery::DeleteBindingRequest, EvDeleteBindingRequest>; + using TEvDeleteBindingResponse = TControlPlaneAuditableResponse<YandexQuery::DeleteBindingResult, YandexQuery::Binding, EvDeleteBindingResponse>; // internal messages struct TEvWriteResultDataRequest : NActors::TEventLocal<TEvWriteResultDataRequest, EvWriteResultDataRequest> { |