Browse Source

[optimize] Avoid bubbling-up errors when no activated (#1937)

Romain Rigaux 4 years ago
parent
commit
11bc84b81a

+ 1 - 1
desktop/libs/metadata/src/metadata/optimizer/optimizer_client.py

@@ -279,7 +279,7 @@ class OptimizerClient(object):
     predictions = response.get('predictions', [])
 
     return {
-      'statement': predictions[0]['statement']
+      'statement': predictions and predictions[0]['statement']
     }
 
 

+ 5 - 1
desktop/libs/metadata/src/metadata/optimizer/optimizer_rest_client.py

@@ -50,7 +50,11 @@ class OptimizerRestClient(OptimizerClient):
 
 
   def _call(self, path, data):
-    return self._root.post(path, data=json.dumps(data), contenttype=_JSON_CONTENT_TYPE)
+    try:
+      return self._root.post(path, data=json.dumps(data), contenttype=_JSON_CONTENT_TYPE)
+    except:
+      LOG.exception('Error calling Optimize service')
+      return {}
 
 
 class MockApiLib():

+ 1 - 1
desktop/libs/metadata/src/metadata/optimizer_api.py

@@ -134,7 +134,7 @@ def top_tables(request):
       'column_count': table['columnCount'],
       'total': table['total'],
     }
-    for table in data['results']
+    for table in data.get('results', [])
   ]
 
   response['top_tables'] = tables