From b2846fda3c56a01a4ed2cab417a67edfdb4632db Mon Sep 17 00:00:00 2001 From: Cyril Danilevski <cydanil@gmail.com> Date: Thu, 3 Jun 2021 10:31:17 +0200 Subject: [PATCH] Remove support for dark queries in webservice --- webservice/webservice.py | 117 +-------------------------------------- 1 file changed, 1 insertion(+), 116 deletions(-) diff --git a/webservice/webservice.py b/webservice/webservice.py index 8a911cdbb..fe81a09fc 100644 --- a/webservice/webservice.py +++ b/webservice/webservice.py @@ -737,8 +737,7 @@ class ActionsServer: return res accepted_actions = { - 'correct', 'dark', 'dark_request', 'query-rid', 'upload-yaml', - 'update_conf', + 'correct', 'dark_request', 'query-rid', 'upload-yaml', 'update_conf', } # Handler methods for each available action ------------------------------ @@ -857,120 +856,6 @@ class ActionsServer: return queued_msg.encode() - async def handle_dark( - self, rid, _sase, instrument, cycle, proposal, karabo_ids, - karabo_das, *runs - ): - request_time = datetime.now().strftime('%Y-%m-%dT%H:%M:%S') - try: - run_mapping = {} - wait_runs = [] - - karabo_ids = karabo_ids.split(',') - karabo_das = karabo_das.split(',') - - for i, run in enumerate(runs): - erun = ast.literal_eval(run) - if isinstance(erun, (list, tuple)): - typ, runnr = erun - if typ == "reservation": - continue - runnr = runnr.strip('r') - run_mapping[typ] = runnr - wait_runs.append(runnr) - else: - run_mapping['no_mapping_{}'.format(i)] = erun - wait_runs.append(erun) - - proposal = self._normalise_proposal_num(proposal) - pconf_full = self.load_proposal_config(cycle, proposal) - - data_conf = pconf_full['data-mapping'] - if instrument in pconf_full['dark']: - pconf = pconf_full['dark'][instrument] - else: - logging.info(f'Instrument {instrument} is unknown') - return Errors.NOT_CONFIGURED.encode() - - # Run over all available detectors - if karabo_ids[0] == 'all': - karabo_ids = list(pconf.keys()) - - in_folder = self.config['dark']['in-folder'].format( - instrument=instrument, cycle=cycle, proposal=proposal) - out_folder = self.config['dark']['out-folder'].format( - instrument=instrument, cycle=cycle, proposal=proposal, - runs="_".join(wait_runs)) - - except Exception as e: - msg = Errors.JOB_LAUNCH_FAILED.format('dark', e) - logging.error(msg, exc_info=e) - return msg.encode() - - async def _continue(): - """Runs in the background after we reply to the 'dark' request""" - transfer_complete = await wait_transfers( - wait_runs, in_folder, proposal - ) - if not transfer_complete: - return # Timed out - - detectors = {} - - # Prepare configs for all requested detectors - for karabo_id in karabo_ids: - - # use selected karabo_das - karabo_das_for_id = karabo_das - if karabo_das[0] == 'all': - karabo_das_for_id = data_conf[karabo_id]["karabo-da"] - - # Check if any files for given karabo-das exists - if check_files(in_folder, wait_runs, karabo_das_for_id): - thisconf = copy.copy(data_conf[karabo_id]) - - if (karabo_id in pconf and - isinstance(pconf[karabo_id], dict)): - thisconf.update(copy.copy(pconf[karabo_id])) - - thisconf["in-folder"] = in_folder - thisconf["out-folder"] = os.path.join( - out_folder, karabo_id.replace('-', '_') - ) - thisconf["karabo-id"] = karabo_id - thisconf["karabo-da"] = karabo_das_for_id - - run_config = [] - for typ, run in run_mapping.items(): - if "no_mapping" in typ: - run_config.append(run) - else: - thisconf[typ] = run - if len(run_config): - thisconf["runs"] = ",".join(run_config) - - detectors[karabo_id] = thisconf - else: - logging.warning( - "File list for %s in proposal %s runs %s is empty", - karabo_id, proposal, wait_runs - ) - if len(detectors) == 0: - logging.warning(Errors.NOTHING_TO_DO.format(wait_runs)) - return - - await self.launch_jobs( - wait_runs, 0, detectors, 'dark', instrument, cycle, proposal, - request_time, - ) - # END of part to run after sending reply - - asyncio.ensure_future(_continue()) - - msg = Success.QUEUED.format(proposal, wait_runs) - logging.debug(msg) - return msg.encode() - async def handle_dark_request( self, rid, _sase, instrument, cycle, proposal, karabo_id, operation_mode, *extra -- GitLab