DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
daqconf
python
daqconf
assets.py
Go to the documentation of this file.
1
2
from
os.path
import
exists,abspath,dirname,expandvars
3
4
from
daq_assettools.asset_file
import
AssetFile
5
from
daq_assettools.asset_database
import
Database
6
from
sqlite3
import
OperationalError
7
8
def
resolve_asset_file
(data_file, verbose = False):
9
from
urllib.parse
import
urlparse, parse_qsl
10
data_file_url = urlparse(data_file)
11
12
if
verbose:
13
print(f
"Checking asset URI {data_file_url}"
)
14
15
if
data_file_url.scheme ==
'asset'
:
16
asset_query = dict(parse_qsl(data_file_url.query))
17
asset_db = Database(
'/cvmfs/dunedaq.opensciencegrid.org/assets/dunedaq-asset-db.sqlite'
)
18
asset_query[
'status'
] =
'valid'
19
20
try
:
21
files = asset_db.get_files(asset_query)
22
if
not
files:
23
raise
RuntimeError(f
"Couldn\'t find a valid asset for the query {data_file_url.query}"
)
24
25
elif
len(files)>1:
26
print(f
"Found {len(files)} assets in {dirname(asset_db.database_file)}, taking the first one"
)
27
28
if
verbose:
29
print(f
"Found asset in {dirname(asset_db.database_file)}"
)
30
31
root_dir = dirname(asset_db.database_file)
32
return
f
'{root_dir}/{files[0]["path"]}/{files[0]["name"]}'
33
34
except
OperationalError:
35
raise
RuntimeError(f
"Couldn\'t find the asset {data_file}"
)
36
37
38
elif
data_file_url.scheme ==
'file'
:
39
filename = abspath(data_file_url.netloc+data_file_url.path)
40
41
if
not
exists(filename):
42
raise
RuntimeError(f
'Cannot find the frames.bin file {filename}'
)
43
44
if
verbose:
45
print(f
"Found asset in {dirname(filename)}"
)
46
47
return
filename
48
49
resolved_data_file = abspath(expandvars(data_file))
50
if
resolved_data_file !=
''
and
not
exists(resolved_data_file):
51
raise
RuntimeError(f
'Cannot find the frames.bin file {data_file}'
)
52
53
if
verbose:
54
print(f
"Found asset in {dirname(resolved_data_file)}"
)
55
56
return
resolved_data_file
assets.resolve_asset_file
resolve_asset_file(data_file, verbose=False)
Definition
assets.py:8
Generated on
for DUNE-DAQ by
1.17.0