Отправить уведомление по электронной почте, если Jenkins Slave не в сети - скрипт - PullRequest
0 голосов
/ 09 июля 2019

У меня есть подчиненные узлы Jenkins, и мне нужно настроить оповещение по электронной почте, если некоторые узлы не работают.Удалось получить список автономных узлов, но борется с почтовой частью.

int exitcode = 0
for (slave in hudson.model.Hudson.instance.slaves) {
    if (slave.getComputer().isOffline().toString() == "true"){
        println('Slave ' + slave.name + " is offline!");
        exitcode++;
    }
}

if (exitcode > 0){
    println("We have a Slave down, failing the build!");
    return 1;
    send_email_notification()
}

def send_email_notification(String body) {
    emailext body: "$body",
            to: "username@domainname.com",
            subject: "Offline Slave",
            presendScript : "msg.addHeader('X-Priority', '1 (Highest)')"
}

Нет ошибок внутри консоли сценариев Jenkins:

Результат Slave NODE01 находится в автономном режиме!У нас есть Раб, не в состоянии построить!Результат: 1

Но я не получаю письмо.

1 Ответ

0 голосов
/ 09 июля 2019

У вас есть ошибки? У вас есть возможность получать письма?Настроен ли почтовый сервер на https://{JENKINS_URL}/configure?

Что произойдет, если вы запустите это:

emailext body: "Testing",
            to: "username@domainname.com",
            subject: "Offline Slave",
            presendScript : "msg.addHeader('X-Priority', '1 (Highest)')"

Мне кажется, что вы не передаете тело в вызов send_email_notification ().Попробуйте это:

def send_email_notification(String body) {
    emailext body: "${body}",
            to: "username@domainname.com",
            subject: "Offline Slave",
            presendScript : "msg.addHeader('X-Priority', '1 (Highest)')"
}
for (slave in hudson.model.Hudson.instance.slaves) {
    if (slave.getComputer().isOffline().toString() == "true"){
        msg = "Slave " + slave.name + " is offline!";
        send_email_notification("${msg}")
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...