- 22, Oct 2024
- #1
Я новичок в Дженкинсе. Я хотел бы отменить задания под собственным лейблом (сотни) из моей Очереди заданий, выданных рабам:
import hudson.model.*
def q = jenkins.model.Jenkins.getInstance().getQueue()
def items = q.getItems()
if (job_name_fragment == '' && revision == ''){
println("At least one param is requied")
return 1
}
def count = 0
for (i=0;i<items.length;i++){
if (items[i].task.getName().contains("trunk") || items[i].task.getName().contains("dev")|| items[i].task.getName().contains("Windows")){
println("Task: " + items[i].task.getName() + " has been skipped")
continue
}
if(job_name_fragment == '' || items[i].task.getFullName().contains(job_name_fragment)){
if(revision == '' || items[i].params.contains(revision)){
println("Task: " + items[i].task.getFullName() + " has been deleted from queue")
items[i].doCancelQueue()
count++;
}
}
}
println("")
println("Removed total: " + count + " tasks from queue")
so i then could do: for (aSlave in hudson.model.Hudson.instance.slaves) {
println('Name: ' + aSlave.name);
println('getLabelString: ' + aSlave.getLabelString());
}
В настоящее время я знаю только, как это сделать, по его имя:
items[i].task.getFullName()
.
Я ищу что-то вроде этого: (когда я перебираю подчиненные устройства, это просто дает мне список доступных меток для одного подчиненного устройства)
items[i].doCancelQueue()
Весь мой код для удаления заданий по названию
jenkins.model.Jenkins.getInstance().getQueue()
Спасибо
#jenkins #jenkins-pipeline