From ec01eb653db9d5e5b9291c1670dde57e7f742874 Mon Sep 17 00:00:00 2001 From: Vincent Batts Date: Wed, 10 Sep 2014 21:56:20 -0400 Subject: [PATCH] tarsum: TarSum is not the interface don't export the exsisting TarSum struct and call the interface 'TarSum' instead. Signed-off-by: Vincent Batts --- builder/evaluator.go | 12 ++++++------ builder/internals.go | 5 ++++- pkg/tarsum/tarsum.go | 24 ++++++++++++------------ 3 files changed, 22 insertions(+), 19 deletions(-) diff --git a/builder/evaluator.go b/builder/evaluator.go index 3ab9b3841ef30..2a3a41a24c0ea 100644 --- a/builder/evaluator.go +++ b/builder/evaluator.go @@ -93,12 +93,12 @@ type Builder struct { // both of these are controlled by the Remove and ForceRemove options in BuildOpts TmpContainers map[string]struct{} // a map of containers used for removes - dockerfile *parser.Node // the syntax tree of the dockerfile - image string // image name for commit processing - maintainer string // maintainer name. could probably be removed. - cmdSet bool // indicates is CMD was set in current Dockerfile - context tarsum.TarSumInterface // the context is a tarball that is uploaded by the client - contextPath string // the path of the temporary directory the local context is unpacked to (server side) + dockerfile *parser.Node // the syntax tree of the dockerfile + image string // image name for commit processing + maintainer string // maintainer name. could probably be removed. + cmdSet bool // indicates is CMD was set in current Dockerfile + context tarsum.TarSum // the context is a tarball that is uploaded by the client + contextPath string // the path of the temporary directory the local context is unpacked to (server side) } diff --git a/builder/internals.go b/builder/internals.go index ac11bb8b1a053..87fac8fce2b7d 100644 --- a/builder/internals.go +++ b/builder/internals.go @@ -167,7 +167,10 @@ func (b *Builder) runContextCommand(args []string, allowRemote bool, allowDecomp if err != nil { return err } - tarSum := &tarsum.TarSum{Reader: r, DisableCompression: true} + tarSum, err := tarsum.NewTarSum(r, true, tarsum.Version0) + if err != nil { + return err + } if _, err := io.Copy(ioutil.Discard, tarSum); err != nil { return err } diff --git a/pkg/tarsum/tarsum.go b/pkg/tarsum/tarsum.go index baffbc4bcf7b9..1399dd5d1fdb9 100644 --- a/pkg/tarsum/tarsum.go +++ b/pkg/tarsum/tarsum.go @@ -28,24 +28,24 @@ const ( // This is used for calculating checksums of layers of an image, in some cases // including the byte payload of the image's json metadata as well, and for // calculating the checksums for buildcache. -func NewTarSum(r io.Reader, dc bool, v Version) (TarSumInterface, error) { +func NewTarSum(r io.Reader, dc bool, v Version) (TarSum, error) { if _, ok := tarSumVersions[v]; !ok { return nil, ErrVersionNotImplemented } - return &TarSum{Reader: r, DisableCompression: dc, tarSumVersion: v}, nil + return &tarSum{Reader: r, DisableCompression: dc, tarSumVersion: v}, nil } -// TarSumInterface is the generic interface for calculating fixed time +// TarSum is the generic interface for calculating fixed time // checksums of a tar archive -type TarSumInterface interface { +type TarSum interface { io.Reader GetSums() map[string]string Sum([]byte) string Version() Version } -// TarSum struct is the structure for a Version0 checksum calculation -type TarSum struct { +// tarSum struct is the structure for a Version0 checksum calculation +type tarSum struct { io.Reader tarR *tar.Reader tarW *tar.Writer @@ -62,11 +62,11 @@ type TarSum struct { tarSumVersion Version // this field is not exported so it can not be mutated during use } -func (ts TarSum) Version() Version { +func (ts tarSum) Version() Version { return ts.tarSumVersion } -func (ts TarSum) selectHeaders(h *tar.Header, v Version) (set [][2]string) { +func (ts tarSum) selectHeaders(h *tar.Header, v Version) (set [][2]string) { for _, elem := range [][2]string{ {"name", h.Name}, {"mode", strconv.Itoa(int(h.Mode))}, @@ -89,7 +89,7 @@ func (ts TarSum) selectHeaders(h *tar.Header, v Version) (set [][2]string) { return } -func (ts *TarSum) encodeHeader(h *tar.Header) error { +func (ts *tarSum) encodeHeader(h *tar.Header) error { for _, elem := range ts.selectHeaders(h, ts.Version()) { if _, err := ts.h.Write([]byte(elem[0] + elem[1])); err != nil { return err @@ -98,7 +98,7 @@ func (ts *TarSum) encodeHeader(h *tar.Header) error { return nil } -func (ts *TarSum) Read(buf []byte) (int, error) { +func (ts *tarSum) Read(buf []byte) (int, error) { if ts.gz == nil { ts.bufTar = bytes.NewBuffer([]byte{}) ts.bufGz = bytes.NewBuffer([]byte{}) @@ -197,7 +197,7 @@ func (ts *TarSum) Read(buf []byte) (int, error) { return ts.bufGz.Read(buf) } -func (ts *TarSum) Sum(extra []byte) string { +func (ts *tarSum) Sum(extra []byte) string { var sums []string for _, sum := range ts.sums { @@ -217,6 +217,6 @@ func (ts *TarSum) Sum(extra []byte) string { return checksum } -func (ts *TarSum) GetSums() map[string]string { +func (ts *tarSum) GetSums() map[string]string { return ts.sums }