Closed Bug 1178089 Opened 9 years ago Closed 9 years ago

python-client: taskcluster requires an exact version for requests library (2.4.3)

Categories

(Taskcluster :: General, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: parkouss, Assigned: jhford)

References

Details

The taskcluster python client requires the requests library to be at version 2.4.3 exactly. This is causing me trouble for mozregression as we require >=2.5.1. I *feel* that taskcluster should not require an exact version of requests, as it is inteded to be used as a library. Plus requests really seems safe in term of API changes, so maybe you could just replace the required version with >=2.4.3 ? I got this kind of error: https://travis-ci.org/parkouss/mozregression#L486
Blocks: 1177923
The same we will hit with mozdownload once will we make use of taskcluster too. So I agree to Julien's proposal.
Hi John, I looked into this, but had some problems running the tests - any idea what might be up with my environment? I had a look at travis, and it also is failing, but only for one test: https://travis-ci.org/jhford/taskcluster-client.py/jobs/41642975 Thanks, Pete (taskcluster-client.py)pmoore@Peters-iMac:~/git/taskcluster-client.py master $ make test FLAKE8=env-python/bin/flake8 PYTHON=env-python/bin/python \ NODE_BIN=/Users/pmoore/git/taskcluster-client.py/node-v0.10.33-darwin-x64/bin/node NOSE=env-python/bin/nosetests ./test.sh Linting Done linting setup.py tests running test running egg_info writing requirements to taskcluster.egg-info/requires.txt writing taskcluster.egg-info/PKG-INFO writing top-level names to taskcluster.egg-info/top_level.txt writing dependency_links to taskcluster.egg-info/dependency_links.txt reading manifest file 'taskcluster.egg-info/SOURCES.txt' writing manifest file 'taskcluster.egg-info/SOURCES.txt' running build_ext test_mock_auth_ascii_encodable_unicode (test.test_client.TestAuthenticationMockServer) ... ERROR test_mock_auth_ascii_encoding_fail (test.test_client.TestAuthenticationMockServer) ... ok test_mock_auth_bad_scope (test.test_client.TestAuthenticationMockServer) ... ERROR test_mock_auth_expired (test.test_client.TestAuthenticationMockServer) ... ERROR test_mock_auth_invalid (test.test_client.TestAuthenticationMockServer) ... ERROR test_mock_auth_signed_url (test.test_client.TestAuthenticationMockServer) ... ERROR test_mock_auth_signed_url_bad_credentials (test.test_client.TestAuthenticationMockServer) ... ERROR test_mock_auth_works (test.test_client.TestAuthenticationMockServer) ... ERROR test_mock_auth_works_with_small_scope (test.test_client.TestAuthenticationMockServer) ... ERROR test_mock_is_up (test.test_client.TestAuthenticationMockServer) ... ERROR test_builds_surl_keyword (test.test_client.TestBuildSignedUrl) ... ok test_builds_surl_positional (test.test_client.TestBuildSignedUrl) ... ok test_build_url_keyword (test.test_client.TestBuildUrl) ... ok test_build_url_positional (test.test_client.TestBuildUrl) ... ok test_fails_to_build_not_enough_args (test.test_client.TestBuildUrl) ... ok test_fails_to_build_url_for_missing_method (test.test_client.TestBuildUrl) ... ok test_creates_methods (test.test_client.TestMakeApiCall) ... ok test_hits_no_args_no_input (test.test_client.TestMakeApiCall) ... ok test_hits_no_args_with_input (test.test_client.TestMakeApiCall) ... ok test_hits_two_args_no_input (test.test_client.TestMakeApiCall) ... ok test_hits_two_args_with_input (test.test_client.TestMakeApiCall) ... ok test_input_is_procesed (test.test_client.TestMakeApiCall) ... ok test_kwargs (test.test_client.TestMakeApiCall) ... ok test_methods_setup_correctly (test.test_client.TestMakeApiCall) ... ok test_missing_input_raises (test.test_client.TestMakeApiCall) ... ok test_mixing_kw_and_positional_fails (test.test_client.TestMakeApiCall) ... ok test_exhaust_retries_try_status_code (test.test_client.TestMakeHttpRequest) ... ok test_failure_connection_errors (test.test_client.TestMakeHttpRequest) ... ok test_failure_status_code (test.test_client.TestMakeHttpRequest) ... ok test_success_fifth_try_connection_errors (test.test_client.TestMakeHttpRequest) ... ok test_success_fifth_try_status_code (test.test_client.TestMakeHttpRequest) ... ok test_success_first_try (test.test_client.TestMakeHttpRequest) ... ok test_change_default_doesnt_change_previous_instances (test.test_client.TestOptions) ... ok test_credentials_which_cannot_be_encoded_in_unicode_work (test.test_client.TestOptions) ... ok test_defaults_should_work (test.test_client.TestOptions) ... ok test_int_args (test.test_client.TestProcessArgs) ... ok test_invalid_missing_arg_positional (test.test_client.TestProcessArgs) ... ok test_invalid_not_enough_args (test.test_client.TestProcessArgs) ... ok test_invalid_not_enough_args_because_of_overwriting (test.test_client.TestProcessArgs) ... ok test_invalid_positional_not_string_empty_dict (test.test_client.TestProcessArgs) ... ok test_invalid_positional_not_string_non_empty_dict (test.test_client.TestProcessArgs) ... ok test_invalid_too_many_keyword_args (test.test_client.TestProcessArgs) ... ok test_invalid_too_many_positional_args (test.test_client.TestProcessArgs) ... ok test_keyword_and_positional (test.test_client.TestProcessArgs) ... ok test_keyword_args_only (test.test_client.TestProcessArgs) ... ok test_no_args (test.test_client.TestProcessArgs) ... ok test_positional_args_only (test.test_client.TestProcessArgs) ... ok test_invalid_one_sub (test.test_client.TestSubArgsInRoute) ... ok test_invalid_route_no_arg (test.test_client.TestSubArgsInRoute) ... ok test_invalid_route_no_sub (test.test_client.TestSubArgsInRoute) ... ok test_valid_no_subs (test.test_client.TestSubArgsInRoute) ... ok test_valid_one_sub (test.test_client.TestSubArgsInRoute) ... ok test_both_args_and_kwargs (test.test_client.TestTopicExchange) ... ok test_constant (test.test_client.TestTopicExchange) ... ok test_does_insertion (test.test_client.TestTopicExchange) ... ok test_exchange (test.test_client.TestTopicExchange) ... ok test_exchange_trailing_slash (test.test_client.TestTopicExchange) ... ok test_no_args_no_kwargs (test.test_client.TestTopicExchange) ... ok test_string_pass_through (test.test_client.TestTopicExchange) ... ok test_too_many_star_args (test.test_client.TestTopicExchange) ... ok test_has_no_spaces (test.test_utils.DumpJsonTests) ... ok test_serializes_aware_date (test.test_utils.DumpJsonTests) ... ok test_serializes_naive_date (test.test_utils.DumpJsonTests) ... ok test_aware (test.test_utils.StringDateTests) ... ok test_naive (test.test_utils.StringDateTests) ... ok test_encode_string_for_b64_header (test.test_utils.TestBase64Utils) ... ok test_makeb64urlsafe (test.test_utils.TestBase64Utils) ... ok test_makeb64urlunsafe (test.test_utils.TestBase64Utils) ... ok test_failure (test.test_utils.TestMakeSingleHttpRequest) ... ok test_success_no_payload (test.test_utils.TestMakeSingleHttpRequest) ... ok test_success_payload (test.test_utils.TestMakeSingleHttpRequest) ... ok test_success_put_file (test.test_utils.TestPutfile) ... ok test_slug_id (test.test_utils.TestSlugId) ... ok ====================================================================== ERROR: test_mock_auth_ascii_encodable_unicode (test.test_client.TestAuthenticationMockServer) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/pmoore/git/taskcluster-client.py/test/test_client.py", line 518, in test_mock_auth_ascii_encodable_unicode result = client.getCredentials('admin') File "/Users/pmoore/git/taskcluster-client.py/taskcluster/client.py", line 455, in apiCall return self._makeApiCall(e, *args, **kwargs) File "/Users/pmoore/git/taskcluster-client.py/taskcluster/client.py", line 232, in _makeApiCall return self._makeHttpRequest(entry['method'], route, payload) File "/Users/pmoore/git/taskcluster-client.py/taskcluster/client.py", line 382, in _makeHttpRequest superExc=rerr TaskclusterConnectionError: ('Failed to establish connection', ConnectionError(ProtocolError('Connection aborted.', error(61, 'Connection refused')),)) -------------------- >> begin captured logging << -------------------- taskcluster.client: DEBUG: credentials key scrubbed from logging output taskcluster.client: DEBUG: {'baseUrl': 'http://localhost:5555/v1', 'maxRetries': 5, 'exchangePrefix': 'test/v1', 'signedUrlExpiration': 900} taskcluster.client: DEBUG: Found a positional argument: admin taskcluster.client: DEBUG: After processing positional arguments, we have: {'clientId': 'admin'} taskcluster.client: DEBUG: After keyword arguments, we have: {'clientId': 'admin'} taskcluster.client: DEBUG: Route is: client/admin/credentials taskcluster.client: DEBUG: Full URL used is: http://localhost:5555/v1/client/admin/credentials hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': 'c5vqVU', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583382} taskcluster.client: DEBUG: Making attempt 0 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="admin", ts="1435583382", nonce="c5vqVU", ext="e30=", mac="t/CAT88GBq3KjdJ+PPca2ERxn31qulqVJdLIsW/rLPA="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost taskcluster.client: WARNING: Retrying because of: ('Connection aborted.', error(61, 'Connection refused')) taskcluster.client: INFO: Sleeping 0.10 seconds for exponential backoff hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': 'ZrBTAS', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583382} taskcluster.client: DEBUG: Making attempt 1 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="admin", ts="1435583382", nonce="ZrBTAS", ext="e30=", mac="+WPycIXOYOofi0ZD6lU/6aT3/8KKNJ7u4E1bdcuPbbA="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost taskcluster.client: WARNING: Retrying because of: ('Connection aborted.', error(61, 'Connection refused')) taskcluster.client: INFO: Sleeping 0.40 seconds for exponential backoff hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': 'fCoJjD', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583383} taskcluster.client: DEBUG: Making attempt 2 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="admin", ts="1435583383", nonce="fCoJjD", ext="e30=", mac="VFfiPZo9z/w/I1IaB6KezbTrUgBngOcs20CGmGPHw/U="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost taskcluster.client: WARNING: Retrying because of: ('Connection aborted.', error(61, 'Connection refused')) taskcluster.client: INFO: Sleeping 0.90 seconds for exponential backoff hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': 'PiS5cb', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583384} taskcluster.client: DEBUG: Making attempt 3 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="admin", ts="1435583384", nonce="PiS5cb", ext="e30=", mac="vYaAnPDKvDrsWfpC31NQE35tF0uk74oeKJRrE/jKFCI="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost taskcluster.client: WARNING: Retrying because of: ('Connection aborted.', error(61, 'Connection refused')) taskcluster.client: INFO: Sleeping 1.60 seconds for exponential backoff hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': 'oNIx1P', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583385} taskcluster.client: DEBUG: Making attempt 4 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="admin", ts="1435583385", nonce="oNIx1P", ext="e30=", mac="td/TTSjZp4YKdWQqzl5/0ymUo2d6OF4gV/eh2ly1iwk="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost taskcluster.client: WARNING: Retrying because of: ('Connection aborted.', error(61, 'Connection refused')) taskcluster.client: INFO: Sleeping 2.50 seconds for exponential backoff hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': 'M13_XK', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583388} taskcluster.client: DEBUG: Making attempt 5 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="admin", ts="1435583388", nonce="M13_XK", ext="e30=", mac="72IBej1Jr/hUHqTlbrMoL5I8g/1AbM4STMR+HJMf96M="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost --------------------- >> end captured logging << --------------------- ====================================================================== ERROR: test_mock_auth_bad_scope (test.test_client.TestAuthenticationMockServer) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/pmoore/git/taskcluster-client.py/test/test_client.py", line 551, in test_mock_auth_bad_scope client.getCredentials('admin') File "/Users/pmoore/git/taskcluster-client.py/taskcluster/client.py", line 455, in apiCall return self._makeApiCall(e, *args, **kwargs) File "/Users/pmoore/git/taskcluster-client.py/taskcluster/client.py", line 232, in _makeApiCall return self._makeHttpRequest(entry['method'], route, payload) File "/Users/pmoore/git/taskcluster-client.py/taskcluster/client.py", line 382, in _makeHttpRequest superExc=rerr TaskclusterConnectionError: ('Failed to establish connection', ConnectionError(ProtocolError('Connection aborted.', error(61, 'Connection refused')),)) -------------------- >> begin captured logging << -------------------- taskcluster.client: DEBUG: credentials key scrubbed from logging output taskcluster.client: DEBUG: {'baseUrl': 'http://localhost:5555/v1', 'maxRetries': 5, 'exchangePrefix': 'test/v1', 'signedUrlExpiration': 900} taskcluster.client: DEBUG: Found a positional argument: admin taskcluster.client: DEBUG: After processing positional arguments, we have: {'clientId': 'admin'} taskcluster.client: DEBUG: After keyword arguments, we have: {'clientId': 'admin'} taskcluster.client: DEBUG: Route is: client/admin/credentials taskcluster.client: DEBUG: Full URL used is: http://localhost:5555/v1/client/admin/credentials hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': 'OCxmT5', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583388} taskcluster.client: DEBUG: Making attempt 0 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="badScope", ts="1435583388", nonce="OCxmT5", ext="e30=", mac="U6Fw3ehGov82pWccF/wfBEjUXUz5a8qQpdyrZCZNWt8="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost taskcluster.client: WARNING: Retrying because of: ('Connection aborted.', error(61, 'Connection refused')) taskcluster.client: INFO: Sleeping 0.10 seconds for exponential backoff hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': 'fZL9lj', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583388} taskcluster.client: DEBUG: Making attempt 1 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="badScope", ts="1435583388", nonce="fZL9lj", ext="e30=", mac="oLDa5FQia+GRXrsnGMPsgw8eQXrX31T31Sk6wkrO6GM="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost taskcluster.client: WARNING: Retrying because of: ('Connection aborted.', error(61, 'Connection refused')) taskcluster.client: INFO: Sleeping 0.40 seconds for exponential backoff hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': 'Ipubrf', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583388} taskcluster.client: DEBUG: Making attempt 2 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="badScope", ts="1435583388", nonce="Ipubrf", ext="e30=", mac="cfDRYTV+oJnG5qMjvZTJJ3Dh6QKN9SDyJ9QhtauV86A="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost taskcluster.client: WARNING: Retrying because of: ('Connection aborted.', error(61, 'Connection refused')) taskcluster.client: INFO: Sleeping 0.90 seconds for exponential backoff hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': 'yghbwZ', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583389} taskcluster.client: DEBUG: Making attempt 3 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="badScope", ts="1435583389", nonce="yghbwZ", ext="e30=", mac="csiKuP6geuBj7666WJDSmCJ6C05dov3IEENZo7C4xv4="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost taskcluster.client: WARNING: Retrying because of: ('Connection aborted.', error(61, 'Connection refused')) taskcluster.client: INFO: Sleeping 1.60 seconds for exponential backoff hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': '6CFXYY', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583391} taskcluster.client: DEBUG: Making attempt 4 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="badScope", ts="1435583391", nonce="6CFXYY", ext="e30=", mac="eAQC/IRx3koFampN0dhq0OpDqWnnGerdFnTg4q6OEEc="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost taskcluster.client: WARNING: Retrying because of: ('Connection aborted.', error(61, 'Connection refused')) taskcluster.client: INFO: Sleeping 2.50 seconds for exponential backoff hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': 'NAnyUz', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583393} taskcluster.client: DEBUG: Making attempt 5 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="badScope", ts="1435583393", nonce="NAnyUz", ext="e30=", mac="TpqEZ8P36x+BMlILYs75kxNQKMfvBx3q8s7f3FVCCBk="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost --------------------- >> end captured logging << --------------------- ====================================================================== ERROR: test_mock_auth_expired (test.test_client.TestAuthenticationMockServer) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/pmoore/git/taskcluster-client.py/test/test_client.py", line 540, in test_mock_auth_expired client.getCredentials('admin') File "/Users/pmoore/git/taskcluster-client.py/taskcluster/client.py", line 455, in apiCall return self._makeApiCall(e, *args, **kwargs) File "/Users/pmoore/git/taskcluster-client.py/taskcluster/client.py", line 232, in _makeApiCall return self._makeHttpRequest(entry['method'], route, payload) File "/Users/pmoore/git/taskcluster-client.py/taskcluster/client.py", line 382, in _makeHttpRequest superExc=rerr TaskclusterConnectionError: ('Failed to establish connection', ConnectionError(ProtocolError('Connection aborted.', error(61, 'Connection refused')),)) -------------------- >> begin captured logging << -------------------- taskcluster.client: DEBUG: credentials key scrubbed from logging output taskcluster.client: DEBUG: {'baseUrl': 'http://localhost:5555/v1', 'maxRetries': 5, 'exchangePrefix': 'test/v1', 'signedUrlExpiration': 900} taskcluster.client: DEBUG: Found a positional argument: admin taskcluster.client: DEBUG: After processing positional arguments, we have: {'clientId': 'admin'} taskcluster.client: DEBUG: After keyword arguments, we have: {'clientId': 'admin'} taskcluster.client: DEBUG: Route is: client/admin/credentials taskcluster.client: DEBUG: Full URL used is: http://localhost:5555/v1/client/admin/credentials hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': 'VO1y3C', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583393} taskcluster.client: DEBUG: Making attempt 0 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="expired", ts="1435583393", nonce="VO1y3C", ext="e30=", mac="n7zidiVW5Kldvo1a97mugTH88yVBBlwtt1nyJdeaylQ="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost taskcluster.client: WARNING: Retrying because of: ('Connection aborted.', error(61, 'Connection refused')) taskcluster.client: INFO: Sleeping 0.10 seconds for exponential backoff hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': '3rN3Q6', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583394} taskcluster.client: DEBUG: Making attempt 1 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="expired", ts="1435583394", nonce="3rN3Q6", ext="e30=", mac="Yv+UM6a2jHDvTWfF+ty21Ddgzpy7XDBgG/YH5yav9lE="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost taskcluster.client: WARNING: Retrying because of: ('Connection aborted.', error(61, 'Connection refused')) taskcluster.client: INFO: Sleeping 0.40 seconds for exponential backoff hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': 'jZUc22', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583394} taskcluster.client: DEBUG: Making attempt 2 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="expired", ts="1435583394", nonce="jZUc22", ext="e30=", mac="vzhSgXwM1mGvZ6+ZQ1FiHdFBYs6P5shTrekYwvlQh30="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost taskcluster.client: WARNING: Retrying because of: ('Connection aborted.', error(61, 'Connection refused')) taskcluster.client: INFO: Sleeping 0.90 seconds for exponential backoff hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': 'X9--9z', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583395} taskcluster.client: DEBUG: Making attempt 3 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="expired", ts="1435583395", nonce="X9--9z", ext="e30=", mac="9RSqN4AarYXVW0suWiC/D6IMo8ZVTiF/W46h0T55eRI="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost taskcluster.client: WARNING: Retrying because of: ('Connection aborted.', error(61, 'Connection refused')) taskcluster.client: INFO: Sleeping 1.60 seconds for exponential backoff hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': 'EjU79t', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583396} taskcluster.client: DEBUG: Making attempt 4 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="expired", ts="1435583396", nonce="EjU79t", ext="e30=", mac="FZXNN0b/9pOM9gWDyic5S9hCiRhjs0HeBdR4J3uUtMM="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost taskcluster.client: WARNING: Retrying because of: ('Connection aborted.', error(61, 'Connection refused')) taskcluster.client: INFO: Sleeping 2.50 seconds for exponential backoff hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': 'ibPY8T', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583399} taskcluster.client: DEBUG: Making attempt 5 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="expired", ts="1435583399", nonce="ibPY8T", ext="e30=", mac="sp/c2XUtHNgobNi2BZTpaRv37JRJ1SYrXhBEj5eUjO4="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost --------------------- >> end captured logging << --------------------- ====================================================================== ERROR: test_mock_auth_invalid (test.test_client.TestAuthenticationMockServer) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/pmoore/git/taskcluster-client.py/test/test_client.py", line 508, in test_mock_auth_invalid client.getCredentials('admin') File "/Users/pmoore/git/taskcluster-client.py/taskcluster/client.py", line 455, in apiCall return self._makeApiCall(e, *args, **kwargs) File "/Users/pmoore/git/taskcluster-client.py/taskcluster/client.py", line 232, in _makeApiCall return self._makeHttpRequest(entry['method'], route, payload) File "/Users/pmoore/git/taskcluster-client.py/taskcluster/client.py", line 382, in _makeHttpRequest superExc=rerr TaskclusterConnectionError: ('Failed to establish connection', ConnectionError(ProtocolError('Connection aborted.', error(61, 'Connection refused')),)) -------------------- >> begin captured logging << -------------------- taskcluster.client: DEBUG: credentials key scrubbed from logging output taskcluster.client: DEBUG: {'baseUrl': 'http://localhost:5555/v1', 'maxRetries': 5, 'exchangePrefix': 'test/v1', 'signedUrlExpiration': 900} taskcluster.client: DEBUG: Found a positional argument: admin taskcluster.client: DEBUG: After processing positional arguments, we have: {'clientId': 'admin'} taskcluster.client: DEBUG: After keyword arguments, we have: {'clientId': 'admin'} taskcluster.client: DEBUG: Route is: client/admin/credentials taskcluster.client: DEBUG: Full URL used is: http://localhost:5555/v1/client/admin/credentials hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': 'nWnsWX', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583399} taskcluster.client: DEBUG: Making attempt 0 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="unknown", ts="1435583399", nonce="nWnsWX", ext="e30=", mac="KPJxB+vYE8RVLRbsVDwV3s9T3NtwQKh1UPMlTx3YcTI="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost taskcluster.client: WARNING: Retrying because of: ('Connection aborted.', error(61, 'Connection refused')) taskcluster.client: INFO: Sleeping 0.10 seconds for exponential backoff hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': 'CBYC8D', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583399} taskcluster.client: DEBUG: Making attempt 1 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="unknown", ts="1435583399", nonce="CBYC8D", ext="e30=", mac="Wn7a8vV0NY8JaaFkAQXyB5YRJ53xQRo2+9NIWiojjS0="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost taskcluster.client: WARNING: Retrying because of: ('Connection aborted.', error(61, 'Connection refused')) taskcluster.client: INFO: Sleeping 0.40 seconds for exponential backoff hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': 'bq9_id', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583399} taskcluster.client: DEBUG: Making attempt 2 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="unknown", ts="1435583399", nonce="bq9_id", ext="e30=", mac="gEWwweUGenDRnqKpBiGEUz4XQvv/yct1pND0/7fFhpc="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost taskcluster.client: WARNING: Retrying because of: ('Connection aborted.', error(61, 'Connection refused')) taskcluster.client: INFO: Sleeping 0.90 seconds for exponential backoff hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': 'tDePF9', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583400} taskcluster.client: DEBUG: Making attempt 3 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="unknown", ts="1435583400", nonce="tDePF9", ext="e30=", mac="O4ulF6cEhTJ4oIRx/doChNuZIXcRsfHo6PgruHozA2A="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost taskcluster.client: WARNING: Retrying because of: ('Connection aborted.', error(61, 'Connection refused')) taskcluster.client: INFO: Sleeping 1.60 seconds for exponential backoff hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': 'dbpFy9', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583402} taskcluster.client: DEBUG: Making attempt 4 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="unknown", ts="1435583402", nonce="dbpFy9", ext="e30=", mac="LEvUSsyIX+2DQn32XRtjO2DR4vVYQSxfD5be5poxdH0="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost taskcluster.client: WARNING: Retrying because of: ('Connection aborted.', error(61, 'Connection refused')) taskcluster.client: INFO: Sleeping 2.50 seconds for exponential backoff hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': 'Oz5IIA', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583404} taskcluster.client: DEBUG: Making attempt 5 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="unknown", ts="1435583404", nonce="Oz5IIA", ext="e30=", mac="unzmGSOA0K7Z8dvi2q4HWUkpldzahraaO2+X7lLBPu0="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost --------------------- >> end captured logging << --------------------- ====================================================================== ERROR: test_mock_auth_signed_url (test.test_client.TestAuthenticationMockServer) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/pmoore/git/taskcluster-client.py/test/test_client.py", line 580, in test_mock_auth_signed_url response = requests.get(signedUrl) File "/Users/pmoore/git/taskcluster-client.py/env-python/lib/python2.7/site-packages/requests/api.py", line 69, in get return request('get', url, params=params, **kwargs) File "/Users/pmoore/git/taskcluster-client.py/env-python/lib/python2.7/site-packages/requests/api.py", line 50, in request response = session.request(method=method, url=url, **kwargs) File "/Users/pmoore/git/taskcluster-client.py/env-python/lib/python2.7/site-packages/requests/sessions.py", line 465, in request resp = self.send(prep, **send_kwargs) File "/Users/pmoore/git/taskcluster-client.py/env-python/lib/python2.7/site-packages/requests/sessions.py", line 573, in send r = adapter.send(request, **kwargs) File "/Users/pmoore/git/taskcluster-client.py/env-python/lib/python2.7/site-packages/requests/adapters.py", line 415, in send raise ConnectionError(err, request=request) ConnectionError: ('Connection aborted.', error(61, 'Connection refused')) -------------------- >> begin captured logging << -------------------- taskcluster.client: DEBUG: credentials key scrubbed from logging output taskcluster.client: DEBUG: {'baseUrl': 'http://localhost:5555/v1', 'maxRetries': 5, 'exchangePrefix': 'test/v1', 'signedUrlExpiration': 900} taskcluster.client: DEBUG: Found a positional argument: admin taskcluster.client: DEBUG: After processing positional arguments, we have: {'clientId': 'admin'} taskcluster.client: DEBUG: After keyword arguments, we have: {'clientId': 'admin'} requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost --------------------- >> end captured logging << --------------------- ====================================================================== ERROR: test_mock_auth_signed_url_bad_credentials (test.test_client.TestAuthenticationMockServer) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/pmoore/git/taskcluster-client.py/test/test_client.py", line 594, in test_mock_auth_signed_url_bad_credentials r = requests.get(signedUrl) File "/Users/pmoore/git/taskcluster-client.py/env-python/lib/python2.7/site-packages/requests/api.py", line 69, in get return request('get', url, params=params, **kwargs) File "/Users/pmoore/git/taskcluster-client.py/env-python/lib/python2.7/site-packages/requests/api.py", line 50, in request response = session.request(method=method, url=url, **kwargs) File "/Users/pmoore/git/taskcluster-client.py/env-python/lib/python2.7/site-packages/requests/sessions.py", line 465, in request resp = self.send(prep, **send_kwargs) File "/Users/pmoore/git/taskcluster-client.py/env-python/lib/python2.7/site-packages/requests/sessions.py", line 573, in send r = adapter.send(request, **kwargs) File "/Users/pmoore/git/taskcluster-client.py/env-python/lib/python2.7/site-packages/requests/adapters.py", line 415, in send raise ConnectionError(err, request=request) ConnectionError: ('Connection aborted.', error(61, 'Connection refused')) -------------------- >> begin captured logging << -------------------- taskcluster.client: DEBUG: credentials key scrubbed from logging output taskcluster.client: DEBUG: {'baseUrl': 'http://localhost:5555/v1', 'maxRetries': 5, 'exchangePrefix': 'test/v1', 'signedUrlExpiration': 900} taskcluster.client: DEBUG: Found a positional argument: admin taskcluster.client: DEBUG: After processing positional arguments, we have: {'clientId': 'admin'} taskcluster.client: DEBUG: After keyword arguments, we have: {'clientId': 'admin'} requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost --------------------- >> end captured logging << --------------------- ====================================================================== ERROR: test_mock_auth_works (test.test_client.TestAuthenticationMockServer) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/pmoore/git/taskcluster-client.py/test/test_client.py", line 485, in test_mock_auth_works result = client.getCredentials('admin') File "/Users/pmoore/git/taskcluster-client.py/taskcluster/client.py", line 455, in apiCall return self._makeApiCall(e, *args, **kwargs) File "/Users/pmoore/git/taskcluster-client.py/taskcluster/client.py", line 232, in _makeApiCall return self._makeHttpRequest(entry['method'], route, payload) File "/Users/pmoore/git/taskcluster-client.py/taskcluster/client.py", line 382, in _makeHttpRequest superExc=rerr TaskclusterConnectionError: ('Failed to establish connection', ConnectionError(ProtocolError('Connection aborted.', error(61, 'Connection refused')),)) -------------------- >> begin captured logging << -------------------- taskcluster.client: DEBUG: credentials key scrubbed from logging output taskcluster.client: DEBUG: {'baseUrl': 'http://localhost:5555/v1', 'maxRetries': 5, 'exchangePrefix': 'test/v1', 'signedUrlExpiration': 900} taskcluster.client: DEBUG: Found a positional argument: admin taskcluster.client: DEBUG: After processing positional arguments, we have: {'clientId': 'admin'} taskcluster.client: DEBUG: After keyword arguments, we have: {'clientId': 'admin'} taskcluster.client: DEBUG: Route is: client/admin/credentials taskcluster.client: DEBUG: Full URL used is: http://localhost:5555/v1/client/admin/credentials hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': 't3f-B3', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583404} taskcluster.client: DEBUG: Making attempt 0 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="admin", ts="1435583404", nonce="t3f-B3", ext="e30=", mac="9UzOmlpVKW7LtByDc+MDncj61XFFPnqv7/CNhbqn52I="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost taskcluster.client: WARNING: Retrying because of: ('Connection aborted.', error(61, 'Connection refused')) taskcluster.client: INFO: Sleeping 0.10 seconds for exponential backoff hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': 'V_e2xM', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583405} taskcluster.client: DEBUG: Making attempt 1 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="admin", ts="1435583405", nonce="V_e2xM", ext="e30=", mac="3R2GnYrunGQGmTlVHz6sO7rziK9jYDN0eaSaOuPDdV8="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost taskcluster.client: WARNING: Retrying because of: ('Connection aborted.', error(61, 'Connection refused')) taskcluster.client: INFO: Sleeping 0.40 seconds for exponential backoff hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': 'JhRqPi', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583405} taskcluster.client: DEBUG: Making attempt 2 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="admin", ts="1435583405", nonce="JhRqPi", ext="e30=", mac="5hgBN+qh9IrtBgqGz+RIMZyPKdKkxV3ufAvT6zkkCGk="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost taskcluster.client: WARNING: Retrying because of: ('Connection aborted.', error(61, 'Connection refused')) taskcluster.client: INFO: Sleeping 0.90 seconds for exponential backoff hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': 'a9Uown', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583406} taskcluster.client: DEBUG: Making attempt 3 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="admin", ts="1435583406", nonce="a9Uown", ext="e30=", mac="4uGgikZgVIxQHBM0j807mNtYHhC2vRhOvwjWw52He9k="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost taskcluster.client: WARNING: Retrying because of: ('Connection aborted.', error(61, 'Connection refused')) taskcluster.client: INFO: Sleeping 1.60 seconds for exponential backoff hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': '2jA_Ck', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583408} taskcluster.client: DEBUG: Making attempt 4 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="admin", ts="1435583408", nonce="2jA_Ck", ext="e30=", mac="Ad/OLhf6nUu50JzXq6KaCNvpDm9JRmLT4mmoHY9abkU="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost taskcluster.client: WARNING: Retrying because of: ('Connection aborted.', error(61, 'Connection refused')) taskcluster.client: INFO: Sleeping 2.50 seconds for exponential backoff hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': 'YsptC5', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583410} taskcluster.client: DEBUG: Making attempt 5 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="admin", ts="1435583410", nonce="YsptC5", ext="e30=", mac="EogYSBpK4jaHQFsy1dLighyTIHde49qRcUeoq5kdQk0="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost --------------------- >> end captured logging << --------------------- ====================================================================== ERROR: test_mock_auth_works_with_small_scope (test.test_client.TestAuthenticationMockServer) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/pmoore/git/taskcluster-client.py/test/test_client.py", line 496, in test_mock_auth_works_with_small_scope result = client.getCredentials('admin') File "/Users/pmoore/git/taskcluster-client.py/taskcluster/client.py", line 455, in apiCall return self._makeApiCall(e, *args, **kwargs) File "/Users/pmoore/git/taskcluster-client.py/taskcluster/client.py", line 232, in _makeApiCall return self._makeHttpRequest(entry['method'], route, payload) File "/Users/pmoore/git/taskcluster-client.py/taskcluster/client.py", line 382, in _makeHttpRequest superExc=rerr TaskclusterConnectionError: ('Failed to establish connection', ConnectionError(ProtocolError('Connection aborted.', error(61, 'Connection refused')),)) -------------------- >> begin captured logging << -------------------- taskcluster.client: DEBUG: credentials key scrubbed from logging output taskcluster.client: DEBUG: {'baseUrl': 'http://localhost:5555/v1', 'maxRetries': 5, 'exchangePrefix': 'test/v1', 'signedUrlExpiration': 900} taskcluster.client: DEBUG: Found a positional argument: admin taskcluster.client: DEBUG: After processing positional arguments, we have: {'clientId': 'admin'} taskcluster.client: DEBUG: After keyword arguments, we have: {'clientId': 'admin'} taskcluster.client: DEBUG: Route is: client/admin/credentials taskcluster.client: DEBUG: Full URL used is: http://localhost:5555/v1/client/admin/credentials hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': 'g8hbFh', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583410} taskcluster.client: DEBUG: Making attempt 0 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="goodScope", ts="1435583410", nonce="g8hbFh", ext="e30=", mac="hmvTbdZuCLy2XxWMVh6ujetNecz27eTjyuBE3FX/4Ec="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost taskcluster.client: WARNING: Retrying because of: ('Connection aborted.', error(61, 'Connection refused')) taskcluster.client: INFO: Sleeping 0.10 seconds for exponential backoff hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': '5gOSvJ', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583410} taskcluster.client: DEBUG: Making attempt 1 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="goodScope", ts="1435583410", nonce="5gOSvJ", ext="e30=", mac="WXnzuQpSl6JMEr8kPjGSIBHqc5bkHlqqXDQftk2HUA0="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost taskcluster.client: WARNING: Retrying because of: ('Connection aborted.', error(61, 'Connection refused')) taskcluster.client: INFO: Sleeping 0.40 seconds for exponential backoff hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': 't9AZRK', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583411} taskcluster.client: DEBUG: Making attempt 2 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="goodScope", ts="1435583411", nonce="t9AZRK", ext="e30=", mac="bb6ijkG8pyjKbFi3khwc+n5IfN0Z6d+EuufJnd0ZtHM="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost taskcluster.client: WARNING: Retrying because of: ('Connection aborted.', error(61, 'Connection refused')) taskcluster.client: INFO: Sleeping 0.90 seconds for exponential backoff hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': 'A0I1Bm', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583411} taskcluster.client: DEBUG: Making attempt 3 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="goodScope", ts="1435583411", nonce="A0I1Bm", ext="e30=", mac="QrKKsO32hEbZw2u1AR5YJkT1UZF/aZU2k8Ckhcb/L58="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost taskcluster.client: WARNING: Retrying because of: ('Connection aborted.', error(61, 'Connection refused')) taskcluster.client: INFO: Sleeping 1.60 seconds for exponential backoff hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': '2t82ZT', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583413} taskcluster.client: DEBUG: Making attempt 4 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="goodScope", ts="1435583413", nonce="2t82ZT", ext="e30=", mac="jKrKMVmk3IARD35tAemD4zYCvpfDhBgTDZ/Yabtmd+c="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost taskcluster.client: WARNING: Retrying because of: ('Connection aborted.', error(61, 'Connection refused')) taskcluster.client: INFO: Sleeping 2.50 seconds for exponential backoff hawk.client: DEBUG: parsed URL parts: {'hostname': 'localhost', 'path': '/v1/client/admin/credentials', 'port': 5555, 'query': '', 'resource': '/v1/client/admin/credentials', 'scheme': 'http'} hawk.client: DEBUG: artifacts={'app': None, 'dlg': None, 'ext': 'e30=', 'hash': None, 'host': 'localhost', 'method': 'get', 'nonce': '_Mu25m', 'port': 5555, 'resource': '/v1/client/admin/credentials', 'ts': 1435583416} taskcluster.client: DEBUG: Making attempt 5 taskcluster.utils: DEBUG: Making a GET request to http://localhost:5555/v1/client/admin/credentials taskcluster.utils: DEBUG: HTTP Headers: {'Authorization': 'Hawk id="goodScope", ts="1435583416", nonce="_Mu25m", ext="e30=", mac="3fa0LftclayB+gPa1l6xTnxMLAFCtYLgkVZ6zA/Thhs="'} taskcluster.utils: DEBUG: HTTP Payload: None (limit 100 char) requests.packages.urllib3.connectionpool: INFO: Starting new HTTP connection (1): localhost --------------------- >> end captured logging << --------------------- ====================================================================== ERROR: test_mock_is_up (test.test_client.TestAuthenticationMockServer) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/pmoore/git/taskcluster-client.py/test/test_client.py", line 473, in test_mock_is_up s.connect(('127.0.0.1', self.port)) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 224, in meth return getattr(self._sock,name)(*args) error: [Errno 61] Connection refused ---------------------------------------------------------------------- Ran 73 tests in -1435583381.809s FAILED (errors=9) setup.py test does not run properly ./test.sh: line 19: kill: (4534) - No such process Failed to kill server make: *** [test] Error 1
Flags: needinfo?(jhford)
the short answer is that python packaging is awful. Without using specific versions, we just use the latest and that might not work right. Too bad python doesn't understand how to have two versions of a module as a top level concept. I've updated to requests 2.7.0. That's newer but still pinned down. I can't remember if there's a way to whitelist versions of the libraries in setup.py.
Flags: needinfo?(jhford)
Thanks Julien for helping me find the right syntax for specifying a range of known-good versions of the package. I've released 0.0.19 which will work with your version of requests, since it's between 2.4.3 and 2.7.0, which are the two known-good versions.
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Component: TaskCluster → General
Product: Testing → Taskcluster
Target Milestone: --- → mozilla41
Resetting Version and Target Milestone that accidentally got changed...
Target Milestone: mozilla41 → ---
Version: Trunk → unspecified
Assignee: nobody → jhford
Summary: python-client: taskcluster requires an exacte version for requests library (2.4.3) → python-client: taskcluster requires an exact version for requests library (2.4.3)
You need to log in before you can comment on or make changes to this bug.