/
PriorityConfigurationMatrixHelper.java
36 lines (31 loc) · 1.48 KB
/
PriorityConfigurationMatrixHelper.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package jenkins.advancedqueue;
import jenkins.advancedqueue.sorter.ItemInfo;
import jenkins.advancedqueue.sorter.QueueItemCache;
import hudson.matrix.MatrixConfiguration;
import hudson.matrix.MatrixProject;
import hudson.model.Job;
class PriorityConfigurationMatrixHelper {
boolean isMatrixConfiguration(Job<?, ?> job) {
return job instanceof MatrixConfiguration;
}
PriorityConfigurationCallback getPriority(MatrixConfiguration matrixConfiguration,
PriorityConfigurationCallback priorityCallback) {
// [JENKINS-8597]
// For MatrixConfiguration use the latest assigned Priority from the
// MatrixProject
MatrixProject matrixProject = matrixConfiguration.getParent();
priorityCallback.addDecisionLog(0, "Job is MatrixConfiguration [" + matrixProject.getName() + "] ...");
ItemInfo itemInfo = QueueItemCache.get().getItem(matrixProject.getName());
// Can be null (for example) at startup when the MatrixBuild got
// lost (was running at restart)
if (itemInfo != null) {
priorityCallback.addDecisionLog(0, "MatrixProject found in cache, using priority from queue-item ["
+ itemInfo.getItemId() + "]");
return priorityCallback.setPrioritySelection(itemInfo.getPriority(), itemInfo.getJobGroupId(),
itemInfo.getPriorityStrategy());
}
priorityCallback.addDecisionLog(0, "MatrixProject not found in cache, assigning global default priority");
return priorityCallback.setPrioritySelection(PrioritySorterConfiguration.get().getStrategy()
.getDefaultPriority());
}
}