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