Merge branch 'feat/47-G-fix9-recovery' into feat/47-G-join10
This commit is contained in:
@@ -124,8 +124,8 @@ const SubjectExpiryEnded = "mesh.seat.mesh-recovery.event.expiry-ended"
|
||||
type Aside struct {
|
||||
// the directory's name
|
||||
ID string `json:"id"`
|
||||
// the bus name it was live under
|
||||
Name string `json:"name"`
|
||||
// the bus names it was live under, one per bus object
|
||||
Names []string `json:"names"`
|
||||
// its bytes on disk
|
||||
Size int64 `json:"size"`
|
||||
}
|
||||
@@ -246,6 +246,8 @@ type KeptPointsAnswer struct {
|
||||
Asides []Aside `json:"asides"`
|
||||
Points []Point `json:"points"`
|
||||
Running *Running `json:"running,omitempty"`
|
||||
// the asides whose record ended at removed that no running act holds: the live data of those names is gone and only the aside holds it; the module's health check fails while one is listed (design 47 G 554, 657, A-129)
|
||||
Unrestored []Aside `json:"unrestored"`
|
||||
}
|
||||
|
||||
// RestoreAsideInput is what restore-aside takes.
|
||||
@@ -504,10 +506,11 @@ type SetAsideEvent struct {
|
||||
// the id the act was answered accepted with, or a hand act's own id (design 47 G 560)
|
||||
Act string `json:"act"`
|
||||
// when it was said, RFC 3339
|
||||
At time.Time `json:"at"`
|
||||
ID string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
Size int64 `json:"size"`
|
||||
At time.Time `json:"at"`
|
||||
ID string `json:"id"`
|
||||
// the bus names it was live under, one per bus object
|
||||
Names []string `json:"names"`
|
||||
Size int64 `json:"size"`
|
||||
}
|
||||
|
||||
// AsideDiscardedEvent is the body of the event aside-discarded.
|
||||
@@ -515,10 +518,11 @@ type AsideDiscardedEvent struct {
|
||||
// the id the act was answered accepted with, or a hand act's own id (design 47 G 560)
|
||||
Act string `json:"act"`
|
||||
// when it was said, RFC 3339
|
||||
At time.Time `json:"at"`
|
||||
ID string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
Size int64 `json:"size"`
|
||||
At time.Time `json:"at"`
|
||||
ID string `json:"id"`
|
||||
// the bus names it was live under, one per bus object
|
||||
Names []string `json:"names"`
|
||||
Size int64 `json:"size"`
|
||||
}
|
||||
|
||||
// PointRemovedEvent is the body of the event point-removed.
|
||||
|
||||
@@ -27,9 +27,9 @@ func TestFixtures(t *testing.T) {
|
||||
decode: func(b []byte) (any, error) { var v RestoredEvent; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.mesh-recovery\\.event\\.restored\\.[^.*> ]+\\.[^.*> ]+$")},
|
||||
{name: "a cancelled act says the hand act's why", subject: "mesh.seat.mesh-recovery.event.restored.mesh-knowledge.ledger", given: "{\"act\":\"a-4\",\"at\":\"2026-11-11T10:00:00Z\",\"error\":\"cancelled\",\"kept\":\"ledger\",\"module\":\"mesh-knowledge\",\"outcome\":\"failed\",\"why\":\"the operator stopped it to look at the disk\"}", wire: "{\"act\":\"a-4\",\"at\":\"2026-11-11T10:00:00Z\",\"error\":\"cancelled\",\"kept\":\"ledger\",\"module\":\"mesh-knowledge\",\"outcome\":\"failed\",\"why\":\"the operator stopped it to look at the disk\"}",
|
||||
decode: func(b []byte) (any, error) { var v RestoredEvent; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.mesh-recovery\\.event\\.restored\\.[^.*> ]+\\.[^.*> ]+$")},
|
||||
{name: "set-aside is said", subject: "mesh.seat.mesh-recovery.event.set-aside.mesh-knowledge.ledger", given: "{\"act\":\"a-4\",\"at\":\"2026-11-11T10:00:00Z\",\"id\":\"20261111T121200Z\",\"name\":\"mesh-knowledge_ledger\",\"size\":4096}", wire: "{\"act\":\"a-4\",\"at\":\"2026-11-11T10:00:00Z\",\"id\":\"20261111T121200Z\",\"name\":\"mesh-knowledge_ledger\",\"size\":4096}",
|
||||
{name: "set-aside is said", subject: "mesh.seat.mesh-recovery.event.set-aside.mesh-knowledge.ledger", given: "{\"act\":\"a-4\",\"at\":\"2026-11-11T10:00:00Z\",\"id\":\"20261111T121200Z\",\"names\":[\"mesh-knowledge_ledger\"],\"size\":4096}", wire: "{\"act\":\"a-4\",\"at\":\"2026-11-11T10:00:00Z\",\"id\":\"20261111T121200Z\",\"names\":[\"mesh-knowledge_ledger\"],\"size\":4096}",
|
||||
decode: func(b []byte) (any, error) { var v SetAsideEvent; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.mesh-recovery\\.event\\.set-aside\\.[^.*> ]+\\.[^.*> ]+$")},
|
||||
{name: "aside-discarded is said", subject: "mesh.seat.mesh-recovery.event.aside-discarded.mesh-knowledge.ledger", given: "{\"act\":\"a-5\",\"at\":\"2026-11-11T10:00:00Z\",\"id\":\"20261111T121200Z\",\"name\":\"mesh-knowledge_ledger\",\"size\":4096}", wire: "{\"act\":\"a-5\",\"at\":\"2026-11-11T10:00:00Z\",\"id\":\"20261111T121200Z\",\"name\":\"mesh-knowledge_ledger\",\"size\":4096}",
|
||||
{name: "aside-discarded is said", subject: "mesh.seat.mesh-recovery.event.aside-discarded.mesh-knowledge.ledger", given: "{\"act\":\"a-5\",\"at\":\"2026-11-11T10:00:00Z\",\"id\":\"20261111T121200Z\",\"names\":[\"mesh-knowledge_ledger\"],\"size\":4096}", wire: "{\"act\":\"a-5\",\"at\":\"2026-11-11T10:00:00Z\",\"id\":\"20261111T121200Z\",\"names\":[\"mesh-knowledge_ledger\"],\"size\":4096}",
|
||||
decode: func(b []byte) (any, error) { var v AsideDiscardedEvent; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.mesh-recovery\\.event\\.aside-discarded\\.[^.*> ]+\\.[^.*> ]+$")},
|
||||
{name: "point-removed is said", subject: "mesh.seat.mesh-recovery.event.point-removed.mesh-knowledge.ledger", given: "{\"act\":\"a-6\",\"at\":\"2026-11-11T10:00:00Z\",\"kept\":\"ledger\",\"module\":\"mesh-knowledge\",\"snapshot\":\"1-aaaaaaaaaaaa\"}", wire: "{\"act\":\"a-6\",\"at\":\"2026-11-11T10:00:00Z\",\"kept\":\"ledger\",\"module\":\"mesh-knowledge\",\"snapshot\":\"1-aaaaaaaaaaaa\"}",
|
||||
decode: func(b []byte) (any, error) { var v PointRemovedEvent; err := json.Unmarshal(b, &v); return v, err }, subjectIs: regexp.MustCompile("^mesh\\.seat\\.mesh-recovery\\.event\\.point-removed\\.[^.*> ]+\\.[^.*> ]+$")},
|
||||
@@ -45,7 +45,7 @@ func TestFixtures(t *testing.T) {
|
||||
decode: func(b []byte) (any, error) { var v RestoreKeptInput; err := json.Unmarshal(b, &v); return v, err }, subjectIs: nil},
|
||||
{name: "restore-kept answers an error naming why", subject: "", given: "{\"error\":\"aside-only is the operator's hand tool alone\"}", wire: "{\"error\":\"aside-only is the operator's hand tool alone\"}",
|
||||
decode: func(b []byte) (any, error) { var v RestoreKeptAnswer; err := json.Unmarshal(b, &v); return v, err }, subjectIs: nil},
|
||||
{name: "kept-points lists a point, an aside and the act that runs", subject: "", given: "{\"asides\":[{\"id\":\"20261111T121200Z\",\"name\":\"mesh-knowledge_ledger\",\"size\":4096}],\"points\":[{\"at\":\"2026-11-11T10:00:00Z\",\"catch-up\":{\"tool\":\"knowledge_catch_up\"},\"consumers\":[{\"name\":\"c1\",\"sequence\":42,\"stream\":\"KV_x\"}],\"digests\":[{\"digest\":\"sha256:00\",\"name\":\"KV_x\"}],\"fingerprint\":\"0123456789ab\",\"form\":2,\"kept\":\"ledger\",\"module\":\"mesh-knowledge\",\"size\":2048,\"snapshot\":\"2-0123456789ab\"}],\"running\":{\"act\":\"a-1\",\"since\":\"2026-11-11T10:00:00Z\",\"step\":\"waiting on the dump\",\"waits-on\":\"item-ended of the bus item\"}}", wire: "{\"asides\":[{\"id\":\"20261111T121200Z\",\"name\":\"mesh-knowledge_ledger\",\"size\":4096}],\"points\":[{\"at\":\"2026-11-11T10:00:00Z\",\"catch-up\":{\"tool\":\"knowledge_catch_up\"},\"consumers\":[{\"name\":\"c1\",\"sequence\":42,\"stream\":\"KV_x\"}],\"digests\":[{\"digest\":\"sha256:00\",\"name\":\"KV_x\"}],\"fingerprint\":\"0123456789ab\",\"form\":2,\"kept\":\"ledger\",\"module\":\"mesh-knowledge\",\"size\":2048,\"snapshot\":\"2-0123456789ab\"}],\"running\":{\"act\":\"a-1\",\"since\":\"2026-11-11T10:00:00Z\",\"step\":\"waiting on the dump\",\"waits-on\":\"item-ended of the bus item\"}}",
|
||||
{name: "kept-points lists a point, an aside and the act that runs", subject: "", given: "{\"asides\":[{\"id\":\"20261111T121200Z\",\"names\":[\"mesh-knowledge_ledger\"],\"size\":4096}],\"points\":[{\"at\":\"2026-11-11T10:00:00Z\",\"catch-up\":{\"tool\":\"knowledge_catch_up\"},\"consumers\":[{\"name\":\"c1\",\"sequence\":42,\"stream\":\"KV_x\"}],\"digests\":[{\"digest\":\"sha256:00\",\"name\":\"KV_x\"}],\"fingerprint\":\"0123456789ab\",\"form\":2,\"kept\":\"ledger\",\"module\":\"mesh-knowledge\",\"size\":2048,\"snapshot\":\"2-0123456789ab\"}],\"running\":{\"act\":\"a-1\",\"since\":\"2026-11-11T10:00:00Z\",\"step\":\"waiting on the dump\",\"waits-on\":\"item-ended of the bus item\"},\"unrestored\":[{\"id\":\"20261110T080000Z\",\"names\":[\"mesh-knowledge_ledger\"],\"size\":1024}]}", wire: "{\"asides\":[{\"id\":\"20261111T121200Z\",\"names\":[\"mesh-knowledge_ledger\"],\"size\":4096}],\"points\":[{\"at\":\"2026-11-11T10:00:00Z\",\"catch-up\":{\"tool\":\"knowledge_catch_up\"},\"consumers\":[{\"name\":\"c1\",\"sequence\":42,\"stream\":\"KV_x\"}],\"digests\":[{\"digest\":\"sha256:00\",\"name\":\"KV_x\"}],\"fingerprint\":\"0123456789ab\",\"form\":2,\"kept\":\"ledger\",\"module\":\"mesh-knowledge\",\"size\":2048,\"snapshot\":\"2-0123456789ab\"}],\"running\":{\"act\":\"a-1\",\"since\":\"2026-11-11T10:00:00Z\",\"step\":\"waiting on the dump\",\"waits-on\":\"item-ended of the bus item\"},\"unrestored\":[{\"id\":\"20261110T080000Z\",\"names\":[\"mesh-knowledge_ledger\"],\"size\":1024}]}",
|
||||
decode: func(b []byte) (any, error) { var v KeptPointsAnswer; err := json.Unmarshal(b, &v); return v, err }, subjectIs: nil},
|
||||
{name: "restore-aside names the aside", subject: "", given: "{\"asker\":\"jochen@shanks\",\"id\":\"20261111T121200Z\",\"kept\":\"ledger\",\"module\":\"mesh-knowledge\",\"why\":\"an aside left at removed\"}", wire: "{\"asker\":\"jochen@shanks\",\"id\":\"20261111T121200Z\",\"kept\":\"ledger\",\"module\":\"mesh-knowledge\",\"why\":\"an aside left at removed\"}",
|
||||
decode: func(b []byte) (any, error) { var v RestoreAsideInput; err := json.Unmarshal(b, &v); return v, err }, subjectIs: nil},
|
||||
|
||||
@@ -94,8 +94,10 @@
|
||||
"act": "a-4",
|
||||
"at": "2026-11-11T10:00:00Z",
|
||||
"id": "20261111T121200Z",
|
||||
"name": "mesh-knowledge_ledger",
|
||||
"size": 4096
|
||||
"size": 4096,
|
||||
"names": [
|
||||
"mesh-knowledge_ledger"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -106,8 +108,10 @@
|
||||
"act": "a-5",
|
||||
"at": "2026-11-11T10:00:00Z",
|
||||
"id": "20261111T121200Z",
|
||||
"name": "mesh-knowledge_ledger",
|
||||
"size": 4096
|
||||
"size": 4096,
|
||||
"names": [
|
||||
"mesh-knowledge_ledger"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -84,8 +84,10 @@
|
||||
"asides": [
|
||||
{
|
||||
"id": "20261111T121200Z",
|
||||
"name": "mesh-knowledge_ledger",
|
||||
"size": 4096
|
||||
"size": 4096,
|
||||
"names": [
|
||||
"mesh-knowledge_ledger"
|
||||
]
|
||||
}
|
||||
],
|
||||
"running": {
|
||||
@@ -93,7 +95,16 @@
|
||||
"step": "waiting on the dump",
|
||||
"since": "2026-11-11T10:00:00Z",
|
||||
"waits-on": "item-ended of the bus item"
|
||||
}
|
||||
},
|
||||
"unrestored": [
|
||||
{
|
||||
"id": "20261110T080000Z",
|
||||
"size": 1024,
|
||||
"names": [
|
||||
"mesh-knowledge_ledger"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -174,11 +174,19 @@
|
||||
},
|
||||
"running": {
|
||||
"$ref": "#/defs/Running"
|
||||
},
|
||||
"unrestored": {
|
||||
"type": "array",
|
||||
"description": "the asides whose record ended at removed that no running act holds: the live data of those names is gone and only the aside holds it; the module's health check fails while one is listed (design 47 G 554, 657, A-129)",
|
||||
"items": {
|
||||
"$ref": "#/defs/Aside"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"points",
|
||||
"asides"
|
||||
"asides",
|
||||
"unrestored"
|
||||
]
|
||||
}
|
||||
},
|
||||
@@ -836,8 +844,13 @@
|
||||
"id": {
|
||||
"type": "string"
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
"names": {
|
||||
"type": "array",
|
||||
"description": "the bus names it was live under, one per bus object",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"minItems": 1
|
||||
},
|
||||
"size": {
|
||||
"type": "integer",
|
||||
@@ -848,7 +861,7 @@
|
||||
"act",
|
||||
"at",
|
||||
"id",
|
||||
"name",
|
||||
"names",
|
||||
"size"
|
||||
]
|
||||
}
|
||||
@@ -876,8 +889,13 @@
|
||||
"id": {
|
||||
"type": "string"
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
"names": {
|
||||
"type": "array",
|
||||
"description": "the bus names it was live under, one per bus object",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"minItems": 1
|
||||
},
|
||||
"size": {
|
||||
"type": "integer",
|
||||
@@ -888,7 +906,7 @@
|
||||
"act",
|
||||
"at",
|
||||
"id",
|
||||
"name",
|
||||
"names",
|
||||
"size"
|
||||
]
|
||||
}
|
||||
@@ -1082,9 +1100,13 @@
|
||||
"type": "string",
|
||||
"description": "the directory's name"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "the bus name it was live under"
|
||||
"names": {
|
||||
"type": "array",
|
||||
"description": "the bus names it was live under, one per bus object",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"minItems": 1
|
||||
},
|
||||
"size": {
|
||||
"type": "integer",
|
||||
@@ -1094,7 +1116,7 @@
|
||||
},
|
||||
"required": [
|
||||
"id",
|
||||
"name",
|
||||
"names",
|
||||
"size"
|
||||
]
|
||||
},
|
||||
|
||||
Vendored
+8
-4
@@ -74,8 +74,8 @@ export declare const expiryEndedSubject: "mesh.seat.mesh-recovery.event.expiry-e
|
||||
export interface Aside {
|
||||
/** the directory's name */
|
||||
"id": string;
|
||||
/** the bus name it was live under */
|
||||
"name": string;
|
||||
/** the bus names it was live under, one per bus object */
|
||||
"names": string[];
|
||||
/** its bytes on disk */
|
||||
"size": number;
|
||||
}
|
||||
@@ -196,6 +196,8 @@ export interface KeptPointsAnswer {
|
||||
"asides": Aside[];
|
||||
"points": Point[];
|
||||
"running"?: Running;
|
||||
/** the asides whose record ended at removed that no running act holds: the live data of those names is gone and only the aside holds it; the module's health check fails while one is listed (design 47 G 554, 657, A-129) */
|
||||
"unrestored": Aside[];
|
||||
}
|
||||
|
||||
/** is what restore-aside takes. */
|
||||
@@ -444,7 +446,8 @@ export interface SetAsideEvent {
|
||||
/** when it was said, RFC 3339 */
|
||||
"at": string;
|
||||
"id": string;
|
||||
"name": string;
|
||||
/** the bus names it was live under, one per bus object */
|
||||
"names": string[];
|
||||
"size": number;
|
||||
}
|
||||
|
||||
@@ -455,7 +458,8 @@ export interface AsideDiscardedEvent {
|
||||
/** when it was said, RFC 3339 */
|
||||
"at": string;
|
||||
"id": string;
|
||||
"name": string;
|
||||
/** the bus names it was live under, one per bus object */
|
||||
"names": string[];
|
||||
"size": number;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user