diff --git a/graph.go b/graph.go index 277bd1a55b..058ef7e93d 100644 --- a/graph.go +++ b/graph.go @@ -10,6 +10,7 @@ import ( "os" "path" "path/filepath" + "runtime" "strings" "syscall" "time" @@ -131,7 +132,8 @@ func (graph *Graph) Create(layerData archive.Archive, container *Container, comm DockerVersion: VERSION, Author: author, Config: config, - Architecture: "x86_64", + Architecture: runtime.GOARCH, + OS: runtime.GOOS, } if container != nil { img.Parent = container.Image diff --git a/image.go b/image.go index 0f07a74ee8..f062910ef8 100644 --- a/image.go +++ b/image.go @@ -28,6 +28,7 @@ type Image struct { Author string `json:"author,omitempty"` Config *Config `json:"config,omitempty"` Architecture string `json:"architecture,omitempty"` + OS string `json:"os,omitempty"` graph *Graph Size int64 } diff --git a/server.go b/server.go index 6a3ff2cd2d..3040494196 100644 --- a/server.go +++ b/server.go @@ -2018,6 +2018,8 @@ func (srv *Server) HTTPRequestFactory(metaHeaders map[string][]string) *utils.HT httpVersion = append(httpVersion, &simpleVersionInfo{"go", v.Get("GoVersion")}) httpVersion = append(httpVersion, &simpleVersionInfo{"git-commit", v.Get("GitCommit")}) httpVersion = append(httpVersion, &simpleVersionInfo{"kernel", v.Get("KernelVersion")}) + httpVersion = append(httpVersion, &simpleVersionInfo{"os", v.Get("Os")}) + httpVersion = append(httpVersion, &simpleVersionInfo{"arch", v.Get("Arch")}) ud := utils.NewHTTPUserAgentDecorator(httpVersion...) md := &utils.HTTPMetaHeadersDecorator{ Headers: metaHeaders, diff --git a/utils/http.go b/utils/http.go index 463d3b4fdd..68e93d8eb9 100644 --- a/utils/http.go +++ b/utils/http.go @@ -76,9 +76,9 @@ type HTTPUserAgentDecorator struct { } func NewHTTPUserAgentDecorator(versions ...VersionInfo) HTTPRequestDecorator { - ret := new(HTTPUserAgentDecorator) - ret.versions = versions - return ret + return &HTTPUserAgentDecorator{ + versions: versions, + } } func (h *HTTPUserAgentDecorator) ChangeRequest(req *http.Request) (newReq *http.Request, err error) { @@ -108,15 +108,15 @@ func (h *HTTPMetaHeadersDecorator) ChangeRequest(req *http.Request) (newReq *htt } type HTTPAuthDecorator struct { - login string + login string password string } func NewHTTPAuthDecorator(login, password string) HTTPRequestDecorator { - ret := new(HTTPAuthDecorator) - ret.login = login - ret.password = password - return ret + return &HTTPAuthDecorator{ + login: login, + password: password, + } } func (self *HTTPAuthDecorator) ChangeRequest(req *http.Request) (*http.Request, error) { @@ -136,7 +136,7 @@ func NewHTTPRequestFactory(d ...HTTPRequestDecorator) *HTTPRequestFactory { } } -func (self *HTTPRequestFactory) AddDecorator(d... HTTPRequestDecorator) { +func (self *HTTPRequestFactory) AddDecorator(d ...HTTPRequestDecorator) { self.decorators = append(self.decorators, d...) } diff --git a/version.go b/version.go index c85e77c59a..a4288245f7 100644 --- a/version.go +++ b/version.go @@ -25,6 +25,8 @@ func dockerVersion() *engine.Env { v.Set("Version", VERSION) v.Set("GitCommit", GITCOMMIT) v.Set("GoVersion", runtime.Version()) + v.Set("Os", runtime.GOOS) + v.Set("Arch", runtime.GOARCH) // FIXME:utils.GetKernelVersion should only be needed here if kernelVersion, err := utils.GetKernelVersion(); err == nil { v.Set("KernelVersion", kernelVersion.String())