X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/18e4d66b6fc65bc7dc486b3ff144cce92af5df8c..cfa8a6978a03b4b2c3092581b0b4eb8e8f8e9d6b:/sdk/python/arvados/collection.py diff --git a/sdk/python/arvados/collection.py b/sdk/python/arvados/collection.py index 9a680d4033..ea98d00e54 100644 --- a/sdk/python/arvados/collection.py +++ b/sdk/python/arvados/collection.py @@ -18,7 +18,10 @@ import fcntl import time import threading +from keep import * from stream import * +import config +import errors class CollectionReader(object): def __init__(self, manifest_locator_or_text): @@ -40,7 +43,14 @@ class CollectionReader(object): if self._streams != None: return if not self._manifest_text: - self._manifest_text = Keep.get(self._manifest_locator) + try: + c = arvados.api('v1').collections().get( + uuid=self._manifest_locator).execute() + self._manifest_text = c['manifest_text'] + except Exception as e: + logging.warning("API lookup failed for collection %s (%s: %s)" % + (self._manifest_locator, type(e), str(e))) + self._manifest_text = Keep.get(self._manifest_locator) self._streams = [] for stream_line in self._manifest_text.split("\n"): if stream_line != '': @@ -179,7 +189,7 @@ class CollectionWriter(object): (self._current_stream_length, len(self._current_stream_files))) else: if len(self._current_stream_locators) == 0: - self._current_stream_locators += [EMPTY_BLOCK_LOCATOR] + self._current_stream_locators += [config.EMPTY_BLOCK_LOCATOR] self._finished_streams += [[self._current_stream_name, self._current_stream_locators, self._current_stream_files]]