wip: parse & use config file, start Storage struct/interface

This commit is contained in:
Michael Hohn
2024-05-13 12:56:00 -07:00
committed by =Michael Hohn
parent c2480dc2f1
commit 5b324e092a
7 changed files with 34 additions and 20 deletions

View File

@@ -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)

View File

@@ -2,4 +2,5 @@
[logger]
[queue]
[storage]
StartingID = 54673
[runner]

View File

@@ -1,4 +1,5 @@
package mcc
type Storage struct {
StartingID int
}

View File

@@ -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 {

View File

@@ -1,4 +1,5 @@
package mci
type Storage interface {
NextID() int
}

View File

@@ -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()
}

View File

@@ -1,4 +1,10 @@
package lsmem
type Storage struct {
CurrentID int
}
func (s *Storage) NextID() int {
s.CurrentID += 1
return s.CurrentID
}