diff --git a/test/e2e_node/BUILD b/test/e2e_node/BUILD index b78f8af9e85..815740fb0c0 100644 --- a/test/e2e_node/BUILD +++ b/test/e2e_node/BUILD @@ -52,8 +52,6 @@ go_library( "//test/utils/image:go_default_library", "//vendor/github.com/blang/semver:go_default_library", "//vendor/github.com/coreos/go-systemd/util:go_default_library", - "//vendor/github.com/docker/docker/api/types:go_default_library", - "//vendor/github.com/docker/docker/client:go_default_library", "//vendor/github.com/onsi/ginkgo:go_default_library", "//vendor/github.com/onsi/gomega:go_default_library", "//vendor/golang.org/x/net/context:go_default_library", diff --git a/test/e2e_node/docker_util.go b/test/e2e_node/docker_util.go index 1955b9dfd28..b80c89ab42a 100644 --- a/test/e2e_node/docker_util.go +++ b/test/e2e_node/docker_util.go @@ -17,30 +17,20 @@ limitations under the License. package e2enode import ( - "context" "fmt" + "strings" "github.com/blang/semver" systemdutil "github.com/coreos/go-systemd/util" - "github.com/docker/docker/api/types" - "github.com/docker/docker/client" -) - -const ( - defaultDockerEndpoint = "unix:///var/run/docker.sock" ) // getDockerAPIVersion returns the Docker's API version. func getDockerAPIVersion() (semver.Version, error) { - c, err := client.NewClient(defaultDockerEndpoint, "", nil, nil) - if err != nil { - return semver.Version{}, fmt.Errorf("failed to create docker client: %v", err) - } - version, err := c.ServerVersion(context.Background()) + output, err := runCommand("docker", "version", "-f", "{{.Server.APIVersion}}") if err != nil { return semver.Version{}, fmt.Errorf("failed to get docker server version: %v", err) } - return semver.MustParse(version.APIVersion + ".0"), nil + return semver.MustParse(strings.TrimSpace(output) + ".0"), nil } // isSharedPIDNamespaceSupported returns true if the Docker version is 1.13.1+ @@ -64,51 +54,41 @@ func isDockerLiveRestoreSupported() (bool, error) { } // getDockerInfo returns the Info struct for the running Docker daemon. -func getDockerInfo() (types.Info, error) { - var info types.Info - c, err := client.NewClient(defaultDockerEndpoint, "", nil, nil) +func getDockerInfo(key string) (string, error) { + output, err := runCommand("docker", "info", "-f", "{{."+key+"}}") if err != nil { - return info, fmt.Errorf("failed to create docker client: %v", err) + return "", fmt.Errorf("failed to get docker info: %v", err) } - info, err = c.Info(context.Background()) - if err != nil { - return info, fmt.Errorf("failed to get docker info: %v", err) - } - return info, nil + return strings.TrimSpace(output), nil } // isDockerLiveRestoreEnabled returns true if live-restore is enabled in the // Docker. func isDockerLiveRestoreEnabled() (bool, error) { - info, err := getDockerInfo() + info, err := getDockerInfo("LiveRestoreEnabled") if err != nil { return false, err } - return info.LiveRestoreEnabled, nil + return info == "true", nil } // getDockerLoggingDriver returns the name of the logging driver. func getDockerLoggingDriver() (string, error) { - info, err := getDockerInfo() + info, err := getDockerInfo("LoggingDriver") if err != nil { return "", err } - return info.LoggingDriver, nil + return info, nil } // isDockerSELinuxSupportEnabled checks whether the Docker daemon was started // with SELinux support enabled. func isDockerSELinuxSupportEnabled() (bool, error) { - info, err := getDockerInfo() + info, err := getDockerInfo("SecurityOptions") if err != nil { return false, err } - for _, s := range info.SecurityOptions { - if s == "selinux" { - return true, nil - } - } - return false, nil + return strings.Contains(info, "name=selinux"), nil } // startDockerDaemon starts the Docker daemon.