From 12fff29a128ac88fd9d4b1db9220e7d2f18b5f73 Mon Sep 17 00:00:00 2001 From: Paul Wells Date: Thu, 7 May 2026 13:13:21 -0700 Subject: [PATCH] allow setting agent job assignment url (#4512) --- pkg/agent/worker.go | 7 +++---- pkg/service/agentservice.go | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/pkg/agent/worker.go b/pkg/agent/worker.go index e1e80fcc5..c54487861 100644 --- a/pkg/agent/worker.go +++ b/pkg/agent/worker.go @@ -333,7 +333,7 @@ func (w *Worker) GetJobState(jobID livekit.JobID) (*livekit.JobState, error) { return utils.CloneProto(j.State), nil } -func (w *Worker) AssignJob(ctx context.Context, job *livekit.Job) (*livekit.JobState, error) { +func (w *Worker) AssignJob(ctx context.Context, job *livekit.Job, url *string) (*livekit.JobState, error) { availCh := make(chan *livekit.AvailabilityResponse, 1) job = utils.CloneProto(job) jobID := livekit.JobID(job.Id) @@ -405,9 +405,8 @@ func (w *Worker) AssignJob(ctx context.Context, job *livekit.Job) (*livekit.JobS return nil, err } - // In OSS, Url is nil, and the used API Key is the same as the one used to connect the worker w.sendRequest(&livekit.ServerMessage{Message: &livekit.ServerMessage_Assignment{ - Assignment: &livekit.JobAssignment{Job: job, Url: nil, Token: token}, + Assignment: &livekit.JobAssignment{Job: job, Url: url, Token: token}, }}) state := utils.CloneProto(job.State) @@ -560,7 +559,7 @@ func (w *Worker) HandleSimulateJob(simulate *livekit.SimulateJobRequest) error { } go func() { - _, err := w.AssignJob(w.ctx, job) + _, err := w.AssignJob(w.ctx, job, nil) if err != nil { w.logger.Errorw("unable to simulate job", err, "jobID", job.Id) } diff --git a/pkg/service/agentservice.go b/pkg/service/agentservice.go index 215f5fac4..8481a1e3d 100644 --- a/pkg/service/agentservice.go +++ b/pkg/service/agentservice.go @@ -406,7 +406,7 @@ func (h *AgentHandler) JobRequest(ctx context.Context, job *livekit.Job) (*rpc.J logger := logger.WithValues("workerID", selected.ID) attempted[selected] = struct{}{} - state, err := selected.AssignJob(ctx, job) + state, err := selected.AssignJob(ctx, job, nil) switch state.GetStatus() { case livekit.JobStatus_JS_RUNNING: logger.Infow("assigned job to worker", "apiKey", selected.APIKey())