mirror of
https://codeberg.org/shroff/phylum.git
synced 2026-01-05 19:21:23 -06:00
[server][core] Remove db from storage
This commit is contained in:
@@ -2,10 +2,12 @@ package storage
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"context"
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/shroff/phylum/server/internal/core/db"
|
||||
"github.com/shroff/phylum/server/internal/core/storage"
|
||||
"github.com/sirupsen/logrus"
|
||||
"github.com/spf13/cobra"
|
||||
@@ -58,7 +60,7 @@ func setupStorageCreateCommand() *cobra.Command {
|
||||
params[paramName] = val
|
||||
}
|
||||
|
||||
if err := storage.Get().CreateBackend(name, driver, params); err != nil {
|
||||
if err := storage.Get().CreateBackend(db.Get(context.Background()), name, driver, params); err != nil {
|
||||
logrus.Fatal(err)
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package storage
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/hex"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
@@ -14,7 +15,7 @@ import (
|
||||
)
|
||||
|
||||
type Storage interface {
|
||||
CreateBackend(name string, driver string, params map[string]string) error
|
||||
CreateBackend(db db.Handler, name string, driver string, params map[string]string) error
|
||||
ListBackends() map[string]Backend
|
||||
OpenRead(id uuid.UUID, start, length int) (io.ReadCloser, error)
|
||||
OpenWrite(id uuid.UUID, h func() hash.Hash, callback func(int, string, string) error) (io.WriteCloser, error)
|
||||
@@ -24,7 +25,6 @@ type Storage interface {
|
||||
}
|
||||
|
||||
type storage struct {
|
||||
db db.Handler
|
||||
backends map[string]Backend
|
||||
defaultBackend Backend
|
||||
}
|
||||
@@ -34,7 +34,7 @@ var DefaultStorageDir string
|
||||
|
||||
func Get() Storage {
|
||||
if s == nil {
|
||||
if storage, err := create(db.Get(), DefaultStorageDir); err != nil {
|
||||
if storage, err := create(DefaultStorageDir); err != nil {
|
||||
logrus.Fatal(err)
|
||||
} else {
|
||||
s = storage
|
||||
@@ -43,14 +43,13 @@ func Get() Storage {
|
||||
return s
|
||||
}
|
||||
|
||||
func create(db db.Handler, defaultStorageDir string) (Storage, error) {
|
||||
if backends, err := restoreBackends(db); err != nil {
|
||||
func create(defaultStorageDir string) (Storage, error) {
|
||||
if backends, err := restoreBackends(); err != nil {
|
||||
return nil, err
|
||||
} else if defaultBackend, err := newLocalStorage("<default>", defaultStorageDir); err != nil {
|
||||
return nil, err
|
||||
} else {
|
||||
return storage{
|
||||
db: db,
|
||||
backends: backends,
|
||||
defaultBackend: defaultBackend,
|
||||
}, nil
|
||||
@@ -117,12 +116,12 @@ func (s storage) DeleteAll(ids []uuid.UUID) []error {
|
||||
return errs
|
||||
}
|
||||
|
||||
func (s *storage) findStorageBackend(id uuid.UUID) (Backend, error) {
|
||||
func (s storage) findStorageBackend(id uuid.UUID) (Backend, error) {
|
||||
// TODO: implement
|
||||
return s.defaultBackend, nil
|
||||
}
|
||||
|
||||
func (s storage) CreateBackend(name string, driver string, params map[string]string) error {
|
||||
func (s storage) CreateBackend(db db.Handler, name string, driver string, params map[string]string) error {
|
||||
backend, err := openBackend(name, driver, params)
|
||||
if err != nil {
|
||||
return nil
|
||||
@@ -132,7 +131,7 @@ func (s storage) CreateBackend(name string, driver string, params map[string]str
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if _, err := s.db.Exec(q, name, driver, p); err != nil {
|
||||
if _, err := db.Exec(q, name, driver, p); err != nil {
|
||||
return err
|
||||
}
|
||||
s.backends[name] = backend
|
||||
@@ -143,9 +142,9 @@ func (s storage) ListBackends() map[string]Backend {
|
||||
return s.backends
|
||||
}
|
||||
|
||||
func restoreBackends(db db.Handler) (map[string]Backend, error) {
|
||||
func restoreBackends() (map[string]Backend, error) {
|
||||
const q = "SELECT name, driver, params from storage_backends"
|
||||
if rows, err := db.Query(q); err != nil {
|
||||
if rows, err := db.Get(context.Background()).Query(q); err != nil {
|
||||
return nil, err
|
||||
} else if backends, err := pgx.CollectRows(rows, func(row pgx.CollectableRow) (Backend, error) {
|
||||
var name, driver string
|
||||
|
||||
Reference in New Issue
Block a user