feature(manager): worker => workerStatus

This commit is contained in:
walkerning 2016-04-25 21:49:32 +08:00 committed by bigeagle
parent a11fbe2c58
commit 734826fa67
No known key found for this signature in database
GPG Key ID: 9171A4571C27920A
4 changed files with 20 additions and 20 deletions

View File

@ -10,9 +10,9 @@ import (
type dbAdapter interface { type dbAdapter interface {
Init() error Init() error
ListWorkers() ([]worker, error) ListWorkers() ([]workerStatus, error)
GetWorker(workerID string) (worker, error) GetWorker(workerID string) (workerStatus, error)
CreateWorker(w worker) (worker, error) CreateWorker(w workerStatus) (workerStatus, error)
UpdateMirrorStatus(workerID, mirrorID string, status mirrorStatus) (mirrorStatus, error) UpdateMirrorStatus(workerID, mirrorID string, status mirrorStatus) (mirrorStatus, error)
GetMirrorStatus(workerID, mirrorID string) (mirrorStatus, error) GetMirrorStatus(workerID, mirrorID string) (mirrorStatus, error)
ListMirrorStatus(workerID string) ([]mirrorStatus, error) ListMirrorStatus(workerID string) ([]mirrorStatus, error)
@ -61,11 +61,11 @@ func (b *boltAdapter) Init() (err error) {
}) })
} }
func (b *boltAdapter) ListWorkers() (ws []worker, err error) { func (b *boltAdapter) ListWorkers() (ws []workerStatus, err error) {
err = b.db.View(func(tx *bolt.Tx) error { err = b.db.View(func(tx *bolt.Tx) error {
bucket := tx.Bucket([]byte(_workerBucketKey)) bucket := tx.Bucket([]byte(_workerBucketKey))
c := bucket.Cursor() c := bucket.Cursor()
var w worker var w workerStatus
for k, v := c.First(); k != nil; k, v = c.Next() { for k, v := c.First(); k != nil; k, v = c.Next() {
jsonErr := json.Unmarshal(v, &w) jsonErr := json.Unmarshal(v, &w)
if jsonErr != nil { if jsonErr != nil {
@ -79,7 +79,7 @@ func (b *boltAdapter) ListWorkers() (ws []worker, err error) {
return return
} }
func (b *boltAdapter) GetWorker(workerID string) (w worker, err error) { func (b *boltAdapter) GetWorker(workerID string) (w workerStatus, err error) {
err = b.db.View(func(tx *bolt.Tx) error { err = b.db.View(func(tx *bolt.Tx) error {
bucket := tx.Bucket([]byte(_workerBucketKey)) bucket := tx.Bucket([]byte(_workerBucketKey))
v := bucket.Get([]byte(workerID)) v := bucket.Get([]byte(workerID))
@ -92,7 +92,7 @@ func (b *boltAdapter) GetWorker(workerID string) (w worker, err error) {
return return
} }
func (b *boltAdapter) CreateWorker(w worker) (worker, error) { func (b *boltAdapter) CreateWorker(w workerStatus) (workerStatus, error) {
err := b.db.Update(func(tx *bolt.Tx) error { err := b.db.Update(func(tx *bolt.Tx) error {
bucket := tx.Bucket([]byte(_workerBucketKey)) bucket := tx.Bucket([]byte(_workerBucketKey))
v, err := json.Marshal(w) v, err := json.Marshal(w)

View File

@ -31,7 +31,7 @@ func TestBoltAdapter(t *testing.T) {
testWorkerIDs := []string{"test_worker1", "test_worker2"} testWorkerIDs := []string{"test_worker1", "test_worker2"}
Convey("create worker", func() { Convey("create worker", func() {
for _, id := range testWorkerIDs { for _, id := range testWorkerIDs {
w := worker{ w := workerStatus{
ID: id, ID: id,
Token: "token_" + id, Token: "token_" + id,
LastOnline: time.Now(), LastOnline: time.Now(),

View File

@ -21,7 +21,7 @@ const (
_infoKey = "message" _infoKey = "message"
) )
type worker struct { type workerStatus struct {
ID string `json:"id"` // worker name ID string `json:"id"` // worker name
Token string `json:"token"` // session token Token string `json:"token"` // session token
LastOnline time.Time `json:"last_online"` // last seen LastOnline time.Time `json:"last_online"` // last seen
@ -72,7 +72,7 @@ func (s *managerServer) listWorkers(c *gin.Context) {
// registerWorker register an newly-online worker // registerWorker register an newly-online worker
func (s *managerServer) registerWorker(c *gin.Context) { func (s *managerServer) registerWorker(c *gin.Context) {
var _worker worker var _worker workerStatus
c.BindJSON(&_worker) c.BindJSON(&_worker)
newWorker, err := s.adapter.CreateWorker(_worker) newWorker, err := s.adapter.CreateWorker(_worker)
if err != nil { if err != nil {

View File

@ -31,8 +31,8 @@ func TestHTTPServer(t *testing.T) {
s := makeHTTPServer(false) s := makeHTTPServer(false)
So(s, ShouldNotBeNil) So(s, ShouldNotBeNil)
s.setDBAdapter(&mockDBAdapter{ s.setDBAdapter(&mockDBAdapter{
workerStore: map[string]worker{ workerStore: map[string]workerStatus{
_magicBadWorkerID: worker{ _magicBadWorkerID: workerStatus{
ID: _magicBadWorkerID, ID: _magicBadWorkerID,
}}, }},
statusStore: make(map[string]mirrorStatus), statusStore: make(map[string]mirrorStatus),
@ -67,7 +67,7 @@ func TestHTTPServer(t *testing.T) {
}) })
Convey("when register a worker", func() { Convey("when register a worker", func() {
w := worker{ w := workerStatus{
ID: "test_worker1", ID: "test_worker1",
} }
resp, err := postJSON(baseURL+"/workers", w) resp, err := postJSON(baseURL+"/workers", w)
@ -153,7 +153,7 @@ func TestHTTPServer(t *testing.T) {
} }
type mockDBAdapter struct { type mockDBAdapter struct {
workerStore map[string]worker workerStore map[string]workerStatus
statusStore map[string]mirrorStatus statusStore map[string]mirrorStatus
} }
@ -161,8 +161,8 @@ func (b *mockDBAdapter) Init() error {
return nil return nil
} }
func (b *mockDBAdapter) ListWorkers() ([]worker, error) { func (b *mockDBAdapter) ListWorkers() ([]workerStatus, error) {
workers := make([]worker, len(b.workerStore)) workers := make([]workerStatus, len(b.workerStore))
idx := 0 idx := 0
for _, w := range b.workerStore { for _, w := range b.workerStore {
workers[idx] = w workers[idx] = w
@ -171,18 +171,18 @@ func (b *mockDBAdapter) ListWorkers() ([]worker, error) {
return workers, nil return workers, nil
} }
func (b *mockDBAdapter) GetWorker(workerID string) (worker, error) { func (b *mockDBAdapter) GetWorker(workerID string) (workerStatus, error) {
w, ok := b.workerStore[workerID] w, ok := b.workerStore[workerID]
if !ok { if !ok {
return worker{}, fmt.Errorf("invalid workerId") return workerStatus{}, fmt.Errorf("invalid workerId")
} }
return w, nil return w, nil
} }
func (b *mockDBAdapter) CreateWorker(w worker) (worker, error) { func (b *mockDBAdapter) CreateWorker(w workerStatus) (workerStatus, error) {
// _, ok := b.workerStore[w.ID] // _, ok := b.workerStore[w.ID]
// if ok { // if ok {
// return worker{}, fmt.Errorf("duplicate worker name") // return workerStatus{}, fmt.Errorf("duplicate worker name")
// } // }
b.workerStore[w.ID] = w b.workerStore[w.ID] = w
return w, nil return w, nil