소스 검색

GH-1424 [api] Query kill is broken

sreenaths 4 년 전
부모
커밋
82939530fc
2개의 변경된 파일6개의 추가작업 그리고 8개의 파일을 삭제
  1. 1 4
      apps/jobbrowser/src/jobbrowser/api2.py
  2. 5 4
      apps/jobbrowser/src/jobbrowser/apis/hive_query_api.py

+ 1 - 4
apps/jobbrowser/src/jobbrowser/api2.py

@@ -117,12 +117,9 @@ def action(request, interface=None, action=None):
   if operation.get('action') == 'kill' and DISABLE_KILLING_JOBS.get():
     return serve_403_error(request)
 
-  action = operation.copy()
-  action['request'] = request
-
   response['operation'] = operation
   response.update(
-      get_api(request.user, interface, cluster=cluster).action(app_ids, action)
+      get_api(request.user, interface, cluster=cluster).action(app_ids, operation)
   )
 
   return JsonResponse(response)

+ 5 - 4
apps/jobbrowser/src/jobbrowser/apis/hive_query_api.py

@@ -27,7 +27,8 @@ from desktop.lib.exceptions_renderable import PopupException
 from desktop.lib.python_util import current_ms_from_utc
 from desktop.lib.rest.http_client import HttpClient
 from desktop.lib.rest.resource import Resource
-from notebook.models import _get_notebook_api, make_notebook
+from notebook.models import _get_notebook_api, make_notebook, MockRequest
+
 
 from jobbrowser.apis.base_api import Api
 from jobbrowser.conf import QUERY_STORE
@@ -121,7 +122,7 @@ class HiveQueryApi(Api):
         action_details = {}
 
         try:
-          self.kill_query(query_id, action.get('request'))
+          self.kill_query(query_id)
           action_details['status'] = 0
           action_details['message'] = _('kill action performed')
         except Exception as ex:
@@ -134,7 +135,7 @@ class HiveQueryApi(Api):
 
     return message
 
-  def kill_query(self, query_id, request):
+  def kill_query(self, query_id):
     kill_sql = 'KILL QUERY "%s";' % query_id
     job = make_notebook(
         name=_('Kill query %s') % query_id,
@@ -145,7 +146,7 @@ class HiveQueryApi(Api):
         is_task=False,
     )
 
-    job.execute_and_wait(request)
+    job.execute_and_wait(MockRequest(user=self.user))
 
   def logs(self, appid, app_type, log_name=None, is_embeddable=False):
     return {'logs': ''}