forked from TrueCloudLab/distribution
102 lines
2.1 KiB
Text
102 lines
2.1 KiB
Text
|
#!/usr/bin/env bats
|
||
|
|
||
|
# This tests pushing and pulling plugins
|
||
|
|
||
|
load helpers
|
||
|
|
||
|
user="testuser"
|
||
|
password="testpassword"
|
||
|
base="hello-world"
|
||
|
|
||
|
#TODO: Create plugin image
|
||
|
function create_plugin() {
|
||
|
plugindir=$(mktemp -d)
|
||
|
|
||
|
cat - > $plugindir/config.json <<CONFIGJSON
|
||
|
{
|
||
|
"manifestVersion": "v0",
|
||
|
"description": "A test plugin for integration tests",
|
||
|
"entrypoint": ["/usr/bin/ncat", "-l", "-U", "//run/docker/plugins/plugin.sock"],
|
||
|
"interface" : {
|
||
|
"types": ["docker.volumedriver/1.0"],
|
||
|
"socket": "plugin.sock"
|
||
|
}
|
||
|
}
|
||
|
CONFIGJSON
|
||
|
|
||
|
cid=$(docker create dmcgowan/ncat:latest /bin/sh)
|
||
|
|
||
|
mkdir $plugindir/rootfs
|
||
|
|
||
|
docker export $cid | tar -x -C $plugindir/rootfs
|
||
|
|
||
|
daemontmp=$(docker exec dockerdaemon mktemp -d)
|
||
|
|
||
|
tar -c -C $plugindir . | docker exec -i dockerdaemon tar -x -C $daemontmp
|
||
|
|
||
|
docker exec dockerdaemon docker plugin create $1 $daemontmp
|
||
|
|
||
|
docker exec dockerdaemon rm -rf $daemontmp
|
||
|
|
||
|
rm -rf $plugindir
|
||
|
}
|
||
|
|
||
|
@test "Test plugin push and pull" {
|
||
|
version_check docker "$GOLEM_DIND_VERSION" "1.13.0-rc3"
|
||
|
version_check docker "$GOLEM_DISTRIBUTION_VERSION" "2.6.0"
|
||
|
|
||
|
login_oauth localregistry:5558
|
||
|
image="localregistry:5558/testuser/plugin1"
|
||
|
|
||
|
create_plugin $image
|
||
|
|
||
|
run docker_t plugin push $image
|
||
|
echo $output
|
||
|
[ "$status" -eq 0 ]
|
||
|
|
||
|
docker_t plugin rm $image
|
||
|
|
||
|
docker_t plugin install --grant-all-permissions $image
|
||
|
}
|
||
|
|
||
|
@test "Test plugin push and failed image pull" {
|
||
|
version_check docker "$GOLEM_DIND_VERSION" "1.13.0-rc3"
|
||
|
version_check docker "$GOLEM_DISTRIBUTION_VERSION" "2.6.0"
|
||
|
|
||
|
|
||
|
login_oauth localregistry:5558
|
||
|
image="localregistry:5558/testuser/plugin-not-image"
|
||
|
|
||
|
create_plugin $image
|
||
|
|
||
|
run docker_t plugin push $image
|
||
|
echo $output
|
||
|
[ "$status" -eq 0 ]
|
||
|
|
||
|
docker_t plugin rm $image
|
||
|
|
||
|
run docker_t pull $image
|
||
|
|
||
|
[ "$status" -ne 0 ]
|
||
|
}
|
||
|
|
||
|
@test "Test image push and failed plugin pull" {
|
||
|
version_check docker "$GOLEM_DIND_VERSION" "1.13.0-rc3"
|
||
|
version_check docker "$GOLEM_DISTRIBUTION_VERSION" "2.6.0"
|
||
|
|
||
|
login_oauth localregistry:5558
|
||
|
image="localregistry:5558/testuser/image-not-plugin"
|
||
|
|
||
|
build $image "$base:latest"
|
||
|
|
||
|
run docker_t push $image
|
||
|
echo $output
|
||
|
[ "$status" -eq 0 ]
|
||
|
|
||
|
docker_t rmi $image
|
||
|
|
||
|
run docker_t plugin install --grant-all-permissions $image
|
||
|
|
||
|
[ "$status" -ne 0 ]
|
||
|
}
|