Skip to content

Commit

Permalink
Make gen3 manager compatible with rest of client
Browse files Browse the repository at this point in the history
  • Loading branch information
matthewpeterkort committed Jun 25, 2024
1 parent 52b4d68 commit 54fb973
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 24 deletions.
Binary file removed drs_downloader/.DS_Store
Binary file not shown.
3 changes: 1 addition & 2 deletions drs_downloader/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -240,6 +240,7 @@ def gen3(
):
"""Copy files from gen3 server."""
# read from manifest
assert api_key_path is not None, "If using gen3 mode an api key path must be provided with --api-key-path"
ids_from_manifest = _extract_tsv_info(Path(manifest_path), drs_column_name)

_perform_downloads(
Expand Down Expand Up @@ -346,8 +347,6 @@ def _perform_downloads(
drs_objects = drs_manager.get_objects(ids_from_manifest, verbose=verbose)

file_logger.info(f"Drs Objects after get_objects function {drs_objects}")
if verbose:
logger.info(f"Drs Objects after get_objects function {drs_objects}")

# If every object has an error exit early since these early errors are not recoverable
if all(len(obj.errors) > 0 for obj in drs_objects):
Expand Down
9 changes: 6 additions & 3 deletions drs_downloader/clients/gen3.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import json
import logging
import os
import ssl
import certifi
from pathlib import Path
from typing import Optional

Expand Down Expand Up @@ -98,7 +100,7 @@ async def download_part(
drs_object.errors.append(str(e))
return None

async def sign_url(self, drs_object: DrsObject, verbose: bool) -> DrsObject:
async def sign_url(self, drs_object: DrsObject, verbose: bool, user_project=None) -> DrsObject:
"""Call fence's /user/data/download/ endpoint."""

headers = {
Expand Down Expand Up @@ -143,10 +145,11 @@ async def get_object(self, object_id: str, verbose: bool) -> DrsObject:
"authorization": "Bearer " + self.token,
"content-type": "application/json",
}

context = ssl.create_default_context(cafile=certifi.where())
async with aiohttp.ClientSession(headers=headers) as session:
async with session.get(
url=f"{self.endpoint}{self.drs_api}/{object_id.split(':')[-1]}"
url=f"{self.endpoint}{self.drs_api}/{object_id.split(':')[-1]}",
ssl=context
) as response:
try:
self.statistics.set_max_files_open()
Expand Down
4 changes: 2 additions & 2 deletions drs_downloader/manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -172,14 +172,14 @@ async def wait_till_completed(self, tasks, err_function_msg):
y = await t
completed_tasks.append(y)

except Exception:
except Exception as e:
updated_drs_object = DrsObject(
self_uri="",
id="",
checksums=[],
size=0,
name=None,
errors=[f"Exception in {err_function_msg} function"]
errors=[f"Exception in {err_function_msg} function {str(e)}"]
)

completed_tasks.append(updated_drs_object)
Expand Down
19 changes: 2 additions & 17 deletions tests/fixtures/gen3-small.tsv
Original file line number Diff line number Diff line change
@@ -1,17 +1,2 @@
ga4gh_drs_uri
drs://FOOBAR:d62af3ff-756d-4e73-b6c6-e0bbd3bae50d
drs://FOOBAR:755fb48b-c4c9-41b6-a3fd-2604ebaa21af
drs://FOOBAR:cdff48c3-69a6-4c24-84d8-82681803003f
drs://FOOBAR:da8cb14b-8274-4b5a-a5ed-279140c9cf74
drs://FOOBAR:82808bc8-a21b-43bc-af61-fcbc0437cd13
drs://FOOBAR:82b3224d-98a5-453c-ab50-edb96e72fda6
drs://FOOBAR:93f7ca81-93dc-4046-a537-40a36465062c
drs://FOOBAR:f4b29275-499f-4260-8725-d6c9f5d5bcb8
drs://FOOBAR:839de941-4317-4508-968e-83883590bec9
drs://FOOBAR:80164516-695a-473f-9c76-eacb9e191a6a
drs://FOOBAR:c5196828-493b-4f62-976a-46468088547e
drs://FOOBAR:6d5df2b1-5811-4206-a53b-7eac9e8f6383
drs://FOOBAR:f905ecc0-e865-47fc-9d62-9087f5a4150e
drs://FOOBAR:9ed5fcf8-c461-46ad-84a3-12d709d378d4
drs://FOOBAR:892f99d6-8cdf-432b-bc8b-7d965d0cad53
drs://FOOBAR:34819aba-29f7-4a83-b5d4-84b10a3f6b1b
ga4gh_drs_uri
drs://PREFIX:c5956122-ee2d-595f-8f60-48c05d781c28

0 comments on commit 54fb973

Please sign in to comment.