Example #1
0
def stop(request, slice_id):
    '''Stop the slice on POST'''
    slice = get_object_or_404(Slice, id=slice_id)

    must_have_permission(request.user, slice.project, "can_stop_slices")

    if request.method == "POST":
        try:
            slice.stop(request.user)
        except Exception as e:
            import traceback
            traceback.print_exc()
            print e
            DatedMessage.objects.post_message_to_user(
                "Error stopping slice %s: %s" %
                (slice.name, parseFVexception(e)),
                user=request.user,
                msg_type=DatedMessage.TYPE_ERROR)
        else:
            DatedMessage.objects.post_message_to_user(
                "Successfully stopped slice %s" % slice.name,
                request.user,
                msg_type=DatedMessage.TYPE_SUCCESS)
        return HttpResponseRedirect(reverse("slice_detail", args=[slice_id]))
    else:
        return HttpResponseNotAllowed(["POST"])
Example #2
0
def start(request, slice_id):
    '''Start the slice on POST'''
    slice = get_object_or_404(Slice, id=slice_id)

    must_have_permission(request.user, slice.project, "can_start_slices")

    if request.method == "POST":

        if False in slice._get_aggregates().values_list("available",
                                                        flat=True):
            DatedMessage.objects.post_message_to_user(
                "Slice %s can not be started because some of its AMs is not available"
                % slice.name,
                request.user,
                msg_type=DatedMessage.TYPE_ERROR)
            return HttpResponseRedirect(
                reverse("slice_detail", args=[slice_id]))

        try:
            excs = slice.start(request.user)
        except Exception as e:
            import traceback
            traceback.print_exc()
            print e
            DatedMessage.objects.post_message_to_user(
                "Error starting slice %s: %s" %
                (slice.name, parseFVexception(e)),
                user=request.user,
                msg_type=DatedMessage.TYPE_ERROR)
        else:
            if not excs:
                DatedMessage.objects.post_message_to_user(
                    "Successfully started slice %s" % slice.name,
                    request.user,
                    msg_type=DatedMessage.TYPE_SUCCESS)
            else:
                DatedMessage.objects.post_message_to_user(
                    "Slice %s was started, but some AMs could not be started. Double check your VMs status"
                    % slice.name,
                    request.user,
                    msg_type=DatedMessage.TYPE_SUCCESS)
        return HttpResponseRedirect(reverse("slice_detail", args=[slice_id]))
    else:
        return HttpResponseNotAllowed(["POST"])
Example #3
0
def start(request, slice_id):
    '''Start the slice on POST'''
    slice = get_object_or_404(Slice, id=slice_id)
    
    must_have_permission(request.user, slice.project, "can_start_slices")
    
    if request.method == "POST":

        if False in slice._get_aggregates().values_list("available",flat=True):
            DatedMessage.objects.post_message_to_user(
                "Slice %s can not be started because some of its AMs is not available" % slice.name,
                request.user, msg_type=DatedMessage.TYPE_ERROR)
            return HttpResponseRedirect(reverse("slice_detail", args=[slice_id]))


        try:
            excs = slice.start(request.user)
        except Exception as e:
            import traceback
            traceback.print_exc()
            print e
            DatedMessage.objects.post_message_to_user(
                "Error starting slice %s: %s" % (
                    slice.name, parseFVexception(e)),
                user=request.user, msg_type=DatedMessage.TYPE_ERROR)
        else:
            if not excs:
                DatedMessage.objects.post_message_to_user(
                    "Successfully started slice %s" % slice.name,
                     request.user, msg_type=DatedMessage.TYPE_SUCCESS)
            else:
                DatedMessage.objects.post_message_to_user(
                    "Slice %s was started, but some AMs could not be started. Double check your VMs status" % slice.name,
                     request.user, msg_type=DatedMessage.TYPE_SUCCESS)
        return HttpResponseRedirect(reverse("slice_detail", args=[slice_id]))
    else:
        return HttpResponseNotAllowed(["POST"])
Example #4
0
def stop(request, slice_id):
    '''Stop the slice on POST'''
    slice = get_object_or_404(Slice, id=slice_id)
    
    must_have_permission(request.user, slice.project, "can_stop_slices")
    
    if request.method == "POST":
        try:
            slice.stop(request.user)
        except Exception as e:
            import traceback
            traceback.print_exc()
            print e
            DatedMessage.objects.post_message_to_user(
                "Error stopping slice %s: %s" % (
                    slice.name, parseFVexception(e)),
                user=request.user, msg_type=DatedMessage.TYPE_ERROR)
        else:
            DatedMessage.objects.post_message_to_user(
                "Successfully stopped slice %s" % slice.name,
                request.user, msg_type=DatedMessage.TYPE_SUCCESS)
        return HttpResponseRedirect(reverse("slice_detail", args=[slice_id]))
    else:
        return HttpResponseNotAllowed(["POST"])