def _process_query(self, endpoint_name, start): self.logger.log(logging.DEBUG, f'Processing query {endpoint_name}...') try: self._add_CORS_header() if not self.request.body: self.request.body = {} # extract request data explicitly for caching purpose request_json = self.request.body.decode('utf-8') # Sanitize input data data = self._sanitize_request_data(json.loads(request_json)) except Exception as e: err_msg = format_exception(e, "Invalid Input Data") self.error_out(400, err_msg) return try: (po_name, _) = self._get_actual_model( endpoint_name) # po_name is None if self.python_service.ps.query_objects.get( # endpoint_name) is None if not po_name: self.error_out( 404, 'UnknownURI', info=f'Endpoint "{endpoint_name}" does not exist') return po_obj = self.python_service.ps.query_objects.get(po_name) if not po_obj: self.error_out(404, 'UnknownURI', info=f'Endpoint "{po_name}" does not exist') return if po_name != endpoint_name: self.logger.log( logging.INFO, f'Querying actual model: po_name={po_name}') uid = _get_uuid() # record query w/ request ID in query log qry = Query(po_name, request_json) gls_time = 0 # send a query to PythonService and return (gls_time, _) = self._handle_result(po_name, data, qry, uid) # if error occurred, GLS time is None. if not gls_time: return except Exception as e: err_msg = format_exception(e, 'process query') self.error_out(500, 'Error processing query', info=err_msg) return
def _process_query(self, endpoint_name, start): try: self._add_CORS_header() if not self.request.body: self.request.body = {} # extract request data explicitly for caching purpose request_json = self.request.body.decode('utf-8') # Sanitize input data data = _sanitize_request_data(simplejson.loads(request_json)) except Exception as e: err_msg = format_exception(e, "Invalid Input Data") self.error_out(400, err_msg) return try: (po_name, all_endpoint_names) = self._get_actual_model(endpoint_name) # po_name is None if self.py_handler.ps.query_objects.get( # endpoint_name) is None if not po_name: log_error("UnknownURI", endpoint_name=endpoint_name) self.error_out(404, 'UnknownURI', info="Endpoint '%s' does not exist" % endpoint_name) return po_obj = self.py_handler.ps.query_objects.get(po_name) if not po_obj: log_error("UnknownURI", endpoint_name=po_name) self.error_out(404, 'UnknownURI', info="Endpoint '%s' does not exist" % po_name) return if po_name != endpoint_name: log_info("Querying actual model", po_name=po_name) uid = _get_uuid() # record query w/ request ID in query log qry = Query(po_name, request_json) gls_time = 0 # send a query to PythonService and return (gls_time, result) = self._handle_result(po_name, data, qry, uid) # if error occurred, GLS time is None. if not gls_time: return except Exception as e: err_msg = format_exception(e, 'process query') self.error_out(500, 'Error processing query', info=err_msg) return