From a758ef510b2d960af53f99f8c06b4fb63daac505 Mon Sep 17 00:00:00 2001 From: Serge Bazanski Date: Sat, 6 Oct 2018 17:54:25 +0100 Subject: [PATCH] state manager stub --- main.go | 8 ++++++-- service.go | 8 ++++++-- state/state.go | 24 ++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 4 deletions(-) create mode 100644 state/state.go diff --git a/main.go b/main.go index c8b8a76e..c538eaab 100644 --- a/main.go +++ b/main.go @@ -12,8 +12,10 @@ import ( "github.com/golang/glog" "github.com/golang/protobuf/proto" - "code.hackerspace.pl/q3k/topo/graph" confpb "code.hackerspace.pl/q3k/topo/proto/config" + + "code.hackerspace.pl/q3k/topo/graph" + "code.hackerspace.pl/q3k/topo/state" ) var ( @@ -57,9 +59,11 @@ func main() { glog.Exitf("Initial netbox feed failed: %v", err) } + stm := state.NewManager() + sconf := ServiceConfig{ DebugListen: flagDebugListen, } - srv := NewService(gr, sconf) + srv := NewService(gr, stm, sconf) srv.Run() } diff --git a/service.go b/service.go index ccfd0bca..916299cf 100644 --- a/service.go +++ b/service.go @@ -7,11 +7,13 @@ import ( "sort" "strings" - "code.hackerspace.pl/q3k/topo/graph" "github.com/gobuffalo/packr" "github.com/golang/glog" "github.com/q3k/statusz" "vbom.ml/util/sortorder" + + "code.hackerspace.pl/q3k/topo/graph" + "code.hackerspace.pl/q3k/topo/state" ) type ServiceConfig struct { @@ -20,12 +22,14 @@ type ServiceConfig struct { type Service struct { gr *graph.Graph + stm *state.StateManager config ServiceConfig } -func NewService(gr *graph.Graph, c ServiceConfig) *Service { +func NewService(gr *graph.Graph, stm *state.StateManager, c ServiceConfig) *Service { return &Service{ gr: gr, + stm: stm, config: c, } } diff --git a/state/state.go b/state/state.go new file mode 100644 index 00000000..5f7cc563 --- /dev/null +++ b/state/state.go @@ -0,0 +1,24 @@ +package state + +import ( + pb "code.hackerspace.pl/q3k/topo/proto/control" +) + +type SwitchportState struct { + Proto *pb.SwitchPort +} + +type SwitchState struct { + Name string + Ports []*SwitchportState +} + +type StateManager struct { + Switches map[string]*SwitchState +} + +func NewManager() *StateManager { + return &StateManager{ + Switches: make(map[string]*SwitchState), + } +}