diff --git a/settings/pkg/config/config.go b/settings/pkg/config/config.go index 8e9e5f1eff..bc25dbc7cd 100644 --- a/settings/pkg/config/config.go +++ b/settings/pkg/config/config.go @@ -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"` +} diff --git a/settings/pkg/config/defaultconfig.go b/settings/pkg/config/defaultconfig.go index 7f72e50a30..363c002f31 100644 --- a/settings/pkg/config/defaultconfig.go +++ b/settings/pkg/config/defaultconfig.go @@ -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", + }, } } diff --git a/settings/pkg/store/metadata/store.go b/settings/pkg/store/metadata/store.go index ef7c2b2a6a..e1edb8bb10 100644 --- a/settings/pkg/store/metadata/store.go +++ b/settings/pkg/store/metadata/store.go @@ -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) }