protect against writting to /dev/null. try to retrieve data in case first attempt is not successful

This commit is contained in:
Dmitry Ozerov
2019-10-05 15:07:06 +02:00
committed by Andrej Babic
parent 6a4bb7c178
commit 1af5a3fecb
3 changed files with 34 additions and 8 deletions
+25 -4
View File
@@ -58,9 +58,12 @@ def download_data(config):
# append _CA to the filename
filename = config["parameters"]["output_file"]
new_filename = filename[:-3]+"_CA"+filename[-3:]
if filename != "/dev/null":
new_filename = filename[:-3]+"_CA"+filename[-3:]
else:
new_filename = None
logger.info("Retrieving data for interval start: " + str(start_date) + " end: " + str(end_date))
logger.info("Retrieving data for interval start: " + str(start_date) + " end: " + str(end_date) + " . From " + base_url)
# data = data_api.get_data(channel_list, start=start_date, end=end_date, base_url=base_url)
data = get_data(channel_list, start=start_date, end=end_date, base_url=base_url)
@@ -69,8 +72,9 @@ def download_data(config):
open(new_filename+"_NO_DATA", 'a').close()
else:
logger.info("Persist data to hdf5 file")
data_api.to_hdf5(data, new_filename, overwrite=True, compression=None, shuffle=False)
if new_filename:
logger.info("Persist data to hdf5 file")
data_api.to_hdf5(data, new_filename, overwrite=True, compression=None, shuffle=False)
def read_channels(filename):
@@ -92,12 +96,29 @@ def get_data(channel_list, start=None, end=None, base_url=None):
"channels": channel_list,
"fields": ["pulseId", "globalSeconds", "globalDate", "value", "eventCount"]}
logger.info(query)
response = requests.post(base_url + '/query', json=query)
# Check for successful return of data
if response.status_code != 200:
#raise RuntimeError("Unable to retrieve data from server: ", response)
logger.info("Data retrievali failed, sleep for another time and try")
itry = 0
while itry < 5:
itry += 1
time.sleep(60)
response = requests.post(base_url + '/query', json=query)
if response.status_code == 200:
break
logger.info("Data retrieval failed, post attempt %d" % itry)
if response.status_code != 200:
raise RuntimeError("Unable to retrieve data from server: ", response)
logger.info("Data retieval is successful")
data = response.json()
return data_api.client._build_pandas_data_frame(data, index_field="globalDate")
+7 -2
View File
@@ -6,5 +6,10 @@ setup(
author="Paul Scherrer Institute",
author_email="daq@psi.ch",
description="Interface to dump data from archiver/databuffer",
packages=["cadump"]
)
packages=["cadump"],
entry_points={
'console_scripts': [
'cadump_server = cadump.cadump:main',
],
}
)
+2 -2
View File
@@ -8,8 +8,8 @@ class TestDownloadData(TestCase):
def test_download_data(self):
config = {
'range': {
'startPulseId': 7314794868,
'endPulseId': 7314798868
'startPulseId': 9618913001,
'endPulseId': 9618923000
},
'parameters': {