浏览代码

HUE-6944 [indexer] Support manual creation of collection

Romain Rigaux 8 年之前
父节点
当前提交
fb74116b5d
共有 2 个文件被更改,包括 11 次插入8 次删除
  1. 7 5
      desktop/libs/indexer/src/indexer/api3.py
  2. 4 3
      desktop/libs/indexer/src/indexer/templates/importer.mako

+ 7 - 5
desktop/libs/indexer/src/indexer/api3.py

@@ -180,9 +180,10 @@ def _create_index(user, fs, client, source, destination, index_name):
   df = destination['indexerPrimaryKey'] and destination['indexerPrimaryKey'][0] or None
   df = destination['indexerPrimaryKey'] and destination['indexerPrimaryKey'][0] or None
   kwargs = {}
   kwargs = {}
 
 
-  stats = fs.stats(source["path"])
-  if stats.size > MAX_UPLOAD_SIZE:
-    raise PopupException(_('File size is too large to handle!'))
+  if source['inputFormat'] != 'manual':
+    stats = fs.stats(source["path"])
+    if stats.size > MAX_UPLOAD_SIZE:
+      raise PopupException(_('File size is too large to handle!'))
 
 
   indexer = MorphlineIndexer(user, fs)
   indexer = MorphlineIndexer(user, fs)
   fields = indexer.get_field_list(destination['columns'])
   fields = indexer.get_field_list(destination['columns'])
@@ -211,8 +212,9 @@ def _create_index(user, fs, client, source, destination, index_name):
         df=df
         df=df
     )
     )
 
 
-  data = fs.read(source["path"], 0, MAX_UPLOAD_SIZE)
-  client.index(name=index_name, data=data, **kwargs)
+  if source['inputFormat'] != 'manual':
+    data = fs.read(source["path"], 0, MAX_UPLOAD_SIZE)
+    client.index(name=index_name, data=data, **kwargs)
 
 
   return {'status': 0, 'on_success_url': reverse('search:browse', kwargs={'name': index_name})}
   return {'status': 0, 'on_success_url': reverse('search:browse', kwargs={'name': index_name})}
 
 

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

@@ -484,7 +484,7 @@ ${ assist.assistPanel() }
           <h4>${_('Properties')}</h4>
           <h4>${_('Properties')}</h4>
           <div class="card-body">
           <div class="card-body">
             <div class="control-group">
             <div class="control-group">
-              <label class="checkbox inline-block" title="${ _('Execute a cluster job to index a large dataset.') }">
+              <label class="checkbox inline-block" title="${ _('Execute a cluster job to index a large dataset.') }" data-bind="visible: $root.createWizard.source.inputFormat() != 'manual'">
                 <input type="checkbox" data-bind="checked: indexerRunJob"> ${_('Index with a job')}
                 <input type="checkbox" data-bind="checked: indexerRunJob"> ${_('Index with a job')}
               </label>
               </label>
 
 
@@ -562,6 +562,7 @@ ${ assist.assistPanel() }
                   <!-- /ko -->
                   <!-- /ko -->
 
 
                   <!-- ko if: $parent.outputFormat() == 'index' -->
                   <!-- ko if: $parent.outputFormat() == 'index' -->
+                    <a class="pointer pull-right margin-top-20" data-bind="click: function() { $parent.columns.remove($data); }"><i class="fa fa-minus"></i></a>
                     <div data-bind="template: { name: 'index-field-template', data: $data }" class="margin-top-10 field inline-block index-field"></div>
                     <div data-bind="template: { name: 'index-field-template', data: $data }" class="margin-top-10 field inline-block index-field"></div>
                     <div class="clearfix"></div>
                     <div class="clearfix"></div>
                   <!-- /ko -->
                   <!-- /ko -->
@@ -569,7 +570,7 @@ ${ assist.assistPanel() }
 
 
                 <div class="clearfix"></div>
                 <div class="clearfix"></div>
 
 
-                <!-- ko if: outputFormat() == 'table' -->
+                <!-- ko if: outputFormat() == 'table' || outputFormat() == 'index' -->
                   <a data-bind="click: function() { columns.push($root.loadDefaultField({})); }" class="pointer" title="${_('Add Field')}"><i class="fa fa-plus"></i> ${_('Add Field')}</a>
                   <a data-bind="click: function() { columns.push($root.loadDefaultField({})); }" class="pointer" title="${_('Add Field')}"><i class="fa fa-plus"></i> ${_('Add Field')}</a>
                 <!-- /ko -->
                 <!-- /ko -->
               <!-- /ko -->
               <!-- /ko -->
@@ -1475,7 +1476,7 @@ ${ assist.assistPanel() }
         var validIndexFields = self.destination.outputFormat() != 'index' || ($.grep(self.destination.columns(), function(column) {
         var validIndexFields = self.destination.outputFormat() != 'index' || ($.grep(self.destination.columns(), function(column) {
             return ! (/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(column.name()) && column.name() != '_version_');
             return ! (/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(column.name()) && column.name() != '_version_');
           }).length == 0
           }).length == 0
-        );
+        ) || self.destination.indexerConfigSet();
 
 
         return self.isValidDestination() && validFields && validTableColumns && validIndexFields && isTargetAlreadyExisting && isValidTable;
         return self.isValidDestination() && validFields && validTableColumns && validIndexFields && isTargetAlreadyExisting && isValidTable;
       });
       });