def rerun_analysis(request, analysis_id=None): if request.method != 'POST': return HttpResponseBadRequest() if not analysis_id: analysis_id = request.POST.get('analysis_id') if not analysis_id: return HttpResponseBadRequest() try: analysis = Analysis.objects.get(id=analysis_id) analysis_post_save(None, analysis, True) return HttpResponseRedirect( reverse('geosafe:analysis-detail', kwargs={'pk': analysis.pk})) except Exception as e: LOGGER.exception(e) return HttpResponseServerError()
def rerun_analysis(request, analysis_id=None): if request.method != 'POST': return HttpResponseBadRequest() if not analysis_id: analysis_id = request.POST.get('analysis_id') if not analysis_id: return HttpResponseBadRequest() try: analysis = Analysis.objects.get(id=analysis_id) result = analysis.get_task_result() try: # to cancel celery task, do revoke result.revoke(terminate=True) except BaseException: # in case result is an empty task id pass analysis_post_save(None, analysis, True) return HttpResponseRedirect(reverse('geosafe:analysis-list')) except Exception as e: LOGGER.exception(e) return HttpResponseServerError()