def create_aggregate(request): if request.method == "POST": data = json.loads(request.POST.get("data")) add_hosts = json.loads(request.POST.get("add_hosts")) token = request.session.get('passToken') auth_url = request.session.get("auth_url") nova = NovaRestAPI(auth_url, token) result = nova.create_aggregate(data) add_fail_list = [] error_message = "" if result.get("success"): aggregate_id = result["success"]["aggregate"].get("id") for add_host_id in add_hosts: add_result = nova.add_host_to_aggregate( aggregate_id, add_host_id) if add_result.get("error"): add_fail_list.append(add_host_id) error_message = add_result["error"].get("message") if not error_message: if add_result["error"].get("badRequest"): error_message = add_result["error"][ "badRequest"].get("message") elif add_result["error"].get("conflictingRequest"): error_message = add_result["error"][ "conflictingRequest"].get("message") if len(add_fail_list) > 0: result["error"] = { "message": error_message + "<br/>add fail: " + str(add_fail_list), "title": "Add Host fail" } return JsonResponse(result)
def action_aggregate(request, aggregate_id): if request.method == "POST": token = request.session.get('passToken') auth_url = request.session.get("auth_url") add_hosts = json.loads(request.POST.get("add_hosts")) remove_hosts = json.loads(request.POST.get("remove_hosts")) nova = NovaRestAPI(auth_url, token) add_fail_list = [] error_message = "" result = {} for add_host in add_hosts: result = nova.add_host_to_aggregate(aggregate_id, add_host) if result.get("error"): add_fail_list.append(add_host) error_message = result["error"].get("message") if not error_message: if result["error"].get("badRequest"): error_message = result["error"]["badRequest"].get( "message") elif result["error"].get("conflictingRequest"): error_message = result["error"][ "conflictingRequest"].get("message") for remove_host in remove_hosts: result = nova.remove_host_to_aggregate(aggregate_id, remove_host) if result.get("error"): add_fail_list.append(remove_host) error_message = result["error"].get("message") if not error_message: if result["error"].get("badRequest"): error_message = result["error"]["badRequest"].get( "message") elif result["error"].get("conflictingRequest"): error_message = result["error"][ "conflictingRequest"].get("message") if len(add_fail_list) > 0: result["error"] = { "message": error_message + "<br/>add fail: " + str(add_fail_list), "title": "Add Host fail" } if not result.get("error") and not result.get("success"): result = {"success": True} return JsonResponse(result)