Add support for dir transport to kpod save

kpod save can now save images to directories using the
dir transport. Manifest conversion is also possible.
To save with the oci manifest type set --format to oci-dir
and to save with the v2s2(docker) manifest type, set --format
to docker-dir.
The layers can be compressed as well when saving to a directory
using the --compress flag.
Added functionality to kpod load to be able to load image from
a directory

Signed-off-by: umohnani8 <umohnani@redhat.com>

Closes: #137
Approved by: rhatdan
This commit is contained in:
umohnani8
2017-12-14 12:49:22 -05:00
committed by Atomic Bot
parent 1e7d880b56
commit d2ab53aa5f
6 changed files with 119 additions and 20 deletions

View File

@ -10,10 +10,10 @@ function teardown() {
cleanup_test
}
@test "kpod load input flag" {
run bash -c ${KPOD_BINARY} ${KPOD_OPTIONS} save -o alpine.tar $IMAGE
run bash -c ${KPOD_BINARY} ${KPOD_OPTIONS} save -o alpine.tar $ALPINE
echo "$output"
[ "$status" -eq 0 ]
run bash -c ${KPOD_BINARY} ${KPOD_OPTIONS} rmi $IMAGE
run bash -c ${KPOD_BINARY} ${KPOD_OPTIONS} rmi $ALPINE
echo "$output"
[ "$status" -eq 0 ]
run bash -c ${KPOD_BINARY} ${KPOD_OPTIONS} load -i alpine.tar
@ -23,9 +23,9 @@ function teardown() {
}
@test "kpod load oci-archive image" {
run bash -c ${KPOD_BINARY} ${KPOD_OPTIONS} save -o alpine.tar --format oci-archive $IMAGE
run bash -c ${KPOD_BINARY} ${KPOD_OPTIONS} save -o alpine.tar --format oci-archive $ALPINE
[ "$status" -eq 0 ]
run bash -c ${KPOD_BINARY} $KPOD_OPTIONS rmi $IMAGE
run bash -c ${KPOD_BINARY} $KPOD_OPTIONS rmi $ALPINE
[ "$status" -eq 0 ]
run bash -c ${KPOD_BINARY} ${KPOD_OPTIONS} load -i alpine.tar
echo "$output"
@ -34,9 +34,9 @@ function teardown() {
}
@test "kpod load oci-archive image with signature-policy" {
run bash -c ${KPOD_BINARY} ${KPOD_OPTIONS} save -o alpine.tar --format oci-archive $IMAGE
run bash -c ${KPOD_BINARY} ${KPOD_OPTIONS} save -o alpine.tar --format oci-archive $ALPINE
[ "$status" -eq 0 ]
run bash -c ${KPOD_BINARY} $KPOD_OPTIONS rmi $IMAGE
run bash -c ${KPOD_BINARY} $KPOD_OPTIONS rmi $ALPINE
[ "$status" -eq 0 ]
cp /etc/containers/policy.json /tmp
run bash -c ${KPOD_BINARY} ${KPOD_OPTIONS} load --signature-policy /tmp/policy.json -i alpine.tar
@ -47,10 +47,10 @@ function teardown() {
}
@test "kpod load using quiet flag" {
run bash -c ${KPOD_BINARY} ${KPOD_OPTIONS} save -o alpine.tar $IMAGE
run bash -c ${KPOD_BINARY} ${KPOD_OPTIONS} save -o alpine.tar $ALPINE
echo "$output"
[ "$status" -eq 0 ]
run bash -c ${KPOD_BINARY} ${KPOD_OPTIONS} rmi $IMAGE
run bash -c ${KPOD_BINARY} ${KPOD_OPTIONS} rmi $ALPINE
echo "$output"
[ "$status" -eq 0 ]
run bash -c ${KPOD_BINARY} ${KPOD_OPTIONS} load -q -i alpine.tar
@ -59,6 +59,21 @@ function teardown() {
rm -f alpine.tar
}
@test "kpod load directory" {
run bash -c ${KPOD_BINARY} ${KPOD_OPTIONS} save --format oci-dir -o alp-dir $ALPINE
echo "$output"
[ "$status" -eq 0 ]
run bash -c ${KPOD_BINARY} ${KPOD_OPTIONS} rmi $ALPINE
echo "$output"
[ "$status" -eq 0 ]
run bash -c ${KPOD_BINARY} ${KPOD_OPTIONS} load -i alp-dir
echo "$output"
[ "$status" -eq 0 ]
run bash -c ${KPOD_BINARY} ${KPOD_OPTIONS} rmi alp-dir
echo "$output"
[ "$status" -eq 0 ]
}
@test "kpod load non-existent file" {
run ${KPOD_BINARY} ${KPOD_OPTIONS} load -i alpine.tar
echo "$output"

View File

@ -42,3 +42,17 @@ function setup() {
echo "$output"
[ "$status" -ne 0 ]
}
@test "kpod save to directory wit oci format" {
run bash -c "${KPOD_BINARY} ${KPOD_OPTIONS} save --format oci-dir -o alp-dir $ALPINE"
echo "$output"
[ "$status" -eq 0 ]
rm -rf alp-dir
}
@test "kpod save to directory wit v2s2 (docker) format" {
run bash -c "${KPOD_BINARY} ${KPOD_OPTIONS} save --format docker-dir -o alp-dir $ALPINE"
echo "$output"
[ "$status" -eq 0 ]
rm -rf alp-dir
}