как проверить, занят ли Гудзон или нет? - PullRequest
6 голосов
/ 11 июля 2011

Как проверить, занят ли Гудзон или нет? Это значит, что я хочу проверить, выполняет ли он какую-либо сборку или нет.

В настоящее время использую следующую вещь:

    if(lastBuild == lastCompletedBuild){
        // hudson is free
    }
    else{
      //hudson is busy
   }

Это правильная логика? Что делать, если машина перезагружается / падает после обновления последней сборки, а lastCompletedbuild - нет?

Существует ли какой-либо API, который можно использовать напрямую?

Ответы [ 4 ]

8 голосов
/ 14 июля 2011

Если вы хотите увидеть, какие элементы в данный момент находятся в очереди на сборку, вы можете сделать запрос на http://your.hudson.server/hudson/queue/api/[xml|json].

2 голосов
/ 17 июля 2011

Вас интересует, строится ли конкретная работа в настоящее время? В этом случае:

http://[hudson-host-and-path]/job/[job-name]/lastBuild/api/xml

имеет тег <building>, установленный на true , если в данный момент происходит сборка.

2 голосов
/ 15 июля 2011

Вы можете попытаться запросить Статистика загрузки , доступная в отдельном API :

<overallLoadStatistics>
  <busyExecutors></busyExecutors>
  <queueLength></queueLength>
  <totalExecutors></totalExecutors>
  <totalQueueLength></totalQueueLength>
</overallLoadStatistics>
2 голосов
/ 14 июля 2011

Посмотрите на API Хадсона .

В частности: Вы можете добавить /api/[xml|json] к любому пути в Гудзоне, чтобы получить машиночитаемые данные этой страницы.Например, hudsonserver:8080/api/xml вернет список заданий и их текущие статусы.

Однако реальный вопрос i, где выполняется этот код?Выше у вас есть lastBuild и lastCompletedBuild, но где эти переменные были установлены?

...