1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- package manager
- import (
- "fmt"
- "time"
- "github.com/boltdb/bolt"
- . "github.com/tuna/tunasync/internal"
- )
- type dbAdapter interface {
- Init() error
- ListWorkers() ([]WorkerStatus, error)
- GetWorker(workerID string) (WorkerStatus, error)
- DeleteWorker(workerID string) error
- CreateWorker(w WorkerStatus) (WorkerStatus, error)
- RefreshWorker(workerID string) (WorkerStatus, error)
- UpdateMirrorStatus(workerID, mirrorID string, status MirrorStatus) (MirrorStatus, error)
- GetMirrorStatus(workerID, mirrorID string) (MirrorStatus, error)
- ListMirrorStatus(workerID string) ([]MirrorStatus, error)
- ListAllMirrorStatus() ([]MirrorStatus, error)
- FlushDisabledJobs() error
- Close() error
- }
- func makeDBAdapter(dbType string, dbFile string) (dbAdapter, error) {
- if dbType == "bolt" {
- innerDB, err := bolt.Open(dbFile, 0600, &bolt.Options{
- Timeout: 5 * time.Second,
- })
- if err != nil {
- return nil, err
- }
- db := boltAdapter{
- db: innerDB,
- dbFile: dbFile,
- }
- err = db.Init()
- return &db, err
- }
- // unsupported db-type
- return nil, fmt.Errorf("unsupported db-type: %s", dbType)
- }
|