diff options
| author | Ophestra <cat@gensokyo.uk> | 2026-06-07 16:10:03 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2026-06-07 16:14:54 +0900 |
| commit | 22e508fe17cdf6be6240e6b73ac5b90bc6bfd77e (patch) | |
| tree | f4a2335664a6ea2448df8bf780432b59ac8a1661 /internal/pkg | |
| parent | b18ecf58326f9048afca885e2bf56d516578b1e4 (diff) | |
internal/pkg: expose measured reader to extern status
This is always required by the implementation.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/pkg')
| -rw-r--r-- | internal/pkg/pkg.go | 12 | ||||
| -rw-r--r-- | internal/pkg/pkg_test.go | 4 |
2 files changed, 8 insertions, 8 deletions
diff --git a/internal/pkg/pkg.go b/internal/pkg/pkg.go index 6542741f..e90bb72c 100644 --- a/internal/pkg/pkg.go +++ b/internal/pkg/pkg.go @@ -699,13 +699,13 @@ type External interface { // Artifact returns the address of the [Checksum] of the cure outcome of // an [Artifact] corresponding to id, or nil if this [Artifact] is not // available in the external cache. - Artifact(id unique.Handle[ID]) (*Checksum, error) + Artifact(ctx context.Context, id unique.Handle[ID]) (*Checksum, error) // Checksum returns an [Artifact] producing the specified checksum. Checksum(checksum unique.Handle[Checksum]) Artifact // Status returns [io.ReadCloser] of the status file of an [Artifact] // corresponding to id, or nil if this [Artifact] is not available or a // status file is not present. - Status(id unique.Handle[ID]) (io.ReadCloser, error) + Status(r *RContext, id unique.Handle[ID]) (io.ReadCloser, error) } // Cache is a support layer that implementations of [Artifact] can use to store @@ -1833,7 +1833,7 @@ func (r *RContext) NewMeasuredReader( } // tryExtern attempts to obtain an [Artifact] outcome from extern. -func (c *Cache) tryExtern(id unique.Handle[ID]) ( +func (c *Cache) tryExtern(ctx context.Context, id unique.Handle[ID]) ( unique.Handle[Checksum], io.ReadCloser, error, @@ -1845,7 +1845,7 @@ func (c *Cache) tryExtern(id unique.Handle[ID]) ( return zeroChecksum, nil, nil } - v, err := c.extern.Artifact(id) + v, err := c.extern.Artifact(ctx, id) if err != nil { return zeroChecksum, nil, err } @@ -1862,7 +1862,7 @@ func (c *Cache) tryExtern(id unique.Handle[ID]) ( } var status io.ReadCloser - status, err = c.extern.Status(id) + status, err = c.extern.Status(&RContext{common{ctx, c}}, id) return checksum, status, err } @@ -2205,7 +2205,7 @@ func (c *Cache) cure(a Artifact, curesExempt bool) ( externChecksum unique.Handle[Checksum] externStatus io.ReadCloser ) - if externChecksum, externStatus, err = c.tryExtern(id); err != nil { + if externChecksum, externStatus, err = c.tryExtern(ctx, id); err != nil { if c.msg.IsVerbose() { c.msg.Verbosef("extern %s: %v", reportName(ca, id), err) } diff --git a/internal/pkg/pkg_test.go b/internal/pkg/pkg_test.go index 1239bed3..d4e9e855 100644 --- a/internal/pkg/pkg_test.go +++ b/internal/pkg/pkg_test.go @@ -204,7 +204,7 @@ type stubExtern struct { status map[unique.Handle[pkg.ID]]string } -func (e stubExtern) Artifact(id unique.Handle[pkg.ID]) (*pkg.Checksum, error) { +func (e stubExtern) Artifact(_ context.Context, id unique.Handle[pkg.ID]) (*pkg.Checksum, error) { if checksum, ok := e.artifact[id]; ok { return &checksum, nil } @@ -219,7 +219,7 @@ func (e stubExtern) Checksum(checksum unique.Handle[pkg.Checksum]) pkg.Artifact return pkg.NewArchive(pkg.NewFile("", buf.Bytes())) } -func (e stubExtern) Status(id unique.Handle[pkg.ID]) (io.ReadCloser, error) { +func (e stubExtern) Status(_ *pkg.RContext, id unique.Handle[pkg.ID]) (io.ReadCloser, error) { if status, ok := e.status[id]; ok { return io.NopCloser(strings.NewReader(status)), nil } |
