Browse Source

HUE-9000 [editor] Skeleton of adding optional optimizer query upload

Romain 6 years ago
parent
commit
533379d05b

+ 3 - 0
desktop/core/src/desktop/js/apps/notebook2/execution/executable.js

@@ -206,6 +206,9 @@ export default class Executable {
           this.result.fetchRows();
         }
       }
+      if (true || this.isOptimizerEnabled()) {
+        huePubSub.publish('editor.upload.query', this.history.id);
+      }
 
       this.checkStatus();
       this.logs.fetchLogs();

+ 0 - 7
desktop/libs/metadata/src/metadata/optimizer/dummy_client.py

@@ -16,12 +16,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-from builtins import object
-import json
 import logging
-import os
-import time
-import uuid
 
 from django.utils.translation import ugettext as _
 
@@ -32,8 +27,6 @@ from metadata.optimizer.base import Api, _get_table_name
 
 LOG = logging.getLogger(__name__)
 
-_JSON_CONTENT_TYPE = 'application/json'
-
 
 class DummyClient(Api):
 

+ 27 - 4
desktop/libs/metadata/src/metadata/optimizer/optimizer_client.py

@@ -173,7 +173,7 @@ class OptimizerClient(object):
       }
       parameters.update(extra_parameters)
       response = self._api.call_api('upload', parameters)
-      status = json.loads(response)
+      status = json.loads(response) # Workaround getting back a string
 
       status['count'] = len(data)
       return status
@@ -190,16 +190,39 @@ class OptimizerClient(object):
   # Sentry permissions work bottom to top.
   # @check_privileges
   def top_tables(self, workfloadId=None, database_name='default', page_size=1000, startingToken=None):
-    return self._call('getTopTables', {'tenant' : self._tenant_id, 'dbName': database_name.lower(), 'pageSize': page_size, 'startingToken': startingToken})
+    return self._call(
+      'getTopTables', {
+        'tenant' : self._tenant_id,
+        'dbName': database_name.lower(),
+        'pageSize': page_size,
+        'startingToken': startingToken
+      }
+    )
 
 
   @check_privileges
   def table_details(self, database_name, table_name, page_size=100, startingToken=None):
-    return self._call('getTablesDetail', {'tenant' : self._tenant_id, 'dbName': database_name.lower(), 'tableName': table_name.lower(), 'pageSize': page_size, 'startingToken': startingToken})
+    return self._call(
+      'getTablesDetail', {
+        'tenant' : self._tenant_id,
+        'dbName': database_name.lower(),
+        'tableName': table_name.lower(),
+        'pageSize': page_size,
+        'startingToken': startingToken
+      }
+    )
 
 
   def query_compatibility(self, source_platform, target_platform, query, page_size=100, startingToken=None):
-    return self._call('getQueryCompatible', {'tenant' : self._tenant_id, 'query': query, 'sourcePlatform': source_platform, 'targetPlatform': target_platform, 'startingToken': startingToken})
+    return self._call(
+      'getQueryCompatible', {
+        'tenant' : self._tenant_id,
+        'query': query,
+        'sourcePlatform': source_platform,
+        'targetPlatform': target_platform,
+        'startingToken': startingToken
+      }
+    )
 
 
   def query_risk(self, query, source_platform, db_name, page_size=100, startingToken=None):

+ 0 - 2
desktop/libs/metadata/src/metadata/optimizer_api.py

@@ -111,7 +111,6 @@ def top_tables(request):
 
   data = api.top_tables(database_name=database, page_size=limit)
 
-
   if OPTIMIZER.APPLY_SENTRY_PERMISSIONS.get():
     checker = get_checker(user=self.user)
     action = 'SELECT'
@@ -122,7 +121,6 @@ def top_tables(request):
 
     data['results'] = list(checker.filter_objects(data['results'], action, key=getkey))
 
-
   tables = [{
       'database': _get_table_name(table['name'])['database'],
       'name': _get_table_name(table['name'])['table'],