From c8600d094e71332f88f7427c7c9ac61e2ed0587f Mon Sep 17 00:00:00 2001 From: Jiajie Chen Date: Thu, 10 Sep 2020 21:31:31 +0800 Subject: [PATCH] Add LastRegister to WorkerStatus --- internal/msg.go | 9 +++++---- manager/db_test.go | 1 + manager/server.go | 6 ++++-- worker/worker_test.go | 1 + 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/internal/msg.go b/internal/msg.go index ac992a5..2840261 100644 --- a/internal/msg.go +++ b/internal/msg.go @@ -24,10 +24,11 @@ type MirrorStatus struct { // A WorkerStatus is the information struct that describe // a worker, and sent from the manager to clients. type WorkerStatus struct { - ID string `json:"id"` - URL string `json:"url"` // worker url - Token string `json:"token"` // session token - LastOnline time.Time `json:"last_online"` // last seen + ID string `json:"id"` + URL string `json:"url"` // worker url + Token string `json:"token"` // session token + LastOnline time.Time `json:"last_online"` // last seen + LastRegister time.Time `json:"last_register"` // last register time } type MirrorSchedules struct { diff --git a/manager/db_test.go b/manager/db_test.go index d4b16ed..f65a356 100644 --- a/manager/db_test.go +++ b/manager/db_test.go @@ -35,6 +35,7 @@ func TestBoltAdapter(t *testing.T) { ID: id, Token: "token_" + id, LastOnline: time.Now(), + LastRegister: time.Now(), } w, err = boltDB.CreateWorker(w) So(err, ShouldBeNil) diff --git a/manager/server.go b/manager/server.go index 77ed92e..04ce207 100644 --- a/manager/server.go +++ b/manager/server.go @@ -203,8 +203,9 @@ func (s *Manager) listWorkers(c *gin.Context) { for _, w := range workers { workerInfos = append(workerInfos, WorkerStatus{ - ID: w.ID, - LastOnline: w.LastOnline, + ID: w.ID, + LastOnline: w.LastOnline, + LastRegister: w.LastRegister, }) } c.JSON(http.StatusOK, workerInfos) @@ -215,6 +216,7 @@ func (s *Manager) registerWorker(c *gin.Context) { var _worker WorkerStatus c.BindJSON(&_worker) _worker.LastOnline = time.Now() + _worker.LastRegister = time.Now() newWorker, err := s.adapter.CreateWorker(_worker) if err != nil { err := fmt.Errorf("failed to register worker: %s", diff --git a/worker/worker_test.go b/worker/worker_test.go index 719b651..e00f59a 100644 --- a/worker/worker_test.go +++ b/worker/worker_test.go @@ -25,6 +25,7 @@ func makeMockManagerServer(recvData chan interface{}) *gin.Engine { var _worker WorkerStatus c.BindJSON(&_worker) _worker.LastOnline = time.Now() + _worker.LastRegister = time.Now() recvData <- _worker c.JSON(http.StatusOK, _worker) })