Implement streaming server stop (Kubernetes#51377)

Signed-off-by: Lantao Liu <lantaol@google.com>
This commit is contained in:
Lantao Liu 2017-08-25 23:39:11 +00:00
parent c311f10a77
commit 82ee80d0fa

View File

@ -141,6 +141,11 @@ func NewServer(config Config, runtime Runtime) (Server, error) {
handler := restful.NewContainer() handler := restful.NewContainer()
handler.Add(ws) handler.Add(ws)
s.handler = handler s.handler = handler
s.server = &http.Server{
Addr: s.config.Addr,
Handler: s.handler,
TLSConfig: s.config.TLSConfig,
}
return s, nil return s, nil
} }
@ -150,6 +155,7 @@ type server struct {
runtime *criAdapter runtime *criAdapter
handler http.Handler handler http.Handler
cache *requestCache cache *requestCache
server *http.Server
} }
func (s *server) GetExec(req *runtimeapi.ExecRequest) (*runtimeapi.ExecResponse, error) { func (s *server) GetExec(req *runtimeapi.ExecRequest) (*runtimeapi.ExecResponse, error) {
@ -197,21 +203,15 @@ func (s *server) Start(stayUp bool) error {
return errors.New("stayUp=false is not yet implemented") return errors.New("stayUp=false is not yet implemented")
} }
server := &http.Server{
Addr: s.config.Addr,
Handler: s.handler,
TLSConfig: s.config.TLSConfig,
}
if s.config.TLSConfig != nil { if s.config.TLSConfig != nil {
return server.ListenAndServeTLS("", "") // Use certs from TLSConfig. return s.server.ListenAndServeTLS("", "") // Use certs from TLSConfig.
} else { } else {
return server.ListenAndServe() return s.server.ListenAndServe()
} }
} }
func (s *server) Stop() error { func (s *server) Stop() error {
// TODO(tallclair): Implement this. return s.server.Close()
return errors.New("not yet implemented")
} }
func (s *server) ServeHTTP(w http.ResponseWriter, r *http.Request) { func (s *server) ServeHTTP(w http.ResponseWriter, r *http.Request) {