Selaa lähdekoodia

[metadata] Add connector param to all the API

Romain Rigaux 4 vuotta sitten
vanhempi
commit
a86eff82c9

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

@@ -79,15 +79,15 @@ class DummyClient(Api):
     return data
 
 
-  def table_details(self, database_name, table_name, page_size=100, startingToken=None):
+  def table_details(self, database_name, table_name, page_size=100, startingToken=None, connector=None):
     return {}
 
 
-  def query_compatibility(self, source_platform, target_platform, query, page_size=100, startingToken=None):
+  def query_compatibility(self, source_platform, target_platform, query, page_size=100, startingToken=None, connector=None):
     return {}
 
 
-  def query_risk(self, query, source_platform, db_name, page_size=100, startingToken=None):
+  def query_risk(self, query, source_platform, db_name, page_size=100, startingToken=None, connector=None):
     hints = []
     response = {}
 
@@ -98,17 +98,17 @@ class DummyClient(Api):
     }
 
 
-  def similar_queries(self, source_platform, query, page_size=100, startingToken=None):
+  def similar_queries(self, source_platform, query, page_size=100, startingToken=None, connector=None):
     raise PopupException(_('Call not supported'))
 
 
-  def top_filters(self, db_tables=None, page_size=100, startingToken=None):
+  def top_filters(self, db_tables=None, page_size=100, startingToken=None, connector=None):
     results = {'results': []}
 
     return results
 
 
-  def top_aggs(self, db_tables=None, page_size=100, startingToken=None):
+  def top_aggs(self, db_tables=None, page_size=100, startingToken=None, connector=None):
     results = {'results': []}
 
     return results
@@ -139,7 +139,7 @@ class DummyClient(Api):
     return results
 
 
-  def top_databases(self, page_size=100, startingToken=None):
+  def top_databases(self, page_size=100, startingToken=None, connector=None):
     results = {'results': []}
 
     return results

+ 14 - 7
desktop/libs/metadata/src/metadata/optimizer/optimizer_client.py

@@ -210,10 +210,11 @@ class OptimizerClient(object):
 
 
   @check_privileges
