Преглед на файлове

HUE-9507 [querybrowser] API - Proxy log download API

ayush.goyal преди 5 години
родител
ревизия
c80ec3f991
променени са 2 файла, в които са добавени 19 реда и са изтрити 1 реда
  1. 14 1
      apps/jobbrowser/src/jobbrowser/api2.py
  2. 5 0
      apps/jobbrowser/src/jobbrowser/urls.py

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

@@ -18,7 +18,7 @@
 import json
 import logging
 
-from django.http import HttpResponse
+from django.http import HttpResponse, FileResponse
 from django.utils.translation import ugettext as _
 
 from desktop.lib.rest.http_client import RestException
@@ -185,3 +185,16 @@ def query_store_proxy(request, path=None):
     response['content'] = ex_response.text
 
   return JsonResponse(response);
+
+
+@api_error_handler
+def download_zip(request, id=None):
+
+  client = HttpClient(QUERY_STORE.SERVER_URL.get())
+  resource = Resource(client)
+  app = resource.get('api/data-bundle/' + id)
+
+  response = FileResponse((app, 'rb'), content_type='application/octet-stream')
+  response['Content-Disposition'] = 'attachment; filename='+id+'.zip'
+
+  return response

+ 5 - 0
apps/jobbrowser/src/jobbrowser/urls.py

@@ -70,6 +70,11 @@ urlpatterns += [
   url(r'api/job(?:/(?P<interface>.+))?/?', jobbrowser_api2.job, name='job'),
 ]
 
+if QUERY_STORE.SERVER_URL.get():
+  urlpatterns += [
+    url(r'^query-proxy/data-bundle/(?P<id>.*)$', jobbrowser_api2.download_zip),
+  ]
+
 if QUERY_STORE.SERVER_URL.get():
   urlpatterns += [
     url(r'^query-proxy/(?P<path>.*)$', jobbrowser_api2.query_store_proxy),