mirror of
https://github.com/moby/moby.git
synced 2026-06-30 19:58:03 +00:00
Merge pull request #52183 from htoyoda18/cleanup/one-off-progress
`builder-next: replace duplicated oneOffProgress with progress.OneOff`
This commit is contained in:
@@ -347,7 +347,7 @@ func (p *puller) resolveLocal() {
|
||||
|
||||
func (p *puller) resolve(ctx context.Context, jobCtx solver.JobContext) error {
|
||||
_, err := p.g.Do(ctx, "", func(ctx context.Context) (_ struct{}, retErr error) {
|
||||
resolveProgressDone := oneOffProgress(ctx, "resolve "+p.src.Reference.String())
|
||||
resolveProgressDone := progress.OneOff(ctx, "resolve "+p.src.Reference.String())
|
||||
defer func() {
|
||||
_ = resolveProgressDone(retErr)
|
||||
}()
|
||||
@@ -901,23 +901,6 @@ type statusInfo struct {
|
||||
UpdatedAt time.Time
|
||||
}
|
||||
|
||||
func oneOffProgress(ctx context.Context, id string) func(err error) error {
|
||||
pw, _, _ := progress.NewFromContext(ctx)
|
||||
s := time.Now()
|
||||
st := progress.Status{
|
||||
Started: &s,
|
||||
}
|
||||
_ = pw.Write(id, st)
|
||||
return func(err error) error {
|
||||
// TODO: set error on status
|
||||
c := time.Now()
|
||||
st.Completed = &c
|
||||
_ = pw.Write(id, st)
|
||||
_ = pw.Close()
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
// cacheKeyFromConfig returns a stable digest from image config. If image config
|
||||
// is a known oci image we will use chainID of layers.
|
||||
func cacheKeyFromConfig(dt []byte) digest.Digest {
|
||||
|
||||
@@ -15,6 +15,7 @@ import (
|
||||
"github.com/moby/buildkit/exporter/containerimage"
|
||||
"github.com/moby/buildkit/exporter/containerimage/exptypes"
|
||||
"github.com/moby/buildkit/util/leaseutil"
|
||||
"github.com/moby/buildkit/util/progress"
|
||||
"github.com/moby/moby/v2/daemon/internal/image"
|
||||
"github.com/moby/moby/v2/daemon/internal/layer"
|
||||
"github.com/opencontainers/go-digest"
|
||||
@@ -137,7 +138,7 @@ func (e *imageExporterInstance) Export(ctx context.Context, inp *exporter.Source
|
||||
|
||||
var diffs []digest.Digest
|
||||
if ref != nil {
|
||||
layersDone := oneOffProgress(ctx, "exporting layers")
|
||||
layersDone := progress.OneOff(ctx, "exporting layers")
|
||||
|
||||
if err := ref.Finalize(ctx); err != nil {
|
||||
return nil, nil, nil, layersDone(err)
|
||||
@@ -193,7 +194,7 @@ func (e *imageExporterInstance) Export(ctx context.Context, inp *exporter.Source
|
||||
|
||||
configDigest := digest.FromBytes(config)
|
||||
|
||||
configDone := oneOffProgress(ctx, fmt.Sprintf("writing image %s", configDigest))
|
||||
configDone := progress.OneOff(ctx, fmt.Sprintf("writing image %s", configDigest))
|
||||
id, err := e.opt.ImageStore.Create(config)
|
||||
if err != nil {
|
||||
return nil, nil, nil, configDone(err)
|
||||
@@ -204,7 +205,7 @@ func (e *imageExporterInstance) Export(ctx context.Context, inp *exporter.Source
|
||||
for _, targetName := range e.targetNames {
|
||||
names = append(names, targetName.String())
|
||||
if e.opt.ImageTagger != nil {
|
||||
tagDone := oneOffProgress(ctx, "naming to "+targetName.String())
|
||||
tagDone := progress.OneOff(ctx, "naming to "+targetName.String())
|
||||
if err := e.opt.ImageTagger.TagImage(ctx, image.ID(digest.Digest(id)), targetName); err != nil {
|
||||
return nil, nil, nil, tagDone(err)
|
||||
}
|
||||
|
||||
@@ -9,7 +9,6 @@ import (
|
||||
"github.com/containerd/platforms"
|
||||
"github.com/moby/buildkit/cache"
|
||||
"github.com/moby/buildkit/exporter/containerimage/exptypes"
|
||||
"github.com/moby/buildkit/util/progress"
|
||||
"github.com/moby/buildkit/util/system"
|
||||
"github.com/opencontainers/go-digest"
|
||||
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
|
||||
@@ -205,20 +204,3 @@ func getRefMetadata(ref cache.ImmutableRef, limit int) []refMetadata {
|
||||
}
|
||||
return metas
|
||||
}
|
||||
|
||||
func oneOffProgress(ctx context.Context, id string) func(err error) error {
|
||||
pw, _, _ := progress.NewFromContext(ctx)
|
||||
now := time.Now()
|
||||
st := progress.Status{
|
||||
Started: &now,
|
||||
}
|
||||
_ = pw.Write(id, st)
|
||||
return func(err error) error {
|
||||
// TODO: set error on status
|
||||
now := time.Now()
|
||||
st.Completed = &now
|
||||
_ = pw.Write(id, st)
|
||||
_ = pw.Close()
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
@@ -603,7 +603,7 @@ func (ld *layerDescriptor) DiffID() (layer.DiffID, error) {
|
||||
}
|
||||
|
||||
func (ld *layerDescriptor) Download(ctx context.Context, progressOutput pkgprogress.Output) (io.ReadCloser, int64, error) {
|
||||
done := oneOffProgress(ld.pctx, fmt.Sprintf("pulling %s", ld.desc.Digest))
|
||||
done := progress.OneOff(ld.pctx, fmt.Sprintf("pulling %s", ld.desc.Digest))
|
||||
|
||||
// TODO should this write output to progressOutput? Or use something similar to loggerFromContext()? see https://github.com/moby/buildkit/commit/aa29e7729464f3c2a773e27795e584023c751cb8
|
||||
discardLogs := func(_ []byte) {}
|
||||
@@ -653,23 +653,6 @@ func getLayers(ctx context.Context, descs []ocispec.Descriptor) ([]rootfs.Layer,
|
||||
return layers, nil
|
||||
}
|
||||
|
||||
func oneOffProgress(ctx context.Context, id string) func(err error) error {
|
||||
pw, _, _ := progress.NewFromContext(ctx)
|
||||
s := time.Now()
|
||||
st := progress.Status{
|
||||
Started: &s,
|
||||
}
|
||||
_ = pw.Write(id, st)
|
||||
return func(err error) error {
|
||||
// TODO: set error on status
|
||||
c := time.Now()
|
||||
st.Completed = &c
|
||||
_ = pw.Write(id, st)
|
||||
_ = pw.Close()
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
type emptyProvider struct{}
|
||||
|
||||
func (p *emptyProvider) ReaderAt(ctx context.Context, dec ocispec.Descriptor) (content.ReaderAt, error) {
|
||||
|
||||
Reference in New Issue
Block a user