Python脚本在调用Jenkins的REST API时遇到错误无法捕获

2024-03-28 11:06:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试调用restapi来触发jenkins作业。此作业可以存在于两种状态:

  1. 在第一次运行期间,可以通过python脚本的以下调用触发它:

subprocess.call(['curl', '-X', 'POST', '-H', 'Jenkins-Crumb:cdf99f1d3924f50d7db20bdb7ca47ff6', 'jenkinsPath="https://user_jenkins:d547e0393635027f0f26859211b200cb@jenkins.host/job/Testing/job/script-Testing/view/change-requests/job/PR-115/build'])

  1. 在随后的运行过程中,同一个作业会得到一个需要擦除的工作区,这样我就可以在python中触发它,如下所示:

subprocess.call(['curl', '-X', 'POST', '-H', 'Jenkins-Crumb:cdf99f1d3924f50d7db20bdb7ca47ff6', 'jenkinsPath="https://user_jenkins:d547e0393635027f0f26859211b200cb@jenkins.host/job/Testing/job/script-Testing/view/change-requests/job/PR-115/buildWithParameters?WIPE_WORKSPACE'])

由于我不知道在运行脚本时Jenkins作业存在于哪个状态,所以我希望以两种方式运行作业,并希望错误的URL捕获错误,这样就不会产生任何噪音并破坏我的脚本

我尝试对一个段使用以下代码,但如果遇到jenkins错误,它就无法捕获它

try:
    subprocess.call(['curl', '-X', 'POST', '-H', 'Jenkins-Crumb:cdf99f1d3924f50d7db20bdb7ca47ff6', 'jenkinsPath="https://user_jenkins:d547e0393635027f0f26859211b200cb@jenkins.host/job/Testing/job/script-Testing/view/change-requests/job/PR-115/buildWithParameters?WIPE_WORKSPACE'])
except OSError:
    print "jenkins job has different set of parameters"
    pass

我做错什么了?提前谢谢


Tags: https脚本作业jobcurlcalltestingpost