104 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Bash
		
	
	
			
		
		
	
	
			104 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Bash
		
	
	
#!/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
 | 
						|
 | 
						|
	docker rm $cid
 | 
						|
 | 
						|
	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 ]
 | 
						|
}
 |