mirror of
https://github.com/tuna/tunasync.git
synced 2025-04-21 04:42:46 +00:00
feature(manager): worker => workerStatus
This commit is contained in:
parent
a11fbe2c58
commit
734826fa67
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user