Browse Source

Add LastRegister to WorkerStatus

Jiajie Chen 5 years ago
parent
commit
c8600d094e
4 changed files with 11 additions and 6 deletions
  1. 5 4
      internal/msg.go
  2. 1 0
      manager/db_test.go
  3. 4 2
      manager/server.go
  4. 1 0
      worker/worker_test.go

+ 5 - 4
internal/msg.go

@@ -24,10 +24,11 @@ type MirrorStatus struct {
 // A WorkerStatus is the information struct that describe
 // A WorkerStatus is the information struct that describe
 // a worker, and sent from the manager to clients.
 // a worker, and sent from the manager to clients.
 type WorkerStatus struct {
 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 {
 type MirrorSchedules struct {

+ 1 - 0
manager/db_test.go

@@ -35,6 +35,7 @@ func TestBoltAdapter(t *testing.T) {
 					ID:         id,
 					ID:         id,
 					Token:      "token_" + id,
 					Token:      "token_" + id,
 					LastOnline: time.Now(),
 					LastOnline: time.Now(),
+					LastRegister: time.Now(),
 				}
 				}
 				w, err = boltDB.CreateWorker(w)
 				w, err = boltDB.CreateWorker(w)
 				So(err, ShouldBeNil)
 				So(err, ShouldBeNil)

+ 4 - 2
manager/server.go

@@ -203,8 +203,9 @@ func (s *Manager) listWorkers(c *gin.Context) {
 	for _, w := range workers {
 	for _, w := range workers {
 		workerInfos = append(workerInfos,
 		workerInfos = append(workerInfos,
 			WorkerStatus{
 			WorkerStatus{
-				ID:         w.ID,
-				LastOnline: w.LastOnline,
+				ID:           w.ID,
+				LastOnline:   w.LastOnline,
+				LastRegister: w.LastRegister,
 			})
 			})
 	}
 	}
 	c.JSON(http.StatusOK, workerInfos)
 	c.JSON(http.StatusOK, workerInfos)
@@ -215,6 +216,7 @@ func (s *Manager) registerWorker(c *gin.Context) {
 	var _worker WorkerStatus
 	var _worker WorkerStatus
 	c.BindJSON(&_worker)
 	c.BindJSON(&_worker)
 	_worker.LastOnline = time.Now()
 	_worker.LastOnline = time.Now()
+	_worker.LastRegister = time.Now()
 	newWorker, err := s.adapter.CreateWorker(_worker)
 	newWorker, err := s.adapter.CreateWorker(_worker)
 	if err != nil {
 	if err != nil {
 		err := fmt.Errorf("failed to register worker: %s",
 		err := fmt.Errorf("failed to register worker: %s",

+ 1 - 0
worker/worker_test.go

@@ -25,6 +25,7 @@ func makeMockManagerServer(recvData chan interface{}) *gin.Engine {
 		var _worker WorkerStatus
 		var _worker WorkerStatus
 		c.BindJSON(&_worker)
 		c.BindJSON(&_worker)
 		_worker.LastOnline = time.Now()
 		_worker.LastOnline = time.Now()
+		_worker.LastRegister = time.Now()
 		recvData <- _worker
 		recvData <- _worker
 		c.JSON(http.StatusOK, _worker)
 		c.JSON(http.StatusOK, _worker)
 	})
 	})