def file_complete(self, file_size): self.file_handle.close() self.upload.size = file_size ## Start analysis. queue.visualise(self.name) ## Load balance instances in the background. background.run(instances.balance, 0) return self.upload
def tool(request): authed_user = auth.get_current_user() if authed_user is None: return __unauthed_response() try: gate_info = json.loads(request.raw_post_data) print gate_info except ValueError: return HttpResponse(simplejson.dumps(gt.generate_gating_feedback('fail', 'Invalid request payload')), content_type="application/json") ## \todo This should probably iterate over list if (('points' not in gate_info) or ('tool' not in gate_info) or ('filename' not in gate_info)): return HttpResponse(simplejson.dumps(gt.generate_gating_feedback('fail', 'Incomplete gate parameters')), content_type="application/json") if (gate_info['points']): if not isinstance(gate_info['points'], list): return HttpResponse(simplejson.dumps(gt.generate_gating_feedback('fail', 'Invalid points list')), content_type="application/json") else: # Normalise false value to None gate_info.update( { 'points' : None } ) file_entry = ps.get_file_by_name(DATA_BUCKET + '/' + gate_info['filename']) if file_entry is None: return HttpResponse(simplejson.dumps(gt.generate_gating_feedback('fail', 'File not found')), content_type="application/json") gate_info.update( { 'axes' : { 'x' : file_entry.axis_a, 'y' : file_entry.axis_b } } ) tool = gt.AVAILABLE_TOOLS.get(gate_info['tool'], gt.no_such_tool) ## first two arguments passed for compatibility tool_response = tool(gate_info) ## Load balance instances in the background. background.run(instances.balance, 0) json_response = simplejson.dumps(tool_response); return HttpResponse(json_response, content_type="application/json")
def balance(request): background.run(instances.balance, 30) return HttpResponse('')