diff --git a/.changelog/19115.txt b/.changelog/19115.txt new file mode 100644 index 000000000..e279770f0 --- /dev/null +++ b/.changelog/19115.txt @@ -0,0 +1,3 @@ +```release-note:bug +api: Fix panic in `Allocation.Stub` method when `Job` is unset +``` diff --git a/api/allocations.go b/api/allocations.go index 121a75934..800168c80 100644 --- a/api/allocations.go +++ b/api/allocations.go @@ -311,7 +311,7 @@ type NodeScoreMeta struct { // Stub returns a list stub for the allocation func (a *Allocation) Stub() *AllocationListStub { - return &AllocationListStub{ + stub := &AllocationListStub{ ID: a.ID, EvalID: a.EvalID, Name: a.Name, @@ -319,8 +319,6 @@ func (a *Allocation) Stub() *AllocationListStub { NodeID: a.NodeID, NodeName: a.NodeName, JobID: a.JobID, - JobType: *a.Job.Type, - JobVersion: *a.Job.Version, TaskGroup: a.TaskGroup, DesiredStatus: a.DesiredStatus, DesiredDescription: a.DesiredDescription, @@ -338,6 +336,13 @@ func (a *Allocation) Stub() *AllocationListStub { CreateTime: a.CreateTime, ModifyTime: a.ModifyTime, } + + if a.Job != nil { + stub.JobType = *a.Job.Type + stub.JobVersion = *a.Job.Version + } + + return stub } // ServerTerminalStatus returns true if the desired state of the allocation is