Exemplo n.º 1
0
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)
Exemplo n.º 2
0
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)