Fixes format inconsistencies with docker for certain history fields
Closes #17767 Closes #17768 System test for image list and history dates * Changed field separator in the test to `;` for easier parsing * Converted date output from image history and image list to be comparable Signed-off-by: rbagd <mail@rbagd.eu>
This commit is contained in:
parent
6c32bf18d0
commit
6e0cf93447
|
@ -3,9 +3,7 @@ package images
|
|||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
"time"
|
||||
"unicode"
|
||||
|
||||
"github.com/containers/common/pkg/report"
|
||||
"github.com/containers/podman/v4/cmd/podman/common"
|
||||
|
@ -149,9 +147,7 @@ func (h historyReporter) Created() string {
|
|||
}
|
||||
|
||||
func (h historyReporter) Size() string {
|
||||
s := units.HumanSizeWithPrecision(float64(h.ImageHistoryLayer.Size), 3)
|
||||
i := strings.LastIndexFunc(s, unicode.IsNumber)
|
||||
return s[:i+1] + " " + s[i+1:]
|
||||
return units.HumanSizeWithPrecision(float64(h.ImageHistoryLayer.Size), 3)
|
||||
}
|
||||
|
||||
func (h historyReporter) CreatedBy() string {
|
||||
|
@ -169,7 +165,7 @@ func (h historyReporter) ID() string {
|
|||
}
|
||||
|
||||
func (h historyReporter) CreatedAt() string {
|
||||
return time.Unix(h.ImageHistoryLayer.Created.Unix(), 0).UTC().String()
|
||||
return time.Unix(h.ImageHistoryLayer.Created.Unix(), 0).Format(time.RFC3339)
|
||||
}
|
||||
|
||||
func (h historyReporter) CreatedSince() string {
|
||||
|
|
|
@ -44,6 +44,11 @@ var _ = Describe("Podman history", func() {
|
|||
session.WaitWithDefaultTimeout()
|
||||
Expect(session).Should(Exit(0))
|
||||
Expect(session.OutputToStringArray()).ToNot(BeEmpty())
|
||||
|
||||
session = podmanTest.Podman([]string{"history", "--format", "{{.CreatedAt}};{{.Size}}", ALPINE})
|
||||
session.WaitWithDefaultTimeout()
|
||||
Expect(session).Should(Exit(0))
|
||||
Expect(session.OutputToString()).To(MatchRegexp("[0-9-]{10}T[0-9:]{8}[Z0-9+:-]+;[0-9.]+[MG]*B( .+)?"))
|
||||
})
|
||||
|
||||
It("podman history with human flag", func() {
|
||||
|
|
|
@ -57,15 +57,26 @@ size | -\\\?[0-9]\\\+
|
|||
|
||||
@test "podman image history Created" {
|
||||
# Values from image LIST
|
||||
run_podman image list --format '{{.CreatedSince}}--{{.CreatedAt}}' $IMAGE
|
||||
run_podman image list --format '{{.CreatedSince}};{{.CreatedAt}}' $IMAGE
|
||||
from_imagelist="$output"
|
||||
assert "$from_imagelist" =~ "^[0-9].* ago--[0-9]+-[0-9]+-[0-9]+ [0-9:]+ " \
|
||||
assert "$from_imagelist" =~ "^[0-9].* ago;[0-9]+-[0-9]+-[0-9]+ [0-9:]+ " \
|
||||
"CreatedSince and CreatedAt look reasonable"
|
||||
|
||||
# Values from image HISTORY
|
||||
run_podman image history --format '{{.CreatedSince}}--{{.CreatedAt}}' $IMAGE
|
||||
assert "${lines[0]}" == "$from_imagelist" \
|
||||
"CreatedSince and CreatedAt from image history should == image list"
|
||||
run_podman image history --format '{{.CreatedSince}};{{.CreatedAt}}' $IMAGE
|
||||
from_imagehistory="${lines[0]}"
|
||||
|
||||
imagelist_since=$(echo "$from_imagelist" | cut -d';' -f1)
|
||||
imagehist_since=$(echo "$from_imagehistory" | cut -d';' -f1)
|
||||
|
||||
assert "$imagehist_since" == "$imagelist_since" \
|
||||
"CreatedSince from image history should == image list"
|
||||
|
||||
imagelist_at=$(date --rfc-3339=seconds -f <(echo "$from_imagelist" | cut -d';' -f2 | sed 's/ UTC//'))
|
||||
imagehist_at=$(date --rfc-3339=seconds -f <(echo "$from_imagehistory" | cut -d';' -f2))
|
||||
|
||||
assert "$imagehist_at" == "$imagelist_at" \
|
||||
"CreatedAt from image history should == image list"
|
||||
}
|
||||
|
||||
# vim: filetype=sh
|
||||
|
|
Loading…
Reference in New Issue