Эх сурвалжийг харах

HUE-6356 [importer] Use correct default SQL source for table destinations

Romain Rigaux 8 жил өмнө
parent
commit
a0a7965

+ 2 - 2
desktop/core/src/desktop/api2.py

@@ -43,7 +43,7 @@ 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, \
-  UserPreferences, get_user_preferences, set_user_preferences, USER_PREFERENCE_CLUSTER, get_config
+  UserPreferences, get_user_preferences, set_user_preferences, USER_PREFERENCE_CLUSTER, get_cluster_config
 
 
 LOG = logging.getLogger(__name__)
@@ -72,7 +72,7 @@ def get_config(request):
     set_user_preferences(request.user, USER_PREFERENCE_CLUSTER, request.POST.get(USER_PREFERENCE_CLUSTER))
 
 
-  config = get_config(request.user)
+  config = get_cluster_config(request.user)
   config['status'] = 0
 
   return JsonResponse(config)

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

@@ -1534,7 +1534,7 @@ class Document2Permission(models.Model):
     return self.groups.filter(id__in=user.groups.all()).exists() or user in self.users.all()
 
 
-def get_config(user):
+def get_cluster_config(user):
   cluster_type = Cluster(user).get_type()
   cluster_config = ClusterConfig(user, cluster_type=cluster_type)
 
@@ -1556,17 +1556,19 @@ class ClusterConfig():
 
   def get_config(self):
     app_config = self.get_apps()
+    editors = app_config.get('editor')
   
     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'),
+          editors,
           app_config.get('dashboard'),
           app_config.get('scheduler')
         ] if app is not None
       ],
+      'default_sql_interpreter': editors and editors['default_sql_interpreter']
     }
 
 
@@ -1634,6 +1636,7 @@ class ClusterConfig():
         'displayName': interpreter['name'],
         'tooltip': _('%s Query') % interpreter['type'].title(),
         'page': '/editor/?type=%(type)s' % interpreter,
+        'is_sql': interpreter['is_sql']
       })
 
     if interpreters:
@@ -1642,7 +1645,7 @@ class ClusterConfig():
         'displayName': _('Editor'),
         'interpreters': interpreters,
         'page': interpreters[0]['page'],
-        'default_sql_interpreter': next([interpreter['name'] for interpreter in interpreters if interpreter['is_sql']], 'hive')
+        'default_sql_interpreter': next((interpreter['type'] for interpreter in interpreters if interpreter['is_sql']), 'hive')
       }
     else:
       return None

+ 3 - 3
desktop/libs/indexer/src/indexer/templates/importer.mako

@@ -1200,7 +1200,7 @@ ${ assist.assistPanel() }
       self.table.subscribe(function(val) {
         resizeElements();
       });
-      self.apiHelperType = ko.observable('hive');
+      self.apiHelperType = ko.observable('${ sourceType }');
 
       // Queries
       self.query = ko.observable('');
@@ -1318,7 +1318,7 @@ ${ assist.assistPanel() }
         resizeElements();
       });
 
-      self.apiHelperType = ko.observable('hive');
+      self.apiHelperType = ko.observable('${ sourceType }');
 
       self.description = ko.observable('');
       self.outputFormat = ko.observable(wizard.prefill.target_type() || 'table');
@@ -1676,7 +1676,7 @@ ${ assist.assistPanel() }
                   var snippet = self.editorVM.selectedNotebook().snippets()[0]; // Could be native to editor at some point
                   if (! snippet.result.handle().has_more_statements) {
                     if (self.editorVM.selectedNotebook().onSuccessUrl()) {
-                      huePubSub.publish('assist.clear.db.cache', {sourceType: 'hive'});
+                      huePubSub.publish('assist.clear.db.cache', {sourceType: self.source.apiHelperType()});
                       window.location.href = self.editorVM.selectedNotebook().onSuccessUrl();
                     }
                   } else { // Perform last DROP statement execute

+ 4 - 1
desktop/libs/indexer/src/indexer/views.py

@@ -22,6 +22,7 @@ from django.utils.translation import ugettext as _
 
 from desktop.lib.django_util import JsonResponse, render
 from desktop.lib.exceptions_renderable import PopupException
+from desktop.models import get_cluster_config
 
 from indexer.controller2 import IndexController
 from indexer.fields import FIELD_TYPES, Field
@@ -104,6 +105,7 @@ def importer_prefill(request, source_type, target_type, target_path=None):
 
 
 def _importer(request, prefill):
+  config = get_cluster_config(user=request.user)
 
   return render('importer.mako', request, {
       'is_embeddable': request.GET.get('is_embeddable', False),
@@ -111,7 +113,8 @@ def _importer(request, prefill):
       'operators_json' : json.dumps([operator.to_dict() for operator in OPERATORS]),
       'file_types_json' : json.dumps([format_.format_info() for format_ in get_file_indexable_format_types()]),
       'default_field_type' : json.dumps(Field().to_dict()),
-      'prefill' : json.dumps(prefill)
+      'prefill' : json.dumps(prefill),
+      'sourceType': config.get('default_sql_interpreter', 'hive')
   })