1
0
镜像自地址 https://github.com/tuna/tunasync.git 已同步 2025-12-08 15:36:47 +00:00

feature(manager): worker => workerStatus

这个提交包含在:
walkerning
2016-04-25 21:49:32 +08:00
提交者 bigeagle
父节点 a11fbe2c58
当前提交 734826fa67
共有 4 个文件被更改,包括 20 次插入20 次删除

查看文件

@@ -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)

查看文件

@@ -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(),

查看文件

@@ -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 {

查看文件

@@ -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