[server][core] Remove db from storage

This commit is contained in:
Abhishek Shroff
2025-04-04 23:51:02 +05:30
parent 18715cf10d
commit 584436cffa
2 changed files with 13 additions and 12 deletions

View File

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

View File

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