package matrixtieparent; import hudson.Extension; import hudson.model.Action; import hudson.model.Queue.Task; import hudson.model.Queue.QueueDecisionHandler; import java.util.List; import java.io.IOException; import hudson.matrix.MatrixProject; import hudson.model.Label; import hudson.tasks.BuildWrapper; /** * Maybe assign a Label to limit where the parent * build for a Matrix project may run. * * @author Ken Bertelson */ @Extension public class QueueDecisionHandlerMtp extends QueueDecisionHandler { @Override public boolean shouldSchedule(Task p, List<Action> actions) { if (p instanceof MatrixProject) { MatrixProject projectParent = (MatrixProject)p; for (BuildWrapper bw : projectParent.getBuildWrappers().values()) { if (bw instanceof BuildWrapperMtp) { BuildWrapperMtp bwMtp = (BuildWrapperMtp)bw; Label labelMtp = new Label(bwMtp.getLabelName()); try { projectParent.setAssignedLabel(labelMtp); } catch (IOException e) { e.printStackTrace(); } } } } return true; } }