make it configurable

Signed-off-by: jkoberg <jkoberg@owncloud.com>
This commit is contained in:
jkoberg
2022-03-03 16:06:33 +01:00
parent 085dcd9a14
commit 15ac5d8999
3 changed files with 31 additions and 18 deletions

View File

@@ -19,7 +19,10 @@ type Config struct {
HTTP HTTP `ocisConfig:"http"`
GRPC GRPC `ocisConfig:"grpc"`
DataPath string `ocisConfig:"data_path" env:"SETTINGS_DATA_PATH"`
StoreType string `ocisConfig:"store_type" env:"SETTINGS_STORE_TYPE"`
DataPath string `ocisConfig:"data_path" env:"SETTINGS_DATA_PATH"`
Metadata Metadata `ocisConfig:"metadata_config"`
Asset Asset `ocisConfig:"asset"`
TokenManager TokenManager `ocisConfig:"token_manager"`
@@ -30,3 +33,12 @@ type Config struct {
type Asset struct {
Path string `ocisConfig:"path" env:"SETTINGS_ASSET_PATH"`
}
// Metadata configures the metadata store to use
type Metadata struct {
GatewayAddress string `ocisConfig:"gateway_addr" env:"STORAGE_GATEWAY_GRPC_ADDR"`
StorageAddress string `ocisConfig:"storage_addr" env:"STORAGE_GRPC_ADDR"`
ServiceUserID string `ocisConfig:"service_user_id" env:"METADATA_SERVICE_USER_UUID"`
MachineAuthAPIKey string `ocisConfig:"machine_auth_api_key" env:"OCIS_MACHINE_AUTH_API_KEY"`
}

View File

@@ -33,12 +33,20 @@ func DefaultConfig() *Config {
Addr: "127.0.0.1:9191",
Namespace: "com.owncloud.api",
},
DataPath: path.Join(defaults.BaseDataPath(), "settings"),
StoreType: "metadata", // use metadata or filesystem
DataPath: path.Join(defaults.BaseDataPath(), "settings"),
Asset: Asset{
Path: "",
},
TokenManager: TokenManager{
JWTSecret: "Pive-Fumkiu4",
},
Metadata: Metadata{
GatewayAddress: "127.0.0.1:9142",
StorageAddress: "127.0.0.1:9215",
ServiceUserID: "058bff95-6708-4fe5-91e4-9ea3d377588b",
MachineAuthAPIKey: "change-me-please",
},
}
}

View File

@@ -41,9 +41,9 @@ type MetadataClient interface {
type Store struct {
Logger olog.Logger
mdc MetadataClient
cfg *config.Config
initStore func(settings.Manager)
mdc MetadataClient
cfg *config.Config
//initStore func(settings.Manager)
init *sync.Once
l *sync.Mutex
@@ -60,14 +60,7 @@ func (s *Store) Init() {
var err error
//s.init.Do(func() {
//b := backoff.NewExponentialBackOff()
//b.MaxElapsedTime = 4 * time.Second
//backoff.Retry(func() error {
err = s.initMetadataClient(NewMetadataClient(s.cfg))
//return err
//}, b)
err = s.initMetadataClient(NewMetadataClient(s.cfg.Metadata))
//})
if err != nil {
log.Fatal("error initializing metadata client: ", err)
@@ -83,17 +76,17 @@ func New(cfg *config.Config, initstore func(settings.Manager)) settings.Manager
//olog.Level(cfg.Log.Level),
//olog.File(cfg.Log.File),
//),
initStore: initstore,
l: &sync.Mutex{},
init: &sync.Once{},
cfg: cfg,
l: &sync.Mutex{},
init: &sync.Once{},
}
return &s
}
// NewMetadataClient returns the MetadataClient
func NewMetadataClient(cfg *config.Config) MetadataClient {
mdc, err := metadata.NewCS3Storage("127.0.0.1:9142", "127.0.0.1:9215", "058bff95-6708-4fe5-91e4-9ea3d377588b", "change-me-please")
func NewMetadataClient(cfg config.Metadata) MetadataClient {
mdc, err := metadata.NewCS3Storage(cfg.GatewayAddress, cfg.StorageAddress, cfg.ServiceUserID, cfg.MachineAuthAPIKey)
if err != nil {
log.Fatal("error connecting to mdc:", err)
}