forked from deepseek-ai/3FS
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathStatusCodeConversion.cc
More file actions
40 lines (36 loc) · 1.52 KB
/
Copy pathStatusCodeConversion.cc
File metadata and controls
40 lines (36 loc) · 1.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include "StatusCodeConversion.h"
namespace hf3fs {
Status StatusCodeConversion::convertToStorageClientCode(Status status) {
switch (status.code()) {
case StatusCode::kInvalidArg:
return status.convert(StorageClientCode::kInvalidArg);
case RPCCode::kTimeout:
return status.convert(StorageClientCode::kTimeout);
case RPCCode::kSendFailed:
case RPCCode::kRequestRefused:
return status.convert(StorageClientCode::kCommError);
case RPCCode::kVerifyRequestFailed:
case RPCCode::kVerifyResponseFailed:
return status.convert(StorageClientCode::kProtocolMismatch);
case StorageCode::kChunkMetadataNotFound:
return status.convert(StorageClientCode::kChunkNotFound);
case StorageCode::kChunkReadFailed:
return status.convert(StorageClientCode::kRemoteIOError);
case StorageCode::kChecksumMismatch:
return status.convert(StorageClientCode::kChecksumMismatch);
case StorageCode::kChainVersionMismatch:
return status.convert(StorageClientCode::kRoutingVersionMismatch);
case StorageCode::kChunkNotCommit:
return status.convert(StorageClientCode::kChunkNotCommit);
case StorageCode::kChannelIsLocked:
return status.convert(StorageClientCode::kResourceBusy);
case StatusCode::kReadOnlyMode:
return status.convert(StorageClientCode::kReadOnlyServer);
}
if (StatusCode::typeOf(status.code()) == StatusCodeType::StorageClient) {
return status;
} else {
return status.convert(StorageClientCode::kServerError);
}
}
} // namespace hf3fs