无法使用Python从Jenkins获取作业详细信息
我正在尝试使用“Jenkins api”和“python”打印“Jenkins”作业详细信息 我可以打印“詹金斯版本”,但不能打印詹金斯的“工作详情”无法使用Python从Jenkins获取作业详细信息,python,jenkins,Python,Jenkins,我正在尝试使用“Jenkins api”和“python”打印“Jenkins”作业详细信息 我可以打印“詹金斯版本”,但不能打印詹金斯的“工作详情” from jenkinsapi.jenkins import Jenkins if __name__ == '__main__': jenkins_url = 'https://dev.localhost.com/XXXX/jenkins/' server = Jenkins(jenkins_url, 'user', 'passw
from jenkinsapi.jenkins import Jenkins
if __name__ == '__main__':
jenkins_url = 'https://dev.localhost.com/XXXX/jenkins/'
server = Jenkins(jenkins_url, 'user', 'password')
print server.version
print server.get_jobs()
输出
2.32
<generator object iteritems at 0x7f4a46220fa0>
2.32
我的代码有什么问题吗(或者)我应该做些别的事情吗
按建议添加StackTrace
Traceback (most recent call last):
File "jenver.py", line 26, in <module>
for job in jobs:
File "/usr/local/lib/python2.7/dist-packages/jenkinsapi/jobs.py", line 91, in iteritems
for job in self.itervalues():
File "/usr/local/lib/python2.7/dist-packages/jenkinsapi/jobs.py", line 116, in itervalues
yield Job(row['url'], row['name'], self.jenkins)
File "/usr/local/lib/python2.7/dist-packages/jenkinsapi/job.py", line 74, in __init__
JenkinsBase.__init__(self, self.url)
File "/usr/local/lib/python2.7/dist-packages/jenkinsapi/jenkinsbase.py", line 35, in __init__
self.poll()
File "/usr/local/lib/python2.7/dist-packages/jenkinsapi/job.py", line 98, in poll
data = super(Job, self).poll(tree=tree)
File "/usr/local/lib/python2.7/dist-packages/jenkinsapi/jenkinsbase.py", line 59, in poll
data = self._poll(tree=tree)
File "/usr/local/lib/python2.7/dist-packages/jenkinsapi/jenkinsbase.py", line 69, in _poll
return self.get_data(url, tree=tree)
File "/usr/local/lib/python2.7/dist-packages/jenkinsapi/jenkinsbase.py", line 79, in get_data
response = requester.get_url(url, params)
File "/usr/local/lib/python2.7/dist-packages/jenkinsapi/utils/requester.py", line 109, in get_url
return requests.get(self._update_url_scheme(url), **requestKwargs)
File "/usr/local/lib/python2.7/dist-packages/requests/api.py", line 70, in get
return request('get', url, params=params, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests/api.py", line 56, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 488, in request
resp = self.send(prep, **send_kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 609, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", line 487, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='6.4.2.182', port=8080): Max retries exceeded with url: /scm/jenkins/job/DO%20NOT%20CHANGE%20THIS%20PROJECT/api/python (Caused by NewConnectionError('<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x7f5bcf894150>: Failed to establish a new connection: [Errno 110] Connection timed out',))
回溯(最近一次呼叫最后一次):
文件“jenver.py”,第26行,在
工作中的工作:
iteritems中的文件“/usr/local/lib/python2.7/dist packages/jenkinsapi/jobs.py”,第91行
对于self.itervalues()中的作业:
文件“/usr/local/lib/python2.7/dist packages/jenkinsapi/jobs.py”,第116行,在itervalues中
产量作业(第['url'行,第['name'行,self.jenkins)
文件“/usr/local/lib/python2.7/dist packages/jenkinsapi/job.py”,第74行,在__
JenkinsBase.\uuuu init\uuuu(self,self.url)
文件“/usr/local/lib/python2.7/dist packages/jenkinsapi/jenkinsbase.py”,第35行,在__
self.poll()
文件“/usr/local/lib/python2.7/dist packages/jenkinsapi/job.py”,第98行,在poll中
数据=超级(作业,自我)。轮询(树=树)
文件“/usr/local/lib/python2.7/dist packages/jenkinsapi/jenkinsbase.py”,第59行,在poll中
数据=self.\u轮询(树=tree)
文件“/usr/local/lib/python2.7/dist packages/jenkinsapi/jenkinsbase.py”,第69行,在
返回self.get_数据(url,tree=tree)
get_数据中的文件“/usr/local/lib/python2.7/dist packages/jenkinsapi/jenkinsbase.py”,第79行
响应=请求者。获取url(url,参数)
文件“/usr/local/lib/python2.7/dist packages/jenkinsapi/utils/requester.py”,第109行,在get_url中
return requests.get(self.\u update\u url\u scheme(url),**requestKwargs)
文件“/usr/local/lib/python2.7/dist-packages/requests/api.py”,第70行,在get中
返回请求('get',url,params=params,**kwargs)
文件“/usr/local/lib/python2.7/dist-packages/requests/api.py”,请求中的第56行
return session.request(method=method,url=url,**kwargs)
文件“/usr/local/lib/python2.7/dist-packages/requests/sessions.py”,请求中第488行
resp=自我发送(准备,**发送)
文件“/usr/local/lib/python2.7/dist packages/requests/sessions.py”,第609行,在send中
r=适配器.send(请求,**kwargs)
文件“/usr/local/lib/python2.7/dist-packages/requests/adapters.py”,第487行,在send中
raise ConnectionError(e,请求=请求)
requests.exceptions.ConnectionError:HTTPSConnectionPool(host='6.4.2.182',port=8080):url超过最大重试次数:/scm/jenkins/job/DO%20未%20更改%20此%20项目/api/python(由NewConnectionError引起(“:未能建立新连接:[Errno 110]连接超时,”))
问题在于get\u jobs
返回的是生成器而不是列表。有关如何打印作业的详细信息,请参见2
要打印生成器的项目,请尝试执行以下操作:
from jenkinsapi.jenkins import Jenkins
if __name__ == '__main__':
jenkins_url = 'https://dev.localhost.com/XXXX/jenkins/'
server = Jenkins(jenkins_url, 'user', 'password')
jobs = server.get_jobs()
for job in jobs:
print(job)
我试过上面提到的代码。但堆栈跟踪如下所示。它指向正确的作业但错误的URL文件“/usr/local/lib/python2.7/dist-packages/requests/adapters.py”,第487行,位于send-raise-ConnectionError(e,request=request)requests.exceptions.ConnectionError:HTTPSConnectionPool(host='6.4.2.182',port=8080):URL超过最大重试次数:/scm/jenkins/job/Donotchisproject/api/python(由NewConnectionError(':无法建立新连接:[Errno 110]连接超时',)引起)感觉像是一个单独的问题。您可以在上述问题(或新问题)中发布完整的堆栈跟踪吗。该连接错误是另一个问题-由于某些原因,您无法连接到作业。请检查主机、端口和URL是否与预期一致,或者提出其他问题。抱歉