Remove templates
In the current setup the templates views are not necessary
This commit is contained in:
		
					parent
					
						
							
								0b5cf2c057
							
						
					
				
			
			
				commit
				
					
						ca63355914
					
				
			
		
					 3 changed files with 1 additions and 75 deletions
				
			
		|  | @ -11,37 +11,12 @@ from .models import OpenNebulaManager | ||||||
| class VirtualMachineTemplateSerializer(serializers.Serializer): | class VirtualMachineTemplateSerializer(serializers.Serializer): | ||||||
|     """Serializer to map the virtual machine template instance into JSON format.""" |     """Serializer to map the virtual machine template instance into JSON format.""" | ||||||
|     id          = serializers.IntegerField(read_only=True) |     id          = serializers.IntegerField(read_only=True) | ||||||
|     set_name    = serializers.CharField(read_only=True, label='Name') |  | ||||||
|     name        = serializers.SerializerMethodField() |     name        = serializers.SerializerMethodField() | ||||||
|     cores       = serializers.SerializerMethodField()  |     cores       = serializers.SerializerMethodField()  | ||||||
|     disk        = serializers.IntegerField(write_only=True) |  | ||||||
|     disk_size   = serializers.SerializerMethodField() |     disk_size   = serializers.SerializerMethodField() | ||||||
|     set_memory      = serializers.IntegerField(write_only=True, label='Memory') |  | ||||||
|     memory      = serializers.SerializerMethodField() |     memory      = serializers.SerializerMethodField() | ||||||
|     price       = serializers.SerializerMethodField() |     price       = serializers.SerializerMethodField() | ||||||
| 
 | 
 | ||||||
|     def create(self, validated_data): |  | ||||||
|         data = validated_data |  | ||||||
|         template = data.pop('template') |  | ||||||
| 
 |  | ||||||
|         cores = template.pop('vcpu') |  | ||||||
|         name    = data.pop('name') |  | ||||||
|         disk_size = data.pop('disk')  |  | ||||||
|         memory  = template.pop('memory') |  | ||||||
|         manager = OpenNebulaManager() |  | ||||||
|          |  | ||||||
|         try: |  | ||||||
|             opennebula_id = manager.create_template(name=name, cores=cores, |  | ||||||
|                                                     memory=memory, |  | ||||||
|                                                     disk_size=disk_size, |  | ||||||
|                                                     core_price=core_price, |  | ||||||
|                                                     disk_size_price=disk_size_price, |  | ||||||
|                                                     memory_price=memory_price) |  | ||||||
|         except OpenNebulaException as err: |  | ||||||
|             raise serializers.ValidationError("OpenNebulaException occured. {0}".format(err)) |  | ||||||
|          |  | ||||||
|         return manager.get_template(template_id=opennebula_id) |  | ||||||
| 
 |  | ||||||
|     def get_cores(self, obj): |     def get_cores(self, obj): | ||||||
|         if hasattr(obj.template, 'vcpu'): |         if hasattr(obj.template, 'vcpu'): | ||||||
|             return obj.template.vcpu |             return obj.template.vcpu | ||||||
|  | @ -58,18 +33,6 @@ class VirtualMachineTemplateSerializer(serializers.Serializer): | ||||||
|         except: |         except: | ||||||
|             return 0 |             return 0 | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
|     def get_price(self, obj): |  | ||||||
|         template = obj.template |  | ||||||
|         price = float(template.cpu) * 5.0 |  | ||||||
|         price += (int(template.memory)/1024 * 2.0) |  | ||||||
|         try: |  | ||||||
|             for disk in template.disks: |  | ||||||
|                 price += int(disk.size)/1024 * 0.6 |  | ||||||
|         except: |  | ||||||
|             pass |  | ||||||
|         return price |  | ||||||
| 
 |  | ||||||
|     def get_memory(self, obj): |     def get_memory(self, obj): | ||||||
|         return int(obj.template.memory)/1024 |         return int(obj.template.memory)/1024 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,15 +1,10 @@ | ||||||
| from django.conf.urls import url, include | from django.conf.urls import url, include | ||||||
| from rest_framework.urlpatterns import format_suffix_patterns | from rest_framework.urlpatterns import format_suffix_patterns | ||||||
| from .views import TemplateCreateView, TemplateDetailsView,\ | from .views import VmCreateView, VmDetailsView | ||||||
|                    VmCreateView, VmDetailsView |  | ||||||
| 
 | 
 | ||||||
| urlpatterns = { | urlpatterns = { | ||||||
|     url(r'^auth/', include('rest_framework.urls', namespace='rest_framework')), |     url(r'^auth/', include('rest_framework.urls', namespace='rest_framework')), | ||||||
| 
 | 
 | ||||||
|     url(r'^templates/$', TemplateCreateView.as_view(), name="template_create"), |  | ||||||
|     url(r'^templates/(?P<pk>[0-9]+)/$', TemplateDetailsView.as_view(), |  | ||||||
|         name="templates_details"), |  | ||||||
|      |  | ||||||
|     url(r'^vms/$', VmCreateView.as_view(), name="vm_create"), |     url(r'^vms/$', VmCreateView.as_view(), name="vm_create"), | ||||||
|     url(r'^vms/(?P<pk>[0-9]+)/$', VmDetailsView.as_view(), |     url(r'^vms/(?P<pk>[0-9]+)/$', VmDetailsView.as_view(), | ||||||
|         name="vm_details"), |         name="vm_details"), | ||||||
|  |  | ||||||
|  | @ -20,38 +20,6 @@ class ServiceUnavailable(APIException): | ||||||
|     default_code = 'service_unavailable' |     default_code = 'service_unavailable' | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class TemplateCreateView(generics.ListCreateAPIView): |  | ||||||
|     """This class handles the GET and POST requests.""" |  | ||||||
| 
 |  | ||||||
|     serializer_class = VirtualMachineTemplateSerializer |  | ||||||
|     permission_classes = (permissions.IsAuthenticated, permissions.IsAdminUser) |  | ||||||
| 
 |  | ||||||
|     def get_queryset(self): |  | ||||||
|         manager = OpenNebulaManager() |  | ||||||
|         return manager.get_templates() |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|     def perform_create(self, serializer): |  | ||||||
|         """Save the post data when creating a new template.""" |  | ||||||
|         serializer.save() |  | ||||||
| 
 |  | ||||||
| class TemplateDetailsView(generics.RetrieveUpdateDestroyAPIView): |  | ||||||
|     """This class handles the http GET, PUT and DELETE requests.""" |  | ||||||
| 
 |  | ||||||
|     serializer_class = VirtualMachineTemplateSerializer |  | ||||||
|     permission_classes = (permissions.IsAuthenticated) |  | ||||||
| 
 |  | ||||||
|     def get_queryset(self): |  | ||||||
|         manager = OpenNebulaManager() |  | ||||||
|         # We may have ConnectionRefusedError if we don't have a  |  | ||||||
|         # connection to OpenNebula. For now, we raise ServiceUnavailable |  | ||||||
|         try: |  | ||||||
|             templates = manager.get_templates() |  | ||||||
|         except ConnectionRefusedError: |  | ||||||
|             raise ServiceUnavailable             |  | ||||||
|          |  | ||||||
|         return templates |  | ||||||
| 
 |  | ||||||
| class VmCreateView(generics.ListCreateAPIView): | class VmCreateView(generics.ListCreateAPIView): | ||||||
|     """This class handles the GET and POST requests.""" |     """This class handles the GET and POST requests.""" | ||||||
|     serializer_class = VirtualMachineSerializer |     serializer_class = VirtualMachineSerializer | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue