فهرست منبع

HUE-9208 [editor] Port get log call to v2 and sql task

Romain 5 سال پیش
والد
کامیت
ddd013daa1

+ 3 - 1
desktop/core/src/desktop/js/api/apiHelper.js

@@ -1801,7 +1801,8 @@ class ApiHelper {
       snippet: options.snippetJson,
       from: options.from,
       jobs: options.jobsJson,
-      full_log: options.fullLog
+      full_log: options.fullLog,
+      operationId: options.executable.operationId
     };
     return simplePost('/notebook/api/get_logs', data);
   }
@@ -2021,6 +2022,7 @@ class ApiHelper {
       data.full_log = options.fullLog;
       data.jobs = options.jobs && JSON.stringify(options.jobs);
       data.from = options.from || 0;
+      data.operationId = options.executable.operationId;
       const request = simplePost('/notebook/api/get_logs', data, options)
         .done(response => {
           resolve({

+ 3 - 0
desktop/libs/notebook/src/notebook/api.py

@@ -413,6 +413,9 @@ def get_logs(request):
   notebook = json.loads(request.POST.get('notebook', '{}'))
   snippet = json.loads(request.POST.get('snippet', '{}'))
 
+  if operation_id:
+    notebook['uuid'] = operation_id
+
   startFrom = request.POST.get('from')
   startFrom = int(startFrom) if startFrom else None
   size = request.POST.get('size')

+ 23 - 1
desktop/libs/notebook/src/notebook/task_tests.py

@@ -26,7 +26,7 @@ from desktop.lib.django_test_util import make_logged_in_client
 from useradmin.models import User
 
 from notebook.connectors.sql_alchemy import SqlAlchemyApi
-from notebook.tasks import run_sync_query, download_to_file, close_statement
+from notebook.tasks import run_sync_query, download_to_file, close_statement, get_log
 
 if sys.version_info[0] > 2:
   from unittest.mock import patch, Mock, MagicMock
@@ -91,6 +91,28 @@ class TestRunAsyncQueryTask():
         assert_equal(response, {'status': 0})
 
 
+  def test_get_log(self):
+    with patch('notebook.tasks._get_request') as _get_request:
+      with patch('notebook.tasks.download_to_file') as download_to_file:
+
+        download_to_file.AsyncResult.return_value = Mock(
+          state=states.SUCCESS
+        )
+
+        def notebook_dict(key):
+          return {
+            'uuid': '1ca47e0d-4708-4709-82c1-a9280e15452b',
+          }.get(key, Mock())
+        notebook = MagicMock()
+        notebook.__getitem__.side_effect = notebook_dict
+        snippet = MagicMock()
+
+        response = get_log(notebook, snippet, startFrom=None, size=None, postdict=None, user_id=None)
+
+        assert_equal(response, '')
+
+
+
 class TestRunSyncQueryTask():
 
   def setUp(self):

+ 1 - 0
desktop/libs/notebook/src/notebook/tasks.py

@@ -333,6 +333,7 @@ def progress(notebook, snippet, logs=None, **kwargs):
   info = result.info
   snippet['result']['handle'] = info.get('handle', {}).copy()
   request = _get_request(**kwargs)
+
   api = get_api(request, snippet)
 
   return api.progress(notebook, snippet, logs=logs)