Pārlūkot izejas kodu

HUE-6850 [importer] Rely on default SQL editor type for creating tables

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

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

@@ -29,11 +29,12 @@ from django.views.decorators.http import require_http_methods
 from desktop.context_processors import get_app_name
 from desktop.lib.django_util import JsonResponse, render
 from desktop.lib.exceptions_renderable import PopupException
-from desktop.models import Document2, ClusterConfig
+from desktop.models import Document2, get_cluster_config
 
 from beeswax.design import hql_query
 from beeswax.models import SavedQuery
 from beeswax.server import dbms
+from beeswax.server.dbms import get_query_server_config
 from filebrowser.views import location_to_url
 from metadata.conf import has_optimizer, has_navigator, get_optimizer_url, get_navigator_url
 from notebook.connectors.base import Notebook, QueryError
@@ -41,7 +42,6 @@ from notebook.models import make_notebook
 
 from metastore.forms import LoadDataForm, DbForm
 from metastore.settings import DJANGO_APPS
-from beeswax.server.dbms import get_query_server_config
 
 
 LOG = logging.getLogger(__name__)
@@ -660,8 +660,7 @@ def has_write_access(user):
 
 def _get_db(user, source_type=None):
   if source_type is None:
-    default_sql_interpreter = ClusterConfig(user).get_config()['default_sql_interpreter']
-    source_type = default_sql_interpreter['type']
+    source_type = get_cluster_config(user)['default_sql_interpreter']
 
   query_server = get_query_server_config(name=source_type if source_type != 'hive' else 'beeswax')
   return dbms.get(user, query_server)

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

@@ -1564,7 +1564,7 @@ class ClusterConfig():
     main_button_action = self.get_main_quick_action(app_config)
 
     if main_button_action.get('is_sql'):
-      default_sql_interpreter = main_button_action
+      default_sql_interpreter = main_button_action['type']
     else:
       default_sql_interpreter = editors and editors['default_sql_interpreter']
 

+ 1 - 1
desktop/libs/indexer/src/indexer/api3.py

@@ -34,7 +34,7 @@ from indexer.file_format import HiveFormat
 from indexer.fields import Field
 from indexer.indexers.morphline import MorphlineIndexer
 from indexer.indexers.sql import SQLIndexer
-from indexer.solr_client import SolrClient, SolrClientException, MAX_UPLOAD_SIZE
+from indexer.solr_client import SolrClient, MAX_UPLOAD_SIZE
 
 
 LOG = logging.getLogger(__name__)

+ 3 - 2
desktop/libs/indexer/src/indexer/indexers/sql.py

@@ -48,6 +48,7 @@ class SQLIndexer(object):
     final_table_name = table_name
 
     table_format = destination['tableFormat']
+    source_type = source['apiHelperType']
 
     columns = destination['columns']
     partition_columns = destination['partitionColumns']
@@ -139,8 +140,8 @@ class SQLIndexer(object):
             'comment': comment,
             'row_format': row_format,
             'field_terminator': field_delimiter,
-            'collection_terminator': collection_delimiter, # Only if Hive
-            'map_key_terminator': map_delimiter, # Only if Hive
+            'collection_terminator': collection_delimiter if source_type == 'hive' else None,
+            'map_key_terminator': map_delimiter if source_type == 'hive' else None,
             'serde_name': serde_name,
             'serde_properties': serde_properties,
             'file_format': file_format,

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

@@ -1274,7 +1274,7 @@ ${ assist.assistPanel() }
       self.table.subscribe(function(val) {
         resizeElements();
       });
-      self.apiHelperType = ko.observable('${ sourceType }');
+      self.apiHelperType = ko.observable('${ source_type }');
 
       // Queries
       self.query = ko.observable('');
@@ -1385,7 +1385,7 @@ ${ assist.assistPanel() }
       };
       self.name.subscribe(self.nameChanged);
 
-      self.apiHelperType = ko.observable('${ sourceType }');
+      self.apiHelperType = ko.observable('${ source_type }');
 
       self.description = ko.observable('');
       self.outputFormat = ko.observable(wizard.prefill.target_type() || 'table');

+ 3 - 2
desktop/libs/indexer/src/indexer/views.py

@@ -100,7 +100,8 @@ def importer_prefill(request, source_type, target_type, target_path=None):
 
 
 def _importer(request, prefill):
-  config = get_cluster_config(user=request.user)
+  default_sql_interpreter = get_cluster_config(request.user)['default_sql_interpreter']
+  source_type = default_sql_interpreter['type']
 
   return render('importer.mako', request, {
       'is_embeddable': request.GET.get('is_embeddable', False),
@@ -109,7 +110,7 @@ def _importer(request, prefill):
       '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),
-      'sourceType': 'hive'  # TODO check Impala, config.get('default_sql_interpreter', 'hive')
+      'source_type': source_type
   })