1
0
Fork 0
mirror of https://git.sr.ht/~ashkeel/strimertul synced 2024-09-20 02:00:49 +00:00

Add Status() to modules

This commit is contained in:
Ash Keel 2021-12-09 10:46:14 +01:00
parent 0f6cfdf30e
commit dd6979c38d
No known key found for this signature in database
GPG key ID: BAD8D93E7314ED3E
6 changed files with 67 additions and 0 deletions

View file

@ -56,6 +56,22 @@ func (db *DB) Client() *badger.DB {
return db.client return db.client
} }
func (db *DB) Status() modules.ModuleStatus {
lsm, vlog := db.client.Size()
return modules.ModuleStatus{
Enabled: true,
Working: !db.client.IsClosed(),
Data: struct {
LSMSize int64
VlogSize int64
}{
lsm,
vlog,
},
StatusString: db.client.LevelsToString(),
}
}
func (db *DB) Close() error { func (db *DB) Close() error {
return db.client.Close() return db.client.Close()
} }

View file

@ -56,6 +56,19 @@ func NewServer(manager *modules.Manager) (*Server, error) {
return server, nil return server, nil
} }
func (s *Server) Status() modules.ModuleStatus {
return modules.ModuleStatus{
Enabled: true,
Working: s.server != nil,
Data: struct {
Bind string
}{
s.server.Addr,
},
StatusString: s.server.Addr,
}
}
func (s *Server) Close() error { func (s *Server) Close() error {
return s.server.Close() return s.server.Close()
} }

View file

@ -124,6 +124,15 @@ func NewManager(manager *modules.Manager) (*Manager, error) {
return loyalty, nil return loyalty, nil
} }
func (m *Manager) Status() modules.ModuleStatus {
return modules.ModuleStatus{
Enabled: true,
Working: true,
Data: struct{}{},
StatusString: "",
}
}
func (m *Manager) Close() error { func (m *Manager) Close() error {
//TODO Stop subscriptions? //TODO Stop subscriptions?
return nil return nil

View file

@ -2,7 +2,19 @@ package modules
import "github.com/sirupsen/logrus" import "github.com/sirupsen/logrus"
type ModuleStatus struct {
Enabled bool
Working bool
Data interface{}
StatusString string
}
func (m ModuleStatus) String() string {
return m.StatusString
}
type Module interface { type Module interface {
Status() ModuleStatus
Close() error Close() error
} }

View file

@ -115,7 +115,15 @@ func (m *Manager) ReceiveEvents() error {
case <-m.restart: case <-m.restart:
return nil return nil
} }
}
}
func (m *Manager) Status() modules.ModuleStatus {
return modules.ModuleStatus{
Enabled: true,
Working: m.Client != nil,
Data: struct{}{},
StatusString: "",
} }
} }

View file

@ -151,6 +151,15 @@ func (c *Client) RunBot() error {
} }
} }
func (c *Client) Status() modules.ModuleStatus {
return modules.ModuleStatus{
Enabled: true,
Working: c.Bot != nil && c.Bot.Client != nil,
Data: struct{}{},
StatusString: "",
}
}
func (c *Client) Close() error { func (c *Client) Close() error {
return c.Bot.Client.Disconnect() return c.Bot.Client.Disconnect()
} }