Browse Source

HUE-8208 [importer] Add a list of stream in the input list

Romain Rigaux 7 years ago
parent
commit
a61d1bcd2a

+ 17 - 4
desktop/libs/indexer/src/indexer/templates/importer.mako

@@ -325,12 +325,19 @@ ${ assist.assistPanel() }
           <!-- ko if: createWizard.source.inputFormat() == 'kafka' -->
           <!-- ko if: createWizard.source.inputFormat() == 'kafka' -->
             <div class="control-group">
             <div class="control-group">
               <label class="control-label"><div>${ _('Topics') }</div>
               <label class="control-label"><div>${ _('Topics') }</div>
-                ##<input type="text" class="input-xxlarge" data-bind="value: createWizard.source.kafkaTopics">
                 <select data-bind="options: createWizard.source.kafkaTopics,
                 <select data-bind="options: createWizard.source.kafkaTopics,
                        value: createWizard.source.kafkaSelectedTopics,
                        value: createWizard.source.kafkaSelectedTopics,
                        optionsCaption: 'Choose...'"
                        optionsCaption: 'Choose...'"
                        placeholder="${ _('The list of topics to consume, e.g. orders,returns') }"></select>
                        placeholder="${ _('The list of topics to consume, e.g. orders,returns') }"></select>
-                ##<select data-bind="selectize: createWizard.source.kafkaTopics, value: createWizard.source.kafkaSelectedTopics" placeholder="${ _('The list of topics to consume, e.g. orders,returns') }"></select>
+                ## <select data-bind="selectize: createWizard.source.kafkaTopics, value: createWizard.source.kafkaSelectedTopics" placeholder="${ _('The list of topics to consume, e.g. orders,returns') }"></select>
+              </label>
+              
+              <label class="control-label"><div>${ _('Field names') }</div>
+                <input type="text" class="input-xxlarge" data-bind="value: createWizard.source.kafkaFieldNames" placeholder="${ _('The list of fields to consume, e.g. orders,returns') }">
+              </label>
+
+              <label class="control-label"><div>${ _('Field types') }</div>
+                <input type="text" class="input-xxlarge" data-bind="value: createWizard.source.kafkaFieldTypes" placeholder="${ _('The list of topics to consume, e.g. orders,returns') }">
               </label>
               </label>
             </div>
             </div>
           <!-- /ko -->
           <!-- /ko -->
@@ -1524,13 +1531,19 @@ ${ assist.assistPanel() }
       self.draggedQuery = ko.observable();
       self.draggedQuery = ko.observable();
 
 
       // Kafka
       // Kafka
-      self.kafkaTopics = ko.observable([]);
+      self.kafkaTopics = ko.observableArray();
       self.kafkaSelectedTopics = ko.observable('');
       self.kafkaSelectedTopics = ko.observable('');
       self.kafkaSelectedTopics.subscribe(function(newValue) {
       self.kafkaSelectedTopics.subscribe(function(newValue) {
         if (newValue) {
         if (newValue) {
           viewModel.createWizard.guessFieldTypes();
           viewModel.createWizard.guessFieldTypes();
         }
         }
       });
       });
+      self.kafkaFieldType = ko.observable('delimited'); // delimited, bytearray
+      self.kafkaFieldDelimiter = ko.observable(',');
+      self.kafkaFieldNames = ko.observable('');
+      self.kafkaFieldTypes = ko.observable('');
+      self.kafkaFieldSchemaPath = ko.observable('');
+
 
 
       // Public streams
       // Public streams
       self.publicStreams = ko.observable([
       self.publicStreams = ko.observable([
@@ -1575,7 +1588,7 @@ ${ assist.assistPanel() }
         } else if (self.inputFormat() == 'manual') {
         } else if (self.inputFormat() == 'manual') {
           return true;
           return true;
         } else if (self.inputFormat() == 'kafka') {
         } else if (self.inputFormat() == 'kafka') {
-          return self.kafkaSelectedTopics().length > 0;
+          return self.kafkaSelectedTopics() && self.kafkaSelectedTopics().length > 0;
         } else if (self.inputFormat() == 'streams') {
         } else if (self.inputFormat() == 'streams') {
           return self.publicStreamsSelection() == 'SFDC' ? (
           return self.publicStreamsSelection() == 'SFDC' ? (
               self.publicStreamsUsername().length > 0
               self.publicStreamsUsername().length > 0

+ 1 - 0
desktop/libs/metadata/src/metadata/kafka_client.py

@@ -25,6 +25,7 @@ from django.utils.translation import ugettext as _
 from desktop.lib.rest.http_client import RestException, HttpClient
 from desktop.lib.rest.http_client import RestException, HttpClient
 from desktop.lib.rest.resource import Resource
 from desktop.lib.rest.resource import Resource
 from desktop.lib.i18n import smart_unicode
 from desktop.lib.i18n import smart_unicode
+
 from metadata.conf import KAFKA
 from metadata.conf import KAFKA