2016-08-29 7 views
1

Я пытаюсь научиться использовать Jenkins API наиболее эффективным способом.Как запросить определенный ресурс через Jenkins API?

Предполагая, что это мой сервер (мастер Дженкинс) https://mf4.xiph.org/jenkins/computer/api/xml

Я пытаюсь найти наиболее эффективный способ для получения значения автономного ключа для компьютера, чей DISPLAYNAME является thomas-armv7 (это настоящие значения из приведенной выше ссылки).

Предполагая, что у меня есть десятки компьютеров на этом хосте, я хочу получить его только с тех пор, как он обеспечивает лучшую производительность, чтобы получить его таким образом (я считаю). Я пробовал несколько комбинаций URI, но пока не нашел нужного.

ответ

2

Использование XPath:

/computerSet/computer[displayName='thomas-armv7']/offline 

И добавить параметр xpath запросов к API XML Дженкинс с указанным выше значением, например:

https://mf4.xiph.org/jenkins/computer/api/xml?xpath=computerSet/computer[displayName=%27thomas-armv7%27]/offline

+0

Спасибо, это работает! Я пытаюсь принять это, но система останавливает меня. – user1918255

+1

Это решение создает полный список компьютеров (узлов) и фильтрует результат. Это не так эффективно, как запрос только на компьютер, который интересует OP. –

+0

Согласен. +1 к вашему ответу –

1

Если вы знаете имя узла что вы хотите запросить, тогда более эффективно использовать API для извлечения только этого узла:

https://mf4.xiph.org/jenkins/computer/thomas-armv7/api/xml?xpath=slaveComputer/offline

Если вы хотите исследовать результаты нескольких узлов или фильтровать на основе параметра, отличного от имени узла, вам необходимо использовать изменение Stéphane Bruckert's solution.