worker: rename API to Server
This makes it symmetric with the client:
s := worker.NewServer()
c := worker.NewClient()
This commit is contained in:
parent
ac40b0e73b
commit
4a710429de
3 changed files with 34 additions and 34 deletions
|
|
@ -117,11 +117,11 @@ func main() {
|
|||
|
||||
store := store.New(&stateDir)
|
||||
|
||||
jobAPI := worker.New(logger, store)
|
||||
workerAPI := worker.NewServer(logger, store)
|
||||
weldrAPI := weldr.New(rpm, arch, distribution, repoMap[common.CurrentArch()], logger, store)
|
||||
|
||||
go func() {
|
||||
err := jobAPI.Serve(jobListener)
|
||||
err := workerAPI.Serve(jobListener)
|
||||
common.PanicOnError(err)
|
||||
}()
|
||||
|
||||
|
|
@ -157,7 +157,7 @@ func main() {
|
|||
|
||||
listener := tls.NewListener(listener, tlsConfig)
|
||||
go func() {
|
||||
err := jobAPI.Serve(listener)
|
||||
err := workerAPI.Serve(listener)
|
||||
common.PanicOnError(err)
|
||||
}()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,33 +14,33 @@ import (
|
|||
"github.com/osbuild/osbuild-composer/internal/store"
|
||||
)
|
||||
|
||||
type API struct {
|
||||
type Server struct {
|
||||
logger *log.Logger
|
||||
store *store.Store
|
||||
router *httprouter.Router
|
||||
}
|
||||
|
||||
func New(logger *log.Logger, store *store.Store) *API {
|
||||
api := &API{
|
||||
func NewServer(logger *log.Logger, store *store.Store) *Server {
|
||||
s := &Server{
|
||||
logger: logger,
|
||||
store: store,
|
||||
}
|
||||
|
||||
api.router = httprouter.New()
|
||||
api.router.RedirectTrailingSlash = false
|
||||
api.router.RedirectFixedPath = false
|
||||
api.router.MethodNotAllowed = http.HandlerFunc(methodNotAllowedHandler)
|
||||
api.router.NotFound = http.HandlerFunc(notFoundHandler)
|
||||
s.router = httprouter.New()
|
||||
s.router.RedirectTrailingSlash = false
|
||||
s.router.RedirectFixedPath = false
|
||||
s.router.MethodNotAllowed = http.HandlerFunc(methodNotAllowedHandler)
|
||||
s.router.NotFound = http.HandlerFunc(notFoundHandler)
|
||||
|
||||
api.router.POST("/job-queue/v1/jobs", api.addJobHandler)
|
||||
api.router.PATCH("/job-queue/v1/jobs/:job_id/builds/:build_id", api.updateJobHandler)
|
||||
api.router.POST("/job-queue/v1/jobs/:job_id/builds/:build_id/image", api.addJobImageHandler)
|
||||
s.router.POST("/job-queue/v1/jobs", s.addJobHandler)
|
||||
s.router.PATCH("/job-queue/v1/jobs/:job_id/builds/:build_id", s.updateJobHandler)
|
||||
s.router.POST("/job-queue/v1/jobs/:job_id/builds/:build_id/image", s.addJobImageHandler)
|
||||
|
||||
return api
|
||||
return s
|
||||
}
|
||||
|
||||
func (api *API) Serve(listener net.Listener) error {
|
||||
server := http.Server{Handler: api}
|
||||
func (s *Server) Serve(listener net.Listener) error {
|
||||
server := http.Server{Handler: s}
|
||||
|
||||
err := server.Serve(listener)
|
||||
if err != nil && err != http.ErrServerClosed {
|
||||
|
|
@ -50,13 +50,13 @@ func (api *API) Serve(listener net.Listener) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (api *API) ServeHTTP(writer http.ResponseWriter, request *http.Request) {
|
||||
if api.logger != nil {
|
||||
func (s *Server) ServeHTTP(writer http.ResponseWriter, request *http.Request) {
|
||||
if s.logger != nil {
|
||||
log.Println(request.Method, request.URL.Path)
|
||||
}
|
||||
|
||||
writer.Header().Set("Content-Type", "application/json; charset=utf-8")
|
||||
api.router.ServeHTTP(writer, request)
|
||||
s.router.ServeHTTP(writer, request)
|
||||
}
|
||||
|
||||
// jsonErrorf() is similar to http.Error(), but returns the message in a json
|
||||
|
|
@ -78,7 +78,7 @@ func notFoundHandler(writer http.ResponseWriter, request *http.Request) {
|
|||
jsonErrorf(writer, http.StatusNotFound, "not found")
|
||||
}
|
||||
|
||||
func (api *API) addJobHandler(writer http.ResponseWriter, request *http.Request, _ httprouter.Params) {
|
||||
func (s *Server) addJobHandler(writer http.ResponseWriter, request *http.Request, _ httprouter.Params) {
|
||||
contentType := request.Header["Content-Type"]
|
||||
if len(contentType) != 1 || contentType[0] != "application/json" {
|
||||
jsonErrorf(writer, http.StatusUnsupportedMediaType, "request must contain application/json data")
|
||||
|
|
@ -92,7 +92,7 @@ func (api *API) addJobHandler(writer http.ResponseWriter, request *http.Request,
|
|||
return
|
||||
}
|
||||
|
||||
nextJob := api.store.PopJob()
|
||||
nextJob := s.store.PopJob()
|
||||
|
||||
writer.WriteHeader(http.StatusCreated)
|
||||
// FIXME: handle or comment this possible error
|
||||
|
|
@ -104,7 +104,7 @@ func (api *API) addJobHandler(writer http.ResponseWriter, request *http.Request,
|
|||
})
|
||||
}
|
||||
|
||||
func (api *API) updateJobHandler(writer http.ResponseWriter, request *http.Request, params httprouter.Params) {
|
||||
func (s *Server) updateJobHandler(writer http.ResponseWriter, request *http.Request, params httprouter.Params) {
|
||||
contentType := request.Header["Content-Type"]
|
||||
if len(contentType) != 1 || contentType[0] != "application/json" {
|
||||
jsonErrorf(writer, http.StatusUnsupportedMediaType, "request must contain application/json data")
|
||||
|
|
@ -131,7 +131,7 @@ func (api *API) updateJobHandler(writer http.ResponseWriter, request *http.Reque
|
|||
return
|
||||
}
|
||||
|
||||
err = api.store.UpdateImageBuildInCompose(id, imageBuildId, body.Status, body.Result)
|
||||
err = s.store.UpdateImageBuildInCompose(id, imageBuildId, body.Status, body.Result)
|
||||
if err != nil {
|
||||
switch err.(type) {
|
||||
case *store.NotFoundError, *store.NotPendingError:
|
||||
|
|
@ -147,7 +147,7 @@ func (api *API) updateJobHandler(writer http.ResponseWriter, request *http.Reque
|
|||
_ = json.NewEncoder(writer).Encode(updateJobResponse{})
|
||||
}
|
||||
|
||||
func (api *API) addJobImageHandler(writer http.ResponseWriter, request *http.Request, params httprouter.Params) {
|
||||
func (s *Server) addJobImageHandler(writer http.ResponseWriter, request *http.Request, params httprouter.Params) {
|
||||
id, err := uuid.Parse(params.ByName("job_id"))
|
||||
if err != nil {
|
||||
jsonErrorf(writer, http.StatusBadRequest, "cannot parse compose id: %v", err)
|
||||
|
|
@ -161,7 +161,7 @@ func (api *API) addJobImageHandler(writer http.ResponseWriter, request *http.Req
|
|||
return
|
||||
}
|
||||
|
||||
err = api.store.AddImageToImageUpload(id, imageBuildId, request.Body)
|
||||
err = s.store.AddImageToImageUpload(id, imageBuildId, request.Body)
|
||||
|
||||
if err != nil {
|
||||
switch err.(type) {
|
||||
|
|
@ -35,8 +35,8 @@ func TestErrors(t *testing.T) {
|
|||
}
|
||||
|
||||
for _, c := range cases {
|
||||
api := worker.New(nil, store.New(nil))
|
||||
test.TestRoute(t, api, false, c.Method, c.Path, c.Body, c.ExpectedStatus, "{}", "message")
|
||||
server := worker.NewServer(nil, store.New(nil))
|
||||
test.TestRoute(t, server, false, c.Method, c.Path, c.Body, c.ExpectedStatus, "{}", "message")
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -51,14 +51,14 @@ func TestCreate(t *testing.T) {
|
|||
t.Fatalf("error getting image type from arch")
|
||||
}
|
||||
store := store.New(nil)
|
||||
api := worker.New(nil, store)
|
||||
server := worker.NewServer(nil, store)
|
||||
|
||||
id, err := store.PushCompose(imageType, &blueprint.Blueprint{}, nil, nil, nil, 0, nil)
|
||||
if err != nil {
|
||||
t.Fatalf("error pushing compose: %v", err)
|
||||
}
|
||||
|
||||
test.TestRoute(t, api, false, "POST", "/job-queue/v1/jobs", `{}`, http.StatusCreated,
|
||||
test.TestRoute(t, server, false, "POST", "/job-queue/v1/jobs", `{}`, http.StatusCreated,
|
||||
`{"compose_id":"`+id.String()+`","image_build_id":0,"manifest":{"sources":{},"pipeline":{}},"targets":[]}`, "created")
|
||||
}
|
||||
|
||||
|
|
@ -73,7 +73,7 @@ func testUpdateTransition(t *testing.T, from, to string, expectedStatus int) {
|
|||
t.Fatalf("error getting image type from arch")
|
||||
}
|
||||
store := store.New(nil)
|
||||
api := worker.New(nil, store)
|
||||
server := worker.NewServer(nil, store)
|
||||
|
||||
id := uuid.Nil
|
||||
if from != "VOID" {
|
||||
|
|
@ -83,14 +83,14 @@ func testUpdateTransition(t *testing.T, from, to string, expectedStatus int) {
|
|||
}
|
||||
|
||||
if from != "WAITING" {
|
||||
test.SendHTTP(api, false, "POST", "/job-queue/v1/jobs", `{}`)
|
||||
test.SendHTTP(server, false, "POST", "/job-queue/v1/jobs", `{}`)
|
||||
if from != "RUNNING" {
|
||||
test.SendHTTP(api, false, "PATCH", "/job-queue/v1/jobs/"+id.String()+"/builds/0", `{"status":"`+from+`"}`)
|
||||
test.SendHTTP(server, false, "PATCH", "/job-queue/v1/jobs/"+id.String()+"/builds/0", `{"status":"`+from+`"}`)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
test.TestRoute(t, api, false, "PATCH", "/job-queue/v1/jobs/"+id.String()+"/builds/0", `{"status":"`+to+`"}`, expectedStatus, "{}", "message")
|
||||
test.TestRoute(t, server, false, "PATCH", "/job-queue/v1/jobs/"+id.String()+"/builds/0", `{"status":"`+to+`"}`, expectedStatus, "{}", "message")
|
||||
}
|
||||
|
||||
func TestUpdate(t *testing.T) {
|
||||
Loading…
Add table
Add a link
Reference in a new issue