with setup flags

This commit is contained in:
Ryan McKinley
2024-06-21 09:24:44 +03:00
parent c2c9449629
commit bb7d6d44cd
@@ -22,15 +22,12 @@ import (
// Creates a ResourceServer using the existing entity tables // Creates a ResourceServer using the existing entity tables
// NOTE: most of the field values are ignored // NOTE: most of the field values are ignored
func ProvideResourceServer(db db.DB, cfg *setting.Cfg, features featuremgmt.FeatureToggles, tracer tracing.Tracer) (resource.ResourceServer, error) { func ProvideResourceServer(db db.DB, cfg *setting.Cfg, features featuremgmt.FeatureToggles, tracer tracing.Tracer) (resource.ResourceServer, error) {
bridge := &entityBridge{}
opts := resource.ResourceServerOptions{ opts := resource.ResourceServerOptions{
Tracer: tracer, Tracer: tracer,
NodeID: 0, // From config? defaults to random
Lifecycle: bridge,
} }
supportBlobs := true supportBlobs := true
useEntitySQL := true useEntitySQL := false
// Create a local blob filesystem blob store // Create a local blob filesystem blob store
if supportBlobs { if supportBlobs {
@@ -62,15 +59,20 @@ func ProvideResourceServer(db db.DB, cfg *setting.Cfg, features featuremgmt.Feat
return nil, err return nil, err
} }
bridge.server, err = sqlstash.ProvideSQLEntityServer(eDB, tracer) server, err := sqlstash.ProvideSQLEntityServer(eDB, tracer)
if err != nil { if err != nil {
return nil, err return nil, err
} }
bridge.client = entity.NewEntityStoreClientLocal(bridge.server) client := entity.NewEntityStoreClientLocal(server)
// Use this bridge as the resource store // Use this bridge as the resource store
bridge := &entityBridge{
server: server,
client: client,
}
opts.Store = bridge opts.Store = bridge
opts.Diagnostics = bridge opts.Diagnostics = bridge
opts.Lifecycle = bridge
} else { } else {
dir := filepath.Join(cfg.DataPath, "unistore", "resource") dir := filepath.Join(cfg.DataPath, "unistore", "resource")
if err := os.MkdirAll(dir, 0o755); err != nil { if err := os.MkdirAll(dir, 0o755); err != nil {
@@ -95,6 +97,7 @@ func ProvideResourceServer(db db.DB, cfg *setting.Cfg, features featuremgmt.Feat
return resource.NewResourceServer(opts) return resource.NewResourceServer(opts)
} }
// This is only created if we use the entity implementation
type entityBridge struct { type entityBridge struct {
client entity.EntityStoreClient client entity.EntityStoreClient