wip: Make cross-module visibility explicit via Visibles structs
All access is/will be through interfaces accessed through these structs. This introduces several distinct storage units: + DB for server state + DB for codeql databases + query pack store The steps for manually creating needed databases are in the README
This commit is contained in:
committed by
=Michael Hohn
parent
25cab583c1
commit
7e0d6909da
@@ -74,38 +74,89 @@ func main() {
|
||||
ss := storage.NewStorageSingle(config.Storage.StartingID)
|
||||
sr := agent.NewRunnerSingle(2, sq) // FIXME take value from configuration
|
||||
|
||||
state := server.State{
|
||||
Commander: sc,
|
||||
Logger: sl,
|
||||
Queue: sq,
|
||||
Storage: ss,
|
||||
Runner: sr,
|
||||
qp, err := storage.NewQueryPackStore(config.Storage.StartingID)
|
||||
if err != nil {
|
||||
slog.Error("Unable to initialize query pack storage")
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
sc.Setup(&state) // sc is part of state and dereferences it
|
||||
ql, err := storage.NewQLDBStore()
|
||||
if err != nil {
|
||||
slog.Error("Unable to initialize ql database storage")
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
sc.Setup(&server.CommanderVisibles{
|
||||
Logger: sl,
|
||||
Queue: sq,
|
||||
ServerStore: ss,
|
||||
QueryPackStore: qp,
|
||||
QLDBStore: ql,
|
||||
})
|
||||
|
||||
sl.Setup(&logger.LoggerVisibles{})
|
||||
|
||||
sq.Setup(&queue.QueueVisibles{
|
||||
Logger: sl,
|
||||
})
|
||||
|
||||
ss.Setup(&storage.ServerStorageVisibles{})
|
||||
|
||||
sr.Setup(&agent.RunnerVisibles{
|
||||
Logger: sl,
|
||||
Queue: sq,
|
||||
QueryPackStore: qp,
|
||||
QLDBStore: ql,
|
||||
})
|
||||
|
||||
case "container":
|
||||
// Assemble container version
|
||||
sq := queue.NewQueueSingle(2) // FIXME take value from configuration
|
||||
sc := server.NewCommanderSingle(nil, sq)
|
||||
sl := logger.NewLoggerSingle()
|
||||
|
||||
ss, err := storage.NewStorageContainer(config.Storage.StartingID)
|
||||
if err != nil {
|
||||
slog.Error("Unable to initialize storage")
|
||||
slog.Error("Unable to initialize server storage")
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
qp, err := storage.NewQueryPackStore(config.Storage.StartingID)
|
||||
if err != nil {
|
||||
slog.Error("Unable to initialize query pack storage")
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
ql, err := storage.NewQLDBStore()
|
||||
if err != nil {
|
||||
slog.Error("Unable to initialize ql database storage")
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
sr := agent.NewRunnerSingle(2, sq) // FIXME take value from configuration
|
||||
|
||||
state := server.State{
|
||||
Commander: sc,
|
||||
Logger: sl,
|
||||
Queue: sq,
|
||||
Storage: ss,
|
||||
Runner: sr,
|
||||
}
|
||||
sc.Setup(&server.CommanderVisibles{
|
||||
Logger: sl,
|
||||
Queue: sq,
|
||||
ServerStore: ss,
|
||||
QueryPackStore: qp,
|
||||
QLDBStore: ql,
|
||||
})
|
||||
|
||||
sc.Setup(&state) // sc is part of state and dereferences it
|
||||
sl.Setup(&logger.LoggerVisibles{})
|
||||
|
||||
sq.Setup(&queue.QueueVisibles{
|
||||
Logger: sl,
|
||||
})
|
||||
|
||||
ss.Setup(&storage.ServerStorageVisibles{})
|
||||
|
||||
sr.Setup(&agent.RunnerVisibles{
|
||||
Logger: sl,
|
||||
Queue: sq,
|
||||
QueryPackStore: qp,
|
||||
QLDBStore: ql,
|
||||
})
|
||||
|
||||
case "cluster":
|
||||
// Assemble cccluster
|
||||
|
||||
Reference in New Issue
Block a user