worker/server: move it to the style of koji server

The previous code was smelling a bit (e.g. Server.server field) so I decided
to rewrite it in the style of the much nicer koji server.

Not a functional change.

Signed-off-by: Ondřej Budai <ondrej@budai.cz>
This commit is contained in:
Ondřej Budai 2020-11-19 10:09:39 +01:00 committed by Tom Gundersen
parent 2dff7d0529
commit 978e309153
4 changed files with 39 additions and 37 deletions

View file

@ -8,7 +8,6 @@ import (
"io"
"io/ioutil"
"log"
"net"
"net/http"
"os"
"path"
@ -24,7 +23,7 @@ import (
type Server struct {
jobs jobqueue.JobQueue
server *http.Server
logger *log.Logger
artifactsDir string
// Currently running jobs. Workers are not handed job ids, but
@ -50,37 +49,25 @@ type JobStatus struct {
var ErrTokenNotExist = errors.New("worker token does not exist")
func NewServer(logger *log.Logger, jobs jobqueue.JobQueue, artifactsDir string) *Server {
s := &Server{
return &Server{
jobs: jobs,
logger: logger,
artifactsDir: artifactsDir,
running: make(map[uuid.UUID]uuid.UUID),
}
}
func (s *Server) Handler() http.Handler {
e := echo.New()
e.Binder = binder{}
e.StdLogger = logger
e.StdLogger = s.logger
api.RegisterHandlers(e.Group(api.BasePath), &apiHandlers{s})
s.server = &http.Server{
ErrorLog: logger,
Handler: e,
handler := apiHandlers{
server: s,
}
api.RegisterHandlers(e.Group(api.BasePath), &handler)
return s
}
func (s *Server) Serve(listener net.Listener) error {
err := s.server.Serve(listener)
if err != nil && err != http.ErrServerClosed {
return err
}
return nil
}
func (s *Server) ServeHTTP(writer http.ResponseWriter, request *http.Request) {
s.server.Handler.ServeHTTP(writer, request)
return e
}
func (s *Server) EnqueueOSBuild(arch string, job *OSBuildJob) (uuid.UUID, error) {