src/transfer/BackupOwnerPolicy.bend
mylsm-lsm-store@0.6.0.1 · 50 lines · 2 definitions
1import Base
2import mylsm-lsm-store@0.6.0.1/src/transfer/Backup.bend as Backup
3
4
5type OwnerError is Data:
6 ConnectHost{code: U32, message: String}
7 ConnectUnsupported{}
8 ReadHost{code: U32, message: String}
9 ReadUnsupported{}
10 ReadFailure{}
11 CommitHost{code: U32, message: String}
12 CommitFailure{}
13 FrameTooLarge{}
14 StaleOwner{}
15 CorrelationMismatch{}
16 MalformedResponse{}
17 RequestIdsExhausted{}
18 OwnerRejected{}
19 UnsupportedPlatform{}
20
21
22def source.error(error: OwnerError) -> Backup.Error:
23 match error:
24 case ConnectHost{code, message}:
25 Backup.SourceFailure{code, message}
26 case ConnectUnsupported{}:
27 Backup.UnsupportedPlatform{}
28 case ReadHost{code, message}:
29 Backup.SourceFailure{code, message}
30 case ReadUnsupported{}:
31 Backup.UnsupportedPlatform{}
32 case ReadFailure{}:
33 Backup.SourceFailure{5, "owner snapshot cursor read failed"}
34 case CommitHost{code, message}:
35 Backup.SourceFailure{code, message}
36 case CommitFailure{}:
37 Backup.SourceFailure{5, "owner snapshot cursor state is uncertain"}
38 case FrameTooLarge{}:
39 Backup.SourceFailure{75, "owner cursor frame exceeded limit"}
40 case StaleOwner{}:
41 Backup.SourceFailure{116, "owner cursor generation is stale"}
42 case CorrelationMismatch{}:
43 Backup.SourceFailure{71, "owner cursor correlation mismatch"}
44 case MalformedResponse{}:
45 Backup.SourceFailure{71, "owner cursor response is malformed"}
46 case RequestIdsExhausted{}:
47 Backup.SourceFailure{75, "owner cursor request ids exhausted"}
48 case OwnerRejected{}:
49 Backup.SourceFailure{5, "owner rejected snapshot cursor read"}
50 case UnsupportedPlatform{}: Backup.UnsupportedPlatform{}