This commit is contained in:
Fedor Korotkiy 2020-03-29 20:35:39 +03:00
parent 6e5c478920
commit 628833a049
3 changed files with 33 additions and 26 deletions

View file

@ -103,7 +103,7 @@ func (c *Client) SignalBuild(ctx context.Context, buildID build.ID, signal *Sign
}
var signalRsp SignalResponse
if err := json.Unmarshal(rspBody, &rsp); err != nil {
if err = json.Unmarshal(rspBody, &rsp); err != nil {
return nil, err
}

View file

@ -52,7 +52,7 @@ func (s *ServiceHandler) doBuild(w http.ResponseWriter, r *http.Request) error {
}
var req BuildRequest
if err := json.Unmarshal(reqJSON, &req); err != nil {
if err = json.Unmarshal(reqJSON, &req); err != nil {
return err
}
@ -95,7 +95,7 @@ func (s *ServiceHandler) doSignal(w http.ResponseWriter, r *http.Request) error
}
var req SignalRequest
if err := json.Unmarshal(reqJSON, &req); err != nil {
if err = json.Unmarshal(reqJSON, &req); err != nil {
return err
}

View file

@ -1,6 +1,11 @@
package api
import (
"context"
"net/http"
"go.uber.org/zap"
"gitlab.com/slon/shad-go/distbuild/pkg/build"
)
@ -32,13 +37,6 @@ type HeartbeatRequest struct {
// В наших тестов, идентификатор будет иметь вид "localhost:%d".
WorkerID WorkerID
// ProcessID задаёт эфемерный идентификатор текущего процесса воркера.
//
// Координатор запоминает ProcessID для каждого воркера.
//
// Измение ProcessID значит, что воркер перезапустился.
ProcessID string
// RunningJobs перечисляет список джобов, которые выполняются на этом воркере
// в данный момент.
RunningJobs []build.ID
@ -68,22 +66,31 @@ type JobSpec struct {
Job build.Job
}
// ArtifactSpec описывает артефакт, который нужно скачать с другого воркера.
type ArtifactSpec struct {
}
// SourceFileSpec описывает файл с исходным кодом, который нужно скачать с координатора.
type SourceFileSpec struct {
}
type HeartbeatResponse struct {
JobsToRun map[build.ID]JobSpec
ArtifactsToDownload map[build.ID]ArtifactSpec
ArtifactsToRemove []build.ID
SourceFilesToDownload map[build.ID]SourceFileSpec
SourceFilesToRemove []build.ID
}
type HeartbeatService interface {
Heartbeat(ctx context.Context, req *HeartbeatRequest) (*HeartbeatResponse, error)
}
type HeartbeatClient struct {
Endpoint string
}
func (c *HeartbeatClient) Heartbeat(ctx context.Context, req *HeartbeatRequest) (*HeartbeatResponse, error) {
panic("implement me")
}
type HeartbeatHandler struct {
l *zap.Logger
s HeartbeatService
}
func (h *HeartbeatHandler) Register(mux *http.ServeMux) {
mux.HandleFunc("/heartbeat", h.heartbeat)
}
func (h *HeartbeatHandler) heartbeat(w http.ResponseWriter, r *http.Request) {
}