Downloadclient
Classes¶
FileDownloadState ¶
The state a file can be in before/while/after downloading.
BaseExtractionTool ¶
BaseExtractionTool(
program_name,
useability_check_args,
extract_args,
logger=logging.log,
)
Initializes a extraction tool object
PARAMETER | DESCRIPTION |
---|---|
program_name
|
the name of the archive extraction program, e.g., unzip
TYPE:
|
useability_check_args
|
the arguments of the extraction program to test if it's installed, e.g., --version
TYPE:
|
extract_args
|
the arguments that will be passed to the program for extraction
TYPE:
|
logger
|
optional decorated logging.log object that can be passed from the calling daemon or client.
TYPE:
|
Functions¶
is_useable ¶
is_useable()
Checks if the extraction tool is installed and usable
RETURNS | DESCRIPTION |
---|---|
True if it is usable otherwise False
|
|
try_extraction ¶
try_extraction(
archive_file_path, file_to_extract, dest_dir_path
)
Calls the extraction program to extract a file from an archive
PARAMETER | DESCRIPTION |
---|---|
archive_file_path
|
path to the archive
TYPE:
|
file_to_extract
|
file name to extract from the archive
TYPE:
|
dest_dir_pat
|
destination directory where the extracted file will be stored
|
RETURNS | DESCRIPTION |
---|---|
True on success otherwise False
|
|
DownloadClient ¶
DownloadClient(
client=None,
logger=None,
tracing=True,
check_admin=False,
check_pcache=False,
)
Initializes the basic settings for an DownloadClient object
PARAMETER | DESCRIPTION |
---|---|
client
|
Optional: rucio.client.client.Client object. If None, a new object will be created.
TYPE:
|
logger
|
Optional: If None, default logger will be used.
TYPE:
|
external_traces
|
Optional: reference to a list where traces can be added
|
Functions¶
download_pfns ¶
download_pfns(
items,
num_threads=2,
trace_custom_fields=None,
traces_copy_out=None,
deactivate_file_download_exceptions=False,
)
Download items with a given PFN. This function can only download files, no datasets.
PARAMETER | DESCRIPTION |
---|---|
items
|
List of dictionaries. Each dictionary describing a file to download. Dictionary keys: * pfn : str PFN string of this file
TYPE:
|
num_threads
|
Suggestion of number of threads to use for the download. It will be lowered if it's too high.
TYPE:
|
trace_custom_fields
|
Custom key value pairs to send with the traces
TYPE:
|
traces_copy_out
|
Reference to an external list, where the traces should be uploaded
TYPE:
|
deactivate_file_download_exceptions
|
If file download exceptions shouldn't be raised. Default: False
TYPE:
|
RETURNS | DESCRIPTION |
---|---|
A list of dictionaries with an entry for each file, containing the input options,
|
the did, and the clientState. clientState can be one of the following: ALREADY_DONE, DONE, FILE_NOT_FOUND, FAIL_VALIDATE, FAILED |
RAISES | DESCRIPTION |
---|---|
InputValidationError
|
If one of the input items is in the wrong format |
NoFilesDownloaded
|
If no files could be downloaded |
NotAllFilesDownloaded
|
If not all files could be downloaded |
RucioException
|
If something unexpected went wrong during the download |
download_dids ¶
download_dids(
items,
num_threads=2,
trace_custom_fields=None,
traces_copy_out=None,
deactivate_file_download_exceptions=False,
sort=None,
)
Download items with given DIDs. This function can also download datasets and wildcarded DIDs.
PARAMETER | DESCRIPTION |
---|---|
items
|
List of dictionaries. Each dictionary describing an item to download. Dictionary keys: * did : str DID string of this file (e.g. 'scope:file.name')
TYPE:
|
num_threads
|
Suggestion of number of threads to use for the download. It will be lowered if it's too high.
TYPE:
|
trace_custom_fields
|
Custom key value pairs to send with the traces
TYPE:
|
traces_copy_out
|
Reference to an external list, where the traces should be uploaded
TYPE:
|
deactivate_file_download_exceptions
|
If file download exceptions shouldn't be raised. Default: False
TYPE:
|
sort
|
Select best replica by replica sorting algorithm. Available algorithms:
TYPE:
|
RETURNS | DESCRIPTION |
---|---|
A list of dictionaries with an entry for each file, containing the input options,
|
the did, and the clientState. |
RAISES | DESCRIPTION |
---|---|
InputValidationError
|
If one of the input items is in the wrong format |
NoFilesDownloaded
|
If no files could be downloaded |
NotAllFilesDownloaded
|
If not all files could be downloaded |
RucioException
|
If something unexpected went wrong during the download |
download_from_metalink_file ¶
download_from_metalink_file(
item,
metalink_file_path,
num_threads=2,
trace_custom_fields=None,
traces_copy_out=None,
deactivate_file_download_exceptions=False,
)
Download items using a given metalink file.
PARAMETER | DESCRIPTION |
---|---|
item
|
Dictionary describing an item to download. Dictionary keys: * base_dir : str, optional Base directory where the downloaded files will be stored. Default: '.'
TYPE:
|
num_threads
|
Suggestion of number of threads to use for the download. It will be lowered if it's too high.
TYPE:
|
trace_custom_fields
|
Custom key value pairs to send with the traces
TYPE:
|
traces_copy_out
|
Reference to an external list, where the traces should be uploaded
TYPE:
|
deactivate_file_download_exceptions
|
If file download exceptions shouldn't be raised. Default: False
TYPE:
|
RETURNS | DESCRIPTION |
---|---|
A list of dictionaries with an entry for each file, containing the input options,
|
the did, and the clientState. |
RAISES | DESCRIPTION |
---|---|
InputValidationError
|
If one of the input items is in the wrong format |
NoFilesDownloaded
|
If no files could be downloaded |
NotAllFilesDownloaded
|
If not all files could be downloaded |
RucioException
|
If something unexpected went wrong during the download |
download_aria2c ¶
download_aria2c(
items,
trace_custom_fields=None,
filters=None,
deactivate_file_download_exceptions=False,
sort=None,
)
Uses aria2c to download the items with given DIDs. This function can also download datasets and wildcarded DIDs. It only can download files that are available via https/davs. Aria2c needs to be installed and X509_USER_PROXY needs to be set!
PARAMETER | DESCRIPTION |
---|---|
items
|
List of dictionaries. Each dictionary describing an item to download. Dictionary keys: * did : str DID string of this file (e.g. 'scope:file.name'). Wildcards are not allowed
TYPE:
|
trace_custom_fields
|
Custom key value pairs to send with the traces
TYPE:
|
filters
|
Filter to select DIDs for download
TYPE:
|
deactivate_file_download_exceptions
|
If file download exceptions shouldn't be raised. Default: False
TYPE:
|
sort
|
Select best replica by replica sorting algorithm. Available algorithms: * geoip - based on src/dst IP topographical distance
TYPE:
|
RETURNS | DESCRIPTION |
---|---|
A list of dictionaries with an entry for each file, containing the input options,
|
the did, and the clientState. |
RAISES | DESCRIPTION |
---|---|
InputValidationError
|
If one of the input items is in the wrong format |
NoFilesDownloaded
|
If no files could be downloaded |
NotAllFilesDownloaded
|
If not all files could be downloaded |
RucioException
|
If something unexpected went wrong during the download (e.g. aria2c could not be started) |
preferred_impl ¶
preferred_impl(sources)
Finds the optimum protocol impl preferred by the client and supported by the remote RSE.
PARAMETER | DESCRIPTION |
---|---|
sources
|
List of sources for a given DID
TYPE:
|
RAISES | DESCRIPTION |
---|---|
RucioException
|
General exception with msg for more details |