Quellcode durchsuchen

HUE-6060 [editor] Unify isManaged and isTask job types together

isManaged: true when being a managed by Hue operation (include_managed=True in document), e.g. exporting query result, dropping some tables
skip_historify: do not add the task to the query history. e.g. SQL Dashboard
Romain Rigaux vor 8 Jahren
Ursprung
Commit
ee33f7c

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

@@ -383,9 +383,10 @@ def drop_table(request, database):
             statement=sql.strip(),
             status='ready',
             database=database,
-            on_success_url='assist.db.refresh'
+            on_success_url='assist.db.refresh',
+            is_task=True
         )
-        return JsonResponse(job.execute(request, batch=False))
+        return JsonResponse(job.execute(request))
       else:
         # Can't be simpler without an important refactoring
         design = SavedQuery.create_empty(app_name='beeswax', owner=request.user, data=hql_query('').dumps())

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

@@ -1048,7 +1048,7 @@ class Document2(models.Model):
   last_modified = models.DateTimeField(auto_now=True, db_index=True, verbose_name=_t('Time last modified'))
   version = models.SmallIntegerField(default=1, verbose_name=_t('Document version'), db_index=True)
   is_history = models.BooleanField(default=False, db_index=True)
-  is_managed = models.BooleanField(default=False, db_index=True, verbose_name=_t('If managed under the cover by Hue and never by the user'))
+  is_managed = models.BooleanField(default=False, db_index=True, verbose_name=_t('If managed under the cover by Hue and never by the user')) # Aka isTask
   is_trashed = models.NullBooleanField(default=False, db_index=True, verbose_name=_t('True if trashed'))
 
   dependencies = models.ManyToManyField('self', symmetrical=False, related_name='dependents', db_index=True)

+ 1 - 1
desktop/core/src/desktop/templates/responsive.mako

@@ -447,7 +447,7 @@ ${ hueIcons.symbols() }
   </div>
   <div class="modal-footer">
     <a class="btn" data-dismiss="modal">${_('No')}</a>
-    <a class="btn btn-danger disable-feedback" onclick="editorVM.selectedNotebook().clearHistory()">${_('Yes')}</a>
+    <a class="btn btn-danger disable-feedback" onclick="function() { editorVM.selectedNotebook().clearHistory(); editorVM.selectedNotebook(null); }">${_('Yes')}</a>
   </div>
 </div>
 

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

@@ -196,7 +196,7 @@ def create_database(request, source, destination):
   editor_type = 'hive'
   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)
+  notebook = make_notebook(name='Execute and watch', editor_type=editor_type, statement=sql, status='ready', on_success_url=on_success_url, is_task=True)
   return notebook.execute(request, batch=False)
 
 
@@ -360,7 +360,7 @@ def _create_table_from_a_file(request, source, destination):
 
   on_success_url = reverse('metastore:describe_table', kwargs={'database': database, 'table': table_name})
 
-  return make_notebook(name='Execute and watch', editor_type=editor_type, statement=sql.strip(), status='ready', database=database, on_success_url=on_success_url)
+  return make_notebook(name='Execute and watch', editor_type=editor_type, statement=sql.strip(), status='ready', database=database, on_success_url=on_success_url, is_task=True)
 
 
 def _index(request, file_format, collection_name, query=None):

+ 1 - 1
desktop/libs/notebook/src/notebook/api.py

@@ -195,7 +195,7 @@ def check_status(request):
     else:
       status = 'failed'
 
-    if notebook['type'].startswith('query') or notebook.get('isTask'):
+    if notebook['type'].startswith('query') or notebook.get('isManaged'):
       nb_doc = Document2.objects.get(id=notebook['id'])
       if nb_doc.can_write(request.user):
         nb = Notebook(document=nb_doc).get_data()

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

@@ -74,11 +74,10 @@ class Notebook(object):
           'description': '',
           'type': 'notebook',
           'isSaved': False,
-          'isManaged': False,
+          'isManaged': False, # Aka isTask
+          'skipHistorify': False,
           'sessions': [],
           'snippets': [],
-          'skipHistorify': False,
-          'isTask': False,
       }
       _data.update(options)
       self.data = json.dumps(_data)
@@ -187,8 +186,6 @@ class Notebook(object):
     notebook_data = self.get_data()
     snippet = notebook_data['snippets'][0]
     snippet['wasBatchExecuted'] = batch
-    if batch:
-      notebook_data['isTask'] = True
 
     return _execute_notebook(request, notebook_data, snippet)
 

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

@@ -56,6 +56,10 @@ 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):
+  '''
+  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
+  '''
   from notebook.connectors.hiveserver2 import HS2Api
 
   editor = Notebook()
@@ -98,7 +102,7 @@ def make_notebook(name='Browse', description='', editor_type='hive', statement='
     'isSaved': is_saved,
     'onSuccessUrl': on_success_url,
     'skipHistorify': skip_historify,
-    'isTask': is_task,
+    'isManaged': is_task,
     'snippets': [
       {
          'status': status,