diff --git a/internal/service/agent.go b/internal/service/agent.go index 1a14718..00ba028 100644 --- a/internal/service/agent.go +++ b/internal/service/agent.go @@ -91,8 +91,8 @@ func (s *AgentService) Register(ctx context.Context, name string, hostname strin return agent, apiKey, nil } -// HeartbeatWithContext updates an agent's last seen time, status, and metadata. -func (s *AgentService) HeartbeatWithContext(ctx context.Context, agentID string, metadata *domain.AgentMetadata) error { +// Heartbeat updates an agent's last seen time, status, and metadata. +func (s *AgentService) Heartbeat(ctx context.Context, agentID string, metadata *domain.AgentMetadata) error { agent, err := s.agentRepo.Get(ctx, agentID) if err != nil { return fmt.Errorf("failed to fetch agent: %w", err) @@ -114,12 +114,6 @@ func (s *AgentService) HeartbeatWithContext(ctx context.Context, agentID string, return nil } -// Heartbeat updates agent heartbeat (handler interface method). -// Note: This method is called from handlers which have a context; callers should prefer HeartbeatWithContext. -func (s *AgentService) Heartbeat(ctx context.Context, agentID string, metadata *domain.AgentMetadata) error { - return s.HeartbeatWithContext(ctx, agentID, metadata) -} - // SubmitCSR validates and processes a Certificate Signing Request from an agent. // In agent keygen mode, this completes an AwaitingCSR renewal job by signing the CSR // and storing the cert version. The private key stays on the agent — only the CSR diff --git a/internal/service/agent_test.go b/internal/service/agent_test.go index 4d1a6b9..7271feb 100644 --- a/internal/service/agent_test.go +++ b/internal/service/agent_test.go @@ -92,7 +92,7 @@ func TestHeartbeat(t *testing.T) { agentService := NewAgentService(agentRepo, certRepo, jobRepo, targetRepo, auditService, issuerRegistry, nil) - err := agentService.HeartbeatWithContext(ctx, "agent-001", nil) + err := agentService.Heartbeat(ctx, "agent-001", nil) if err != nil { t.Fatalf("Heartbeat failed: %v", err) } @@ -125,7 +125,7 @@ func TestHeartbeat_NotFound(t *testing.T) { agentService := NewAgentService(agentRepo, certRepo, jobRepo, targetRepo, auditService, issuerRegistry, nil) - err := agentService.HeartbeatWithContext(ctx, "nonexistent", nil) + err := agentService.Heartbeat(ctx, "nonexistent", nil) if err == nil { t.Fatal("expected error for nonexistent agent") } diff --git a/internal/service/concurrent_test.go b/internal/service/concurrent_test.go index 9df68c5..ccb4d83 100644 --- a/internal/service/concurrent_test.go +++ b/internal/service/concurrent_test.go @@ -159,7 +159,7 @@ func TestConcurrentAgentHeartbeats(t *testing.T) { Architecture: "x86_64", } - err := agentSvc.HeartbeatWithContext(ctx, agentID, metadata) + err := agentSvc.Heartbeat(ctx, agentID, metadata) if err != nil { errChan <- fmt.Errorf("goroutine %d: failed heartbeat for agent %s: %w", idx, agentID, err) return diff --git a/internal/service/context_test.go b/internal/service/context_test.go index 440c590..a7f0b72 100644 --- a/internal/service/context_test.go +++ b/internal/service/context_test.go @@ -176,13 +176,13 @@ func TestAgentService_HeartbeatWithCancelledContext(t *testing.T) { nil, // renewalService ) - err := agentSvc.HeartbeatWithContext(ctx, "agent-1", &domain.AgentMetadata{}) + err := agentSvc.Heartbeat(ctx, "agent-1", &domain.AgentMetadata{}) // Service should handle cancelled context if err == nil || ctx.Err() == context.Canceled { return } - t.Logf("HeartbeatWithContext with cancelled context returned: %v", err) + t.Logf("Heartbeat with cancelled context returned: %v", err) } // Test with timeout context (should trigger deadline exceeded) @@ -229,11 +229,11 @@ func TestAgentService_HeartbeatWithDeadlineExceeded(t *testing.T) { time.Sleep(10 * time.Millisecond) // Ensure deadline is exceeded - err := agentSvc.HeartbeatWithContext(ctx, "agent-1", &domain.AgentMetadata{}) + err := agentSvc.Heartbeat(ctx, "agent-1", &domain.AgentMetadata{}) // Service should handle deadline exceeded if err == nil || ctx.Err() == context.DeadlineExceeded { return } - t.Logf("HeartbeatWithContext with deadline exceeded returned: %v", err) + t.Logf("Heartbeat with deadline exceeded returned: %v", err) }