[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