17465: Don't repeat warnings when storage classes aren't supported.
authorLucas Di Pentima <lucas.dipentima@curii.com>
Thu, 3 Jun 2021 22:34:26 +0000 (19:34 -0300)
committerLucas Di Pentima <lucas.dipentima@curii.com>
Thu, 3 Jun 2021 22:34:26 +0000 (19:34 -0300)
Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas.dipentima@curii.com>

sdk/python/arvados/collection.py
sdk/python/arvados/keep.py

index c000c80718d510159bee12d8fe6f6f32452cea55..44d0325353b51eebb5e7846c4733ab7228c8a1a1 100644 (file)
@@ -1424,7 +1424,6 @@ class Collection(RichCollectionBase):
             copies = (self.replication_desired or
                       self._my_api()._rootDesc.get('defaultCollectionReplication',
                                                    2))
-            classes = self.storage_classes_desired or []
             self._block_manager = _BlockManager(self._my_keep(), copies=copies, put_threads=self.put_threads, num_retries=self.num_retries, storage_classes_func=self.storage_classes_desired)
         return self._block_manager
 
index 2f20132aecdf17ee9b8d6da2d043037508e989ce..1d4092d5599b60a7a3315b1c49c31af8661023ad 100644 (file)
@@ -840,6 +840,7 @@ class KeepClient(object):
         self.get_counter = Counter()
         self.hits_counter = Counter()
         self.misses_counter = Counter()
+        self._storage_classes_unsupported_warning = False
 
         if local_store:
             self.local_store = local_store
@@ -1253,7 +1254,9 @@ class KeepClient(object):
                 # success is determined only by successful copies.
                 #
                 # Disable storage classes tracking from this point forward.
-                _logger.warning("X-Keep-Storage-Classes header not supported by the cluster")
+                if not self._storage_classes_unsupported_warning:
+                    self._storage_classes_unsupported_warning = True
+                    _logger.warning("X-Keep-Storage-Classes header not supported by the cluster")
                 done_classes = None
                 loop.save_result(
                     (done_copies >= copies, writer_pool.total_task_nr))