Updated save method of Collection class to always update when
authorFuad Muhic <muhic.fuad@gmail.com>
Tue, 22 May 2018 16:08:36 +0000 (18:08 +0200)
committerFuad Muhic <muhic.fuad@gmail.com>
Tue, 22 May 2018 16:08:36 +0000 (18:08 +0200)
storage_classes is specified.

Arvados-DCO-1.1-Signed-off-by: Fuad Muhic <fmuhic@capeannenterprises.com>

sdk/python/arvados/collection.py

index fad28003fda01b48035a9ecf104643ec63be30cd..376e05924429cbc7b5c28691a44c6a2a3e0b8e2c 100644 (file)
@@ -1458,6 +1458,7 @@ class Collection(RichCollectionBase):
           Retry count on API calls (if None,  use the collection default)
 
         """
+
         if not self.committed():
             if not self._has_collection_uuid():
                 raise AssertionError("Collection manifest_locator is not a collection uuid.  Use save_new() for new collections.")
@@ -1482,6 +1483,14 @@ class Collection(RichCollectionBase):
             self._manifest_text = self._api_response["manifest_text"]
             self._portable_data_hash = self._api_response["portable_data_hash"]
             self.set_committed(True)
+        elif storage_classes:
+            if type(storage_classes) is not list:
+                raise errors.ArgumentError("storage_classes must be list type.")
+            self._remember_api_response(self._my_api().collections().update(
+                uuid=self._manifest_locator,
+                body={"storage_classes_desired": storage_classes}
+                ).execute(
+                    num_retries=num_retries))
 
         return self._manifest_text