X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/6403b8728d3120d6cb22583b3963d2a030e88aa3..6386f2aca83b477210bda19a3284ea31463d2efc:/sdk/python/arvados/collection.py diff --git a/sdk/python/arvados/collection.py b/sdk/python/arvados/collection.py index a86a1f512c..686d694bef 100644 --- a/sdk/python/arvados/collection.py +++ b/sdk/python/arvados/collection.py @@ -101,7 +101,7 @@ class CollectionReader(object): elif re.match(r'[a-z0-9]{5}-[a-z0-9]{5}-[a-z0-9]{15}$', manifest_locator_or_text): self._manifest_locator = manifest_locator_or_text self._manifest_text = None - elif re.match(r'(\S+)( [a-f0-9]{32}(\+\d+)(\+\S+)*)+( \d+:\d+:\S+)+\n', manifest_locator_or_text): + elif re.match(r'((\S+)( [a-f0-9]{32}(\+\d+)(\+\S+)*)+( \d+:\d+:\S+)+$)+', manifest_locator_or_text, re.MULTILINE): self._manifest_text = manifest_locator_or_text self._manifest_locator = None else: @@ -135,6 +135,9 @@ class CollectionReader(object): uuid=self._manifest_locator).execute() self._manifest_text = c['manifest_text'] except Exception as e: + if not util.portable_data_hash_pattern.match( + self._manifest_locator): + raise _logger.warning("API lookup failed for collection %s (%s: %s)", self._manifest_locator, type(e), str(e)) if self._keep_client is None: