Readded hostingplans

This commit is contained in:
Modulos 2017-05-13 13:47:53 +02:00
commit 752e11bcea
9 changed files with 148 additions and 96 deletions

View file

@ -25,14 +25,13 @@ from utils.stripe_utils import StripeUtils
from utils.forms import BillingAddressForm, PasswordResetRequestForm, UserBillingAddressForm
from utils.views import PasswordResetViewMixin, PasswordResetConfirmViewMixin, LoginViewMixin
from utils.mailer import BaseEmail
from .models import HostingOrder, HostingBill, UserHostingKey
from .models import HostingOrder, HostingBill, HostingPlan, UserHostingKey
from .forms import HostingUserSignupForm, HostingUserLoginForm, UserHostingKeyForm
from .mixins import ProcessVMSelectionMixin
from opennebula_api.models import OpenNebulaManager
from opennebula_api.serializers import VirtualMachineSerializer,\
VirtualMachineTemplateSerializer,\
ImageSerializer
VirtualMachineTemplateSerializer
from oca.exceptions import OpenNebulaException
@ -391,13 +390,12 @@ class PaymentVMView(LoginRequiredMixin, FormView):
context = self.get_context_data()
specifications = request.session.get('template')
template = request.session.get('template')
specs = request.session.get('specs')
vm_template_id = specifications.get('id', 1)
vm_template_id = template.get('id', 1)
vm_image_id = request.session.get('image').get('id', None)
final_price = specifications.get('price', 1)
final_price = specs.get('price')
token = form.cleaned_data.get('token')
@ -445,7 +443,8 @@ class PaymentVMView(LoginRequiredMixin, FormView):
# Create a vm using logged user
vm_id = manager.create_vm(
template_id=vm_template_id,
image_id=vm_image_id,
#XXX: Confi
specs=specs,
ssh_key=user_key.public_key,
)
@ -573,11 +572,11 @@ class CreateVirtualMachinesView(LoginRequiredMixin, View):
manager = OpenNebulaManager()
templates = manager.get_templates()
images = manager.get_images()
configuration_options = HostingPlan.get_serialized_configs()
context = {
'templates': VirtualMachineTemplateSerializer(templates, many=True).data,
'images' : ImageSerializer(images, many=True).data
'configuration_options' : configuration_options,
}
return render(request, self.template_name, context)
@ -585,10 +584,11 @@ class CreateVirtualMachinesView(LoginRequiredMixin, View):
manager = OpenNebulaManager()
template_id = request.POST.get('vm_template_id')
template = manager.get_template(template_id)
image_id = request.POST.get('vm_image_id')
image = manager.get_image(image_id)
configuration_id = int(request.POST.get('configuration'))
configuration = HostingPlan.objects.get(id=configuration_id)
request.session['template'] = VirtualMachineTemplateSerializer(template).data
#request.session['image'] = ImageSerializer(image).data
request.session['specs'] = configuration.serialize()
return redirect(reverse('hosting:payment'))
@ -701,6 +701,10 @@ class HostingBillDetailView(PermissionRequiredMixin, LoginRequiredMixin, DetailV
# Get vms
queryset = manager.get_vms()
vms = VirtualMachineSerializer(queryset, many=True).data
# Set total price
bill = context['bill']
bill.total_price = 0.0
for vm in vms:
bill.total_price += vm['price']
context['vms'] = vms
return context