You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.3 KiB
45 lines
1.3 KiB
package mock
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"tera-clone/services/tera-api/internal/alarmdelivery"
|
|
)
|
|
|
|
func (s *Store) LogStorageStatus(ctx context.Context) (map[string]any, error) {
|
|
if s.logJournal == nil {
|
|
return nil, fmt.Errorf("log storage unavailable")
|
|
}
|
|
snapshot, err := s.logJournal.Snapshot()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
retention, err := s.LogRetention(ctx)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return map[string]any{"storage": snapshot, "retention": retention, "usage_percent": protectedLogUsagePercent(snapshot), "warning": protectedLogUsagePercent(snapshot) >= retention.ProtectedUsageWarningPct}, nil
|
|
}
|
|
func (s *Store) rememberSyslog(result alarmdelivery.Result, err error) {
|
|
s.mu.Lock()
|
|
defer s.mu.Unlock()
|
|
s.lastSyslogResult = result
|
|
s.lastSyslogError = ""
|
|
if err != nil {
|
|
s.lastSyslogError = err.Error()
|
|
}
|
|
}
|
|
func (s *Store) RemoteSyslogStatus(ctx context.Context) (map[string]any, error) {
|
|
s.mu.Lock()
|
|
result, lastError, enabled := s.lastSyslogResult, s.lastSyslogError, s.runningSyslog.Enabled
|
|
s.mu.Unlock()
|
|
if result.DeliveryID != "" {
|
|
latest, err := s.alarmDeliveryController.Status(ctx, result.DeliveryID)
|
|
if err != nil {
|
|
lastError = err.Error()
|
|
} else {
|
|
result = latest
|
|
}
|
|
}
|
|
return map[string]any{"enabled": enabled, "delivery": result, "error": lastError, "observed": result.DeliveryID != "" || lastError != ""}, nil
|
|
}
|
|
|