|
|
@@ -21,13 +21,14 @@ import re
|
|
|
|
|
|
from django.contrib.auth.models import User
|
|
|
from django.core.urlresolvers import reverse
|
|
|
-from django.http import HttpResponse, Http404
|
|
|
+from django.http import Http404
|
|
|
from django.utils.translation import ugettext as _
|
|
|
|
|
|
from thrift.transport.TTransport import TTransportException
|
|
|
from desktop.context_processors import get_app_name
|
|
|
-from desktop.lib.i18n import force_unicode
|
|
|
+from desktop.lib.django_util import JsonResponse
|
|
|
from desktop.lib.exceptions_renderable import PopupException
|
|
|
+from desktop.lib.i18n import force_unicode
|
|
|
from jobsub.parameterization import substitute_variables
|
|
|
|
|
|
import beeswax.models
|
|
|
@@ -74,7 +75,7 @@ def error_handler(view_fn):
|
|
|
response['status'] = 2 # Frontend will not display this type of error
|
|
|
LOG.warn('error_handler silencing the exception: %s' % e)
|
|
|
|
|
|
- return HttpResponse(json.dumps(response), mimetype="application/json", status=200)
|
|
|
+ return JsonResponse(response)
|
|
|
return decorator
|
|
|
|
|
|
|
|
|
@@ -106,7 +107,7 @@ def autocomplete(request, database=None, table=None):
|
|
|
response['code'] = 500
|
|
|
response['error'] = e.message
|
|
|
|
|
|
- return HttpResponse(json.dumps(response), mimetype="application/json")
|
|
|
+ return JsonResponse(response)
|
|
|
|
|
|
|
|
|
@error_handler
|
|
|
@@ -127,7 +128,7 @@ def parameters(request, design_id=None):
|
|
|
response['parameters'] = []
|
|
|
response['status']= 0
|
|
|
|
|
|
- return HttpResponse(json.dumps(response), mimetype="application/json")
|
|
|
+ return JsonResponse(response)
|
|
|
|
|
|
|
|
|
@error_handler
|
|
|
@@ -150,7 +151,7 @@ def execute_directly(request, query, design, query_server, tablename=None, **kwa
|
|
|
'is_redacted': history_obj.is_redacted
|
|
|
}
|
|
|
|
|
|
- return HttpResponse(json.dumps(response), mimetype="application/json")
|
|
|
+ return JsonResponse(response)
|
|
|
|
|
|
|
|
|
@error_handler
|
|
|
@@ -207,7 +208,7 @@ def watch_query_refresh_json(request, id):
|
|
|
else:
|
|
|
result['status'] = 0
|
|
|
|
|
|
- return HttpResponse(json.dumps(result), mimetype="application/json")
|
|
|
+ return JsonResponse(result)
|
|
|
|
|
|
def massage_job_urls_for_json(jobs):
|
|
|
massaged_jobs = []
|
|
|
@@ -239,7 +240,7 @@ def close_operation(request, query_history_id):
|
|
|
except Exception, e:
|
|
|
response['message'] = unicode(e)
|
|
|
|
|
|
- return HttpResponse(json.dumps(response), mimetype="application/json")
|
|
|
+ return JsonResponse(response)
|
|
|
|
|
|
|
|
|
@error_handler
|
|
|
@@ -252,7 +253,7 @@ def explain_directly(request, query, design, query_server):
|
|
|
'statement': query.get_query_statement(0),
|
|
|
}
|
|
|
|
|
|
- return HttpResponse(json.dumps(response), mimetype="application/json")
|
|
|
+ return JsonResponse(response)
|
|
|
|
|
|
|
|
|
@error_handler
|
|
|
@@ -296,10 +297,10 @@ def execute(request, design_id=None):
|
|
|
db = dbms.get(request.user, query_server)
|
|
|
error_message, log = expand_exception(ex, db)
|
|
|
response['message'] = error_message
|
|
|
- return HttpResponse(json.dumps(response), mimetype="application/json")
|
|
|
+ return JsonResponse(response)
|
|
|
else:
|
|
|
response['errors'] = parameterization_form.errors
|
|
|
- return HttpResponse(json.dumps(response), mimetype="application/json")
|
|
|
+ return JsonResponse(response)
|
|
|
|
|
|
# Non-parameterized query
|
|
|
query = HQLdesign(query_form, query_type=query_type)
|
|
|
@@ -318,7 +319,7 @@ def execute(request, design_id=None):
|
|
|
except RuntimeError, e:
|
|
|
response['message']= str(e)
|
|
|
|
|
|
- return HttpResponse(json.dumps(response), mimetype="application/json")
|
|
|
+ return JsonResponse(response)
|
|
|
|
|
|
|
|
|
@error_handler
|
|
|
@@ -349,7 +350,7 @@ def save_query_design(request, design_id=None):
|
|
|
except RuntimeError, e:
|
|
|
response['message'] = str(e)
|
|
|
|
|
|
- return HttpResponse(json.dumps(response), mimetype="application/json")
|
|
|
+ return JsonResponse(response)
|
|
|
|
|
|
|
|
|
@error_handler
|
|
|
@@ -364,7 +365,7 @@ def fetch_saved_design(request, design_id):
|
|
|
design = safe_get_design(request, query_type, design_id)
|
|
|
|
|
|
response['design'] = design_to_dict(design)
|
|
|
- return HttpResponse(json.dumps(response), mimetype="application/json")
|
|
|
+ return JsonResponse(response)
|
|
|
|
|
|
@error_handler
|
|
|
def fetch_query_history(request, query_history_id):
|
|
|
@@ -376,7 +377,7 @@ def fetch_query_history(request, query_history_id):
|
|
|
query = authorized_get_query_history(request, query_history_id, must_exist=True)
|
|
|
|
|
|
response['query_history'] = query_history_to_dict(request, query)
|
|
|
- return HttpResponse(json.dumps(response), mimetype="application/json")
|
|
|
+ return JsonResponse(response)
|
|
|
|
|
|
@error_handler
|
|
|
def cancel_query(request, query_history_id):
|
|
|
@@ -394,7 +395,7 @@ def cancel_query(request, query_history_id):
|
|
|
except Exception, e:
|
|
|
response['message'] = unicode(e)
|
|
|
|
|
|
- return HttpResponse(json.dumps(response), mimetype="application/json")
|
|
|
+ return JsonResponse(response)
|
|
|
|
|
|
|
|
|
@error_handler
|
|
|
@@ -417,7 +418,7 @@ def save_results_hdfs_directory(request, query_history_id):
|
|
|
if not query_history.is_success():
|
|
|
response['message'] = _('This query is %(state)s. Results unavailable.') % {'state': state}
|
|
|
response['status'] = -1
|
|
|
- return HttpResponse(json.dumps(response), mimetype="application/json")
|
|
|
+ return JsonResponse(response)
|
|
|
|
|
|
db = dbms.get(request.user, query_history.get_query_server_config())
|
|
|
|
|
|
@@ -443,7 +444,7 @@ def save_results_hdfs_directory(request, query_history_id):
|
|
|
response['status'] = 1
|
|
|
response['errors'] = form.errors
|
|
|
|
|
|
- return HttpResponse(json.dumps(response), mimetype="application/json")
|
|
|
+ return JsonResponse(response)
|
|
|
|
|
|
|
|
|
@error_handler
|
|
|
@@ -466,7 +467,7 @@ def save_results_hdfs_file(request, query_history_id):
|
|
|
if not query_history.is_success():
|
|
|
response['message'] = _('This query is %(state)s. Results unavailable.') % {'state': state}
|
|
|
response['status'] = -1
|
|
|
- return HttpResponse(json.dumps(response), mimetype="application/json")
|
|
|
+ return JsonResponse(response)
|
|
|
|
|
|
db = dbms.get(request.user, query_history.get_query_server_config())
|
|
|
|
|
|
@@ -484,7 +485,7 @@ def save_results_hdfs_file(request, query_history_id):
|
|
|
except Exception, ex:
|
|
|
response['message'] = _('Cannot find query handle and state: %s') % str(query_history)
|
|
|
response['status'] = -2
|
|
|
- return HttpResponse(json.dumps(response), mimetype="application/json")
|
|
|
+ return JsonResponse(response)
|
|
|
|
|
|
try:
|
|
|
if overwrite and request.fs.exists(target_file):
|
|
|
@@ -509,7 +510,7 @@ def save_results_hdfs_file(request, query_history_id):
|
|
|
response['status'] = 1
|
|
|
response['errors'] = form.errors
|
|
|
|
|
|
- return HttpResponse(json.dumps(response), mimetype="application/json")
|
|
|
+ return JsonResponse(response)
|
|
|
|
|
|
|
|
|
@error_handler
|
|
|
@@ -532,7 +533,7 @@ def save_results_hive_table(request, query_history_id):
|
|
|
if not query_history.is_success():
|
|
|
response['message'] = _('This query is %(state)s. Results unavailable.') % {'state': state}
|
|
|
response['status'] = -1
|
|
|
- return HttpResponse(json.dumps(response), mimetype="application/json")
|
|
|
+ return JsonResponse(response)
|
|
|
|
|
|
db = dbms.get(request.user, query_history.get_query_server_config())
|
|
|
database = query_history.design.get_design().query.get('database', 'default')
|
|
|
@@ -547,7 +548,7 @@ def save_results_hive_table(request, query_history_id):
|
|
|
except Exception, ex:
|
|
|
response['message'] = _('Cannot find query handle and state: %s') % str(query_history)
|
|
|
response['status'] = -2
|
|
|
- return HttpResponse(json.dumps(response), mimetype="application/json")
|
|
|
+ return JsonResponse(response)
|
|
|
|
|
|
try:
|
|
|
query_history = db.create_table_as_a_select(request, query_history, form.target_database, form.cleaned_data['target_table'], result_meta)
|
|
|
@@ -566,7 +567,7 @@ def save_results_hive_table(request, query_history_id):
|
|
|
response['status'] = 1
|
|
|
response['errors'] = form.errors
|
|
|
|
|
|
- return HttpResponse(json.dumps(response), mimetype="application/json")
|
|
|
+ return JsonResponse(response)
|
|
|
|
|
|
|
|
|
def design_to_dict(design):
|