2011-07-11 18 views
6

¿Cómo se puede verificar si el hudson está ocupado o no? Lo que significa que quiero comprobar si está ejecutando actualmente alguna compilación o no.
cómo comprobar si el hudson está ocupado o no?

Actualmente estoy usando lo siguiente:

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

¿Es esta una lógica correcta? ¿Qué sucede si la máquina se reinicia/falla después de que se actualizó la última versión y lastCompletedbuild no?

¿Hay alguna API expuesta que se pueda usar directamente?

+1

Es necesario agregar etiquetas más relevantes. Ni siquiera sé qué es Hudson, si tiene algo que ver con java, luego agregue la etiqueta java a su publicación. La gente no encontrará tu publicación sin etiquetas relevantes. – Caimen

+0

@Caimen: echa un vistazo a hudson @ http://hudson-ci.org/ – akshay

+1

Supongo que estás escribiendo código Java, así que estoy agregando la etiqueta java a tu publicación. Sin embargo, solo porque estés tratando de detectar el estado de Hudon no significa necesariamente que estés escribiendo java. Detalles ... los necesitamos – Caimen

Respuesta

2

Mire Hudson's API.

Específicamente: Puede agregar a cualquier ruta en Hudson para obtener datos legibles por máquina de esa página. Por ejemplo, hudsonserver:8080/api/xml devolverá la lista de trabajos y sus estados actuales.

Sin embargo, la verdadera pregunta es dónde se está ejecutando este código? Arriba, tiene lastBuild y lastCompletedBuild, pero ¿dónde se establecieron esas variables?

+0

I obtener estos valores llamando a api: http://hudson.server.com/job/myjobname/api/xml y utilizando los valores de la etiqueta lastBuild & lastCompletedBuild – akshay

8

Si desea ver qué elementos se encuentran actualmente en la cola de compilación, puede realizar una solicitud al http://your.hudson.server/hudson/queue/api/[xml|json].

2

Usted puede tratar de consultar las estadísticas de carga disponibles a un separate API:

<overallLoadStatistics> 
    <busyExecutors></busyExecutors> 
    <queueLength></queueLength> 
    <totalExecutors></totalExecutors> 
    <totalQueueLength></totalQueueLength> 
</overallLoadStatistics> 
2

¿Está interesado en saber si un trabajo específico está construyendo actualmente? En ese caso:

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

tiene la etiqueta <building> conjunto de cierto si la acumulación está sucediendo actualmente.

Cuestiones relacionadas