[英]I am not able to use the server.delete_build() command in python for Jenkins. I am using python-jenkins wrapper for this
我正在使用 python-jenkins 包装器从 Python 对 jenkins 进行操作。 我想使用server.delete_build
命令删除构建,但是每当我尝试使用此命令时:
import jenkins
def build_job(para_value):
server = jenkins.Jenkins('http://localhost:8080', username='username', password='password')
if not server.job_exists('job_name'):
server.create_job('job_name', jenkins.EMPTY_CONFIG_XML)
server.build_job('job_name', parameters={'para1': para_value})
def delete_build(jobID):
print(jobID)
server = jenkins.Jenkins('http://localhost:8080', username='username', password='password')
server.delete_build('job_name', jobID)
这是我得到的错误:
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/jenkins/__init__.py", line 1415, in delete_build
self.jenkins_open(requests.Request('POST',
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/jenkins/__init__.py", line 557, in jenkins_open
return self.jenkins_request(req, add_crumb, resolve_auth).text
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/jenkins/__init__.py", line 573, in jenkins_request
self.maybe_add_crumb(req)
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/jenkins/__init__.py", line 379, in maybe_add_crumb
req.headers[self.crumb['crumbRequestField']] = self.crumb['crumb']
有人可以为此提出任何解决方案吗?
关于这个错误没有太多的信息或解决方案,所以我更改了 Jenkins 模块的__init__.py
中的 if 条件。 Go 到/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/jenkins/__init__.py
(此地址适用于 Mac 用户):
做这个:
删除: if self.crumb:
添加: if self.crumb and isinstance(req.headers, dict):
这将使您的代码工作。
这个答案的灵感来自: https://www.mail-archive.com/python-jenkins-developers@lists.launchpad.net/msg00597.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.