github.com/guilhermebr/docker@v1.4.2-0.20150428121140-67da055cebca/registry/httpfactory.go (about) 1 package registry 2 3 import ( 4 "runtime" 5 6 "github.com/docker/docker/autogen/dockerversion" 7 "github.com/docker/docker/pkg/parsers/kernel" 8 "github.com/docker/docker/pkg/requestdecorator" 9 ) 10 11 func HTTPRequestFactory(metaHeaders map[string][]string) *requestdecorator.RequestFactory { 12 // FIXME: this replicates the 'info' job. 13 httpVersion := make([]requestdecorator.UAVersionInfo, 0, 4) 14 httpVersion = append(httpVersion, requestdecorator.NewUAVersionInfo("docker", dockerversion.VERSION)) 15 httpVersion = append(httpVersion, requestdecorator.NewUAVersionInfo("go", runtime.Version())) 16 httpVersion = append(httpVersion, requestdecorator.NewUAVersionInfo("git-commit", dockerversion.GITCOMMIT)) 17 if kernelVersion, err := kernel.GetKernelVersion(); err == nil { 18 httpVersion = append(httpVersion, requestdecorator.NewUAVersionInfo("kernel", kernelVersion.String())) 19 } 20 httpVersion = append(httpVersion, requestdecorator.NewUAVersionInfo("os", runtime.GOOS)) 21 httpVersion = append(httpVersion, requestdecorator.NewUAVersionInfo("arch", runtime.GOARCH)) 22 uad := &requestdecorator.UserAgentDecorator{ 23 Versions: httpVersion, 24 } 25 mhd := &requestdecorator.MetaHeadersDecorator{ 26 Headers: metaHeaders, 27 } 28 factory := requestdecorator.NewRequestFactory(uad, mhd) 29 return factory 30 }