mirror of
https://codeberg.org/shroff/phylum.git
synced 2026-01-24 21:19:59 -06:00
52 lines
1.2 KiB
Go
52 lines
1.2 KiB
Go
package app
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/shroff/phylum/server/internal/app/core"
|
|
"github.com/shroff/phylum/server/internal/db"
|
|
"github.com/shroff/phylum/server/internal/sql"
|
|
"github.com/shroff/phylum/server/internal/storage"
|
|
)
|
|
|
|
func restoreStorageBackends(db *db.DbHandler) (map[string]core.Storage, error) {
|
|
backends, err := db.Queries().AllStorageBackends(context.Background())
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
results := map[string]core.Storage{}
|
|
for _, b := range backends {
|
|
store, err := storage.Open(b.Name, b.Driver, b.Params)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
results[b.Name] = store
|
|
}
|
|
return results, nil
|
|
}
|
|
|
|
func (a App) CreateStorageBackend(name string, driver string, params map[string]string) error {
|
|
storage, err := storage.Open(name, driver, params)
|
|
if err != nil {
|
|
return nil
|
|
}
|
|
err = a.Db.Queries().CreateStorageBackend(context.Background(), sql.CreateStorageBackendParams{
|
|
Name: name,
|
|
Driver: driver,
|
|
Params: params,
|
|
})
|
|
if err != nil {
|
|
return err
|
|
}
|
|
a.backends[name] = storage
|
|
return nil
|
|
}
|
|
|
|
func (a App) FindStorageBackend(name string) core.Storage {
|
|
return a.backends[name]
|
|
}
|
|
|
|
func (a App) ListStorageBackends() map[string]core.Storage {
|
|
return a.backends
|
|
}
|