调用重新加载后,Jenkins REST api继续返回重新加载页面

时间:2017-03-31 23:25:22

标签: jenkins

打电话给 curl -s -X POST -H ${CRUMB} -u user:token "http://jenkinsserver/reload"

接下来的几个curl调用返回Jenkins重载等待页面的变体。最终卷曲开始按预期再次工作。发生了什么以及如何让我的计划再次确定?

1 个答案:

答案 0 :(得分:0)

当Jenkins从磁盘重新加载时,它会向所有http请求返回“等待重新加载”页面。要等待Jenkins再次开始响应请求,请使用类似以下bash代码的内容。 crumb请求被用作简单的Jenkins请求。任何其他请求都可以。

curl -s -X POST -H ${CRUMB} -u user:token "http://jenkinsurl/reload"

    #Give Jenkins time to reload
    CRUMB=$(curl -s 'http://user:token@jenkinsurl/crumbIssuer/api/xml?\
    xpath=concat(//crumbRequestField,":",//crumb)')
    while echo ${CRUMB} | grep reload; do
        echo "Waiting for reload to complete"
        sleep 10
        CRUMB=$(curl -s 'http://user:token@jenkinsurl/crumbIssuer/api/xml?\
        xpath=concat(//crumbRequestField,":",//crumb)')
    done