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 }