raw_client.h 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348
  1. #pragma once
  2. #include <yt/cpp/mapreduce/http/context.h>
  3. #include <yt/cpp/mapreduce/interface/client.h>
  4. #include <yt/cpp/mapreduce/interface/client_method_options.h>
  5. #include <yt/cpp/mapreduce/interface/raw_client.h>
  6. namespace NYT::NDetail {
  7. ////////////////////////////////////////////////////////////////////////////////
  8. class THttpRawClient
  9. : public IRawClient
  10. {
  11. public:
  12. THttpRawClient(const TClientContext& context);
  13. // Cypress
  14. TNode Get(
  15. const TTransactionId& transactionId,
  16. const TYPath& path,
  17. const TGetOptions& options = {}) override;
  18. TNode TryGet(
  19. const TTransactionId& transactionId,
  20. const TYPath& path,
  21. const TGetOptions& options) override;
  22. void Set(
  23. TMutationId& mutationId,
  24. const TTransactionId& transactionId,
  25. const TYPath& path,
  26. const TNode& value,
  27. const TSetOptions& options = {}) override;
  28. bool Exists(
  29. const TTransactionId& transactionId,
  30. const TYPath& path,
  31. const TExistsOptions& options = {}) override;
  32. void MultisetAttributes(
  33. TMutationId& mutationId,
  34. const TTransactionId& transactionId,
  35. const TYPath& path,
  36. const TNode::TMapType& value,
  37. const TMultisetAttributesOptions& options = {}) override;
  38. TNodeId Create(
  39. TMutationId& mutatatonId,
  40. const TTransactionId& transactionId,
  41. const TYPath& path,
  42. const ENodeType& type,
  43. const TCreateOptions& options = {}) override;
  44. TNodeId CopyWithoutRetries(
  45. const TTransactionId& transactionId,
  46. const TYPath& sourcePath,
  47. const TYPath& destinationPath,
  48. const TCopyOptions& options = {}) override;
  49. TNodeId CopyInsideMasterCell(
  50. TMutationId& mutationId,
  51. const TTransactionId& transactionId,
  52. const TYPath& sourcePath,
  53. const TYPath& destinationPath,
  54. const TCopyOptions& options = {}) override;
  55. TNodeId MoveWithoutRetries(
  56. const TTransactionId& transactionId,
  57. const TYPath& sourcePath,
  58. const TYPath& destinationPath,
  59. const TMoveOptions& options = {}) override;
  60. TNodeId MoveInsideMasterCell(
  61. TMutationId& mutationId,
  62. const TTransactionId& transactionId,
  63. const TYPath& sourcePath,
  64. const TYPath& destinationPath,
  65. const TMoveOptions& options = {}) override;
  66. void Remove(
  67. TMutationId& mutationId,
  68. const TTransactionId& transactionId,
  69. const TYPath& path,
  70. const TRemoveOptions& options = {}) override;
  71. TNode::TListType List(
  72. const TTransactionId& transactionId,
  73. const TYPath& path,
  74. const TListOptions& options = {}) override;
  75. TNodeId Link(
  76. TMutationId& mutationId,
  77. const TTransactionId& transactionId,
  78. const TYPath& targetPath,
  79. const TYPath& linkPath,
  80. const TLinkOptions& options = {}) override;
  81. TLockId Lock(
  82. TMutationId& mutationId,
  83. const TTransactionId& transactionId,
  84. const TYPath& path,
  85. ELockMode mode,
  86. const TLockOptions& options = {}) override;
  87. void Unlock(
  88. TMutationId& mutationId,
  89. const TTransactionId& transactionId,
  90. const TYPath& path,
  91. const TUnlockOptions& options = {}) override;
  92. void Concatenate(
  93. const TTransactionId& transactionId,
  94. const TVector<TRichYPath>& sourcePaths,
  95. const TRichYPath& destinationPath,
  96. const TConcatenateOptions& options = {}) override;
  97. // Transactions
  98. TTransactionId StartTransaction(
  99. TMutationId& mutationId,
  100. const TTransactionId& parentId,
  101. const TStartTransactionOptions& options = {}) override;
  102. void PingTransaction(const TTransactionId& transactionId) override;
  103. void AbortTransaction(
  104. TMutationId& mutationId,
  105. const TTransactionId& transactionId) override;
  106. void CommitTransaction(
  107. TMutationId& mutationId,
  108. const TTransactionId& transactionId) override;
  109. // Operations
  110. TOperationId StartOperation(
  111. TMutationId& mutationId,
  112. const TTransactionId& transactionId,
  113. EOperationType type,
  114. const TNode& spec) override;
  115. TOperationAttributes GetOperation(
  116. const TOperationId& operationId,
  117. const TGetOperationOptions& options = {}) override;
  118. TOperationAttributes GetOperation(
  119. const TString& operationId,
  120. const TGetOperationOptions& options = {}) override;
  121. void AbortOperation(
  122. TMutationId& mutationId,
  123. const TOperationId& operationId) override;
  124. void CompleteOperation(
  125. TMutationId& mutationId,
  126. const TOperationId& operationId) override;
  127. void SuspendOperation(
  128. TMutationId& mutationId,
  129. const TOperationId& operationId,
  130. const TSuspendOperationOptions& options = {}) override;
  131. void ResumeOperation(
  132. TMutationId& mutationId,
  133. const TOperationId& operationId,
  134. const TResumeOperationOptions& options = {}) override;
  135. TListOperationsResult ListOperations(const TListOperationsOptions& options = {}) override;
  136. void UpdateOperationParameters(
  137. const TOperationId& operationId,
  138. const TUpdateOperationParametersOptions& options = {}) override;
  139. // Jobs
  140. NYson::TYsonString GetJob(
  141. const TOperationId& operationId,
  142. const TJobId& jobId,
  143. const TGetJobOptions& options = {}) override;
  144. TListJobsResult ListJobs(
  145. const TOperationId& operationId,
  146. const TListJobsOptions& options = {}) override;
  147. IFileReaderPtr GetJobInput(
  148. const TJobId& jobId,
  149. const TGetJobInputOptions& options = {}) override;
  150. IFileReaderPtr GetJobFailContext(
  151. const TOperationId& operationId,
  152. const TJobId& jobId,
  153. const TGetJobFailContextOptions& options = {}) override;
  154. IFileReaderPtr GetJobStderr(
  155. const TOperationId& operationId,
  156. const TJobId& jobId,
  157. const TGetJobStderrOptions& options = {}) override;
  158. std::vector<TJobTraceEvent> GetJobTrace(
  159. const TOperationId& operationId,
  160. const TGetJobTraceOptions& options = {}) override;
  161. // Files
  162. std::unique_ptr<IInputStream> ReadFile(
  163. const TTransactionId& transactionId,
  164. const TRichYPath& path,
  165. const TFileReaderOptions& options = {}) override;
  166. // File cache
  167. TMaybe<TYPath> GetFileFromCache(
  168. const TTransactionId& transactionId,
  169. const TString& md5Signature,
  170. const TYPath& cachePath,
  171. const TGetFileFromCacheOptions& options = {}) override;
  172. TYPath PutFileToCache(
  173. const TTransactionId& transactionId,
  174. const TYPath& filePath,
  175. const TString& md5Signature,
  176. const TYPath& cachePath,
  177. const TPutFileToCacheOptions& options = {}) override;
  178. // Tables
  179. void MountTable(
  180. TMutationId& mutationId,
  181. const TYPath& path,
  182. const TMountTableOptions& options = {}) override;
  183. void UnmountTable(
  184. TMutationId& mutationId,
  185. const TYPath& path,
  186. const TUnmountTableOptions& options = {}) override;
  187. void RemountTable(
  188. TMutationId& mutationId,
  189. const TYPath& path,
  190. const TRemountTableOptions& options = {}) override;
  191. void ReshardTableByPivotKeys(
  192. TMutationId& mutationId,
  193. const TYPath& path,
  194. const TVector<TKey>& keys,
  195. const TReshardTableOptions& options = {}) override;
  196. void ReshardTableByTabletCount(
  197. TMutationId& mutationId,
  198. const TYPath& path,
  199. i64 tabletCount,
  200. const TReshardTableOptions& options = {}) override;
  201. void InsertRows(
  202. const TYPath& path,
  203. const TNode::TListType& rows,
  204. const TInsertRowsOptions& options = {}) override;
  205. void TrimRows(
  206. const TYPath& path,
  207. i64 tabletIndex,
  208. i64 rowCount,
  209. const TTrimRowsOptions& options = {}) override;
  210. TNode::TListType LookupRows(
  211. const TYPath& path,
  212. const TNode::TListType& keys,
  213. const TLookupRowsOptions& options = {}) override;
  214. TNode::TListType SelectRows(
  215. const TString& query,
  216. const TSelectRowsOptions& options = {}) override;
  217. std::unique_ptr<IInputStream> ReadTable(
  218. const TTransactionId& transactionId,
  219. const TRichYPath& path,
  220. const TMaybe<TFormat>& format,
  221. const TTableReaderOptions& options = {}) override;
  222. std::unique_ptr<IInputStream> ReadBlobTable(
  223. const TTransactionId& transactionId,
  224. const TRichYPath& path,
  225. const TKey& key,
  226. const TBlobTableReaderOptions& options = {}) override;
  227. void AlterTable(
  228. TMutationId& mutationId,
  229. const TTransactionId& transactionId,
  230. const TYPath& path,
  231. const TAlterTableOptions& options = {}) override;
  232. void AlterTableReplica(
  233. TMutationId& mutationId,
  234. const TReplicaId& replicaId,
  235. const TAlterTableReplicaOptions& options = {}) override;
  236. void DeleteRows(
  237. const TYPath& path,
  238. const TNode::TListType& keys,
  239. const TDeleteRowsOptions& options = {}) override;
  240. void FreezeTable(
  241. const TYPath& path,
  242. const TFreezeTableOptions& options = {}) override;
  243. void UnfreezeTable(
  244. const TYPath& path,
  245. const TUnfreezeTableOptions& options = {}) override;
  246. // Misc
  247. TCheckPermissionResponse CheckPermission(
  248. const TString& user,
  249. EPermission permission,
  250. const TYPath& path,
  251. const TCheckPermissionOptions& options = {}) override;
  252. TVector<TTabletInfo> GetTabletInfos(
  253. const TYPath& path,
  254. const TVector<int>& tabletIndexes,
  255. const TGetTabletInfosOptions& options = {}) override;
  256. TVector<TTableColumnarStatistics> GetTableColumnarStatistics(
  257. const TTransactionId& transactionId,
  258. const TVector<TRichYPath>& paths,
  259. const TGetTableColumnarStatisticsOptions& options = {}) override;
  260. TMultiTablePartitions GetTablePartitions(
  261. const TTransactionId& transactionId,
  262. const TVector<TRichYPath>& paths,
  263. const TGetTablePartitionsOptions& options = {}) override;
  264. ui64 GenerateTimestamp() override;
  265. IRawBatchRequestPtr CreateRawBatchRequest() override;
  266. IRawClientPtr Clone() override;
  267. private:
  268. const TClientContext Context_;
  269. };
  270. ////////////////////////////////////////////////////////////////////////////////
  271. } // namespace NYT::NDetail