def database_disk_resize_view(self, request, database_id): try: database = check_is_database_enabled(database_id, 'disk resize') offerings = DiskOffering.objects.all().exclude( id=database.databaseinfra.disk_offering.id) check_resize_options(database_id, offerings) except (DisabledDatabase, NoResizeOption) as err: self.message_user(request, err.message, messages.ERROR) return HttpResponseRedirect(err.url) form = None if request.method == 'POST': form = DiskResizeDatabaseForm(database=database, data=request.POST) if form.is_valid(): Database.disk_resize( database=database, new_disk_offering=request.POST.get('target_offer'), user=request.user) url = reverse('admin:notification_taskhistory_changelist') return HttpResponseRedirect("{}?user={}".format( url, request.user.username)) else: form = DiskResizeDatabaseForm(database=database) return render_to_response("logical/database/disk_resize.html", locals(), context_instance=RequestContext(request))
def _disk_resize(request, database): try: check_is_database_enabled(database.id, 'disk resize') except DisabledDatabase as err: messages.add_message(request, messages.ERROR, err.message) return disk_offering = DiskOffering.objects.get( id=request.POST.get('disk_offering') ) current_used = round(database.used_size_in_gb, 2) offering_size = round(disk_offering.size_gb(), 2) if current_used >= offering_size: messages.add_message( request, messages.ERROR, 'Your database has {} GB, please choose a bigger disk'.format( current_used ) ) return Database.disk_resize( database=database, new_disk_offering=disk_offering.id, user=request.user )