From 24ceca4360e38bafd118c23c3c1ad7dc48b0c9c6 Mon Sep 17 00:00:00 2001 From: Yan Song Date: Thu, 29 Sep 2022 07:00:19 +0000 Subject: [PATCH] exporter: make exporter.Config private Make the field `compression` private in case it is initialized with nil compression.Type. Signed-off-by: Yan Song --- exporter/containerimage/export.go | 6 ++---- exporter/exporter.go | 23 +++++++++++++++++++++-- exporter/local/export.go | 4 ++-- exporter/oci/export.go | 6 ++---- exporter/tar/export.go | 4 ++-- solver/llbsolver/solver.go | 4 ++-- 6 files changed, 31 insertions(+), 16 deletions(-) diff --git a/exporter/containerimage/export.go b/exporter/containerimage/export.go index 27e58e7e2cd1..1412ebf46d74 100644 --- a/exporter/containerimage/export.go +++ b/exporter/containerimage/export.go @@ -190,10 +190,8 @@ func (e *imageExporterInstance) Name() string { return "exporting to image" } -func (e *imageExporterInstance) Config() exporter.Config { - return exporter.Config{ - Compression: e.opts.RefCfg.Compression, - } +func (e *imageExporterInstance) Config() *exporter.Config { + return exporter.NewConfigWithCompression(e.opts.RefCfg.Compression) } func (e *imageExporterInstance) Export(ctx context.Context, src *exporter.Source, sessionID string) (map[string]string, error) { diff --git a/exporter/exporter.go b/exporter/exporter.go index 284cb5615b94..967d06c1af87 100644 --- a/exporter/exporter.go +++ b/exporter/exporter.go @@ -16,10 +16,29 @@ type Exporter interface { type ExporterInstance interface { Name() string - Config() Config + Config() *Config Export(ctx context.Context, src *Source, sessionID string) (map[string]string, error) } type Config struct { - Compression compression.Config + // Make the field private in case it is initialized with nil compression.Type + compression compression.Config +} + +func NewConfig() *Config { + return &Config{ + compression: compression.Config{ + Type: compression.Default, + }, + } +} + +func NewConfigWithCompression(comp compression.Config) *Config { + return &Config{ + compression: comp, + } +} + +func (c *Config) Compression() compression.Config { + return c.compression } diff --git a/exporter/local/export.go b/exporter/local/export.go index 3f8889a23759..4faf477839ba 100644 --- a/exporter/local/export.go +++ b/exporter/local/export.go @@ -55,8 +55,8 @@ func (e *localExporterInstance) Name() string { return "exporting to client" } -func (e *localExporter) Config() exporter.Config { - return exporter.Config{} +func (e *localExporter) Config() *exporter.Config { + return exporter.NewConfig() } func (e *localExporterInstance) Export(ctx context.Context, inp *exporter.Source, sessionID string) (map[string]string, error) { diff --git a/exporter/oci/export.go b/exporter/oci/export.go index 1a62806e6ca7..22205f9231e8 100644 --- a/exporter/oci/export.go +++ b/exporter/oci/export.go @@ -86,10 +86,8 @@ func (e *imageExporterInstance) Name() string { return "exporting to oci image format" } -func (e *imageExporterInstance) Config() exporter.Config { - return exporter.Config{ - Compression: e.opts.RefCfg.Compression, - } +func (e *imageExporterInstance) Config() *exporter.Config { + return exporter.NewConfigWithCompression(e.opts.RefCfg.Compression) } func (e *imageExporterInstance) Export(ctx context.Context, src *exporter.Source, sessionID string) (map[string]string, error) { diff --git a/exporter/tar/export.go b/exporter/tar/export.go index 2ad25f02cc45..d8294e7ff89b 100644 --- a/exporter/tar/export.go +++ b/exporter/tar/export.go @@ -74,8 +74,8 @@ func (e *localExporterInstance) Name() string { return "exporting to client" } -func (e *localExporterInstance) Config() exporter.Config { - return exporter.Config{} +func (e *localExporterInstance) Config() *exporter.Config { + return exporter.NewConfig() } func (e *localExporterInstance) Export(ctx context.Context, inp *exporter.Source, sessionID string) (map[string]string, error) { diff --git a/solver/llbsolver/solver.go b/solver/llbsolver/solver.go index ed833afc15ff..f042bba9f87c 100644 --- a/solver/llbsolver/solver.go +++ b/solver/llbsolver/solver.go @@ -227,7 +227,7 @@ func (s *Solver) Solve(ctx context.Context, id string, sessionID string, req fro if _, ok := asInlineCache(exp.CacheExporter); ok { if err := inBuilderContext(ctx, j, "preparing layers for inline cache", j.SessionID+"-cache-inline", func(ctx context.Context, _ session.Group) error { if cached.Ref != nil { - dtic, err := inlineCache(ctx, exp.CacheExporter, cached.Ref, e.Config().Compression, session.NewGroup(sessionID)) + dtic, err := inlineCache(ctx, exp.CacheExporter, cached.Ref, e.Config().Compression(), session.NewGroup(sessionID)) if err != nil { return err } @@ -236,7 +236,7 @@ func (s *Solver) Solve(ctx context.Context, id string, sessionID string, req fro } } for k, res := range cached.Refs { - dtic, err := inlineCache(ctx, exp.CacheExporter, res, e.Config().Compression, session.NewGroup(sessionID)) + dtic, err := inlineCache(ctx, exp.CacheExporter, res, e.Config().Compression(), session.NewGroup(sessionID)) if err != nil { return err }