Pārlūkot izejas kodu

HUE-6245 [cluster] Refactor logic to be contained in the ClusterConfig class

Romain Rigaux 8 gadi atpakaļ
vecāks
revīzija
cf9645d4df

+ 8 - 1
apps/beeswax/src/beeswax/server/dbms.py

@@ -25,6 +25,7 @@ from django.utils.translation import ugettext as _
 
 from desktop.lib.django_util import format_preserving_redirect
 from desktop.lib.parameterization import substitute_variables
+from desktop.models import Cluster
 from filebrowser.views import location_to_url
 
 from beeswax import hive_site
@@ -46,7 +47,13 @@ def get(user, query_server=None):
   global DBMS_CACHE_LOCK
 
   if query_server is None:
-    query_server = get_query_server_config()
+    cluster_type = Cluster(user).get_type()
+    print cluster_type
+    if cluster_type == 'impalaui':
+      kwargs = {'name': 'impala'}
+    else:
+      kwargs = {}
+    query_server = get_query_server_config(**kwargs)
 
   DBMS_CACHE_LOCK.acquire()
   try:

+ 3 - 2
apps/metastore/src/metastore/views.py

@@ -256,8 +256,9 @@ def get_table_metadata(request, database, table):
 
 def describe_table(request, database, table):
   app_name = get_app_name(request)
-  query_server = get_query_server_config(app_name)
-  db = dbms.get(request.user, query_server)
+  #query_server = get_query_server_config(app_name)
+  #db = dbms.get(request.user, query_server)
+  db = dbms.get(request.user)
 
   try:
     table = db.get_table(database, table)

+ 4 - 14
desktop/core/src/desktop/api2.py

@@ -73,22 +73,12 @@ def get_config(request):
     set_user_preferences(request.user, USER_PREFERENCE_CLUSTER, request.POST.get(USER_PREFERENCE_CLUSTER))
 
   cluster_type = Cluster(request.user).get_type()
-
   cluster_config = ClusterConfig(request.user, cluster_type=cluster_type)
-  app_config = cluster_config.get_apps()
 
-  return JsonResponse({
-    'status': 0,
-    'app_config': app_config,
-    'main_button_action': cluster_config.get_main_quick_action(app_config),
-    'button_actions': [
-      app for app in [
-        app_config.get('editor'),
-        app_config.get('dashboard'),
-        app_config.get('scheduler')
-      ] if app is not None
-    ],
-  })
+  config = cluster_config.get_config()
+  config['status'] = 0
+
+  return JsonResponse(config)
 
 
 @api_error_handler

+ 28 - 12
desktop/core/src/desktop/models.py

@@ -1547,6 +1547,34 @@ class ClusterConfig():
     pass
 
 
+  def get_config(self):
+    app_config = self.get_apps()
+  
+    return {
+      'app_config': app_config,
+      'main_button_action': self.get_main_quick_action(app_config),
+      'button_actions': [
+        app for app in [
+          app_config.get('editor'),
+          app_config.get('dashboard'),
+          app_config.get('scheduler')
+        ] if app is not None
+      ],
+    }
+
+
+  def get_apps(self):
+    apps = OrderedDict([app for app in [
+      ('editor', self._get_editor()),
+      ('dashboard', self._get_dashboard()),
+      ('browser', self._get_browser()),
+      ('scheduler', self._get_scheduler()),
+      ('sdkapps', self._get_sdk_apps()),
+    ] if app[1]])
+
+    return apps
+
+
   def get_main_quick_action(self, apps):
     if not apps:
       raise PopupException(_('No permission to any app.'))
@@ -1765,18 +1793,6 @@ class ClusterConfig():
       return None
 
 
-  def get_apps(self):
-    apps = OrderedDict([app for app in [
-      ('editor', self._get_editor()),
-      ('dashboard', self._get_dashboard()),
-      ('browser', self._get_browser()),
-      ('scheduler', self._get_scheduler()),
-      ('sdkapps', self._get_sdk_apps()),
-    ] if app[1]])
-
-    return apps
-
-
 class Cluster():
 
   def __init__(self, user):