diff options
author | Jacob Vosmaer <jacob@gitlab.com> | 2019-07-05 12:28:16 +0300 |
---|---|---|
committer | Zeger-Jan van de Weg <git@zjvandeweg.nl> | 2019-07-05 12:28:16 +0300 |
commit | b9c9aec5cf53de4ea1a7fc3b067dd56d7828e080 (patch) | |
tree | 2693a49918682c12ea22e4085b8c569ac9e62497 /proto/objectpool.proto | |
parent | 873a408c49ef1b34fce0cd47a80aa192f426d7c0 (diff) |
Start preparation for migrating .proto files
Diffstat (limited to 'proto/objectpool.proto')
-rw-r--r-- | proto/objectpool.proto | 102 |
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 {} |