mirror of
https://github.com/lorsanstand/HomeOps-Hub.git
synced 2026-06-19 14:25:16 +03:00
refactor: move const in config
This commit is contained in:
@@ -59,9 +59,9 @@ func (a *App) Run() {
|
||||
a.log.Info().Msg("migrations applied successfully")
|
||||
|
||||
hubStore := store.NewHubStore(DBConn)
|
||||
hubService := hub_service.NewHubService(hubStore, a.log)
|
||||
hubService := hub_service.NewHubService(hubStore, a.cfg.Heartbeat, a.log)
|
||||
statusNotifier := notifier.NewStatusNotifier()
|
||||
connManger := connection_manager.NewConnectionManager(hubStore, statusNotifier, a.log)
|
||||
connManger := connection_manager.NewConnectionManager(hubStore, statusNotifier, a.cfg.Heartbeat*1000, a.log)
|
||||
|
||||
a.log.Info().Msg("starting hub service")
|
||||
|
||||
|
||||
@@ -8,17 +8,16 @@ import (
|
||||
"google.golang.org/grpc/metadata"
|
||||
)
|
||||
|
||||
const heartbeatTimeoutMS = 6000
|
||||
|
||||
type ConnectionManager struct {
|
||||
heartbeat heartbeatStore
|
||||
log zerolog.Logger
|
||||
status statusNotifier
|
||||
agentConnStore *AgentConnStore
|
||||
heartbeat heartbeatStore
|
||||
log zerolog.Logger
|
||||
status statusNotifier
|
||||
agentConnStore *AgentConnStore
|
||||
heartbeatTimeout int
|
||||
}
|
||||
|
||||
func NewConnectionManager(heartbeat heartbeatStore, status statusNotifier, logger zerolog.Logger) *ConnectionManager {
|
||||
return &ConnectionManager{heartbeat: heartbeat, log: logger, status: status, agentConnStore: NewAgentConnStore()}
|
||||
func NewConnectionManager(heartbeat heartbeatStore, status statusNotifier, heartbeatTimeoutMS int, logger zerolog.Logger) *ConnectionManager {
|
||||
return &ConnectionManager{heartbeat: heartbeat, log: logger, status: status, agentConnStore: NewAgentConnStore(), heartbeatTimeout: heartbeatTimeoutMS + 600}
|
||||
}
|
||||
|
||||
func (c *ConnectionManager) NewConnection(stream StreamConn) error {
|
||||
@@ -32,7 +31,7 @@ func (c *ConnectionManager) NewConnection(stream StreamConn) error {
|
||||
|
||||
status := c.status.New(AgentID)
|
||||
|
||||
agent := newAgentConnection(AgentID, stream, c.heartbeat, status, heartbeatTimeoutMS, c.log)
|
||||
agent := newAgentConnection(AgentID, stream, c.heartbeat, status, c.heartbeatTimeout, c.log)
|
||||
c.agentConnStore.Add(AgentID, agent)
|
||||
defer c.agentConnStore.Delete(AgentID)
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ func newConnectionManagerTestHarness(t *testing.T) *connectionManagerTestHarness
|
||||
heartbeat := &heartBeatMock{doneCh: make(chan struct{}, 2)}
|
||||
status := &statusNotifierMock{agentIDCh: make(chan string, 1)}
|
||||
|
||||
manager := NewConnectionManager(heartbeat, status, zerolog.New(nil))
|
||||
manager := NewConnectionManager(heartbeat, status, 10000, zerolog.New(nil))
|
||||
|
||||
return &connectionManagerTestHarness{manager: manager, status: status, heartbeat: heartbeat}
|
||||
}
|
||||
|
||||
@@ -12,8 +12,6 @@ import (
|
||||
"github.com/rs/zerolog"
|
||||
)
|
||||
|
||||
const HEARTBEAT = 5
|
||||
|
||||
type Store interface {
|
||||
NewAgent(ctx context.Context, agent domainHub.CreateAgentModel) error
|
||||
GetAgentByAgentID(ctx context.Context, AgentID string) (domainHub.AgentModel, error)
|
||||
@@ -21,12 +19,13 @@ type Store interface {
|
||||
}
|
||||
|
||||
type HubService struct {
|
||||
store Store
|
||||
log zerolog.Logger
|
||||
store Store
|
||||
log zerolog.Logger
|
||||
heartbeatTimeout int
|
||||
}
|
||||
|
||||
func NewHubService(store Store, logger zerolog.Logger) *HubService {
|
||||
return &HubService{log: logger, store: store}
|
||||
func NewHubService(store Store, heartbeatTimeout int, logger zerolog.Logger) *HubService {
|
||||
return &HubService{log: logger, store: store, heartbeatTimeout: heartbeatTimeout}
|
||||
}
|
||||
|
||||
func (h *HubService) RegisterAgent(ctx context.Context, data domain.RegisterAgentRequest) (domain.RegisterAgentResponse, error) {
|
||||
@@ -47,7 +46,7 @@ func (h *HubService) RegisterAgent(ctx context.Context, data domain.RegisterAgen
|
||||
return domain.RegisterAgentResponse{}, fmt.Errorf("update agent in db: %w", err)
|
||||
}
|
||||
h.log.Debug().Str("agentId", agent.AgentID).Msg("agent updated successfully")
|
||||
return domain.RegisterAgentResponse{AgentID: agent.AgentID, Heartbeat: HEARTBEAT}, nil
|
||||
return domain.RegisterAgentResponse{AgentID: agent.AgentID, Heartbeat: h.heartbeatTimeout}, nil
|
||||
}
|
||||
|
||||
AgentID, err := hasher.MakeID(data.Host, data.AgentName)
|
||||
@@ -62,5 +61,5 @@ func (h *HubService) RegisterAgent(ctx context.Context, data domain.RegisterAgen
|
||||
if err := h.store.NewAgent(ctx, agentStore); err != nil {
|
||||
return domain.RegisterAgentResponse{}, fmt.Errorf("insert new agent: %w", err)
|
||||
}
|
||||
return domain.RegisterAgentResponse{AgentID: AgentID, Heartbeat: HEARTBEAT}, nil
|
||||
return domain.RegisterAgentResponse{AgentID: AgentID, Heartbeat: h.heartbeatTimeout}, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user