فهرست منبع

Set client version instead of negotiating it

Signed-off-by: Christopher Crone <christopher.crone@docker.com>
Christopher Crone 7 سال پیش
والد
کامیت
85431566a8
1فایلهای تغییر یافته به همراه24 افزوده شده و 4 حذف شده
  1. 24 4
      integration-cli/request/request.go

+ 24 - 4
integration-cli/request/request.go

@@ -18,7 +18,6 @@ import (
 	"time"
 	"time"
 
 
 	"github.com/docker/docker/api"
 	"github.com/docker/docker/api"
-	"github.com/docker/docker/api/types"
 	dclient "github.com/docker/docker/client"
 	dclient "github.com/docker/docker/client"
 	"github.com/docker/docker/opts"
 	"github.com/docker/docker/opts"
 	"github.com/docker/docker/pkg/ioutils"
 	"github.com/docker/docker/pkg/ioutils"
@@ -328,10 +327,31 @@ func DaemonHost() string {
 // NewEnvClientWithVersion returns a docker client with a specified version.
 // NewEnvClientWithVersion returns a docker client with a specified version.
 // See: github.com/docker/docker/client `NewEnvClient()`
 // See: github.com/docker/docker/client `NewEnvClient()`
 func NewEnvClientWithVersion(version string) (*dclient.Client, error) {
 func NewEnvClientWithVersion(version string) (*dclient.Client, error) {
-	cli, err := dclient.NewEnvClient()
+	if version == "" {
+		return nil, errors.New("version not specified")
+	}
+
+	var httpClient *http.Client
+	if os.Getenv("DOCKER_CERT_PATH") != "" {
+		tlsConfig, err := getTLSConfig()
+		if err != nil {
+			return nil, err
+		}
+		httpClient = &http.Client{
+			Transport: &http.Transport{
+				TLSClientConfig: tlsConfig,
+			},
+		}
+	}
+
+	host := os.Getenv("DOCKER_HOST")
+	if host == "" {
+		host = dclient.DefaultDockerHost
+	}
+
+	cli, err := dclient.NewClient(host, version, httpClient, nil)
 	if err != nil {
 	if err != nil {
-		return nil, err
+		return cli, err
 	}
 	}
-	cli.NegotiateAPIVersionPing(types.Ping{APIVersion: version})
 	return cli, nil
 	return cli, nil
 }
 }