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"])
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"])
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"])
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"])