[ARVADOS] updated: 507568431e26f0699a9a8d851a2c73470666354b
git at public.curoverse.com
git at public.curoverse.com
Mon Aug 17 13:50:55 EDT 2015
Summary of changes:
sdk/python/arvados/__init__.py | 48 +++++++++++++++++++++---------------------
sdk/python/tests/test_init.py | 2 +-
2 files changed, 25 insertions(+), 25 deletions(-)
via 507568431e26f0699a9a8d851a2c73470666354b (commit)
from 32e495e4c4f1ca194841769fcae22741d1e9549c (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
commit 507568431e26f0699a9a8d851a2c73470666354b
Author: Bryan Cosca <bcosc at curoverse.com>
Date: Mon Aug 17 13:50:44 2015 -0400
6600: Created retry loop for task_set_output to work for HTTP_success and HTTP_retry codes. Now need to use figure out how to mock a changing api
diff --git a/sdk/python/arvados/__init__.py b/sdk/python/arvados/__init__.py
index f3a6da1..5f59150 100644
--- a/sdk/python/arvados/__init__.py
+++ b/sdk/python/arvados/__init__.py
@@ -49,33 +49,33 @@ def task_set_output(self,s,api_client=None):
if not api_client:
api_client = api('v1')
- #if not self.num_retries:
- # self.num_retries=5
-
- output_retry_loop = RetryLoop(num_retries=2, backoff_start=1)
+ ok = False
+ output_retry_loop = RetryLoop(num_retries=2)
for tries_left in output_retry_loop:
- try:
- result = api_client.job_tasks().update(uuid=self['uuid'],
- body={
- 'output':s,
- 'success':True,
- 'progress':1.0
- }).execute()
- except errors.ApiError as error:
- print "ApiError threw {}".format(error)
- except errors.HttpError as error:
- print retry.check_http_response_success(error.status_code)
- if retry.check_http_response_success(error.status_code) == True:
- print "We are good because status code = {} is a success!".format(error.status_code)
- elif retry.check_http_response_success(error.status_code) == None:
- print "We can retry because status code = {}".format(error.status_code)
+ if not ok:
+ try:
+ print tries_left
+ result = api_client.job_tasks().update(uuid=self['uuid'],
+ body={
+ 'output':s,
+ 'success':True,
+ 'progress':1.0
+ }).execute()
+ except errors.ApiError as error:
+ print "ApiError {}".format(error)
+ except errors.HttpError as error:
+ if not retry.check_http_response_success(error.status_code):
+ print "HttpError returned {}, retrying with {} tries left.".format(error.status_code,tries_left)
+ else:
+ pass
+ print ok
+ print error.status_code
+ ok = True
else:
- print "What happened?? status code = {}".format(error.status_code)
- raise
- else:
- output_retry_loop.save_result(result)
+ output_retry_loop.save_result(result)
+ ok = True
if output_retry_loop.success():
- return output_retry_loop.last_result()
+ return output_retry_loop.last_result()
_current_task = None
@retry_method
diff --git a/sdk/python/tests/test_init.py b/sdk/python/tests/test_init.py
index 2e87f51..c17f789 100644
--- a/sdk/python/tests/test_init.py
+++ b/sdk/python/tests/test_init.py
@@ -13,7 +13,7 @@ class TestSDK(unittest.TestCase):
def test_task_set_output(self, mock_input=FAKE_HASH):
mock_api = mock.MagicMock()
- mock_api.job_tasks().update().execute.side_effect = arvados.errors.HttpError(status_code=200,reason="Exception('Mock_500')")
+ mock_api.job_tasks().update().execute.side_effect = arvados.errors.HttpError(status_code=500,reason="Mock 200")
arvados.task_set_output({'uuid':'zzzzz-zzzzz-ehnr5qheh1atzzz'},s=mock_input,api_client=mock_api)
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list