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 // Read configuration
config := mcc.LoadConfig("cconfig.toml") config := mcc.LoadConfig("mcconfig.toml")
// Output configuration summary // Output configuration summary
log.Printf("Help: %t\n", *helpFlag) log.Printf("Help: %t\n", *helpFlag)
@@ -69,13 +69,13 @@ func main() {
case "standalone": case "standalone":
// Assemble single-process version // Assemble single-process version
state := mci.State{ state := mci.State{
Commander: lcmem.Commander{}, Commander: &lcmem.Commander{},
Logger: llmem.Logger{}, Logger: &llmem.Logger{},
Queue: lqmem.Queue{}, Queue: &lqmem.Queue{},
Storage: lsmem.Storage{}, Storage: &lsmem.Storage{CurrentID: config.Storage.StartingID},
Runner: lrmem.Runner{}, Runner: &lrmem.Runner{},
} }
main := lcmem.Commander{} main := &lcmem.Commander{}
main.Setup(state) main.Setup(state)
main.Run(state) main.Run(state)

View File

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

View File

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

View File

@@ -8,11 +8,11 @@ import (
) )
type System struct { type System struct {
commander Commander Commander Commander
logger Logger Logger Logger
queue Queue Queue Queue
storage Storage Storage Storage
runner Runner Runner Runner
} }
func LoadConfig(fname string) *System { func LoadConfig(fname string) *System {

View File

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

View File

@@ -18,6 +18,7 @@ import (
) )
type Commander struct { type Commander struct {
st mci.State // st points to this Commander instance. Circular, but needed.
} }
func (c *Commander) Run(st mci.State) { 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) { func (c *Commander) Setup(st mci.State) {
r := mux.NewRouter() r := mux.NewRouter()
c.st = st
// //
// First are the API endpoints that mirror those used in the github API // 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"]) slog.Info("New mrva run ", "owner", vars["owner"], "repo", vars["repo"])
// TODO Change this to functional style? // TODO Change this to functional style?
// session := new(MirvaSession) // session := new(MirvaSession)
// session.id = next_id() session_id := c.st.Storage.NextID()
// session.owner = vars["owner"] slog.Info("id: ", session_id)
// session.controller_repo = vars["repo"] // session_owner = vars["owner"]
// session.collect_info(w, r) // session_controller_repo = vars["repo"]
// session.find_available_DBs() // session_collect_info(w, r)
// session.start_analyses()
// session.submit_response(w) // session_find_available_DBs()
// session.save()
// session_start_analyses()
// session_submit_response(w)
// session_save()
} }

View File

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