Remove Helix agents in node cleanup script (#970)

Sometimes Jenkins takes agents offline for no apparent reasnon.  We remove these agents periodically.  Add Helix agents to the list of agents to remove
This commit is contained in:
Matt Mitchell 2018-03-28 09:26:31 -07:00 коммит произвёл GitHub
Родитель bbdec17e08
Коммит 45220c20f7
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 7 добавлений и 5 удалений

Просмотреть файл

@ -1,16 +1,18 @@
// Removes offline nodes from AzureVMAgents that weren't taken offline for user reasons
import jenkins.model.Jenkins
import com.microsoft.azure.vmagent.AzureVMAgent
import com.microsoft.azure.vmagent.AzureVMAgent
import com.microsoft.helix.helixagents.HelixAgent
def nodes = Jenkins.instance.getNodes()
nodes.each { node ->
if (node instanceof AzureVMAgent) {
if (node instanceof AzureVMAgent || node instanceof HelixAgent) {
if (node.getComputer() != null) {
if (node.getComputer().isTemporarilyOffline()) {
def cause = node.getComputer().getOfflineCause()
if (!(cause instanceof hudson.slaves.OfflineCause.UserCause)) {
if (!(cause instanceof hudson.slaves.OfflineCause.UserCause) &&
(!(node instanceof HelixAgent) || !(cause instanceof hudson.slaves.OfflineCause.SimpleOfflineCause))) {
println "Removing " + node.getComputer().getName() + " "
Jenkins.instance.removeNode(node)
}

Просмотреть файл

@ -448,9 +448,9 @@ job('node_cleaner') {
}
}
// Run hourly
// Run every hour
triggers {
cron('@daily')
cron('@hourly')
}
// We stream from the workspace since in the groovy 2.0 plugin, the scripts