Now that TarSum can be versioned, move the addition of xattr headers in
to the next version of TarSum
Signed-off-by: Vincent Batts <vbatts@redhat.com>
| ... | ... |
@@ -81,7 +81,7 @@ func (ts tarSum) selectHeaders(h *tar.Header, v Version) (set [][2]string) {
|
| 81 | 81 |
{"devmajor", strconv.Itoa(int(h.Devmajor))},
|
| 82 | 82 |
{"devminor", strconv.Itoa(int(h.Devminor))},
|
| 83 | 83 |
} {
|
| 84 |
- if v == VersionDev && elem[0] == "mtime" {
|
|
| 84 |
+ if v >= VersionDev && elem[0] == "mtime" {
|
|
| 85 | 85 |
continue |
| 86 | 86 |
} |
| 87 | 87 |
set = append(set, elem) |
| ... | ... |
@@ -97,14 +97,16 @@ func (ts *tarSum) encodeHeader(h *tar.Header) error {
|
| 97 | 97 |
} |
| 98 | 98 |
|
| 99 | 99 |
// include the additional pax headers, from an ordered list |
| 100 |
- var keys []string |
|
| 101 |
- for k := range h.Xattrs {
|
|
| 102 |
- keys = append(keys, k) |
|
| 103 |
- } |
|
| 104 |
- sort.Strings(keys) |
|
| 105 |
- for _, k := range keys {
|
|
| 106 |
- if _, err := ts.h.Write([]byte(k + h.Xattrs[k])); err != nil {
|
|
| 107 |
- return err |
|
| 100 |
+ if ts.Version() >= VersionDev {
|
|
| 101 |
+ var keys []string |
|
| 102 |
+ for k := range h.Xattrs {
|
|
| 103 |
+ keys = append(keys, k) |
|
| 104 |
+ } |
|
| 105 |
+ sort.Strings(keys) |
|
| 106 |
+ for _, k := range keys {
|
|
| 107 |
+ if _, err := ts.h.Write([]byte(k + h.Xattrs[k])); err != nil {
|
|
| 108 |
+ return err |
|
| 109 |
+ } |
|
| 108 | 110 |
} |
| 109 | 111 |
} |
| 110 | 112 |
return nil |
| ... | ... |
@@ -38,10 +38,17 @@ var testLayers = []testLayer{
|
| 38 | 38 |
gzip: true, |
| 39 | 39 |
tarsum: "tarsum+sha256:e58fcf7418d4390dec8e8fb69d88c06ec07039d651fedd3aa72af9972e7d046b"}, |
| 40 | 40 |
{
|
| 41 |
+ // Tests existing version of TarSum when xattrs are present |
|
| 41 | 42 |
filename: "testdata/xattr/layer.tar", |
| 42 | 43 |
jsonfile: "testdata/xattr/json", |
| 43 |
- // without xattr support, this layer produces "tarsum+sha256:e86f81a4d552f13039b1396ed03ca968ea9717581f9577ef1876ea6ff9b38c98" |
|
| 44 |
- tarsum: "tarsum+sha256:eadcd9c55164e2a942ea67f781abbf645ee55d36e173c34de8a36d4d69d3021c"}, |
|
| 44 |
+ version: Version0, |
|
| 45 |
+ tarsum: "tarsum+sha256:e86f81a4d552f13039b1396ed03ca968ea9717581f9577ef1876ea6ff9b38c98"}, |
|
| 46 |
+ {
|
|
| 47 |
+ // Tests next version of TarSum when xattrs are present |
|
| 48 |
+ filename: "testdata/xattr/layer.tar", |
|
| 49 |
+ jsonfile: "testdata/xattr/json", |
|
| 50 |
+ version: VersionDev, |
|
| 51 |
+ tarsum: "tarsum.dev+sha256:6235cd3a2afb7501bac541772a3d61a3634e95bc90bb39a4676e2cb98d08390d"}, |
|
| 45 | 52 |
{
|
| 46 | 53 |
filename: "testdata/511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158/layer.tar", |
| 47 | 54 |
jsonfile: "testdata/511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158/json", |