Previous versions of libcontainer allowed CpuShares that were greater than the maximum or less than the minimum supported by the kernel, and relied on the kernel to do the right thing. Newer libcontainer fails after creating the container if the requested CpuShares is different from what was actually created by the kernel, which breaks compatibility with earlier Docker Remote API versions. This change explicitly adjusts the requested CpuShares in API versions < 1.20. Signed-off-by: Samuel Karp <skarp@amazon.com> Upstream-commit: ed39fbeb2ad3959f37cf6c16aaf30aacb3292817 Component: engine
60 lines
1.0 KiB
Go
60 lines
1.0 KiB
Go
// +build windows
|
|
|
|
package server
|
|
|
|
import (
|
|
"errors"
|
|
"net"
|
|
"net/http"
|
|
|
|
"github.com/docker/docker/daemon"
|
|
)
|
|
|
|
// NewServer sets up the required Server and does protocol specific checking.
|
|
func (s *Server) newServer(proto, addr string) ([]serverCloser, error) {
|
|
var (
|
|
ls []net.Listener
|
|
)
|
|
switch proto {
|
|
case "tcp":
|
|
l, err := s.initTcpSocket(addr)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
ls = append(ls, l)
|
|
|
|
default:
|
|
return nil, errors.New("Invalid protocol format. Windows only supports tcp.")
|
|
}
|
|
|
|
var res []serverCloser
|
|
for _, l := range ls {
|
|
res = append(res, &HttpServer{
|
|
&http.Server{
|
|
Addr: addr,
|
|
Handler: s.router,
|
|
},
|
|
l,
|
|
})
|
|
}
|
|
return res, nil
|
|
|
|
}
|
|
|
|
func (s *Server) AcceptConnections(d *daemon.Daemon) {
|
|
s.daemon = d
|
|
// close the lock so the listeners start accepting connections
|
|
select {
|
|
case <-s.start:
|
|
default:
|
|
close(s.start)
|
|
}
|
|
}
|
|
|
|
func allocateDaemonPort(addr string) error {
|
|
return nil
|
|
}
|
|
|
|
func adjustCpuShares(version version.Version, hostConfig *runconfig.HostConfig) {
|
|
}
|