github.com/yandex-cloud/geesefs@v0.40.9/internal/pb/fs_grpc.proto (about)

     1  syntax = "proto3";
     2  
     3  import "google/protobuf/timestamp.proto";
     4  
     5  option go_package = "github.com/yandex-cloud/geesefs/internal/pb";
     6  
     7  service FsGrpc {
     8    // stealing
     9    rpc TryStealInodeOwnership(TryStealInodeOwnershipRequest) returns (TryStealInodeOwnershipResponse);
    10  
    11    // file
    12    rpc CreateFile(CreateFileRequest) returns (CreateFileResponse);
    13    rpc Unlink(UnlinkRequest) returns (UnlinkResponse);
    14    rpc OpenFile(OpenFileRequest) returns (OpenFileResponse);
    15    rpc ReleaseFileHandle(ReleaseFileHandleRequest) returns (ReleaseFileHandleResponse);
    16    rpc ReadFile(ReadFileRequest) returns (ReadFileResponse);
    17    rpc WriteFile(WriteFileRequest) returns (WriteFileResponse);
    18  
    19    // symlinks
    20    rpc CreateSymlink(CreateSymlinkRequest) returns (CreateSymlinkResponse);
    21    rpc ReadSymlink(ReadSymlinkRequest) returns (ReadSymlinkResponse);
    22  
    23    // dir
    24    rpc MkDir(MkDirRequest) returns (MkDirResponse);
    25    rpc RmDir(RmDirRequest) returns (RmDirResponse);
    26    rpc OpenDir(OpenDirRequest) returns (OpenDirResponse);
    27    rpc ReleaseDirHandle(ReleaseDirHandleRequest) returns (ReleaseDirHandleResponse);
    28    rpc ReadDir(ReadDirRequest) returns (ReadDirResponse);
    29    rpc LookUpInode(LookUpInodeRequest) returns (LookUpInodeResponse);
    30    rpc LookUpInode2(LookUpInode2Request) returns (LookUpInode2Response);
    31  
    32    // both
    33    rpc GetInodeAttributes(GetInodeAttributesRequest) returns (GetInodeAttributesResponse);
    34    rpc SetInodeAttributes(SetInodeAttributesRequest) returns (SetInodeAttributesResponse);
    35    
    36    rpc ForgetInode(ForgetInodeRequest) returns (ForgetInodeResponse);
    37    rpc ForgetInode2(ForgetInode2Request) returns (ForgetInode2Response);
    38  }
    39  
    40  message Inode {
    41    uint64 id = 1;
    42    string name = 2;
    43    bool dir = 3;
    44    bool symlink = 4;
    45    Owner owner = 5;
    46  }
    47  
    48  message Owner {
    49    uint64 term = 1;
    50    uint64 nodeId = 2;
    51  }
    52  
    53  message Attributes {
    54    uint64 size = 1;
    55    google.protobuf.Timestamp mtime = 2;
    56    google.protobuf.Timestamp ctime = 3;
    57    uint32 mode = 4;
    58  }
    59  
    60  message StolenInode {
    61    uint64 ownerTerm = 1;
    62    Attributes attr = 3;
    63    map<string, bytes> userMetadata = 4;
    64    int64 refcnt = 5;
    65    map<uint64, uint64> refcnts = 6;
    66    repeated Inode children = 7;
    67  }
    68  
    69  message JoinClusterRequest {
    70    string url = 1;
    71    uint64 nodeId = 2;
    72  }
    73  
    74  message JoinClusterResponse {
    75    message Peer {
    76      uint64 nodeId = 1;
    77      string url = 2;
    78    }
    79    uint64 nodeId = 1;
    80    repeated Peer peers = 2;
    81  }
    82  
    83  message AreYouInodeOwnerRequest {
    84    uint64 inodeId = 1;
    85  }
    86  
    87  message AreYouInodeOwnerResponse {
    88    bool yes = 1;
    89  }
    90  
    91  message TryStealInodeOwnershipRequest {
    92    uint64 inodeId = 1;
    93    uint64 nodeId = 2;
    94  }
    95  
    96  message TryStealInodeOwnershipResponse {
    97    optional Owner AnotherOwner = 1;
    98    optional StolenInode stolenInode = 2;
    99  }
   100  
   101  message CreateFileRequest {
   102      uint64 parent = 2;
   103      string name = 3;
   104      uint32 mode = 4;
   105      uint64 nodeId = 5;
   106  }
   107  
   108  message CreateFileResponse {
   109    optional Owner AnotherOwner = 1;
   110  
   111    // inode to ensure
   112    Inode inode = 2;
   113  
   114    // return values
   115    uint64 child = 3;
   116    Attributes attr = 4;
   117    uint64 handleId = 5;
   118  }
   119  
   120  message UnlinkRequest {
   121    uint64 parent = 1;
   122    string name = 2;
   123  }
   124  
   125  message UnlinkResponse {
   126    optional Owner AnotherOwner = 1;
   127  
   128    // inode to ensure
   129    Inode inode = 2;
   130  
   131    // return values
   132    uint64 errno = 3;
   133  }
   134  
   135  message OpenFileRequest {
   136    uint64 inodeId = 1;
   137  }
   138  
   139  message OpenFileResponse {
   140    optional Owner AnotherOwner = 1;
   141  
   142    // return values
   143    uint64 handleId = 2;
   144    uint64 errno = 3;
   145  }
   146  
   147  message ReleaseFileHandleRequest {
   148    uint64 handleId = 1;
   149  }
   150  
   151  message ReleaseFileHandleResponse {
   152    optional Owner AnotherOwner = 1;
   153  }
   154  
   155  message ReadFileRequest {
   156    uint64 handleId = 1;
   157    int64 offset = 2;
   158    int64 size = 3;
   159  }
   160  
   161  message ReadFileResponse {
   162    optional Owner AnotherOwner = 1;
   163  
   164    // return values
   165    int32 bytesRead = 2;
   166    bytes data = 3;
   167    uint64 errno = 4;
   168  }
   169  
   170  message WriteFileRequest {
   171    uint64 handleId = 1;
   172    int64 offset = 2;
   173    bytes data = 3;
   174  }
   175  
   176  message WriteFileResponse {
   177    optional Owner AnotherOwner = 1;
   178  
   179    // return values
   180    uint64 errno = 2;
   181  }
   182  
   183  message CreateSymlinkRequest {
   184    uint64 parent = 1;
   185    string name = 2;
   186    string target = 3;
   187    uint64 nodeId = 4;
   188  }
   189  
   190  message CreateSymlinkResponse {
   191    optional Owner AnotherOwner = 1;
   192  
   193    // inode to ensure
   194    Inode inode = 2;
   195  
   196    // return values
   197    uint64 child = 3;
   198    Attributes attr = 4;
   199  }
   200  
   201  message ReadSymlinkRequest {
   202    uint64 inode = 1;
   203  }
   204  
   205  message ReadSymlinkResponse {
   206    optional Owner AnotherOwner = 1;
   207  
   208    string target = 2;
   209    uint64 errno = 3;
   210  }
   211  
   212  message MkDirRequest {
   213    uint64 parent = 2;
   214    string name = 3;
   215    uint32 mode = 4;
   216    uint64 nodeId = 5;
   217  }
   218  
   219  message MkDirResponse {
   220    optional Owner AnotherOwner = 1;
   221  
   222    // inode to ensure
   223    Inode inode = 2;
   224  
   225    // return values
   226    uint64 child = 3;
   227    Attributes attr = 4;
   228  }
   229  
   230  message RmDirRequest {
   231    uint64 parent = 1;
   232    string name = 2;
   233  }
   234  
   235  message RmDirResponse {
   236    optional Owner AnotherOwner = 1;
   237    uint64 errno = 2;
   238  }
   239  
   240  message OpenDirRequest {
   241    uint64 inodeId = 1;
   242  }
   243  
   244  message OpenDirResponse {
   245    optional Owner AnotherOwner = 1;
   246  
   247    // return values
   248    uint64 handleId = 2;
   249    uint64 errno = 3;
   250  }
   251  
   252  message ReleaseDirHandleRequest {
   253    uint64 handleId = 1;
   254  }
   255  
   256  message ReleaseDirHandleResponse {
   257    optional Owner AnotherOwner = 1;
   258  }
   259  
   260  message ReadDirRequest {
   261    uint64 callerId = 1;
   262    uint64 handleId = 2;
   263    uint64 offset = 3;
   264    bytes dst = 4;
   265    int32 bytesRead = 5;
   266  }
   267  
   268  message ReadDirResponse {
   269    optional Owner AnotherOwner = 1;
   270  
   271    // return values
   272    bytes dst = 2;
   273    int32 bytesRead = 3;
   274    uint64 errno = 4;
   275  }
   276  
   277  message LookUpInodeRequest {
   278    uint64 parent = 1;
   279    string name = 2;
   280    uint64 nodeId = 3;
   281  }
   282  
   283  message LookUpInodeResponse {
   284    optional Owner AnotherOwner = 1;
   285  
   286    // inode to ensure
   287    optional Inode inode = 2;
   288  
   289    // return values
   290    uint64 child = 3;
   291    Attributes attr = 4;
   292    uint64 errno = 5;
   293  }
   294  
   295  message LookUpInode2Request {
   296    uint64 inodeId = 1;
   297    uint64 nodeId = 2;
   298  }
   299  
   300  message LookUpInode2Response {
   301    optional Owner AnotherOwner = 1;
   302    Attributes attr = 2;
   303  }
   304  
   305  message GetInodeAttributesRequest {
   306    uint64 inodeId = 1;
   307  }
   308  
   309  message GetInodeAttributesResponse {
   310    optional Owner AnotherOwner = 1;
   311  
   312    // return values
   313    Attributes attributes = 2;
   314  }
   315  
   316  message SetInodeAttributesRequest {
   317    uint64 inodeId = 1;
   318    optional uint64 size = 2;
   319    optional uint32 mode = 3;
   320    optional google.protobuf.Timestamp ctime = 4;
   321    optional google.protobuf.Timestamp mtime = 5;
   322  }
   323  
   324  message SetInodeAttributesResponse {
   325    optional Owner AnotherOwner = 1;
   326  
   327    // return values
   328    Attributes attributes = 2;
   329  }
   330  
   331  message ForgetInodeRequest {
   332    uint64 inodeId = 1;
   333    uint64 nodeId = 2;
   334    uint64 n = 3;
   335  }
   336  
   337  message ForgetInodeResponse {
   338    optional Owner AnotherOwner = 1;
   339    bool forget = 2;
   340  }
   341  
   342  message ForgetInode2Request {
   343    uint64 inodeId = 1;
   344  }
   345  
   346  message ForgetInode2Response {
   347  }