Я хочу удалить несколько определенных рабочих пространств заданий, присутствующих в подчиненном узле. Для этого я хотел бы получить все элементы, присутствующие в этом конкретном ведомом устройстве, а затем удалить рабочее пространство элемента, соответствующего конкретной работе.
Для этого я знаю,
Jenkins.instance.items дает мне список всех элементов, присутствующих в этом экземпляре Jenkins (в моем случае это будет главный узел).
, тогда как
Jenkins.items дает мне список всех предметов, присутствующих в Jenkins.
Мне нужно что-то вроде
node.items , который даст мне список всех элементов, присутствующих в этом конкретном узле,
, где узел будет одним из Jenkins.instance.nodes
Мой код в настоящее времявыглядит как
for (node in Jenkins.instance.nodes) {
println("node: " + node.getDisplayName())
if (node.getDisplayName() == 'abc' || node.getDisplayName() == 'def') {
performCleanup(node, node.items)
}
}
def performCleanup(def node, def items) {
for (item in items) {
workspacePath = node.getWorkspaceFor(item)
if (workspacePath == null) {
println(".... could not get workspace path")
continue
}
pathAsString = workspacePath.getRemote()
if (workspacePath.exists()) {
workspacePath.deleteRecursive()
println(".... deleted from location " + pathAsString)
} else {
println(".... nothing to delete at " + pathAsString)
}
}
}