2016-11-01 3 views
1

TeamCity에서 사용자 정의 파이썬 스크립트를 사용하는 빌드 단계가 있습니다. 나는 다음과 같은 오류가 빌드를 실행하려고하면 :Python 요청 최대 재시도가 url을 초과했습니다.

[20:57:12][Step 1/3] Traceback (most recent call last): 
[20:57:12][Step 1/3] File "/amirsys/teamcity-agent/lastBuildStatus.py", line 24, in <module> 
[20:57:12][Step 1/3]  main() 
[20:57:12][Step 1/3] File "/amirsys/teamcity-agent/lastBuildStatus.py", line 13, in main 
[20:57:12][Step 1/3]  build = getLastBuild(buildId) 
[20:57:12][Step 1/3] File "/amirsys/teamcity-agent/teamcity.py", line 204, in getLastBuild 
[20:57:12][Step 1/3]  return requests.get(url, auth=auth) 
[20:57:12][Step 1/3] File "/usr/lib/python2.7/dist-packages/requests/api.py", line 55, in get 
[20:57:12][Step 1/3]  return request('get', url, **kwargs) 
[20:57:12][Step 1/3] File "/usr/lib/python2.7/dist-packages/requests/api.py", line 44, in request 
[20:57:12][Step 1/3]  return session.request(method=method, url=url, **kwargs) 
[20:57:12][Step 1/3] File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 335, in request 
[20:57:12][Step 1/3]  resp = self.send(prep, **send_kwargs) 
[20:57:12][Step 1/3] File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 438, in send 
[20:57:12][Step 1/3]  r = adapter.send(request, **kwargs) 
[20:57:12][Step 1/3] File "/usr/lib/python2.7/dist-packages/requests/adapters.py", line 327, in send 
[20:57:12][Step 1/3]  raise ConnectionError(e) 
[20:57:12][Step 1/3] requests.exceptions.ConnectionError: HTTPSConnectionPool(host='teamcity.amirsys-int.com', port=443): Max retries exceeded with url: /httpAuth/app/rest/builds/buildType:bt262,count:1 (Caused by <class 'socket.error'>: [Errno 110] Connection timed out) 

내가 연구하고 내가 여기있을 수 있다고 생각 답변 발견 : Max retries exceeded with URL합니다. 그들은 다음을 사용하여 제안합니다 :

요청 간격을 연장하려면? 이게 내가해야 할 일이야?

def getLastBuild(buildConfigId): 
    url = path + 'builds/buildType:' + buildConfigId + ',count:1' 
    return requests.get(url, auth=auth) 

def main(): 

    buildId = sys.argv[1] 

    build = getLastBuild(buildId) 

    if build.status_code == 200: 
     result = "SUCCESS" 
     print result 
    else: 
     result = "FAILURE" 
     print result 

if __name__ == "__main__": 
    main() 

왜이 요청이 거부 : 내 스크립트로 너무 많은 요청을 보낼 수있는 방법을

나는 단지이 간단한 요청을 이해하지?

+0

어떻게'getLastBuild()'를 호출합니까? – roganjosh

+0

@roganjosh 전체 스크립트 –

+0

흠으로 질문을 업데이트했습니다. 제안 된 답변에 대한 링크를 따라이 [문제] (https://github.com/kennethreitz/requests/issues/1198)로 연결됩니다. 코드에서 재시도를 지정하지 않으므로 오류 메시지가 의미가없는 것 같습니다. '요청들'과'urllib3'을 업데이트 했습니까? (그것이 "최대 재시도 횟수 초과"가 아니라 "연결 거부"를 제안 할 것 같습니다.) – roganjosh

답변

0

나는 결국 문제가 무엇인지 알아 냈습니다. 요청은 로컬 호스트를 떠나서 URL에 액세스하고 있었고 "다시 접속할 수 없어"연결 시간이 초과되었습니다. 이는 올바른 IP 주소를 제공함으로써 해결되었습니다.

관련 문제