in pkg/controller/core/localqueue_controller.go [264:296]
func (r *LocalQueueReconciler) UpdateStatusIfChanged(
ctx context.Context,
queue *kueue.LocalQueue,
conditionStatus metav1.ConditionStatus,
reason, msg string,
) error {
oldStatus := queue.Status.DeepCopy()
pendingWls, err := r.queues.PendingWorkloads(queue)
if err != nil {
r.log.Error(err, failedUpdateLqStatusMsg)
return err
}
usage, err := r.cache.LocalQueueUsage(queue)
if err != nil {
r.log.Error(err, failedUpdateLqStatusMsg)
return err
}
queue.Status.PendingWorkloads = pendingWls
queue.Status.AdmittedWorkloads = r.cache.AdmittedWorkloadsInLocalQueue(queue)
queue.Status.FlavorUsage = usage
if len(conditionStatus) != 0 && len(reason) != 0 && len(msg) != 0 {
meta.SetStatusCondition(&queue.Status.Conditions, metav1.Condition{
Type: kueue.LocalQueueActive,
Status: conditionStatus,
Reason: reason,
Message: msg,
})
}
if !equality.Semantic.DeepEqual(oldStatus, queue.Status) {
return r.client.Status().Update(ctx, queue)
}
return nil
}