Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Vosmaer <jacob@gitlab.com>2019-07-05 12:28:16 +0300
committerZeger-Jan van de Weg <git@zjvandeweg.nl>2019-07-05 12:28:16 +0300
commitb9c9aec5cf53de4ea1a7fc3b067dd56d7828e080 (patch)
tree2693a49918682c12ea22e4085b8c569ac9e62497 /proto/objectpool.proto
parent873a408c49ef1b34fce0cd47a80aa192f426d7c0 (diff)
Start preparation for migrating .proto files
Diffstat (limited to 'proto/objectpool.proto')
-rw-r--r--proto/objectpool.proto102
1 files changed, 102 insertions, 0 deletions
diff --git a/proto/objectpool.proto b/proto/objectpool.proto
new file mode 100644
index 000000000..c0aedd55b
--- /dev/null
+++ b/proto/objectpool.proto
@@ -0,0 +1,102 @@
+syntax = "proto3";
+
+package gitaly;
+
+option go_package = "gitlab.com/gitlab-org/gitaly/proto/go/gitalypb";
+
+import "shared.proto";
+
+service ObjectPoolService {
+ rpc CreateObjectPool(CreateObjectPoolRequest) returns (CreateObjectPoolResponse) {
+ option (op_type) = {
+ op: MUTATOR
+ target_repository_field: "1.1"
+ };
+ }
+ rpc DeleteObjectPool(DeleteObjectPoolRequest) returns (DeleteObjectPoolResponse) {
+ option (op_type) = {
+ op: MUTATOR
+ target_repository_field: "1.1"
+ };
+ }
+
+ // Repositories are assumed to be stored on the same disk
+ rpc LinkRepositoryToObjectPool(LinkRepositoryToObjectPoolRequest) returns (LinkRepositoryToObjectPoolResponse) {
+ option (op_type) = {
+ op: MUTATOR
+ target_repository_field: "1.1"
+ };
+ }
+ rpc UnlinkRepositoryFromObjectPool(UnlinkRepositoryFromObjectPoolRequest) returns (UnlinkRepositoryFromObjectPoolResponse) {
+ option (op_type) = {
+ op: MUTATOR
+ target_repository_field: "1"
+ };
+ }
+
+ rpc ReduplicateRepository(ReduplicateRepositoryRequest) returns (ReduplicateRepositoryResponse) {
+ option (op_type) = {
+ op: MUTATOR
+ target_repository_field: "1"
+ };
+ }
+ rpc DisconnectGitAlternates(DisconnectGitAlternatesRequest) returns (DisconnectGitAlternatesResponse) {
+ option (op_type) = {
+ op: MUTATOR
+ target_repository_field: "1"
+ };
+ }
+ rpc FetchIntoObjectPool(FetchIntoObjectPoolRequest) returns (FetchIntoObjectPoolResponse) {
+ option (op_type) = {
+ op: MUTATOR
+ target_repository_field: "1"
+ };
+ }
+}
+
+// Creates an object pool from the repository. The client is responsible for
+// joining this pool later with this repository.
+message CreateObjectPoolRequest {
+ ObjectPool object_pool = 1;
+ Repository origin = 2;
+}
+message CreateObjectPoolResponse {}
+
+// Removes the directory from disk, caller is responsible for leaving the object
+// pool before calling this RPC
+message DeleteObjectPoolRequest {
+ ObjectPool object_pool = 1;
+}
+message DeleteObjectPoolResponse {}
+
+message LinkRepositoryToObjectPoolRequest {
+ ObjectPool object_pool = 1;
+ Repository repository = 2;
+}
+message LinkRepositoryToObjectPoolResponse {}
+
+// This RPC doesn't require the ObjectPool as it will remove the alternates file
+// from the pool participant. The caller is responsible no data loss occurs.
+message UnlinkRepositoryFromObjectPoolRequest {
+ Repository repository = 1;
+ ObjectPool object_pool = 2;
+}
+message UnlinkRepositoryFromObjectPoolResponse {}
+
+message ReduplicateRepositoryRequest {
+ Repository repository = 1;
+}
+message ReduplicateRepositoryResponse {}
+
+message DisconnectGitAlternatesRequest {
+ Repository repository = 1;
+}
+
+message DisconnectGitAlternatesResponse {}
+
+message FetchIntoObjectPoolRequest {
+ Repository origin = 1;
+ ObjectPool object_pool = 2;
+ bool repack = 3;
+}
+message FetchIntoObjectPoolResponse {}