[ARVADOS] updated: 0c848aa00c9af71ea2c7a575d8ee04b420a5eae7

Git user git at public.curoverse.com
Fri Apr 8 10:33:12 EDT 2016


Summary of changes:
 sdk/cli/bin/crunch-job                | 24 +++++++++++----
 sdk/cwl/arvados_cwl/__init__.py       |  1 +
 sdk/cwl/tests/test_submit.py          | 57 ++++++++++++++++++++++++++++++-----
 sdk/python/arvados/events.py          |  3 +-
 sdk/python/tests/test_websockets.py   | 40 ++++++++++++++++++++++--
 services/fuse/arvados_fuse/fusedir.py |  5 +++
 services/fuse/tests/test_cache.py     | 45 +++++++++++++++++++++++++++
 7 files changed, 158 insertions(+), 17 deletions(-)
 create mode 100644 services/fuse/tests/test_cache.py

       via  0c848aa00c9af71ea2c7a575d8ee04b420a5eae7 (commit)
       via  a2dc68267b5ff974460cef796820e7f8b90e04bc (commit)
       via  86996de865c2b4d395c2a3977b05f7278924f627 (commit)
       via  ae6ced575905d226963516bb7780c2bae391621c (commit)
       via  448ec6cc59fe837eb71c416a82b8a72a959eddc8 (commit)
       via  fc6f80e4d1157b4b69bad852be1a7bb921fcb91b (commit)
       via  2d18e31468b269e526cb6e4918912b60a48540b2 (commit)
       via  f37349e9436294472bdbdec820c5ec44ebe64430 (commit)
       via  9c3a1a10b702ec7ee79bb0aa1beb3c227bec95dd (commit)
       via  91b379c4a76b8278354903158a65e5d47babd363 (commit)
       via  b8ae9ce66c24055f3bf66b0956e15c44c9dd51f0 (commit)
       via  8b93280fb2fae252e29263660e9591fcaa2d8722 (commit)
       via  55778ad90a9b869f514e729b3f85c12383f4e2a7 (commit)
       via  eea5f75077ca5d3adced3ad3d90f755d0fa5b3d8 (commit)
      from  a2c147e469bc4ccc0e788f2e72b2d94aa81ba368 (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 0c848aa00c9af71ea2c7a575d8ee04b420a5eae7
Author: radhika <radhika at curoverse.com>
Date:   Fri Apr 8 10:32:33 2016 -0400

    7658: add test that verifies reconnect retry behavior

diff --git a/sdk/python/arvados/events.py b/sdk/python/arvados/events.py
index 57bf3ae..942fb76 100644
--- a/sdk/python/arvados/events.py
+++ b/sdk/python/arvados/events.py
@@ -109,6 +109,7 @@ class EventClient(object):
 
     def on_closed(self):
         if self.is_closed == False:
+            _logger.warn("Unexpected close. Reconnecting.")
             self.ec = _EventClient(self.url, self.filters, self.on_event, self.last_log_id, self.on_closed)
             while True:
               try:
@@ -117,7 +118,7 @@ class EventClient(object):
                       self.ec.subscribe(self.subscriptions[s], self.last_log_id)
                   break
               except:
-                  _logger.warn("Failed to reconnect to websockets on %s. Will retry after 5s." % endpoint)
+                  _logger.warn("Error during websocket reconnect. Will retry after 5s.")
                   time.sleep(5)
 
 
diff --git a/sdk/python/tests/test_websockets.py b/sdk/python/tests/test_websockets.py
index 98d84ad..9c8def8 100644
--- a/sdk/python/tests/test_websockets.py
+++ b/sdk/python/tests/test_websockets.py
@@ -1,9 +1,12 @@
 import arvados
 import arvados.events
 from datetime import datetime, timedelta, tzinfo
+import logging
 import mock
+import os
 import Queue
 import run_test_server
+import tempfile
 import threading
 import time
 import unittest
@@ -18,8 +21,11 @@ class WebsocketTest(run_test_server.TestCaseWithServers):
         self.ws = None
 
     def tearDown(self):
-        if self.ws:
-            self.ws.close()
+        try:
+            if self.ws:
+                self.ws.close()
+        except Exception as e:
+            print("Error in teardown: ", e)
         super(WebsocketTest, self).tearDown()
         run_test_server.reset()
 
@@ -121,7 +127,7 @@ class WebsocketTest(run_test_server.TestCaseWithServers):
         """Convert minutes-east-of-UTC to ISO8601 time zone designator"""
         return '{:+03d}{:02d}'.format(offset/60, offset%60)
 
-    # Test websocket reconnection on unexecpted close
+    # Test websocket reconnection on (un)execpted close
     def _test_websocket_reconnect(self, close_unexpected):
         run_test_server.authorize_with('active')
         events = Queue.Queue(100)
@@ -173,3 +179,31 @@ class WebsocketTest(run_test_server.TestCaseWithServers):
 
     def test_websocket_no_reconnect_on_close_by_user(self):
         self._test_websocket_reconnect(False)
+
+    # Test websocket reconnection retry
+    @mock.patch('arvados.events._EventClient.connect')
+    def test_websocket_reconnect_retry(self, event_client_connect):
+        event_client_connect.side_effect = [None, Exception('EventClient.connect error'), None]
+
+        log_file = tempfile.NamedTemporaryFile(suffix='log.out', delete=True)
+        logging.basicConfig(filename=log_file.name, level=logging.DEBUG,)
+
+        run_test_server.authorize_with('active')
+        events = Queue.Queue(100)
+
+        filters = [['object_uuid', 'is_a', 'arvados#human']]
+        self.ws = arvados.events.subscribe(
+            arvados.api('v1'), filters,
+            events.put_nowait,
+            poll_fallback=False,
+            last_log_id=None)
+        self.assertIsInstance(self.ws, arvados.events.EventClient)
+
+        # simulate improper close
+        self.ws.on_closed()
+
+        # verify log messages to ensure retry happened
+        log_messages = log_file.read()
+        found = log_messages.find("Error during websocket reconnect. Will retry")
+        self.assertNotEqual(found, -1)
+        os.unlink(log_file.name)

commit a2dc68267b5ff974460cef796820e7f8b90e04bc
Merge: a2c147e 86996de
Author: radhika <radhika at curoverse.com>
Date:   Thu Apr 7 11:21:57 2016 -0400

    Merge branch 'master' into 7658-websockets-reconnect-on-close


-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list