瀏覽代碼

HUE-8758 [catalog] Refactoring for connectors and test for show_table

Romain 6 年之前
父節點
當前提交
291fde7b1c

+ 3 - 3
apps/beeswax/src/beeswax/server/dbms.py

@@ -109,7 +109,6 @@ def get_query_server_config(name='beeswax', connector=None):
         'QUERY_TIMEOUT_S': 15 * 60,
     }
   else:
-    cluster_config = get_cluster_config(cluster)
     if name == "llap":
       activeEndpoint = cache.get('llap')
       if activeEndpoint is None:
@@ -162,7 +161,7 @@ def get_query_server_config(name='beeswax', connector=None):
 
     if name == 'impala':
       from impala.dbms import get_query_server_config as impala_query_server_config
-      query_server = impala_query_server_config(cluster_config=cluster_config)
+      query_server = impala_query_server_config()
     elif name == 'hms':
       kerberos_principal = hive_site.get_hiveserver2_kerberos_principal(HIVE_SERVER_HOST.get())
       query_server = {
@@ -191,7 +190,8 @@ def get_query_server_config(name='beeswax', connector=None):
           'auth_username': AUTH_USERNAME.get(),
           'auth_password': AUTH_PASSWORD.get()
         }
-    if name == 'sparksql': # Spark SQL is almost the same as Hive
+
+    if name == 'sparksql': # Extends Hive as very similar
       from spark.conf import SQL_SERVER_HOST as SPARK_SERVER_HOST, SQL_SERVER_PORT as SPARK_SERVER_PORT
 
       query_server.update({

+ 35 - 0
apps/metastore/src/metastore/tests.py

@@ -23,6 +23,7 @@ import json
 import logging
 import urllib.request, urllib.parse, urllib.error
 
+from mock import patch, Mock
 from nose.plugins.skip import SkipTest
 from nose.tools import assert_true, assert_equal, assert_false
 
@@ -64,6 +65,40 @@ def _make_query(client, query, submission_type="Execute",
   return res
 
 
+class TestApi():
+
+  def setUp(self):
+    self.client = make_logged_in_client(username="test", groupname="default", recreate=True, is_superuser=False)
+
+    self.user = User.objects.get(username="test")
+
+
+  def test_show_tables(self):
+    with patch('beeswax.server.dbms.get') as get:
+      get.return_value=Mock(
+        get_databases=Mock(
+          return_value=['sfdc']
+        ),
+        get_database=Mock(
+          return_value={}
+        ),
+        get_tables_meta=Mock(
+          return_value=[{'name': 'customer'}, {'name': 'opportunities'}]
+        ),
+        server_name='hive'
+      )
+
+      response = self.client.post('/metastore/tables/sfdc?format=json')
+
+      get.assert_called()
+
+    assert_equal(response.status_code, 200)
+    data = json.loads(response.content)
+    assert_equal(data['status'], 0)
+    assert_equal(data['table_names'], ['customer', 'opportunities'])
+    assert_equal(data['tables'], [{'name': 'customer'}, {'name': 'opportunities'}])
+
+
 class TestMetastoreWithHadoop(BeeswaxSampleProvider):
   requires_hadoop = True
   integration = True

+ 1 - 1
apps/metastore/src/metastore/views.py

@@ -728,7 +728,7 @@ def _get_db(user, source_type=None, cluster=None):
 
   name = source_type if source_type != 'hive' else 'beeswax'
 
-  query_server = get_query_server_config(name=name, cluster=cluster)
+  query_server = get_query_server_config(name=name, connector=cluster)
   return dbms.get(user, query_server)