-  def table_details(self, database_name, table_name, page_size=100, startingToken=None):
+  def table_details(self, database_name, table_name, page_size=100, startingToken=None, connector=None):
     return self._call(
       'getTablesDetail', {
         'tenant': self._tenant_id,
+        'connector': connector,
         'dbName': database_name.lower(),
         'tableName': table_name.lower(),
         'pageSize': page_size,
@@ -222,10 +223,11 @@ class OptimizerClient(object):
     )
 
 
-  def query_compatibility(self, source_platform, target_platform, query, page_size=100, startingToken=None):
+  def query_compatibility(self, source_platform, target_platform, query, page_size=100, startingToken=None, connector=None):
     return self._call(
       'getQueryCompatible', {
         'tenant': self._tenant_id,
+        'connector': connector,
         'query': query,
         'sourcePlatform': source_platform,
         'targetPlatform': target_platform,
@@ -234,10 +236,11 @@ class OptimizerClient(object):
     )
 
 
-  def query_risk(self, query, source_platform, db_name, page_size=100, startingToken=None):
+  def query_risk(self, query, source_platform, db_name, page_size=100, startingToken=None, connector=None):
     response = self._call(
       'getQueryRisk', {
         'tenant': self._tenant_id,
+        'connector': connector,
         'query': _clean_query(query),
         'dbName': db_name,
         'sourcePlatform': source_platform,
@@ -257,11 +260,12 @@ class OptimizerClient(object):
       'noDDL': response.get('noDDL', []),
     }
 
-  def similar_queries(self, source_platform, query, page_size=100, startingToken=None):
+  def similar_queries(self, source_platform, query, page_size=100, startingToken=None, connector=None):
     if is_admin(self.user):
       return self._call(
         'getSimilarQueries', {
           'tenant': self._tenant_id,
+          'connector': connector,
           'sourcePlatform': source_platform,
           'query': query,
           'pageSize': page_size,
@@ -273,9 +277,10 @@ class OptimizerClient(object):
 
 
   @check_privileges
-  def top_filters(self, db_tables=None, page_size=100, startingToken=None):
+  def top_filters(self, db_tables=None, page_size=100, startingToken=None, connector=None):
     args = {
       'tenant': self._tenant_id,
+      'connector': connector,
       'pageSize': page_size,
       'startingToken': startingToken
     }
@@ -286,9 +291,10 @@ class OptimizerClient(object):
 
 
   @check_privileges
-  def top_aggs(self, db_tables=None, page_size=100, startingToken=None):
+  def top_aggs(self, db_tables=None, page_size=100, startingToken=None, connector=None):
     args = {
       'tenant': self._tenant_id,
+      'connector': connector,
       'pageSize': page_size,
       'startingToken': startingToken
     }
@@ -353,9 +359,10 @@ class OptimizerClient(object):
     return results
 
 
-  def top_databases(self, page_size=100, startingToken=None):
+  def top_databases(self, page_size=100, startingToken=None, connector=None):
     args = {
       'tenant': self._tenant_id,
+      'connector': connector,
       'pageSize': page_size,
       'startingToken': startingToken
     }

+ 14 - 7
desktop/libs/metadata/src/metadata/optimizer_api.py

@@ -144,12 +144,13 @@ def table_details(request):
   response = {'status': -1}
 
   interface = request.POST.get('interface', OPTIMIZER.INTERFACE.get())
+  connector = json.loads(request.POST.get('connector', '{}'))
   database_name = request.POST.get('databaseName')
   table_name = request.POST.get('tableName')
 
   api = get_api(request.user, interface)
 
-  data = api.table_details(database_name=database_name, table_name=table_name)
+  data = api.table_details(database_name=database_name, table_name=table_name, connector=connector)
 
   if data:
     response['status'] = 0
@@ -166,13 +167,14 @@ def query_compatibility(request):
   response = {'status': -1}
 
   interface = request.POST.get('interface', OPTIMIZER.INTERFACE.get())
+  connector = json.loads(request.POST.get('connector', '{}'))
   source_platform = request.POST.get('sourcePlatform')
   target_platform = request.POST.get('targetPlatform')
   query = request.POST.get('query')
 
   api = get_api(request.user, interface)
 
-  data = api.query_compatibility(source_platform=source_platform, target_platform=target_platform, query=query)
+  data = api.query_compatibility(source_platform=source_platform, target_platform=target_platform, query=query, connector=connector)
 
   if data:
     response['status'] = 0
@@ -189,13 +191,14 @@ def query_risk(request):
   response = {'status': -1}
 
   interface = request.POST.get('interface', OPTIMIZER.INTERFACE.get())
+  connector = json.loads(request.POST.get('connector', '{}'))
   query = json.loads(request.POST.get('query'))
   source_platform = request.POST.get('sourcePlatform')
   db_name = request.POST.get('dbName')
 
   api = get_api(request.user, interface)
 
-  data = api.query_risk(query=query, source_platform=source_platform, db_name=db_name)
+  data = api.query_risk(query=query, source_platform=source_platform, db_name=db_name, connector=connector)
 
   if data:
     response['status'] = 0
@@ -212,12 +215,13 @@ def similar_queries(request):
   response = {'status': -1}
 
   interface = request.POST.get('interface', OPTIMIZER.INTERFACE.get())
+  connector = json.loads(request.POST.get('connector', '{}'))
   source_platform = request.POST.get('sourcePlatform')
   query = json.loads(request.POST.get('query'))
 
   api = get_api(request.user, interface)
 
-  data = api.similar_queries(source_platform=source_platform, query=query)
+  data = api.similar_queries(source_platform=source_platform, query=query, connector=connector)
 
   if data:
     response['status'] = 0
@@ -234,12 +238,13 @@ def top_filters(request):
   response = {'status': -1}
 
   interface = request.POST.get('interface', OPTIMIZER.INTERFACE.get())
+  connector = json.loads(request.POST.get('connector', '{}'))
   db_tables = json.loads(request.POST.get('dbTables', '[]'))
   column_name = request.POST.get('columnName') # Unused
 
   api = get_api(request.user, interface)
 
-  data = api.top_filters(db_tables=db_tables)
+  data = api.top_filters(db_tables=db_tables, connector=connector)
 
   if data:
     response['status'] = 0
@@ -286,11 +291,12 @@ def top_aggs(request):
   response = {'status': -1}
 
   interface = request.POST.get('interface', OPTIMIZER.INTERFACE.get())
+  connector = json.loads(request.POST.get('connector', '{}'))
   db_tables = json.loads(request.POST.get('dbTables', '[]'))
 
   api = get_api(request.user, interface)
 
-  data = api.top_aggs(db_tables=db_tables)
+  data = api.top_aggs(db_tables=db_tables, connector=connector)
 
   if data:
     response['status'] = 0
@@ -307,10 +313,11 @@ def top_databases(request):
   response = {'status': -1}
 
   interface = request.POST.get('interface', OPTIMIZER.INTERFACE.get())
+  connector = json.loads(request.POST.get('connector', '{}'))
 
   api = get_api(request.user, interface)
 
-  data = api.top_databases()
+  data = api.top_databases(connector=connector)
 
   if data:
     response['status'] = 0