Fetch a declaration's files given by digest from the bus's object bucket, verify them and report file-references (issue 1695, ADR 0486)
mesh-sdk is pinned to fix/1694-file-references 6c857e1c025f until it merges.
This commit is contained in:
+14
-2
@@ -214,7 +214,7 @@ func (q *Queue) step(ctx context.Context) bool {
|
||||
Superseded: declaredIn(latest.Body())}, setAside, old)
|
||||
}
|
||||
|
||||
report := handleBody(ctx, q.Membership, latest.Body(), q.Apply)
|
||||
report := handleBody(q.withFiles(ctx), q.Membership, latest.Body(), q.Apply)
|
||||
switch {
|
||||
case report.OlderThan != nil:
|
||||
// **Refused, counted and said** (rule 2): one line here, the count on this and every later
|
||||
@@ -260,7 +260,7 @@ func (q *Queue) reconcile(ctx context.Context, asked bool) {
|
||||
}
|
||||
return
|
||||
}
|
||||
report, ok := q.Reconcile(ctx)
|
||||
report, ok := q.Reconcile(q.withFiles(ctx))
|
||||
if !ok {
|
||||
if asked {
|
||||
q.Say("asked to say what this node last applied, and the reconcile could not say it")
|
||||
@@ -457,6 +457,18 @@ func (q *Queue) attach(ctx context.Context, bus Bus) {
|
||||
q.mu.Unlock()
|
||||
}
|
||||
|
||||
// withFiles is ctx carrying the link now open, so an apply can fetch a declaration's files given by digest (novox/hq ADR
|
||||
// 0486, issue 1695). A queue with no link open carries none.
|
||||
func (q *Queue) withFiles(ctx context.Context) context.Context {
|
||||
q.mu.Lock()
|
||||
bus := q.bus
|
||||
q.mu.Unlock()
|
||||
if bus == nil {
|
||||
return ctx
|
||||
}
|
||||
return WithFiles(ctx, bus)
|
||||
}
|
||||
|
||||
// detach is the link closing: it waits for a delivery in hand to be applied and said — an apply that
|
||||
// stood aside for its successor is reported on this link before it is let go (issue 264) — and then
|
||||
// nothing more is said on it. A reconcile in hand is not waited for: a link that was dropped or roused
|
||||
|
||||
Reference in New Issue
Block a user