Example #1
0
 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
Example #2
0
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")
Example #3
0
def balance(request):
	background.run(instances.balance, 30)
	return HttpResponse('')