From ca63355914892e115b97f958afb4251ae69745fd Mon Sep 17 00:00:00 2001 From: modulos Date: Thu, 1 Jun 2017 17:30:53 +0200 Subject: [PATCH] Remove templates In the current setup the templates views are not necessary --- opennebula_api/serializers.py | 37 ----------------------------------- opennebula_api/urls.py | 7 +------ opennebula_api/views.py | 32 ------------------------------ 3 files changed, 1 insertion(+), 75 deletions(-) diff --git a/opennebula_api/serializers.py b/opennebula_api/serializers.py index 6c86776a..60ce16f9 100644 --- a/opennebula_api/serializers.py +++ b/opennebula_api/serializers.py @@ -11,37 +11,12 @@ from .models import OpenNebulaManager class VirtualMachineTemplateSerializer(serializers.Serializer): """Serializer to map the virtual machine template instance into JSON format.""" id = serializers.IntegerField(read_only=True) - set_name = serializers.CharField(read_only=True, label='Name') name = serializers.SerializerMethodField() cores = serializers.SerializerMethodField() - disk = serializers.IntegerField(write_only=True) disk_size = serializers.SerializerMethodField() - set_memory = serializers.IntegerField(write_only=True, label='Memory') memory = 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): if hasattr(obj.template, 'vcpu'): return obj.template.vcpu @@ -58,18 +33,6 @@ class VirtualMachineTemplateSerializer(serializers.Serializer): except: 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): return int(obj.template.memory)/1024 diff --git a/opennebula_api/urls.py b/opennebula_api/urls.py index be5bdbf2..87976e2e 100644 --- a/opennebula_api/urls.py +++ b/opennebula_api/urls.py @@ -1,15 +1,10 @@ from django.conf.urls import url, include from rest_framework.urlpatterns import format_suffix_patterns -from .views import TemplateCreateView, TemplateDetailsView,\ - VmCreateView, VmDetailsView +from .views import VmCreateView, VmDetailsView urlpatterns = { url(r'^auth/', include('rest_framework.urls', namespace='rest_framework')), - url(r'^templates/$', TemplateCreateView.as_view(), name="template_create"), - url(r'^templates/(?P[0-9]+)/$', TemplateDetailsView.as_view(), - name="templates_details"), - url(r'^vms/$', VmCreateView.as_view(), name="vm_create"), url(r'^vms/(?P[0-9]+)/$', VmDetailsView.as_view(), name="vm_details"), diff --git a/opennebula_api/views.py b/opennebula_api/views.py index d982f7bb..f6c6b8d7 100644 --- a/opennebula_api/views.py +++ b/opennebula_api/views.py @@ -20,38 +20,6 @@ class ServiceUnavailable(APIException): 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): """This class handles the GET and POST requests.""" serializer_class = VirtualMachineSerializer