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 {
|
||||
Init() error
|
||||
ListWorkers() ([]worker, error)
|
||||
GetWorker(workerID string) (worker, error)
|
||||
CreateWorker(w worker) (worker, error)
|
||||
ListWorkers() ([]workerStatus, error)
|
||||
GetWorker(workerID string) (workerStatus, error)
|
||||
CreateWorker(w workerStatus) (workerStatus, error)
|
||||
UpdateMirrorStatus(workerID, mirrorID string, status mirrorStatus) (mirrorStatus, error)
|
||||
GetMirrorStatus(workerID, mirrorID 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 {
|
||||
bucket := tx.Bucket([]byte(_workerBucketKey))
|
||||
c := bucket.Cursor()
|
||||
var w worker
|
||||
var w workerStatus
|
||||
for k, v := c.First(); k != nil; k, v = c.Next() {
|
||||
jsonErr := json.Unmarshal(v, &w)
|
||||
if jsonErr != nil {
|
||||
@ -79,7 +79,7 @@ func (b *boltAdapter) ListWorkers() (ws []worker, err error) {
|
||||
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 {
|
||||
bucket := tx.Bucket([]byte(_workerBucketKey))
|
||||
v := bucket.Get([]byte(workerID))
|
||||
@ -92,7 +92,7 @@ func (b *boltAdapter) GetWorker(workerID string) (w worker, err error) {
|
||||
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 {
|
||||
bucket := tx.Bucket([]byte(_workerBucketKey))
|
||||
v, err := json.Marshal(w)
|
||||
|
@ -31,7 +31,7 @@ func TestBoltAdapter(t *testing.T) {
|
||||
testWorkerIDs := []string{"test_worker1", "test_worker2"}
|
||||
Convey("create worker", func() {
|
||||
for _, id := range testWorkerIDs {
|
||||
w := worker{
|
||||
w := workerStatus{
|
||||
ID: id,
|
||||
Token: "token_" + id,
|
||||
LastOnline: time.Now(),
|
||||
|
@ -21,7 +21,7 @@ const (
|
||||
_infoKey = "message"
|
||||
)
|
||||
|
||||
type worker struct {
|
||||
type workerStatus struct {
|
||||
ID string `json:"id"` // worker name
|
||||
Token string `json:"token"` // session token
|
||||
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
|
||||
func (s *managerServer) registerWorker(c *gin.Context) {
|
||||
var _worker worker
|
||||
var _worker workerStatus
|
||||
c.BindJSON(&_worker)
|
||||
newWorker, err := s.adapter.CreateWorker(_worker)
|
||||
if err != nil {
|
||||
|
@ -31,8 +31,8 @@ func TestHTTPServer(t *testing.T) {
|
||||
s := makeHTTPServer(false)
|
||||
So(s, ShouldNotBeNil)
|
||||
s.setDBAdapter(&mockDBAdapter{
|
||||
workerStore: map[string]worker{
|
||||
_magicBadWorkerID: worker{
|
||||
workerStore: map[string]workerStatus{
|
||||
_magicBadWorkerID: workerStatus{
|
||||
ID: _magicBadWorkerID,
|
||||
}},
|
||||
statusStore: make(map[string]mirrorStatus),
|
||||
@ -67,7 +67,7 @@ func TestHTTPServer(t *testing.T) {
|
||||
})
|
||||
|
||||
Convey("when register a worker", func() {
|
||||
w := worker{
|
||||
w := workerStatus{
|
||||
ID: "test_worker1",
|
||||
}
|
||||
resp, err := postJSON(baseURL+"/workers", w)
|
||||
@ -153,7 +153,7 @@ func TestHTTPServer(t *testing.T) {
|
||||
}
|
||||
|
||||
type mockDBAdapter struct {
|
||||
workerStore map[string]worker
|
||||
workerStore map[string]workerStatus
|
||||
statusStore map[string]mirrorStatus
|
||||
}
|
||||
|
||||
@ -161,8 +161,8 @@ func (b *mockDBAdapter) Init() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (b *mockDBAdapter) ListWorkers() ([]worker, error) {
|
||||
workers := make([]worker, len(b.workerStore))
|
||||
func (b *mockDBAdapter) ListWorkers() ([]workerStatus, error) {
|
||||
workers := make([]workerStatus, len(b.workerStore))
|
||||
idx := 0
|
||||
for _, w := range b.workerStore {
|
||||
workers[idx] = w
|
||||
@ -171,18 +171,18 @@ func (b *mockDBAdapter) ListWorkers() ([]worker, error) {
|
||||
return workers, nil
|
||||
}
|
||||
|
||||
func (b *mockDBAdapter) GetWorker(workerID string) (worker, error) {
|
||||
func (b *mockDBAdapter) GetWorker(workerID string) (workerStatus, error) {
|
||||
w, ok := b.workerStore[workerID]
|
||||
if !ok {
|
||||
return worker{}, fmt.Errorf("invalid workerId")
|
||||
return workerStatus{}, fmt.Errorf("invalid workerId")
|
||||
}
|
||||
return w, nil
|
||||
}
|
||||
|
||||
func (b *mockDBAdapter) CreateWorker(w worker) (worker, error) {
|
||||
func (b *mockDBAdapter) CreateWorker(w workerStatus) (workerStatus, error) {
|
||||
// _, ok := b.workerStore[w.ID]
|
||||
// if ok {
|
||||
// return worker{}, fmt.Errorf("duplicate worker name")
|
||||
// return workerStatus{}, fmt.Errorf("duplicate worker name")
|
||||
// }
|
||||
b.workerStore[w.ID] = w
|
||||
return w, nil
|
||||
|
Loading…
x
Reference in New Issue
Block a user