wip: parse & use config file, start Storage struct/interface
This commit is contained in:
committed by
=Michael Hohn
parent
c2480dc2f1
commit
5b324e092a
@@ -57,7 +57,7 @@ func main() {
|
||||
}
|
||||
|
||||
// Read configuration
|
||||
config := mcc.LoadConfig("cconfig.toml")
|
||||
config := mcc.LoadConfig("mcconfig.toml")
|
||||
|
||||
// Output configuration summary
|
||||
log.Printf("Help: %t\n", *helpFlag)
|
||||
@@ -69,13 +69,13 @@ func main() {
|
||||
case "standalone":
|
||||
// Assemble single-process version
|
||||
state := mci.State{
|
||||
Commander: lcmem.Commander{},
|
||||
Logger: llmem.Logger{},
|
||||
Queue: lqmem.Queue{},
|
||||
Storage: lsmem.Storage{},
|
||||
Runner: lrmem.Runner{},
|
||||
Commander: &lcmem.Commander{},
|
||||
Logger: &llmem.Logger{},
|
||||
Queue: &lqmem.Queue{},
|
||||
Storage: &lsmem.Storage{CurrentID: config.Storage.StartingID},
|
||||
Runner: &lrmem.Runner{},
|
||||
}
|
||||
main := lcmem.Commander{}
|
||||
main := &lcmem.Commander{}
|
||||
main.Setup(state)
|
||||
main.Run(state)
|
||||
|
||||
|
||||
@@ -2,4 +2,5 @@
|
||||
[logger]
|
||||
[queue]
|
||||
[storage]
|
||||
StartingID = 54673
|
||||
[runner]
|
||||
@@ -1,4 +1,5 @@
|
||||
package mcc
|
||||
|
||||
type Storage struct {
|
||||
StartingID int
|
||||
}
|
||||
|
||||
@@ -8,11 +8,11 @@ import (
|
||||
)
|
||||
|
||||
type System struct {
|
||||
commander Commander
|
||||
logger Logger
|
||||
queue Queue
|
||||
storage Storage
|
||||
runner Runner
|
||||
Commander Commander
|
||||
Logger Logger
|
||||
Queue Queue
|
||||
Storage Storage
|
||||
Runner Runner
|
||||
}
|
||||
|
||||
func LoadConfig(fname string) *System {
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
package mci
|
||||
|
||||
type Storage interface {
|
||||
NextID() int
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ import (
|
||||
)
|
||||
|
||||
type Commander struct {
|
||||
st mci.State // st points to this Commander instance. Circular, but needed.
|
||||
}
|
||||
|
||||
func (c *Commander) Run(st mci.State) {
|
||||
@@ -25,6 +26,7 @@ func (c *Commander) Run(st mci.State) {
|
||||
|
||||
func (c *Commander) Setup(st mci.State) {
|
||||
r := mux.NewRouter()
|
||||
c.st = st
|
||||
|
||||
//
|
||||
// First are the API endpoints that mirror those used in the github API
|
||||
@@ -197,12 +199,15 @@ func (c *Commander) MirvaRequest(w http.ResponseWriter, r *http.Request) {
|
||||
slog.Info("New mrva run ", "owner", vars["owner"], "repo", vars["repo"])
|
||||
// TODO Change this to functional style?
|
||||
// session := new(MirvaSession)
|
||||
// session.id = next_id()
|
||||
// session.owner = vars["owner"]
|
||||
// session.controller_repo = vars["repo"]
|
||||
// session.collect_info(w, r)
|
||||
// session.find_available_DBs()
|
||||
// session.start_analyses()
|
||||
// session.submit_response(w)
|
||||
// session.save()
|
||||
session_id := c.st.Storage.NextID()
|
||||
slog.Info("id: ", session_id)
|
||||
// session_owner = vars["owner"]
|
||||
// session_controller_repo = vars["repo"]
|
||||
// session_collect_info(w, r)
|
||||
|
||||
// session_find_available_DBs()
|
||||
|
||||
// session_start_analyses()
|
||||
// session_submit_response(w)
|
||||
// session_save()
|
||||
}
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
package lsmem
|
||||
|
||||
type Storage struct {
|
||||
CurrentID int
|
||||
}
|
||||
|
||||
func (s *Storage) NextID() int {
|
||||
s.CurrentID += 1
|
||||
return s.CurrentID
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user