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  }