def analysis_status(request, uuid): """Returns analysis status in HTML or JSON formats (for AJAX requests)""" # TODO: handle MultipleObjectsReturned exception try: analysis = Analysis.objects.get(uuid=uuid) except Analysis.DoesNotExist: logger.error("Analysis with UUID '%s' does not exist", uuid) return HttpResponse(custom_error_page(request, '404.html', {}), status='404') # TODO: handle MultipleObjectsReturned exception try: status = AnalysisStatus.objects.get(analysis=analysis) except AnalysisStatus.DoesNotExist: logger.error("AnalysisStatus object does not exist for Analysis '%s'", analysis.name) return HttpResponse(custom_error_page(request, '500.html', {}), status='500') # add analysis status message if request came from this view referer_path = urlparse(request.META.get('HTTP_REFERER', '')).path if referer_path == request.path: # clear messages to avoid message duplication storage = messages.get_messages(request) storage.used = True # add analysis status message if analysis.get_status() == Analysis.FAILURE_STATUS: msg = "Analysis '{}' failed. No results were added to your data " \ "set.".format(analysis.name) messages.error(request, msg) elif analysis.get_status() == Analysis.SUCCESS_STATUS: msg = "Analysis '{}' finished successfully. View the results in " \ "the file browser.".format(analysis.name) messages.success(request, msg) if request.is_ajax(): ret_json = { 'refineryImport': status.refinery_import_state(), 'galaxyAnalysis': status.galaxy_analysis_state(), 'galaxyExport': status.galaxy_export_state(), 'overall': analysis.get_status(), } if analysis.is_tool_based: ret_json['galaxyImport'] = ( status.tool_based_galaxy_file_import_state()) else: ret_json['galaxyImport'] = status.galaxy_file_import_state() logger.debug("Analysis status for '%s': %s", analysis.name, json.dumps(ret_json)) return HttpResponse(json.dumps(ret_json, indent=4), content_type='application/javascript') return render_to_response('analysis_manager/analysis_status.html', { 'uuid': uuid, 'status': status, 'analysis': analysis }, context_instance=RequestContext(request))
def analysis_status(request, uuid): logger.debug("analysis_manager.views.analysis_status called") #TODO: handle MultipleObjectsReturned exception try: analysis = Analysis.objects.get(uuid=uuid) except Analysis.DoesNotExist: logger.error("Analysis with UUID '{}' does not exist".format(uuid)) return HttpResponse(custom_error_page(request, '404.html', {}), status='404') #TODO: handle MultipleObjectsReturned exception try: status = AnalysisStatus.objects.get(analysis=analysis) except AnalysisStatus.DoesNotExist: logger.error( "AnalysisStatus object does not exist for Analysis '{}'".format( analysis.name)) return HttpResponse(custom_error_page(request, '500.html', {}), status='500') # add analysis status message if request came from this view referer_path = urlparse(request.META.get('HTTP_REFERER', '')).path if referer_path == request.path: # clear messages to avoid message duplication storage = messages.get_messages(request) storage.used = True # add analysis status message if analysis.get_status() == Analysis.FAILURE_STATUS: msg = "Analysis '{}' failed. No results were added to your data set."\ .format(analysis.name) messages.error(request, msg) elif analysis.get_status() == Analysis.SUCCESS_STATUS: msg = "Analysis '{}' finished successfully. View the results in the file browser."\ .format(analysis.name) messages.success(request, msg) if request.is_ajax(): ret_json = {} if status: ret_json['preprocessing'] = status.preprocessing_status() ret_json['execution'] = status.execution_status() ret_json['postprocessing'] = status.postprocessing_status() ret_json['cleanup'] = status.cleanup_status() ret_json['overall'] = analysis.get_status() logger.debug("Analysis: '{}'".format(analysis.name)) logger.debug(simplejson.dumps(ret_json, indent=2)) return HttpResponse(simplejson.dumps(ret_json), mimetype='application/javascript') else: return render_to_response('analysis_manager/analysis_status.html', { 'uuid': uuid, 'status': status, 'analysis': analysis }, context_instance=RequestContext(request))
def analysis_status(request, uuid): logger.debug("analysis_manager.views.analysis_status called") # TODO: handle MultipleObjectsReturned exception try: analysis = Analysis.objects.get(uuid=uuid) except Analysis.DoesNotExist: logger.error("Analysis with UUID '{}' does not exist".format(uuid)) return HttpResponse(custom_error_page(request, '404.html', {}), status='404') # TODO: handle MultipleObjectsReturned exception try: status = AnalysisStatus.objects.get(analysis=analysis) except AnalysisStatus.DoesNotExist: logger.error("AnalysisStatus object does not exist for Analysis '{}'" .format(analysis.name)) return HttpResponse(custom_error_page(request, '500.html', {}), status='500') # add analysis status message if request came from this view referer_path = urlparse(request.META.get('HTTP_REFERER', '')).path if referer_path == request.path: # clear messages to avoid message duplication storage = messages.get_messages(request) storage.used = True # add analysis status message if analysis.get_status() == Analysis.FAILURE_STATUS: msg = "Analysis '{}' failed. " \ "No results were added to your data set."\ .format(analysis.name) messages.error(request, msg) elif analysis.get_status() == Analysis.SUCCESS_STATUS: msg = "Analysis '{}' finished successfully. " \ "View the results in the file browser."\ .format(analysis.name) messages.success(request, msg) if request.is_ajax(): ret_json = {} if status: ret_json['preprocessing'] = status.preprocessing_status() ret_json['execution'] = status.execution_status() ret_json['postprocessing'] = status.postprocessing_status() ret_json['cleanup'] = status.cleanup_status() ret_json['overall'] = analysis.get_status() logger.debug("Analysis: '%s'", analysis.name) logger.debug(simplejson.dumps(ret_json)) return HttpResponse(simplejson.dumps(ret_json), mimetype='application/javascript') else: return render_to_response( 'analysis_manager/analysis_status.html', {'uuid': uuid, 'status': status, 'analysis': analysis}, context_instance=RequestContext(request))
def analysis_status(request, uuid): """Returns analysis status in HTML or JSON formats (for AJAX requests)""" # TODO: handle MultipleObjectsReturned exception try: analysis = Analysis.objects.get(uuid=uuid) except Analysis.DoesNotExist: logger.error("Analysis with UUID '{}' does not exist".format(uuid)) return HttpResponse(custom_error_page(request, '404.html', {}), status='404') # TODO: handle MultipleObjectsReturned exception try: status = AnalysisStatus.objects.get(analysis=analysis) except AnalysisStatus.DoesNotExist: logger.error("AnalysisStatus object does not exist for Analysis '{}'" .format(analysis.name)) return HttpResponse(custom_error_page(request, '500.html', {}), status='500') # add analysis status message if request came from this view referer_path = urlparse(request.META.get('HTTP_REFERER', '')).path if referer_path == request.path: # clear messages to avoid message duplication storage = messages.get_messages(request) storage.used = True # add analysis status message if analysis.get_status() == Analysis.FAILURE_STATUS: msg = "Analysis '{}' failed. No results were added to your data " \ "set.".format(analysis.name) messages.error(request, msg) elif analysis.get_status() == Analysis.SUCCESS_STATUS: msg = "Analysis '{}' finished successfully. View the results in " \ "the file browser.".format(analysis.name) messages.success(request, msg) if request.is_ajax(): ret_json = { 'refineryImport': status.refinery_import_state(), 'galaxyImport': status.galaxy_import_state(), 'galaxyAnalysis': status.galaxy_analysis_state(), 'galaxyExport': status.galaxy_export_state(), 'overall': analysis.get_status(), } logger.debug("Analysis status for '%s': %s", analysis.name, json.dumps(ret_json)) return HttpResponse(json.dumps(ret_json, indent=4), mimetype='application/javascript') else: return render_to_response( 'analysis_manager/analysis_status.html', {'uuid': uuid, 'status': status, 'analysis': analysis}, context_instance=RequestContext(request))