Sfoglia il codice sorgente

integration-cli: add utility to check if snapshotters are enabled

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Sebastiaan van Stijn 2 anni fa
parent
commit
74b84d00b3

+ 1 - 2
integration-cli/docker_cli_inspect_test.go

@@ -42,8 +42,7 @@ func (s *DockerCLIInspectSuite) TestInspectImage(c *testing.T) {
 	// fails, fix the difference in the image serialization instead of
 	// updating this hash.
 	imageTestID := "sha256:11f64303f0f7ffdc71f001788132bca5346831939a956e3e975c93267d89a16d"
-	usesContainerdSnapshotter := false // TODO(vvoland): Check for feature flag
-	if usesContainerdSnapshotter {
+	if containerdSnapshotterEnabled() {
 		// Under containerd ID of the image is the digest of the manifest list.
 		imageTestID = "sha256:e43ca824363c5c56016f6ede3a9035afe0e9bd43333215e0b0bde6193969725d"
 	}

+ 12 - 0
integration-cli/requirements_test.go

@@ -10,6 +10,7 @@ import (
 	"testing"
 	"time"
 
+	"github.com/containerd/containerd/plugin"
 	"github.com/docker/docker/api/types"
 	"github.com/docker/docker/api/types/swarm"
 	"github.com/docker/docker/api/types/versions"
@@ -99,6 +100,17 @@ func Devicemapper() bool {
 	return strings.HasPrefix(testEnv.DaemonInfo.Driver, "devicemapper")
 }
 
+// containerdSnapshotterEnabled checks if the daemon in the test-environment is
+// configured with containerd-snapshotters enabled.
+func containerdSnapshotterEnabled() bool {
+	for _, v := range testEnv.DaemonInfo.DriverStatus {
+		if v[0] == "driver-type" {
+			return v[1] == string(plugin.SnapshotPlugin)
+		}
+	}
+	return false
+}
+
 func IPv6() bool {
 	cmd := exec.Command("test", "-f", "/proc/net/if_inet6")
 	return cmd.Run() != nil