Combine New/Setup functions
This commit is contained in:
committed by
=Michael Hohn
parent
f611f02d1c
commit
cd0647836e
@@ -68,19 +68,16 @@ func main() {
|
|||||||
// Apply 'mode' flag
|
// Apply 'mode' flag
|
||||||
switch *mode {
|
switch *mode {
|
||||||
case "standalone":
|
case "standalone":
|
||||||
// XX: combine New/Setup functions?
|
|
||||||
|
|
||||||
// Assemble single-process version
|
// Assemble single-process version
|
||||||
sl := logger.NewLoggerSingle()
|
|
||||||
sl.Setup(&logger.Visibles{})
|
|
||||||
|
|
||||||
sq := queue.NewQueueSingle(2) // FIXME take value from configuration
|
sl := logger.NewLoggerSingle(&logger.Visibles{})
|
||||||
sq.Setup(&queue.Visibles{
|
|
||||||
|
// FIXME take value from configuration
|
||||||
|
sq := queue.NewQueueSingle(2, &queue.Visibles{
|
||||||
Logger: sl,
|
Logger: sl,
|
||||||
})
|
})
|
||||||
|
|
||||||
ss := storage.NewStorageSingle(config.Storage.StartingID)
|
ss := storage.NewStorageSingle(config.Storage.StartingID, &storage.Visibles{})
|
||||||
ss.Setup(&storage.Visibles{})
|
|
||||||
|
|
||||||
qp, err := qpstore.NewStore(config.Storage.StartingID)
|
qp, err := qpstore.NewStore(config.Storage.StartingID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -88,14 +85,13 @@ func main() {
|
|||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
ql, err := storage.NewQLDBStore(config.Storage.StartingID)
|
ql, err := storage.NewQLDBStore(config.Storage.StartingID, &storage.Visibles{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
slog.Error("Unable to initialize ql database storage")
|
slog.Error("Unable to initialize ql database storage")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
sc := server.NewCommanderSingle()
|
server.NewCommanderSingle(&server.Visibles{
|
||||||
sc.Setup(&server.Visibles{
|
|
||||||
Logger: sl,
|
Logger: sl,
|
||||||
Queue: sq,
|
Queue: sq,
|
||||||
ServerStore: ss,
|
ServerStore: ss,
|
||||||
@@ -103,8 +99,8 @@ func main() {
|
|||||||
QLDBStore: ql,
|
QLDBStore: ql,
|
||||||
})
|
})
|
||||||
|
|
||||||
sr := agent.NewAgentSingle(2, sq) // FIXME take value from configuration
|
// FIXME take value from configuration
|
||||||
sr.Setup(&agent.Visibles{
|
agent.NewAgentSingle(2, &agent.Visibles{
|
||||||
Logger: sl,
|
Logger: sl,
|
||||||
Queue: sq,
|
Queue: sq,
|
||||||
QueryPackStore: qp,
|
QueryPackStore: qp,
|
||||||
@@ -112,23 +108,19 @@ func main() {
|
|||||||
})
|
})
|
||||||
|
|
||||||
case "container":
|
case "container":
|
||||||
// XX: combine New/Setup functions?
|
|
||||||
|
|
||||||
// Assemble container version
|
// Assemble container version
|
||||||
sl := logger.NewLoggerSingle()
|
sl := logger.NewLoggerSingle(&logger.Visibles{})
|
||||||
sl.Setup(&logger.Visibles{})
|
|
||||||
|
|
||||||
sq := queue.NewQueueSingle(2) // FIXME take value from configuration
|
// FIXME take value from configuration
|
||||||
sq.Setup(&queue.Visibles{
|
sq := queue.NewQueueSingle(2, &queue.Visibles{
|
||||||
Logger: sl,
|
Logger: sl,
|
||||||
})
|
})
|
||||||
|
|
||||||
ss, err := storage.NewServerStore(config.Storage.StartingID)
|
ss, err := storage.NewServerStore(config.Storage.StartingID, &storage.Visibles{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
slog.Error("Unable to initialize server storage")
|
slog.Error("Unable to initialize server storage")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
ss.Setup(&storage.Visibles{})
|
|
||||||
|
|
||||||
qp, err := qpstore.NewStore(config.Storage.StartingID)
|
qp, err := qpstore.NewStore(config.Storage.StartingID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -136,23 +128,20 @@ func main() {
|
|||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
ql, err := storage.NewQLDBStore(config.Storage.StartingID)
|
ql, err := storage.NewQLDBStore(config.Storage.StartingID, &storage.Visibles{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
slog.Error("Unable to initialize ql database storage")
|
slog.Error("Unable to initialize ql database storage")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
ql.Setup(&storage.Visibles{})
|
|
||||||
|
|
||||||
sr := agent.NewAgentSingle(2, sq) // FIXME take value from configuration
|
agent.NewAgentSingle(2, &agent.Visibles{
|
||||||
sr.Setup(&agent.Visibles{
|
|
||||||
Logger: sl,
|
Logger: sl,
|
||||||
Queue: sq,
|
Queue: sq,
|
||||||
QueryPackStore: qp,
|
QueryPackStore: qp,
|
||||||
QLDBStore: ql,
|
QLDBStore: ql,
|
||||||
})
|
})
|
||||||
|
|
||||||
sc := server.NewCommanderContainer()
|
server.NewCommanderContainer(&server.Visibles{
|
||||||
sc.Setup(&server.Visibles{
|
|
||||||
Logger: sl,
|
Logger: sl,
|
||||||
Queue: sq,
|
Queue: sq,
|
||||||
ServerStore: ss,
|
ServerStore: ss,
|
||||||
@@ -161,7 +150,7 @@ func main() {
|
|||||||
})
|
})
|
||||||
|
|
||||||
case "cluster":
|
case "cluster":
|
||||||
// Assemble cccluster
|
// Assemble cluster version
|
||||||
default:
|
default:
|
||||||
slog.Error("Invalid value for --mode. Allowed values are: standalone, container, cluster\n")
|
slog.Error("Invalid value for --mode. Allowed values are: standalone, container, cluster\n")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
|
|||||||
@@ -24,8 +24,8 @@ type RunnerSingle struct {
|
|||||||
queue queue.Queue
|
queue queue.Queue
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewAgentSingle(numWorkers int, queue queue.Queue) *RunnerSingle {
|
func NewAgentSingle(numWorkers int, av *Visibles) *RunnerSingle {
|
||||||
r := RunnerSingle{queue: queue}
|
r := RunnerSingle{queue: av.Queue}
|
||||||
|
|
||||||
for id := 1; id <= numWorkers; id++ {
|
for id := 1; id <= numWorkers; id++ {
|
||||||
go r.worker(id)
|
go r.worker(id)
|
||||||
@@ -42,10 +42,6 @@ type Visibles struct {
|
|||||||
QLDBStore storage.Storage
|
QLDBStore storage.Storage
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *RunnerSingle) Setup(st *Visibles) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *RunnerSingle) worker(wid int) {
|
func (r *RunnerSingle) worker(wid int) {
|
||||||
var job common.AnalyzeJob
|
var job common.AnalyzeJob
|
||||||
|
|
||||||
|
|||||||
@@ -4,13 +4,11 @@ type LoggerSingle struct {
|
|||||||
modules *Visibles
|
modules *Visibles
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewLoggerSingle() *LoggerSingle {
|
func NewLoggerSingle(v *Visibles) *LoggerSingle {
|
||||||
l := LoggerSingle{}
|
l := LoggerSingle{}
|
||||||
|
|
||||||
|
l.modules = v
|
||||||
return &l
|
return &l
|
||||||
}
|
}
|
||||||
|
|
||||||
type Visibles struct{}
|
type Visibles struct{}
|
||||||
|
|
||||||
func (l *LoggerSingle) Setup(v *Visibles) {
|
|
||||||
l.modules = v
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -16,14 +16,13 @@ type Visibles struct {
|
|||||||
Logger logger.Logger
|
Logger logger.Logger
|
||||||
}
|
}
|
||||||
|
|
||||||
func (q *QueueSingle) Setup(v *Visibles) {
|
func NewQueueSingle(numWorkers int, v *Visibles) *QueueSingle {
|
||||||
q.modules = v
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewQueueSingle(numWorkers int) *QueueSingle {
|
|
||||||
q := QueueSingle{}
|
q := QueueSingle{}
|
||||||
q.jobs = make(chan common.AnalyzeJob, 10)
|
q.jobs = make(chan common.AnalyzeJob, 10)
|
||||||
q.results = make(chan common.AnalyzeResult, 10)
|
q.results = make(chan common.AnalyzeResult, 10)
|
||||||
q.NumWorkers = numWorkers
|
q.NumWorkers = numWorkers
|
||||||
|
|
||||||
|
q.modules = v
|
||||||
|
|
||||||
return &q
|
return &q
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,11 +21,6 @@ import (
|
|||||||
"github.com/gorilla/mux"
|
"github.com/gorilla/mux"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (c *CommanderSingle) Setup(st *Visibles) {
|
|
||||||
c.st = st
|
|
||||||
setupEndpoints(c)
|
|
||||||
}
|
|
||||||
|
|
||||||
func setupEndpoints(c CommanderAPI) {
|
func setupEndpoints(c CommanderAPI) {
|
||||||
r := mux.NewRouter()
|
r := mux.NewRouter()
|
||||||
|
|
||||||
|
|||||||
@@ -29,8 +29,12 @@ type CommanderSingle struct {
|
|||||||
st *Visibles
|
st *Visibles
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewCommanderSingle() *CommanderSingle {
|
func NewCommanderSingle(st *Visibles) *CommanderSingle {
|
||||||
c := CommanderSingle{}
|
c := CommanderSingle{}
|
||||||
|
|
||||||
|
c.st = st
|
||||||
|
setupEndpoints(&c)
|
||||||
|
|
||||||
return &c
|
return &c
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -38,8 +42,12 @@ type CommanderContainer struct {
|
|||||||
st *Visibles
|
st *Visibles
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewCommanderContainer() *CommanderContainer {
|
func NewCommanderContainer(st *Visibles) *CommanderContainer {
|
||||||
c := CommanderContainer{}
|
c := CommanderContainer{}
|
||||||
|
|
||||||
|
c.st = st
|
||||||
|
setupEndpoints(&c)
|
||||||
|
|
||||||
return &c
|
return &c
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -32,13 +32,7 @@ func (s *StorageContainer) FindAvailableDBs(analysisReposRequested []common.Owne
|
|||||||
return notFoundRepos, analysisRepos
|
return notFoundRepos, analysisRepos
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *StorageContainer) Setup(v *Visibles) {
|
func NewQLDBStore(startingID int, v *Visibles) (*StorageContainer, error) {
|
||||||
// TODO XX: set up qldb_db
|
|
||||||
s.modules = v
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewQLDBStore(startingID int) (*StorageContainer, error) {
|
|
||||||
// TODO drop the startingID
|
// TODO drop the startingID
|
||||||
db, err := ConnectDB(DBSpec{
|
db, err := ConnectDB(DBSpec{
|
||||||
Host: "postgres",
|
Host: "postgres",
|
||||||
@@ -61,10 +55,13 @@ func NewQLDBStore(startingID int) (*StorageContainer, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO XX: set up qldb_db
|
||||||
|
s.modules = v
|
||||||
|
|
||||||
return &s, nil
|
return &s, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewServerStore(startingID int) (*StorageContainer, error) {
|
func NewServerStore(startingID int, v *Visibles) (*StorageContainer, error) {
|
||||||
db, err := ConnectDB(DBSpec{
|
db, err := ConnectDB(DBSpec{
|
||||||
Host: "postgres",
|
Host: "postgres",
|
||||||
Port: 5432,
|
Port: 5432,
|
||||||
@@ -85,6 +82,9 @@ func NewServerStore(startingID int) (*StorageContainer, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO XX: set up qldb_db
|
||||||
|
s.modules = v
|
||||||
|
|
||||||
return &s, nil
|
return &s, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,13 +23,12 @@ var (
|
|||||||
mutex sync.Mutex
|
mutex sync.Mutex
|
||||||
)
|
)
|
||||||
|
|
||||||
func NewStorageSingle(startingID int) *StorageSingle {
|
func NewStorageSingle(startingID int, v *Visibles) *StorageSingle {
|
||||||
s := StorageSingle{currentID: startingID}
|
s := StorageSingle{currentID: startingID}
|
||||||
return &s
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *StorageSingle) Setup(v *Visibles) {
|
|
||||||
s.modules = v
|
s.modules = v
|
||||||
|
|
||||||
|
return &s
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *StorageSingle) NextID() int {
|
func (s *StorageSingle) NextID() int {
|
||||||
|
|||||||
Reference in New Issue
Block a user