From 92d6a18c8a3d0c22b4994cb02d1fa400ae43fc46 Mon Sep 17 00:00:00 2001 From: xgaia Date: Mon, 6 Jan 2020 12:10:08 +0100 Subject: [PATCH] display error when ts is not accessible --- askomics/libaskomics/SparqlQueryLauncher.py | 56 ++++++++++++--------- askomics/react/src/routes/ask/ask.jsx | 1 + 2 files changed, 33 insertions(+), 24 deletions(-) diff --git a/askomics/libaskomics/SparqlQueryLauncher.py b/askomics/libaskomics/SparqlQueryLauncher.py index 49887ec3..45a9e114 100644 --- a/askomics/libaskomics/SparqlQueryLauncher.py +++ b/askomics/libaskomics/SparqlQueryLauncher.py @@ -1,4 +1,7 @@ import time +import urllib +import traceback +import sys from SPARQLWrapper import JSON, SPARQLWrapper @@ -275,30 +278,35 @@ def execute_query(self, query): TYPE result """ - start_time = time.time() - self.endpoint.setQuery(query) - - # Debug - if self.settings.getboolean('askomics', 'debug'): - self.log.debug("Launch query on {} ({})".format(self.triplestore, self.url_endpoint)) - self.log.debug(query) - - # Update - if self.endpoint.isSparqlUpdateRequest(): - self.endpoint.setMethod('POST') - # Virtuoso hack - if self.triplestore == 'virtuoso': - self.endpoint.queryType = "SELECT" - - results = self.endpoint.query() - self.query_time = time.time() - start_time - # Select - else: - self.endpoint.setReturnFormat(JSON) - results = self.endpoint.query().convert() - self.query_time = time.time() - start_time - # self.log.debug(results) - return results + try: + start_time = time.time() + self.endpoint.setQuery(query) + + # Debug + if self.settings.getboolean('askomics', 'debug'): + self.log.debug("Launch query on {} ({})".format(self.triplestore, self.url_endpoint)) + self.log.debug(query) + + # Update + if self.endpoint.isSparqlUpdateRequest(): + self.endpoint.setMethod('POST') + # Virtuoso hack + if self.triplestore == 'virtuoso': + self.endpoint.queryType = "SELECT" + + results = self.endpoint.query() + self.query_time = time.time() - start_time + # Select + else: + self.endpoint.setReturnFormat(JSON) + results = self.endpoint.query().convert() + self.query_time = time.time() - start_time + # self.log.debug(results) + return results + + except urllib.error.URLError: + traceback.print_exc(file=sys.stdout) + raise urllib.error.URLError("Triplestore is not accessible") def parse_results_old(self, json_results): """Parse result of sparql query diff --git a/askomics/react/src/routes/ask/ask.jsx b/askomics/react/src/routes/ask/ask.jsx index 2a7cf4a9..cb83f1bd 100644 --- a/askomics/react/src/routes/ask/ask.jsx +++ b/askomics/react/src/routes/ask/ask.jsx @@ -18,6 +18,7 @@ export default class Ask extends Component { error: false, errorMessage: null, startpoints: [], + endpoints: [], selected: null, startSession: false, publicQueries: [],