Merge pull request #843 from baude/kpod_tag

cmd/kpod/tag.go: Do not assume docker.io for tagging
This commit is contained in:
Daniel J Walsh 2017-09-09 05:43:16 -04:00 committed by GitHub
commit b5ed8b34c0
2 changed files with 57 additions and 7 deletions

View file

@ -62,17 +62,17 @@ func addImageNames(store storage.Store, image *storage.Image, addNames []string)
func expandedTags(tags []string) ([]string, error) { func expandedTags(tags []string) ([]string, error) {
expandedNames := []string{} expandedNames := []string{}
for _, tag := range tags { for _, tag := range tags {
name, err := reference.ParseNormalizedNamed(tag) var labelName string
name, err := reference.Parse(tag)
if err != nil { if err != nil {
return nil, errors.Wrapf(err, "error parsing tag %q", name) return nil, errors.Wrapf(err, "error parsing tag %q", name)
} }
if _, ok := name.(reference.NamedTagged); ok {
name = reference.TagNameOnly(name) labelName = name.String()
newTag := "" } else {
if tagged, ok := name.(reference.NamedTagged); ok { labelName = name.String() + ":latest"
newTag = tagged.Tag()
} }
expandedNames = append(expandedNames, name.Name()+":"+newTag) expandedNames = append(expandedNames, labelName)
} }
return expandedNames, nil return expandedNames, nil
} }

50
test/tag.bats Normal file
View file

@ -0,0 +1,50 @@
#!/usr/bin/env bats
load helpers
IMAGE="docker.io/library/alpine:latest"
ROOT="$TESTDIR/crio"
RUNROOT="$TESTDIR/crio-run"
KPOD_OPTIONS="--root $ROOT --runroot $RUNROOT --storage-driver vfs"
function teardown() {
cleanup_test
}
@test "kpod tag with shortname:latest" {
run ${KPOD_BINARY} ${KPOD_OPTIONS} pull $IMAGE
echo "$output"
[ "$status" -eq 0 ]
run ${KPOD_BINARY} ${KPOD_OPTIONS} tag $IMAGE foobar:latest
[ "$status" -eq 0 ]
run ${KPOD_BINARY} ${KPOD_OPTIONS} inspect foobar:latest
echo "$output"
[ "$status" -eq 0 ]
run ${KPOD_BINARY} ${KPOD_OPTIONS} rmi foobar:latest
[ "$status" -eq 0 ]
}
@test "kpod tag with shortname" {
run ${KPOD_BINARY} ${KPOD_OPTIONS} pull $IMAGE
echo "$output"
[ "$status" -eq 0 ]
run ${KPOD_BINARY} ${KPOD_OPTIONS} tag $IMAGE foobar
run ${KPOD_BINARY} ${KPOD_OPTIONS} inspect foobar:latest
echo "$output"
[ "$status" -eq 0 ]
run ${KPOD_BINARY} ${KPOD_OPTIONS} rmi foobar:latest
[ "$status" -eq 0 ]
}
@test "kpod tag with shortname:tag" {
run ${KPOD_BINARY} ${KPOD_OPTIONS} pull $IMAGE
echo "$output"
[ "$status" -eq 0 ]
run ${KPOD_BINARY} ${KPOD_OPTIONS} tag $IMAGE foobar:v
run ${KPOD_BINARY} ${KPOD_OPTIONS} inspect foobar:v
echo "$output"
[ "$status" -eq 0 ]
run ${KPOD_BINARY} ${KPOD_OPTIONS} rmi foobar:v
[ "$status" -eq 0 ]
}