Răsfoiți Sursa

HUE-6502 [indexer] Add current datetime to tasks submitted importer

e.g. Like create table
Romain Rigaux 8 ani în urmă
părinte
comite
5a88df1b54

+ 3 - 3
desktop/core/src/desktop/templates/ko_components.mako

@@ -164,7 +164,7 @@ from desktop.views import _ko
     <button class="btn btn-flat pull-right btn-toggle-jobs-panel" title="${_('Task history')}" data-bind="toggle: historyPanelVisible">
       <i class="fa fa-history"></i>
       <div class="jobs-badge" data-bind="text: historyRunningJobs().length, visible: historyRunningJobs().length > 0"></div>
-      <div class="jobs-badge" data-bind="text: historyFinishedJobs().length, visible: historyFinishedJobs().length > 0"></div>
+      ## <div class="jobs-badge" data-bind="text: historyFinishedJobs().length, visible: historyFinishedJobs().length > 0"></div>
     </button>
 
     <div class="jobs-panel history-panel" data-bind="visible: historyPanelVisible" style="display: none;">
@@ -379,9 +379,9 @@ from desktop.views import _ko
                     notebook.uuid()
                 )
             );
-          });
 
-          self.historyPanelVisible(true);
+            self.historyPanelVisible(true);
+          });
         });
       };
 

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

@@ -161,6 +161,7 @@ def importer_submit(request):
   outputFormat = json.loads(request.POST.get('destination', '{}'))['outputFormat']
   destination = json.loads(request.POST.get('destination', '{}'))
   destination['ouputFormat'] = outputFormat # Workaround a very weird bug
+  start_time = json.loads(request.POST.get('start_time', '-1'))
 
   if destination['ouputFormat'] == 'index':
     _convert_format(source["format"], inverse=True)
@@ -168,14 +169,14 @@ def importer_submit(request):
     source['columns'] = destination['columns']
     job_handle = _index(request, source, collection_name)
   elif destination['ouputFormat'] == 'database':
-    job_handle = create_database(request, source, destination)
+    job_handle = create_database(request, source, destination, start_time)
   else:
-    job_handle = _create_table(request, source, destination)
+    job_handle = _create_table(request, source, destination, start_time)
 
   return JsonResponse(job_handle)
 
 
-def create_database(request, source, destination):
+def create_database(request, source, destination, start_time):
   database = destination['name']
   comment = destination['description']
 
@@ -196,16 +197,24 @@ def create_database(request, source, destination):
   editor_type = destination['apiHelperType']
   on_success_url = reverse('metastore:show_tables', kwargs={'database': database})
 
-  notebook = make_notebook(name='Execute and watch', editor_type=editor_type, statement=sql, status='ready', on_success_url=on_success_url, is_task=True)
+  notebook = make_notebook(
+      name='Execute and watch',
+      editor_type=editor_type,
+      statement=sql,
+      status='ready',
+      on_success_url=on_success_url,
+      last_executed=start_time,
+      is_task=True
+  )
   return notebook.execute(request, batch=False)
 
 
-def _create_table(request, source, destination):
-  notebook = _create_table_from_a_file(request, source, destination)
+def _create_table(request, source, destination, start_time=-1):
+  notebook = _create_table_from_a_file(request, source, destination, start_time)
   return notebook.execute(request, batch=False)
 
 
-def _create_table_from_a_file(request, source, destination):
+def _create_table_from_a_file(request, source, destination, start_time=-1):
   if '.' in destination['name']:
     database, table_name = destination['name'].split('.', 1)
   else:
@@ -374,6 +383,7 @@ def _create_table_from_a_file(request, source, destination):
       status='ready',
       database=database,
       on_success_url=on_success_url,
+      last_executed=start_time,
       is_task=True
   )
 

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

@@ -1709,7 +1709,8 @@ ${ assist.assistPanel() }
 % else:
         $.post("${ url('indexer:importer_submit') }", {
           "source": ko.mapping.toJSON(self.source),
-          "destination": ko.mapping.toJSON(self.destination)
+          "destination": ko.mapping.toJSON(self.destination),
+          "start_time": ko.mapping.toJSON((new Date()).getTime())
         }, function (resp) {
           if (resp.history_uuid) {
             $.jHueNotify.info("${ _('Task ') }" + resp.history_uuid + "${_(' submitted.') }");

+ 2 - 1
desktop/libs/notebook/src/notebook/models.py

@@ -57,7 +57,7 @@ def escape_rows(rows, nulls_only=False):
 
 def make_notebook(name='Browse', description='', editor_type='hive', statement='', status='ready',
                   files=None, functions=None, settings=None, is_saved=False, database='default', snippet_properties=None, batch_submit=False,
-                  on_success_url=None, skip_historify=False, is_task=False):
+                  on_success_url=None, skip_historify=False, is_task=False, last_executed=-1):
   '''
   skip_historify: do not add the task to the query history. e.g. SQL Dashboard
   isManaged: true when being a managed by Hue operation (include_managed=True in document), e.g. exporting query result, dropping some tables
@@ -113,6 +113,7 @@ def make_notebook(name='Browse', description='', editor_type='hive', statement='
          'statement': statement,
          'type': editor_type,
          'wasBatchExecuted': batch_submit,
+         'lastExecuted': last_executed,
          'properties': {
             'files': [] if files is None else files,
             'functions': [] if functions is None else functions,