Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

switch to docker command line in tests/e2e_node #87335

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 0 additions & 2 deletions test/e2e_node/BUILD
Expand Up @@ -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",
Expand Down
46 changes: 13 additions & 33 deletions test/e2e_node/docker_util.go
Expand Up @@ -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+
Expand All @@ -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.
Expand Down