debug logs

This commit is contained in:
2026-04-04 17:33:36 +03:00
parent 0660117c07
commit abc6cb4e46
2 changed files with 30 additions and 1 deletions
@@ -4,6 +4,7 @@ import (
"context" "context"
"fmt" "fmt"
"io" "io"
"log"
"sync" "sync"
"gitea.d3m0k1d.ru/d3m0k1d/HellreigN/backend/internal/models" "gitea.d3m0k1d.ru/d3m0k1d/HellreigN/backend/internal/models"
@@ -77,20 +78,26 @@ func (self *Commander) removeAgent(aid string) {
} }
func (self *Agent) AddJob(job models.JobForInsert) (int64, error) { func (self *Agent) AddJob(job models.JobForInsert) (int64, error) {
log.Printf("[DEBUG] AddJob: agent=%s, command=%v", self.aid, job.Command)
jid, err := self.jobber.InitJob(self.ctx, self.aid, job) jid, err := self.jobber.InitJob(self.ctx, self.aid, job)
if err != nil { if err != nil {
log.Printf("[DEBUG] AddJob: InitJob failed: %v", err)
return 0, err return 0, err
} }
log.Printf("[DEBUG] AddJob: InitJob returned jid=%d, sending to self.in channel", jid)
self.in <- &proto.Command{ self.in <- &proto.Command{
Id: jid, Id: jid,
Command: job.Command, Command: job.Command,
Stdin: job.Stdin, Stdin: job.Stdin,
} }
log.Printf("[DEBUG] AddJob: sent to self.in channel successfully")
return jid, err return jid, err
} }
func (self *Agent) WaitJob(jid int64) (*models.Job, error) { func (self *Agent) WaitJob(jid int64) (*models.Job, error) {
log.Printf("[DEBUG] WaitJob: agent=%s, jid=%d, waiting on self.jobs[%d].out", self.aid, jid, jid)
result := <-self.jobs[jid].out result := <-self.jobs[jid].out
log.Printf("[DEBUG] WaitJob: agent=%s, jid=%d, received result", self.aid, jid)
return &result.fc, result.err return &result.fc, result.err
} }
@@ -134,6 +141,7 @@ func (self *Agent) recv() error {
if err != nil { if err != nil {
return return
} }
log.Printf("[DEBUG] recv: agent=%s, received finished job id=%d", self.aid, msg.Id)
return self.jobber.UpdateJobInDB(self.ctx, msg.Id, models.JobForUpdate{ return self.jobber.UpdateJobInDB(self.ctx, msg.Id, models.JobForUpdate{
Stdout: msg.Stdout, Stdout: msg.Stdout,
Stderr: msg.Stderr, Stderr: msg.Stderr,
@@ -141,25 +149,33 @@ func (self *Agent) recv() error {
}) })
}() }()
if err == io.EOF { if err == io.EOF {
log.Printf("[DEBUG] recv: agent=%s, EOF received", self.aid)
return nil return nil
} }
// TODO: that would blow up at some point if err != nil {
log.Printf("[DEBUG] recv: agent=%s, error: %v", self.aid, err)
}
out := self.jobs[job.ID].out out := self.jobs[job.ID].out
out <- JobOut{ out <- JobOut{
fc: job, fc: job,
err: err, err: err,
} }
close(out) close(out)
log.Printf("[DEBUG] recv: agent=%s, sent result for job id=%d", self.aid, job.ID)
} }
} }
func (self *Agent) send() error { func (self *Agent) send() error {
for job := range self.in { for job := range self.in {
log.Printf("[DEBUG] send: agent=%s, job id=%d, command=%v", self.aid, job.Id, job.Command)
self.jobs[job.Id] = newJob() self.jobs[job.Id] = newJob()
if err := self.bidi.Send(job); err != nil { if err := self.bidi.Send(job); err != nil {
log.Printf("[DEBUG] send: agent=%s, failed to send job id=%d: %v", self.aid, job.Id, err)
return err return err
} }
log.Printf("[DEBUG] send: agent=%s, sent job id=%d to agent", self.aid, job.Id)
} }
log.Printf("[DEBUG] send: agent=%s, self.in channel closed", self.aid)
return io.EOF return io.EOF
// self.jobs[] // self.jobs[]
} }
+13
View File
@@ -2,6 +2,7 @@ package handlers
import ( import (
"fmt" "fmt"
"log"
"net/http" "net/http"
"gitea.d3m0k1d.ru/d3m0k1d/HellreigN/backend/internal/grpcsrv/commander" "gitea.d3m0k1d.ru/d3m0k1d/HellreigN/backend/internal/grpcsrv/commander"
@@ -44,16 +45,21 @@ type AddJobOut struct {
// @Success 201 {object} AddJobOut // @Success 201 {object} AddJobOut
// @Router /jobs [post] // @Router /jobs [post]
func (self *JobsHandlers) AddJob(c *gin.Context) { func (self *JobsHandlers) AddJob(c *gin.Context) {
log.Printf("[DEBUG] AddJob handler: request received")
err := func() error { err := func() error {
var in AddJobIn var in AddJobIn
if err := c.Bind(&in); err != nil { if err := c.Bind(&in); err != nil {
log.Printf("[DEBUG] AddJob handler: bind failed: %v", err)
return err return err
} }
log.Printf("[DEBUG] AddJob handler: agent_id=%s, command=%s, interpreter_id=%d", in.AgentID, in.Command, in.InterpreterID)
agent, ok := self.cmder.GetAgent(in.AgentID) agent, ok := self.cmder.GetAgent(in.AgentID)
if !ok { if !ok {
log.Printf("[DEBUG] AddJob handler: agent %s not found", in.AgentID)
c.Status(http.StatusNotFound) c.Status(http.StatusNotFound)
return fmt.Errorf("agent not found") return fmt.Errorf("agent not found")
} }
log.Printf("[DEBUG] AddJob handler: agent found, resolving command")
var command []string var command []string
if in.InterpreterID == 0 { if in.InterpreterID == 0 {
@@ -62,21 +68,27 @@ func (self *JobsHandlers) AddJob(c *gin.Context) {
var err error var err error
command, err = self.svc.ResolveCommand(c.Request.Context(), in.InterpreterID, in.Command) command, err = self.svc.ResolveCommand(c.Request.Context(), in.InterpreterID, in.Command)
if err != nil { if err != nil {
log.Printf("[DEBUG] AddJob handler: ResolveCommand failed: %v", err)
return err return err
} }
} }
log.Printf("[DEBUG] AddJob handler: calling agent.AddJob with command=%v", command)
jid, err := agent.AddJob(models.JobForInsert{ jid, err := agent.AddJob(models.JobForInsert{
Command: command, Command: command,
Stdin: in.Stdin, Stdin: in.Stdin,
}) })
if err != nil { if err != nil {
log.Printf("[DEBUG] AddJob handler: agent.AddJob failed: %v", err)
return err return err
} }
log.Printf("[DEBUG] AddJob handler: agent.AddJob returned jid=%d, calling WaitJob", jid)
job, err := agent.WaitJob(jid) job, err := agent.WaitJob(jid)
if err != nil { if err != nil {
log.Printf("[DEBUG] AddJob handler: agent.WaitJob failed: %v", err)
return err return err
} }
log.Printf("[DEBUG] AddJob handler: agent.WaitJob returned job id=%d, status=%d", job.ID, job.Status)
c.JSON(http.StatusCreated, AddJobOut{ c.JSON(http.StatusCreated, AddJobOut{
ID: job.ID, ID: job.ID,
Command: job.Command, Command: job.Command,
@@ -85,6 +97,7 @@ func (self *JobsHandlers) AddJob(c *gin.Context) {
Stderr: job.Stderr, Stderr: job.Stderr,
Status: job.Status, Status: job.Status,
}) })
log.Printf("[DEBUG] AddJob handler: response sent")
return nil return nil
}() }()
if err != nil { if err != nil {