Browse Source

HUE-3228 [dashboard] Save new status of batch/task jobs if it changed

Romain Rigaux 8 years ago
parent
commit
351a091b82

+ 5 - 4
desktop/libs/notebook/src/notebook/api.py

@@ -197,13 +197,14 @@ def check_status(request):
     else:
     else:
       status = 'failed'
       status = 'failed'
 
 
-    if notebook['type'].startswith('query'):
+    if notebook['type'].startswith('query') or notebook.get('isTask'):
       nb_doc = Document2.objects.get(id=notebook['id'])
       nb_doc = Document2.objects.get(id=notebook['id'])
       if nb_doc.can_write(request.user):
       if nb_doc.can_write(request.user):
         nb = Notebook(document=nb_doc).get_data()
         nb = Notebook(document=nb_doc).get_data()
-        nb['snippets'][0]['status'] = status
-        nb_doc.update_data(nb)
-        nb_doc.save()
+        if status != nb['snippets'][0]['status']:
+          nb['snippets'][0]['status'] = status
+          nb_doc.update_data(nb)
+          nb_doc.save()
 
 
   return JsonResponse(response)
   return JsonResponse(response)
 
 

+ 4 - 2
desktop/libs/notebook/src/notebook/connectors/base.py

@@ -74,7 +74,8 @@ class Notebook(object):
           'isManaged': False,
           'isManaged': False,
           'sessions': [],
           'sessions': [],
           'snippets': [],
           'snippets': [],
-          'skipHistorify': False
+          'skipHistorify': False,
+          'isTask': False,
       }
       }
       _data.update(options)
       _data.update(options)
       self.data = json.dumps(_data)
       self.data = json.dumps(_data)
@@ -181,9 +182,10 @@ class Notebook(object):
     from notebook.api import _execute_notebook # Cyclic dependency
     from notebook.api import _execute_notebook # Cyclic dependency
 
 
     notebook_data = self.get_data()
     notebook_data = self.get_data()
-    #snippet = {'wasBatchExecuted': batch, 'type': 'oozie', 'id': notebook_data['snippets'][0]['id'], 'statement': ''}
     snippet = notebook_data['snippets'][0]
     snippet = notebook_data['snippets'][0]
     snippet['wasBatchExecuted'] = batch
     snippet['wasBatchExecuted'] = batch
+    if batch:
+      notebook_data['isTask'] = True
 
 
     return _execute_notebook(request, notebook_data, snippet)
     return _execute_notebook(request, notebook_data, snippet)
 
 

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

@@ -55,7 +55,7 @@ def escape_rows(rows, nulls_only=False):
 
 
 def make_notebook(name='Browse', description='', editor_type='hive', statement='', status='ready',
 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,
                   files=None, functions=None, settings=None, is_saved=False, database='default', snippet_properties=None, batch_submit=False,
-                  on_success_url=None, skip_historify=False):
+                  on_success_url=None, skip_historify=False, is_task=False):
   from notebook.connectors.hiveserver2 import HS2Api
   from notebook.connectors.hiveserver2 import HS2Api
 
 
   editor = Notebook()
   editor = Notebook()
@@ -98,6 +98,7 @@ def make_notebook(name='Browse', description='', editor_type='hive', statement='
     'isSaved': is_saved,
     'isSaved': is_saved,
     'onSuccessUrl': on_success_url,
     'onSuccessUrl': on_success_url,
     'skipHistorify': skip_historify,
     'skipHistorify': skip_historify,
+    'isTask': is_task,
     'snippets': [
     'snippets': [
       {
       {
          'status': status,
          'status': status,