2018-05-08 16:59:43 +08:00
|
|
|
syntax = "proto3";
|
|
|
|
|
2018-05-10 14:18:02 +08:00
|
|
|
package filer_pb;
|
2018-05-08 16:59:43 +08:00
|
|
|
|
2022-07-29 15:17:28 +08:00
|
|
|
option go_package = "github.com/seaweedfs/seaweedfs/weed/pb/filer_pb";
|
2018-11-26 05:43:26 +08:00
|
|
|
option java_package = "seaweedfs.client";
|
|
|
|
option java_outer_classname = "FilerProto";
|
|
|
|
|
2018-05-08 16:59:43 +08:00
|
|
|
//////////////////////////////////////////////////
|
|
|
|
|
|
|
|
service SeaweedFiler {
|
|
|
|
|
|
|
|
rpc LookupDirectoryEntry (LookupDirectoryEntryRequest) returns (LookupDirectoryEntryResponse) {
|
|
|
|
}
|
|
|
|
|
2019-12-13 16:22:37 +08:00
|
|
|
rpc ListEntries (ListEntriesRequest) returns (stream ListEntriesResponse) {
|
2018-05-08 16:59:43 +08:00
|
|
|
}
|
|
|
|
|
2018-05-16 15:08:44 +08:00
|
|
|
rpc CreateEntry (CreateEntryRequest) returns (CreateEntryResponse) {
|
|
|
|
}
|
|
|
|
|
2018-05-22 18:26:38 +08:00
|
|
|
rpc UpdateEntry (UpdateEntryRequest) returns (UpdateEntryResponse) {
|
2018-05-16 15:08:44 +08:00
|
|
|
}
|
|
|
|
|
2020-04-17 17:28:09 +08:00
|
|
|
rpc AppendToEntry (AppendToEntryRequest) returns (AppendToEntryResponse) {
|
|
|
|
}
|
|
|
|
|
2018-05-08 16:59:43 +08:00
|
|
|
rpc DeleteEntry (DeleteEntryRequest) returns (DeleteEntryResponse) {
|
|
|
|
}
|
|
|
|
|
2019-03-31 14:08:29 +08:00
|
|
|
rpc AtomicRenameEntry (AtomicRenameEntryRequest) returns (AtomicRenameEntryResponse) {
|
|
|
|
}
|
2021-10-17 19:22:42 +08:00
|
|
|
rpc StreamRenameEntry (StreamRenameEntryRequest) returns (stream StreamRenameEntryResponse) {
|
|
|
|
}
|
2019-03-31 14:08:29 +08:00
|
|
|
|
2018-05-16 15:08:44 +08:00
|
|
|
rpc AssignVolume (AssignVolumeRequest) returns (AssignVolumeResponse) {
|
|
|
|
}
|
|
|
|
|
2018-05-24 16:22:37 +08:00
|
|
|
rpc LookupVolume (LookupVolumeRequest) returns (LookupVolumeResponse) {
|
|
|
|
}
|
|
|
|
|
2020-10-16 01:52:17 +08:00
|
|
|
rpc CollectionList (CollectionListRequest) returns (CollectionListResponse) {
|
|
|
|
}
|
|
|
|
|
2018-07-20 15:10:01 +08:00
|
|
|
rpc DeleteCollection (DeleteCollectionRequest) returns (DeleteCollectionResponse) {
|
|
|
|
}
|
|
|
|
|
2018-11-23 16:24:51 +08:00
|
|
|
rpc Statistics (StatisticsRequest) returns (StatisticsResponse) {
|
|
|
|
}
|
|
|
|
|
2022-04-02 07:44:58 +08:00
|
|
|
rpc Ping (PingRequest) returns (PingResponse) {
|
|
|
|
}
|
|
|
|
|
2019-06-23 16:57:35 +08:00
|
|
|
rpc GetFilerConfiguration (GetFilerConfigurationRequest) returns (GetFilerConfigurationResponse) {
|
|
|
|
}
|
|
|
|
|
2020-04-13 12:00:55 +08:00
|
|
|
rpc SubscribeMetadata (SubscribeMetadataRequest) returns (stream SubscribeMetadataResponse) {
|
2020-03-30 16:19:33 +08:00
|
|
|
}
|
|
|
|
|
2020-07-06 06:50:07 +08:00
|
|
|
rpc SubscribeLocalMetadata (SubscribeMetadataRequest) returns (stream SubscribeMetadataResponse) {
|
|
|
|
}
|
|
|
|
|
2020-09-10 02:21:23 +08:00
|
|
|
rpc KvGet (KvGetRequest) returns (KvGetResponse) {
|
|
|
|
}
|
|
|
|
|
|
|
|
rpc KvPut (KvPutRequest) returns (KvPutResponse) {
|
|
|
|
}
|
|
|
|
|
2021-10-31 10:27:25 +08:00
|
|
|
rpc CacheRemoteObjectToLocalCluster (CacheRemoteObjectToLocalClusterRequest) returns (CacheRemoteObjectToLocalClusterResponse) {
|
2021-08-10 05:35:18 +08:00
|
|
|
}
|
2023-06-25 15:58:21 +08:00
|
|
|
|
2023-09-17 06:05:38 +08:00
|
|
|
rpc DistributedLock(LockRequest) returns (LockResponse) {
|
2023-06-25 15:58:21 +08:00
|
|
|
}
|
2023-09-17 06:05:38 +08:00
|
|
|
rpc DistributedUnlock(UnlockRequest) returns (UnlockResponse) {
|
2023-06-25 15:58:21 +08:00
|
|
|
}
|
2023-09-17 06:05:38 +08:00
|
|
|
rpc FindLockOwner(FindLockOwnerRequest) returns (FindLockOwnerResponse) {
|
|
|
|
}
|
|
|
|
// distributed lock management internal use only
|
2023-06-25 15:58:21 +08:00
|
|
|
rpc TransferLocks(TransferLocksRequest) returns (TransferLocksResponse) {
|
|
|
|
}
|
2018-05-08 16:59:43 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////
|
|
|
|
|
|
|
|
message LookupDirectoryEntryRequest {
|
|
|
|
string directory = 1;
|
|
|
|
string name = 2;
|
|
|
|
}
|
|
|
|
|
|
|
|
message LookupDirectoryEntryResponse {
|
|
|
|
Entry entry = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
message ListEntriesRequest {
|
|
|
|
string directory = 1;
|
2018-07-22 16:14:36 +08:00
|
|
|
string prefix = 2;
|
|
|
|
string startFromFileName = 3;
|
|
|
|
bool inclusiveStartFrom = 4;
|
|
|
|
uint32 limit = 5;
|
2018-05-08 16:59:43 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
message ListEntriesResponse {
|
2019-12-13 16:22:37 +08:00
|
|
|
Entry entry = 1;
|
2018-05-08 16:59:43 +08:00
|
|
|
}
|
|
|
|
|
2021-07-27 13:53:44 +08:00
|
|
|
message RemoteEntry {
|
2021-08-10 05:35:18 +08:00
|
|
|
string storage_name = 1;
|
2021-08-15 12:46:34 +08:00
|
|
|
int64 last_local_sync_ts_ns = 2;
|
2021-08-10 05:35:18 +08:00
|
|
|
string remote_e_tag = 3;
|
|
|
|
int64 remote_mtime = 4;
|
|
|
|
int64 remote_size = 5;
|
2021-07-27 13:53:44 +08:00
|
|
|
}
|
2018-05-08 16:59:43 +08:00
|
|
|
message Entry {
|
|
|
|
string name = 1;
|
|
|
|
bool is_directory = 2;
|
2018-05-16 15:08:44 +08:00
|
|
|
repeated FileChunk chunks = 3;
|
2018-05-08 16:59:43 +08:00
|
|
|
FuseAttributes attributes = 4;
|
2018-09-08 04:12:52 +08:00
|
|
|
map<string, bytes> extended = 5;
|
2020-09-25 02:11:42 +08:00
|
|
|
bytes hard_link_id = 7;
|
2020-09-24 18:06:44 +08:00
|
|
|
int32 hard_link_counter = 8; // only exists in hard link meta data
|
2020-11-30 20:34:04 +08:00
|
|
|
bytes content = 9; // if not empty, the file content
|
2021-07-19 16:12:31 +08:00
|
|
|
|
2021-07-27 13:53:44 +08:00
|
|
|
RemoteEntry remote_entry = 10;
|
2022-01-21 16:55:04 +08:00
|
|
|
int64 quota = 11; // for bucket only. Positive/Negative means enabled/disabled.
|
2018-05-08 16:59:43 +08:00
|
|
|
}
|
|
|
|
|
2019-04-16 15:44:31 +08:00
|
|
|
message FullEntry {
|
|
|
|
string dir = 1;
|
|
|
|
Entry entry = 2;
|
|
|
|
}
|
|
|
|
|
2018-08-13 16:20:49 +08:00
|
|
|
message EventNotification {
|
2018-09-17 15:27:56 +08:00
|
|
|
Entry old_entry = 1;
|
|
|
|
Entry new_entry = 2;
|
|
|
|
bool delete_chunks = 3;
|
2019-04-16 15:44:31 +08:00
|
|
|
string new_parent_path = 4;
|
2020-07-01 23:06:20 +08:00
|
|
|
bool is_from_other_cluster = 5;
|
2020-08-29 14:48:48 +08:00
|
|
|
repeated int32 signatures = 6;
|
2018-08-13 16:20:49 +08:00
|
|
|
}
|
|
|
|
|
2018-05-16 15:08:44 +08:00
|
|
|
message FileChunk {
|
2019-05-17 17:03:23 +08:00
|
|
|
string file_id = 1; // to be deprecated
|
2018-05-16 15:08:44 +08:00
|
|
|
int64 offset = 2;
|
|
|
|
uint64 size = 3;
|
2022-10-29 03:53:19 +08:00
|
|
|
int64 modified_ts_ns = 4;
|
2018-09-10 07:25:43 +08:00
|
|
|
string e_tag = 5;
|
2019-05-17 17:03:23 +08:00
|
|
|
string source_file_id = 6; // to be deprecated
|
|
|
|
FileId fid = 7;
|
|
|
|
FileId source_fid = 8;
|
2020-03-06 16:49:47 +08:00
|
|
|
bytes cipher_key = 9;
|
2020-06-20 23:15:49 +08:00
|
|
|
bool is_compressed = 10;
|
2020-07-16 05:19:15 +08:00
|
|
|
bool is_chunk_manifest = 11; // content is a list of FileChunks
|
|
|
|
}
|
|
|
|
|
|
|
|
message FileChunkManifest {
|
|
|
|
repeated FileChunk chunks = 1;
|
2019-05-17 17:03:23 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
message FileId {
|
|
|
|
uint32 volume_id = 1;
|
|
|
|
uint64 file_key = 2;
|
|
|
|
fixed32 cookie = 3;
|
2018-05-16 15:08:44 +08:00
|
|
|
}
|
|
|
|
|
2018-05-08 16:59:43 +08:00
|
|
|
message FuseAttributes {
|
|
|
|
uint64 file_size = 1;
|
2018-11-26 05:43:26 +08:00
|
|
|
int64 mtime = 2; // unix time in seconds
|
2018-05-08 16:59:43 +08:00
|
|
|
uint32 file_mode = 3;
|
|
|
|
uint32 uid = 4;
|
|
|
|
uint32 gid = 5;
|
2018-11-26 05:43:26 +08:00
|
|
|
int64 crtime = 6; // unix time in seconds
|
2018-05-31 11:24:57 +08:00
|
|
|
string mime = 7;
|
2018-06-11 07:57:32 +08:00
|
|
|
int32 ttl_sec = 10;
|
2018-11-26 05:43:26 +08:00
|
|
|
string user_name = 11; // for hdfs
|
|
|
|
repeated string group_name = 12; // for hdfs
|
2018-12-26 14:45:44 +08:00
|
|
|
string symlink_target = 13;
|
2020-04-08 23:12:00 +08:00
|
|
|
bytes md5 = 14;
|
2022-02-25 06:51:25 +08:00
|
|
|
uint32 rdev = 16;
|
2022-02-25 16:53:27 +08:00
|
|
|
uint64 inode = 17;
|
2018-05-08 16:59:43 +08:00
|
|
|
}
|
|
|
|
|
2018-05-16 15:08:44 +08:00
|
|
|
message CreateEntryRequest {
|
|
|
|
string directory = 1;
|
|
|
|
Entry entry = 2;
|
2020-01-23 03:42:40 +08:00
|
|
|
bool o_excl = 3;
|
2020-07-01 13:53:53 +08:00
|
|
|
bool is_from_other_cluster = 4;
|
2020-08-29 14:48:48 +08:00
|
|
|
repeated int32 signatures = 5;
|
2022-03-17 14:55:31 +08:00
|
|
|
bool skip_check_parent_directory = 6;
|
2018-05-16 15:08:44 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
message CreateEntryResponse {
|
2020-01-26 01:17:19 +08:00
|
|
|
string error = 1;
|
2018-05-16 15:08:44 +08:00
|
|
|
}
|
|
|
|
|
2018-05-24 16:22:37 +08:00
|
|
|
message UpdateEntryRequest {
|
|
|
|
string directory = 1;
|
|
|
|
Entry entry = 2;
|
2020-07-01 13:53:53 +08:00
|
|
|
bool is_from_other_cluster = 3;
|
2020-08-29 14:48:48 +08:00
|
|
|
repeated int32 signatures = 4;
|
2018-05-24 16:22:37 +08:00
|
|
|
}
|
|
|
|
message UpdateEntryResponse {
|
|
|
|
}
|
|
|
|
|
2020-04-17 17:28:09 +08:00
|
|
|
message AppendToEntryRequest {
|
|
|
|
string directory = 1;
|
|
|
|
string entry_name = 2;
|
|
|
|
repeated FileChunk chunks = 3;
|
|
|
|
}
|
|
|
|
message AppendToEntryResponse {
|
|
|
|
}
|
|
|
|
|
2018-05-08 16:59:43 +08:00
|
|
|
message DeleteEntryRequest {
|
|
|
|
string directory = 1;
|
|
|
|
string name = 2;
|
2018-12-11 23:17:10 +08:00
|
|
|
// bool is_directory = 3;
|
2018-06-07 13:11:01 +08:00
|
|
|
bool is_delete_data = 4;
|
2018-07-19 16:21:44 +08:00
|
|
|
bool is_recursive = 5;
|
2019-09-12 11:26:20 +08:00
|
|
|
bool ignore_recursive_error = 6;
|
2020-07-01 13:53:53 +08:00
|
|
|
bool is_from_other_cluster = 7;
|
2020-08-29 14:48:48 +08:00
|
|
|
repeated int32 signatures = 8;
|
2018-05-08 16:59:43 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
message DeleteEntryResponse {
|
2020-02-26 06:38:36 +08:00
|
|
|
string error = 1;
|
2018-05-08 16:59:43 +08:00
|
|
|
}
|
2018-05-16 15:08:44 +08:00
|
|
|
|
2019-03-31 14:08:29 +08:00
|
|
|
message AtomicRenameEntryRequest {
|
|
|
|
string old_directory = 1;
|
|
|
|
string old_name = 2;
|
|
|
|
string new_directory = 3;
|
|
|
|
string new_name = 4;
|
2021-07-01 16:19:28 +08:00
|
|
|
repeated int32 signatures = 5;
|
2019-03-31 14:08:29 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
message AtomicRenameEntryResponse {
|
|
|
|
}
|
|
|
|
|
2021-10-17 19:22:42 +08:00
|
|
|
message StreamRenameEntryRequest {
|
|
|
|
string old_directory = 1;
|
|
|
|
string old_name = 2;
|
|
|
|
string new_directory = 3;
|
|
|
|
string new_name = 4;
|
|
|
|
repeated int32 signatures = 5;
|
|
|
|
}
|
|
|
|
message StreamRenameEntryResponse {
|
|
|
|
string directory = 1;
|
|
|
|
EventNotification event_notification = 2;
|
|
|
|
int64 ts_ns = 3;
|
|
|
|
}
|
2018-05-16 15:08:44 +08:00
|
|
|
message AssignVolumeRequest {
|
|
|
|
int32 count = 1;
|
|
|
|
string collection = 2;
|
|
|
|
string replication = 3;
|
2018-06-12 14:13:33 +08:00
|
|
|
int32 ttl_sec = 4;
|
2018-07-15 04:36:28 +08:00
|
|
|
string data_center = 5;
|
2020-10-26 06:32:43 +08:00
|
|
|
string path = 6;
|
2020-10-21 08:41:39 +08:00
|
|
|
string rack = 7;
|
2021-12-22 21:57:26 +08:00
|
|
|
string data_node = 9;
|
2020-12-14 15:08:21 +08:00
|
|
|
string disk_type = 8;
|
2018-05-16 15:08:44 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
message AssignVolumeResponse {
|
|
|
|
string file_id = 1;
|
|
|
|
int32 count = 4;
|
2019-02-15 16:09:19 +08:00
|
|
|
string auth = 5;
|
2020-02-25 14:28:45 +08:00
|
|
|
string collection = 6;
|
|
|
|
string replication = 7;
|
2020-02-26 09:15:09 +08:00
|
|
|
string error = 8;
|
2021-09-13 13:47:52 +08:00
|
|
|
Location location = 9;
|
2018-05-16 15:08:44 +08:00
|
|
|
}
|
|
|
|
|
2018-05-24 16:22:37 +08:00
|
|
|
message LookupVolumeRequest {
|
|
|
|
repeated string volume_ids = 1;
|
2018-05-16 15:08:44 +08:00
|
|
|
}
|
2018-05-24 16:22:37 +08:00
|
|
|
|
|
|
|
message Locations {
|
|
|
|
repeated Location locations = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
message Location {
|
|
|
|
string url = 1;
|
|
|
|
string public_url = 2;
|
2021-09-13 13:47:52 +08:00
|
|
|
uint32 grpc_port = 3;
|
2022-08-05 08:35:00 +08:00
|
|
|
string data_center = 4;
|
2018-05-24 16:22:37 +08:00
|
|
|
}
|
|
|
|
message LookupVolumeResponse {
|
|
|
|
map<string, Locations> locations_map = 1;
|
2018-05-16 15:08:44 +08:00
|
|
|
}
|
2018-07-20 15:10:01 +08:00
|
|
|
|
2020-10-16 01:52:17 +08:00
|
|
|
message Collection {
|
|
|
|
string name = 1;
|
|
|
|
}
|
|
|
|
message CollectionListRequest {
|
|
|
|
bool include_normal_volumes = 1;
|
|
|
|
bool include_ec_volumes = 2;
|
|
|
|
}
|
|
|
|
message CollectionListResponse {
|
|
|
|
repeated Collection collections = 1;
|
|
|
|
}
|
2018-07-20 15:10:01 +08:00
|
|
|
message DeleteCollectionRequest {
|
|
|
|
string collection = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
message DeleteCollectionResponse {
|
|
|
|
}
|
2018-11-23 16:24:51 +08:00
|
|
|
|
|
|
|
message StatisticsRequest {
|
|
|
|
string replication = 1;
|
|
|
|
string collection = 2;
|
|
|
|
string ttl = 3;
|
2020-12-14 15:08:21 +08:00
|
|
|
string disk_type = 4;
|
2018-11-23 16:24:51 +08:00
|
|
|
}
|
|
|
|
message StatisticsResponse {
|
|
|
|
uint64 total_size = 4;
|
|
|
|
uint64 used_size = 5;
|
|
|
|
uint64 file_count = 6;
|
|
|
|
}
|
2019-06-23 16:57:35 +08:00
|
|
|
|
2022-04-02 07:44:58 +08:00
|
|
|
message PingRequest {
|
|
|
|
string target = 1; // default to ping itself
|
|
|
|
string target_type = 2;
|
|
|
|
}
|
|
|
|
message PingResponse {
|
2022-04-17 03:45:49 +08:00
|
|
|
int64 start_time_ns = 1;
|
|
|
|
int64 remote_time_ns = 2;
|
|
|
|
int64 stop_time_ns = 3;
|
2022-04-02 07:44:58 +08:00
|
|
|
}
|
|
|
|
|
2019-06-23 16:57:35 +08:00
|
|
|
message GetFilerConfigurationRequest {
|
|
|
|
}
|
|
|
|
message GetFilerConfigurationResponse {
|
|
|
|
repeated string masters = 1;
|
|
|
|
string replication = 2;
|
|
|
|
string collection = 3;
|
|
|
|
uint32 max_mb = 4;
|
2020-02-25 06:34:14 +08:00
|
|
|
string dir_buckets = 5;
|
2020-03-06 16:49:47 +08:00
|
|
|
bool cipher = 7;
|
2020-09-06 13:52:15 +08:00
|
|
|
int32 signature = 8;
|
2020-09-17 21:46:51 +08:00
|
|
|
string metrics_address = 9;
|
|
|
|
int32 metrics_interval_sec = 10;
|
2021-07-12 16:23:17 +08:00
|
|
|
string version = 11;
|
2021-08-30 12:02:10 +08:00
|
|
|
string cluster_id = 12;
|
2022-05-30 07:37:14 +08:00
|
|
|
string filer_group = 13;
|
2019-06-23 16:57:35 +08:00
|
|
|
}
|
2020-03-30 16:19:33 +08:00
|
|
|
|
2020-04-13 12:00:55 +08:00
|
|
|
message SubscribeMetadataRequest {
|
2020-03-30 16:19:33 +08:00
|
|
|
string client_name = 1;
|
2020-04-06 03:51:21 +08:00
|
|
|
string path_prefix = 2;
|
2020-04-05 15:51:16 +08:00
|
|
|
int64 since_ns = 3;
|
2020-08-29 14:48:48 +08:00
|
|
|
int32 signature = 4;
|
2021-09-01 14:23:08 +08:00
|
|
|
repeated string path_prefixes = 6;
|
2021-12-30 16:23:57 +08:00
|
|
|
int32 client_id = 7;
|
2022-05-31 06:04:19 +08:00
|
|
|
int64 until_ns = 8;
|
2022-07-24 01:50:28 +08:00
|
|
|
int32 client_epoch = 9;
|
2022-09-21 00:25:18 +08:00
|
|
|
repeated string directories = 10; // exact directory to watch
|
2020-03-30 16:19:33 +08:00
|
|
|
}
|
2020-04-13 12:00:55 +08:00
|
|
|
message SubscribeMetadataResponse {
|
2020-03-30 16:19:33 +08:00
|
|
|
string directory = 1;
|
|
|
|
EventNotification event_notification = 2;
|
2020-04-22 12:16:13 +08:00
|
|
|
int64 ts_ns = 3;
|
2020-03-30 16:19:33 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
message LogEntry {
|
|
|
|
int64 ts_ns = 1;
|
|
|
|
int32 partition_key_hash = 2;
|
|
|
|
bytes data = 3;
|
2024-03-08 02:53:30 +08:00
|
|
|
bytes key = 4;
|
2020-03-30 16:19:33 +08:00
|
|
|
}
|
2020-05-05 17:05:28 +08:00
|
|
|
|
2021-11-06 08:52:15 +08:00
|
|
|
message KeepConnectedRequest {
|
2020-05-05 17:05:28 +08:00
|
|
|
string name = 1;
|
|
|
|
uint32 grpc_port = 2;
|
2020-05-08 17:47:22 +08:00
|
|
|
repeated string resources = 3;
|
2020-05-05 17:05:28 +08:00
|
|
|
}
|
2021-11-06 08:52:15 +08:00
|
|
|
message KeepConnectedResponse {
|
2020-05-05 17:05:28 +08:00
|
|
|
}
|
2020-05-08 17:47:22 +08:00
|
|
|
|
|
|
|
message LocateBrokerRequest {
|
|
|
|
string resource = 1;
|
|
|
|
}
|
2021-08-27 06:18:34 +08:00
|
|
|
|
2020-05-08 17:47:22 +08:00
|
|
|
message LocateBrokerResponse {
|
|
|
|
bool found = 1;
|
|
|
|
// if found, send the exact address
|
|
|
|
// if not found, send the full list of existing brokers
|
|
|
|
message Resource {
|
|
|
|
string grpc_addresses = 1;
|
|
|
|
int32 resource_count = 2;
|
|
|
|
}
|
|
|
|
repeated Resource resources = 2;
|
|
|
|
}
|
2020-09-10 02:21:23 +08:00
|
|
|
|
2021-07-27 16:16:28 +08:00
|
|
|
/////////////////////////
|
2020-09-10 02:21:23 +08:00
|
|
|
// Key-Value operations
|
2021-07-27 16:16:28 +08:00
|
|
|
/////////////////////////
|
2020-09-10 02:21:23 +08:00
|
|
|
message KvGetRequest {
|
|
|
|
bytes key = 1;
|
|
|
|
}
|
|
|
|
message KvGetResponse {
|
|
|
|
bytes value = 1;
|
|
|
|
string error = 2;
|
|
|
|
}
|
|
|
|
message KvPutRequest {
|
|
|
|
bytes key = 1;
|
|
|
|
bytes value = 2;
|
|
|
|
}
|
|
|
|
message KvPutResponse {
|
|
|
|
string error = 1;
|
|
|
|
}
|
2020-11-12 15:46:42 +08:00
|
|
|
|
2021-07-27 16:16:28 +08:00
|
|
|
/////////////////////////
|
2020-11-12 15:46:42 +08:00
|
|
|
// path-based configurations
|
2021-07-27 16:16:28 +08:00
|
|
|
/////////////////////////
|
2020-11-12 16:39:59 +08:00
|
|
|
message FilerConf {
|
|
|
|
int32 version = 1;
|
|
|
|
message PathConf {
|
|
|
|
string location_prefix = 1;
|
|
|
|
string collection = 2;
|
|
|
|
string replication = 3;
|
|
|
|
string ttl = 4;
|
2020-12-14 03:59:32 +08:00
|
|
|
string disk_type = 5;
|
2020-11-16 08:58:48 +08:00
|
|
|
bool fsync = 6;
|
2020-11-17 17:00:02 +08:00
|
|
|
uint32 volume_growth_count = 7;
|
2021-06-04 16:03:41 +08:00
|
|
|
bool read_only = 8;
|
2021-12-23 23:24:10 +08:00
|
|
|
string data_center = 9;
|
|
|
|
string rack = 10;
|
|
|
|
string data_node = 11;
|
2023-10-13 05:29:55 +08:00
|
|
|
uint32 max_file_name_length = 12;
|
2020-11-12 16:39:59 +08:00
|
|
|
}
|
|
|
|
repeated PathConf locations = 2;
|
2020-11-12 15:46:42 +08:00
|
|
|
}
|
2021-07-19 17:47:27 +08:00
|
|
|
|
2021-07-27 16:16:28 +08:00
|
|
|
/////////////////////////
|
|
|
|
// Remote Storage related
|
|
|
|
/////////////////////////
|
2021-10-31 10:27:25 +08:00
|
|
|
message CacheRemoteObjectToLocalClusterRequest {
|
2021-08-10 05:35:18 +08:00
|
|
|
string directory = 1;
|
|
|
|
string name = 2;
|
|
|
|
}
|
2021-10-31 10:27:25 +08:00
|
|
|
message CacheRemoteObjectToLocalClusterResponse {
|
2021-08-10 05:35:18 +08:00
|
|
|
Entry entry = 1;
|
|
|
|
}
|
2023-06-25 15:58:21 +08:00
|
|
|
|
|
|
|
/////////////////////////
|
|
|
|
// distributed lock management
|
|
|
|
/////////////////////////
|
|
|
|
message LockRequest {
|
|
|
|
string name = 1;
|
|
|
|
int64 seconds_to_lock = 2;
|
2023-06-26 06:28:01 +08:00
|
|
|
string renew_token = 3;
|
|
|
|
bool is_moved = 4;
|
2023-09-17 06:05:38 +08:00
|
|
|
string owner = 5;
|
2023-06-25 15:58:21 +08:00
|
|
|
}
|
|
|
|
message LockResponse {
|
|
|
|
string renew_token = 1;
|
2024-02-03 07:54:57 +08:00
|
|
|
string lock_owner = 2;
|
|
|
|
string lock_host_moved_to = 3;
|
|
|
|
string error = 4;
|
2023-06-25 15:58:21 +08:00
|
|
|
}
|
|
|
|
message UnlockRequest {
|
|
|
|
string name = 1;
|
2023-06-26 06:28:01 +08:00
|
|
|
string renew_token = 2;
|
|
|
|
bool is_moved = 3;
|
2023-06-25 15:58:21 +08:00
|
|
|
}
|
|
|
|
message UnlockResponse {
|
|
|
|
string error = 1;
|
|
|
|
string moved_to = 2;
|
|
|
|
}
|
2023-09-17 06:05:38 +08:00
|
|
|
message FindLockOwnerRequest {
|
|
|
|
string name = 1;
|
|
|
|
bool is_moved = 2;
|
|
|
|
}
|
|
|
|
message FindLockOwnerResponse {
|
|
|
|
string owner = 1;
|
|
|
|
}
|
2023-06-25 15:58:21 +08:00
|
|
|
message Lock {
|
|
|
|
string name = 1;
|
|
|
|
string renew_token = 2;
|
2023-06-26 05:14:40 +08:00
|
|
|
int64 expired_at_ns = 3;
|
2023-09-17 06:05:38 +08:00
|
|
|
string owner = 4;
|
2023-06-25 15:58:21 +08:00
|
|
|
}
|
|
|
|
message TransferLocksRequest {
|
|
|
|
repeated Lock locks = 1;
|
|
|
|
}
|
|
|
|
message TransferLocksResponse {
|
|
|
|
}
|