Browse Source

HUE-6245 [core] Move get current cluster config logic to models

Add notion of default SQL interpreter.
Romain Rigaux 8 năm trước cách đây
mục cha
commit
a47a80b

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

@@ -49,7 +49,6 @@ def get(user, query_server=None):
 
   if query_server is None:
     cluster_type = Cluster(user).get_type()
-    print cluster_type
     if cluster_type == 'impalaui':
       kwargs = {'name': 'impala'}
     else:

+ 3 - 6
desktop/core/src/desktop/api2.py

@@ -42,9 +42,8 @@ from desktop.lib.django_util import JsonResponse
 from desktop.lib.exceptions_renderable import PopupException
 from desktop.lib.export_csvxls import make_response
 from desktop.lib.i18n import smart_str, force_unicode
-from desktop.models import Document2, Document, Directory, FilesystemException, uuid_default, ClusterConfig,\
-  UserPreferences, get_user_preferences, set_user_preferences, USER_PREFERENCE_CLUSTER,\
-  Cluster
+from desktop.models import Document2, Document, Directory, FilesystemException, uuid_default, \
+  UserPreferences, get_user_preferences, set_user_preferences, USER_PREFERENCE_CLUSTER, get_config
 
 
 LOG = logging.getLogger(__name__)
@@ -72,10 +71,8 @@ def get_config(request):
   if request.POST.get(USER_PREFERENCE_CLUSTER):
     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)
 
-  config = cluster_config.get_config()
+  config = get_config(request.user)
   config['status'] = 0
 
   return JsonResponse(config)

+ 9 - 1
desktop/core/src/desktop/models.py

@@ -1534,6 +1534,13 @@ class Document2Permission(models.Model):
     return self.groups.filter(id__in=user.groups.all()).exists() or user in self.users.all()
 
 
+def get_config(user):
+  cluster_type = Cluster(user).get_type()
+  cluster_config = ClusterConfig(user, cluster_type=cluster_type)
+
+  return cluster_config.get_config()
+
+
 class ClusterConfig():
 
   def __init__(self, user, apps=None, cluster_type='ini'):
@@ -1634,7 +1641,8 @@ class ClusterConfig():
         'name': 'editor',
         'displayName': _('Editor'),
         'interpreters': interpreters,
-        'page': interpreters[0]['page']
+        'page': interpreters[0]['page'],
+        'default_sql_interpreter': next([interpreter['name'] for interpreter in interpreters if interpreter['is_sql']], 'hive')
       }
     else:
       return None

+ 1 - 1
desktop/core/src/desktop/templates/assist.mako

@@ -954,7 +954,7 @@ from notebook.conf import get_ordered_interpreters
         if (typeof options.sourceTypes === 'undefined') {
           options.sourceTypes = [];
           % for interpreter in get_ordered_interpreters(request.user):
-            % if interpreter["interface"] in ["hiveserver2", "rdbms", "jdbc", "solr"]:
+            % if interpreter["is_sql"]:
               options.sourceTypes.push({
                 type: '${ interpreter["type"] }',
                 name: '${ interpreter["name"] }'

+ 4 - 2
desktop/libs/notebook/src/notebook/conf.py

@@ -61,8 +61,10 @@ def get_ordered_interpreters(user=None):
       "name": interpreters[i].NAME.get(),
       "type": i,
       "interface": interpreters[i].INTERFACE.get(),
-      "options": interpreters[i].OPTIONS.get()}
-      for i in reordered_interpreters
+      "options": interpreters[i].OPTIONS.get(),
+      "is_sql" : interpreters[i].INTERFACE.get() in ["hiveserver2", "rdbms", "jdbc", "solr"]
+    }
+    for i in reordered_interpreters
   ]
 
 

+ 0 - 1
desktop/libs/notebook/src/notebook/views.py

@@ -143,7 +143,6 @@ def browse(request, database, table, partition_spec=None):
   snippet = {'type': request.POST.get('sourceType', 'hive')}
 
   statement = get_api(request, snippet).get_browse_query(snippet, database, table, partition_spec)
-
   editor_type = snippet['type']
 
   if request.method == 'POST':