1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

Merge pull request #28217 from Microsoft/jjh/373engineapifollowup

Tidy GetDockerOS() function
This commit is contained in:
Victor Vieux 2016-11-10 18:57:56 -08:00 committed by GitHub
commit 4453fd22a7
4 changed files with 18 additions and 16 deletions

View file

@ -21,6 +21,6 @@ func (cli *Client) ContainerStats(ctx context.Context, containerID string, strea
return types.ContainerStats{}, err return types.ContainerStats{}, err
} }
osType := GetDockerOS(resp.header.Get("Server")) osType := getDockerOS(resp.header.Get("Server"))
return types.ContainerStats{Body: resp.body, OSType: osType}, err return types.ContainerStats{Body: resp.body, OSType: osType}, err
} }

View file

@ -6,7 +6,6 @@ import (
"io" "io"
"net/http" "net/http"
"net/url" "net/url"
"regexp"
"strconv" "strconv"
"golang.org/x/net/context" "golang.org/x/net/context"
@ -15,8 +14,6 @@ import (
"github.com/docker/docker/api/types/container" "github.com/docker/docker/api/types/container"
) )
var headerRegexp = regexp.MustCompile(`\ADocker/.+\s\((.+)\)\z`)
// ImageBuild sends request to the daemon to build images. // ImageBuild sends request to the daemon to build images.
// The Body in the response implement an io.ReadCloser and it's up to the caller to // The Body in the response implement an io.ReadCloser and it's up to the caller to
// close it. // close it.
@ -39,7 +36,7 @@ func (cli *Client) ImageBuild(ctx context.Context, buildContext io.Reader, optio
return types.ImageBuildResponse{}, err return types.ImageBuildResponse{}, err
} }
osType := GetDockerOS(serverResp.header.Get("Server")) osType := getDockerOS(serverResp.header.Get("Server"))
return types.ImageBuildResponse{ return types.ImageBuildResponse{
Body: serverResp.body, Body: serverResp.body,
@ -124,13 +121,3 @@ func (cli *Client) imageBuildOptionsToQuery(options types.ImageBuildOptions) (ur
return query, nil return query, nil
} }
// GetDockerOS returns the operating system based on the server header from the daemon.
func GetDockerOS(serverHeader string) string {
var osType string
matches := headerRegexp.FindStringSubmatch(serverHeader)
if len(matches) > 0 {
osType = matches[1]
}
return osType
}

View file

@ -222,7 +222,7 @@ func TestGetDockerOS(t *testing.T) {
"Foo/v1.22 (bar)": "", "Foo/v1.22 (bar)": "",
} }
for header, os := range cases { for header, os := range cases {
g := GetDockerOS(header) g := getDockerOS(header)
if g != os { if g != os {
t.Fatalf("Expected %s, got %s", os, g) t.Fatalf("Expected %s, got %s", os, g)
} }

15
client/utils.go Normal file
View file

@ -0,0 +1,15 @@
package client
import "regexp"
var headerRegexp = regexp.MustCompile(`\ADocker/.+\s\((.+)\)\z`)
// getDockerOS returns the operating system based on the server header from the daemon.
func getDockerOS(serverHeader string) string {
var osType string
matches := headerRegexp.FindStringSubmatch(serverHeader)
if len(matches) > 0 {
osType = matches[1]
}
return osType
}