diff --git a/circle/dashboard/urls.py b/circle/dashboard/urls.py index 7e6091f..20cac26 100644 --- a/circle/dashboard/urls.py +++ b/circle/dashboard/urls.py @@ -55,7 +55,7 @@ from .views import ( OpenSearchDescriptionView, NodeActivityView, UserList, TemplateREST, LeaseREST, DiskRest, InstanceREST, - InterfaceREST, InstanceFromTemplateREST, InstanceFTforUsers, + InterfaceREST, InstanceFromTemplateREST, InstanceFTforUsersREST, StorageDetail, DiskDetail, MessageList, MessageDetail, MessageCreate, MessageDelete, EnableTwoFactorView, DisableTwoFactorView, @@ -72,7 +72,7 @@ urlpatterns = [ path('acpi/lease/', LeaseREST.as_view()), path('acpi/disk/', DiskRest.as_view()), path('acpi/interface/', InterfaceREST.as_view()), - path('acpi/ftusers/', InstanceFTforUsers.as_view()), + path('acpi/ftusers/', InstanceFTforUsersREST.as_view()), url(r'^$', IndexView.as_view(), name="dashboard.index"), url(r"^profile/list/$", UserList.as_view(), name="dashboard.views.user-list"), diff --git a/circle/dashboard/views/template.py b/circle/dashboard/views/template.py index 18408b0..716ea7a 100644 --- a/circle/dashboard/views/template.py +++ b/circle/dashboard/views/template.py @@ -225,6 +225,17 @@ class InstanceFromTemplateREST(APIView): 'owner': user, } amount = data.get("amount", 1) + if 'num_cores' in data: + ikwargs.update({'num_cores':data['num_cores']}) + + if 'ram_size' in data: + ikwargs.update({'ram_size':data['ram_size']}) + + if 'priority' in data: + ikwargs.update({'priority':data['priority']}) + + if 'max_ram_size' in data: + ikwargs.update({'max_ram_size':data['ram_size']}) instances = Instance.mass_create_from_template(amount=amount, **ikwargs) @@ -235,13 +246,12 @@ class InstanceFromTemplateREST(APIView): return JsonResponse({'instances': serializer.data}, status=201) -class InstanceFTforUsers(APIView): +class InstanceFTforUsersREST(APIView): authentication_classes = [TokenAuthentication,BasicAuthentication] permission_classes = [IsAdminUser] def post(self, request, format=None): data = JSONParser().parse(request) - user = User.objects.get(pk=request.user.pk) template = InstanceTemplate.objects.get(pk=data['template']) ikwargs = { 'name': data['name'], @@ -250,6 +260,17 @@ class InstanceFTforUsers(APIView): 'operator': data.get('operator', None), 'admin': data.get('admin', None) } + if 'num_cores' in data: + ikwargs.update({'num_cores':data['num_cores']}) + + if 'ram_size' in data: + ikwargs.update({'ram_size':data['ram_size']}) + + if 'priority' in data: + ikwargs.update({'priority':data['priority']}) + + if 'max_ram_size' in data: + ikwargs.update({'max_ram_size':data['ram_size']}) missing_users, instances = Instance.mass_create_for_users(**ikwargs)