Merge branch 'opennebula_api' of github.com:ungleich/dynamicweb into opennebula_api
This commit is contained in:
commit
d8c8804cc4
7 changed files with 158 additions and 657 deletions
|
|
@ -31,7 +31,9 @@ from .mixins import ProcessVMSelectionMixin
|
|||
|
||||
from opennebula_api.models import OpenNebulaManager
|
||||
from opennebula_api.serializers import VirtualMachineSerializer,\
|
||||
VirtualMachineTemplateSerializer
|
||||
VirtualMachineTemplateSerializer,\
|
||||
ImageSerializer
|
||||
|
||||
|
||||
from oca.exceptions import OpenNebulaException
|
||||
from oca.pool import WrongNameError
|
||||
|
|
@ -408,6 +410,7 @@ class PaymentVMView(LoginRequiredMixin, FormView):
|
|||
specifications = request.session.get('template')
|
||||
|
||||
vm_template_id = specifications.get('id', 1)
|
||||
vm_image_id = request.session.get('image').get('id', 1)
|
||||
|
||||
final_price = specifications.get('price', 1)
|
||||
|
||||
|
|
@ -443,10 +446,7 @@ class PaymentVMView(LoginRequiredMixin, FormView):
|
|||
|
||||
# Create OpenNebulaManager
|
||||
manager = OpenNebulaManager(email=owner.email,
|
||||
password=owner.password,
|
||||
create_user=True)
|
||||
template = manager.get_template(vm_template_id)
|
||||
|
||||
password=owner.password)
|
||||
# Get user ssh key
|
||||
try:
|
||||
user_key = UserHostingKey.objects.get(
|
||||
|
|
@ -458,8 +458,9 @@ class PaymentVMView(LoginRequiredMixin, FormView):
|
|||
|
||||
# Create a vm using logged user
|
||||
vm_id = manager.create_vm(
|
||||
vm_template_id,
|
||||
ssh_key=user_key.public_key
|
||||
template_id=vm_template_id,
|
||||
ssh_key=user_key.public_key,
|
||||
image_id=vm_image_id,
|
||||
)
|
||||
|
||||
# Create a Hosting Order
|
||||
|
|
@ -525,8 +526,7 @@ class OrdersHostingDetailView(PermissionRequiredMixin, LoginRequiredMixin, Detai
|
|||
obj = self.get_object()
|
||||
owner = self.request.user
|
||||
manager = OpenNebulaManager(email=owner.email,
|
||||
password=owner.password,
|
||||
create_user=True)
|
||||
password=owner.password)
|
||||
vm = manager.get_vm(obj.vm_id)
|
||||
context['vm'] = VirtualMachineSerializer(vm).data
|
||||
return context
|
||||
|
|
@ -562,8 +562,7 @@ class VirtualMachinesPlanListView(LoginRequiredMixin, ListView):
|
|||
def get_queryset(self):
|
||||
owner = self.request.user
|
||||
manager = OpenNebulaManager(email=owner.email,
|
||||
password=owner.password,
|
||||
create_user=True)
|
||||
password=owner.password)
|
||||
queryset = manager.get_vms()
|
||||
serializer = VirtualMachineSerializer(queryset, many=True)
|
||||
return serializer.data
|
||||
|
|
@ -586,21 +585,24 @@ class CreateVirtualMachinesView(LoginRequiredMixin, View):
|
|||
)
|
||||
return HttpResponseRedirect(reverse('hosting:key_pair'))
|
||||
|
||||
#TODO: Replace with OpenNebulaManager.get_apps
|
||||
templates = OpenNebulaManager().get_templates()
|
||||
data = VirtualMachineTemplateSerializer(templates, many=True).data
|
||||
manager = OpenNebulaManager()
|
||||
templates = manager.get_templates()
|
||||
images = manager.get_images()
|
||||
|
||||
context = {
|
||||
'templates': data,
|
||||
'templates': VirtualMachineTemplateSerializer(templates, many=True).data,
|
||||
'images' : ImageSerializer(images, many=True).data
|
||||
}
|
||||
# context = {}
|
||||
return render(request, self.template_name, context)
|
||||
|
||||
def post(self, request):
|
||||
template_id = int(request.POST.get('vm_template_id'))
|
||||
template = OpenNebulaManager().get_template(template_id)
|
||||
data = VirtualMachineTemplateSerializer(template).data
|
||||
request.session['template'] = data
|
||||
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)
|
||||
request.session['template'] = VirtualMachineTemplateSerializer(template).data
|
||||
request.session['image'] = ImageSerializer(image).data
|
||||
return redirect(reverse('hosting:payment'))
|
||||
|
||||
|
||||
|
|
@ -613,8 +615,7 @@ class VirtualMachineView(LoginRequiredMixin, View):
|
|||
vm = None
|
||||
manager = OpenNebulaManager(
|
||||
email=owner.email,
|
||||
password=owner.password,
|
||||
create_user=True
|
||||
password=owner.password
|
||||
)
|
||||
vm_id = self.kwargs.get('pk')
|
||||
try:
|
||||
|
|
@ -644,8 +645,7 @@ class VirtualMachineView(LoginRequiredMixin, View):
|
|||
|
||||
manager = OpenNebulaManager(
|
||||
email=owner.email,
|
||||
password=owner.password,
|
||||
create_user=True
|
||||
password=owner.password
|
||||
)
|
||||
|
||||
terminated = manager.delete_vm(
|
||||
|
|
@ -711,8 +711,7 @@ class HostingBillDetailView(PermissionRequiredMixin, LoginRequiredMixin, DetailV
|
|||
|
||||
owner = self.request.user
|
||||
manager = OpenNebulaManager(email=owner.email,
|
||||
password=owner.password,
|
||||
create_user=True)
|
||||
password=owner.password)
|
||||
# Get vms
|
||||
queryset = manager.get_vms()
|
||||
vms = VirtualMachineSerializer(queryset, many=True).data
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue