Skip to content

Commit 674c02a

Browse files
committed
Enhance logging in server and storage manager for better debugging and monitoring. Added detailed debug and error messages in GetQuarantinedServers and ListQuarantinedUpstreamServers methods, along with improvements in state management for tray UI updates.
1 parent 39c1ed9 commit 674c02a

4 files changed

Lines changed: 190 additions & 25 deletions

File tree

internal/server/server.go

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -651,34 +651,50 @@ func (s *Server) GetAllServers() ([]map[string]interface{}, error) {
651651

652652
// GetQuarantinedServers returns information about quarantined servers for tray UI
653653
func (s *Server) GetQuarantinedServers() ([]map[string]interface{}, error) {
654+
s.logger.Debug("GetQuarantinedServers called")
655+
654656
// Check if storage manager is available
655657
if s.storageManager == nil {
658+
s.logger.Warn("Storage manager is nil in GetQuarantinedServers")
656659
return []map[string]interface{}{}, nil
657660
}
658661

662+
s.logger.Debug("Calling storage manager ListQuarantinedUpstreamServers")
659663
quarantinedServers, err := s.storageManager.ListQuarantinedUpstreamServers()
660664
if err != nil {
661665
// Handle database closed gracefully
662666
if strings.Contains(err.Error(), "database not open") || strings.Contains(err.Error(), "closed") {
663667
s.logger.Debug("Database not available for GetQuarantinedServers, returning empty list")
664668
return []map[string]interface{}{}, nil
665669
}
670+
s.logger.Error("Failed to get quarantined servers from storage", zap.Error(err))
666671
return nil, err
667672
}
668673

674+
s.logger.Debug("Retrieved quarantined servers from storage",
675+
zap.Int("count", len(quarantinedServers)))
676+
669677
var result []map[string]interface{}
670678
for _, server := range quarantinedServers {
671-
result = append(result, map[string]interface{}{
679+
serverMap := map[string]interface{}{
672680
"name": server.Name,
673681
"url": server.URL,
674682
"command": server.Command,
675683
"protocol": server.Protocol,
676684
"enabled": server.Enabled,
677685
"quarantined": server.Quarantined,
678686
"created": server.Created,
679-
})
687+
}
688+
result = append(result, serverMap)
689+
690+
s.logger.Debug("Added quarantined server to result",
691+
zap.String("server", server.Name),
692+
zap.Bool("quarantined", server.Quarantined))
680693
}
681694

695+
s.logger.Debug("GetQuarantinedServers completed",
696+
zap.Int("total_result_count", len(result)))
697+
682698
return result, nil
683699
}
684700

@@ -722,11 +738,19 @@ func (s *Server) QuarantineServer(serverName string, quarantined bool) error {
722738
zap.String("server", serverName),
723739
zap.Bool("quarantined", quarantined))
724740

741+
s.logger.Debug("Calling storage manager QuarantineUpstreamServer",
742+
zap.String("server", serverName),
743+
zap.Bool("quarantined", quarantined))
744+
725745
if err := s.storageManager.QuarantineUpstreamServer(serverName, quarantined); err != nil {
726746
s.logger.Error("Failed to update server quarantine state in storage", zap.Error(err))
727747
return fmt.Errorf("failed to update quarantine state for server '%s' in storage: %w", serverName, err)
728748
}
729749

750+
s.logger.Debug("Successfully updated quarantine state in storage, saving configuration",
751+
zap.String("server", serverName),
752+
zap.Bool("quarantined", quarantined))
753+
730754
if err := s.SaveConfiguration(); err != nil {
731755
s.logger.Error("Failed to save configuration after quarantine state change", zap.Error(err))
732756
}

internal/storage/manager.go

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,13 +139,25 @@ func (m *Manager) ListQuarantinedUpstreamServers() ([]*config.ServerConfig, erro
139139
m.mu.RLock()
140140
defer m.mu.RUnlock()
141141

142+
m.logger.Debug("ListQuarantinedUpstreamServers called")
143+
142144
records, err := m.db.ListUpstreams()
143145
if err != nil {
146+
m.logger.Errorw("Failed to list upstreams for quarantine filtering",
147+
"error", err)
144148
return nil, err
145149
}
146150

151+
m.logger.Debugw("Retrieved all upstream records for quarantine filtering",
152+
"total_records", len(records))
153+
147154
var quarantinedServers []*config.ServerConfig
148155
for _, record := range records {
156+
m.logger.Debugw("Checking server quarantine status",
157+
"server", record.Name,
158+
"quarantined", record.Quarantined,
159+
"enabled", record.Enabled)
160+
149161
if record.Quarantined {
150162
quarantinedServers = append(quarantinedServers, &config.ServerConfig{
151163
Name: record.Name,
@@ -160,9 +172,16 @@ func (m *Manager) ListQuarantinedUpstreamServers() ([]*config.ServerConfig, erro
160172
Created: record.Created,
161173
Updated: record.Updated,
162174
})
175+
176+
m.logger.Debugw("Added server to quarantined list",
177+
"server", record.Name,
178+
"total_quarantined_so_far", len(quarantinedServers))
163179
}
164180
}
165181

182+
m.logger.Debugw("ListQuarantinedUpstreamServers completed",
183+
"total_quarantined", len(quarantinedServers))
184+
166185
return quarantinedServers, nil
167186
}
168187

@@ -226,14 +245,39 @@ func (m *Manager) QuarantineUpstreamServer(name string, quarantined bool) error
226245
m.mu.Lock()
227246
defer m.mu.Unlock()
228247

248+
m.logger.Debugw("QuarantineUpstreamServer called",
249+
"server", name,
250+
"quarantined", quarantined)
251+
229252
record, err := m.db.GetUpstream(name)
230253
if err != nil {
254+
m.logger.Errorw("Failed to get upstream record for quarantine operation",
255+
"server", name,
256+
"error", err)
231257
return err
232258
}
233259

260+
m.logger.Debugw("Retrieved upstream record for quarantine",
261+
"server", name,
262+
"current_quarantined", record.Quarantined,
263+
"new_quarantined", quarantined)
264+
234265
record.Quarantined = quarantined
235266
record.Updated = time.Now()
236-
return m.db.SaveUpstream(record)
267+
268+
if err := m.db.SaveUpstream(record); err != nil {
269+
m.logger.Errorw("Failed to save quarantine status to database",
270+
"server", name,
271+
"quarantined", quarantined,
272+
"error", err)
273+
return err
274+
}
275+
276+
m.logger.Debugw("Successfully saved quarantine status to database",
277+
"server", name,
278+
"quarantined", quarantined)
279+
280+
return nil
237281
}
238282

239283
// Tool statistics operations

0 commit comments

Comments
 (0)