Как программно отключить узел в Jenkins?

Я хочу выполнить с помощью сценария с использованием API Jenkins эквивалент ручного нажатия ссылки «Отключить» на странице управления узлом в Jenkins. Я хочу добавить этот код в скрипт, который я сделал с помощью подключаемого модуля сценариев Pipeline.

Другими словами, как пользователь с правами администратора Jenkins выполните

Manage Jenkins -> Manage Nodes -> Click on a node -> Click on "Disconnect"

As in:

Страница узла управления

Я не хочу делать что-то вроде "временно пометить этот узел как отключенный".
Мне это бесполезно.


person Mark    schedule 21.05.2017    source источник


Ответы (2)


Я не вижу ничего в pipeline-model-definition-plugin относительно управление узлами.

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

person VonC    schedule 21.05.2017
comment
Привет фон, Спасибо за вашу помощь. Я попробовал httpRequest, и он дал мне: [Конвейер] httpRequest HttpMode: GET URL: myjenkins.mydomain.local:8080/computer/ci-xx-2/ Отправка запроса на URL: myjenkins.mydomain.local:8080/computer/ci-da-2/ Код ответа: HTTP/1.1 405 Метод не разрешен [ Pipeline] End of Pipeline ERROR: Fail: возвращенный код 405 не находится в допустимом диапазоне: [[100‥399]] Finished: FAILURE - person Mark; 24.05.2017

Класс hudson.model.Computer имеет метод disconnect(DisconnectReason)

Вот документы для этого

В моем случае я смог получить экземпляр Computer и отключиться с помощью Jenkins.instance.getNode(...).getComputer().disconnect(...).

person Anthony Sottile    schedule 21.11.2018
comment
Это кажется более точным, чем мой ответ. +1 - person VonC; 21.11.2018