mirror of
https://github.com/retspen/webvirtcloud
synced 2024-11-01 12:04:15 +00:00
59 lines
1.7 KiB
Python
59 lines
1.7 KiB
Python
|
from computes.models import Compute
|
||
|
from rest_framework import viewsets
|
||
|
from rest_framework import permissions
|
||
|
|
||
|
from vrtManager.create import wvmCreate
|
||
|
from .serializers import ComputeSerializer
|
||
|
from rest_framework.response import Response
|
||
|
|
||
|
|
||
|
class ComputeViewSet(viewsets.ModelViewSet):
|
||
|
"""
|
||
|
API endpoint that allows computes to be viewed or edited.
|
||
|
"""
|
||
|
queryset = Compute.objects.all().order_by('name')
|
||
|
serializer_class = ComputeSerializer
|
||
|
permission_classes = [permissions.IsAuthenticated]
|
||
|
|
||
|
|
||
|
class ComputeArchitecturesView(viewsets.ViewSet):
|
||
|
|
||
|
def list(self, request, compute_pk=None):
|
||
|
"""
|
||
|
Return a list of supported host architectures.
|
||
|
"""
|
||
|
compute = Compute.objects.get(pk=compute_pk)
|
||
|
conn = wvmCreate(
|
||
|
compute.hostname,
|
||
|
compute.login,
|
||
|
compute.password,
|
||
|
compute.type,
|
||
|
)
|
||
|
return Response(conn.get_hypervisors_machines())
|
||
|
|
||
|
def retrieve(self, request, compute_pk=None, pk=None):
|
||
|
compute = Compute.objects.get(pk=compute_pk)
|
||
|
conn = wvmCreate(
|
||
|
compute.hostname,
|
||
|
compute.login,
|
||
|
compute.password,
|
||
|
compute.type,
|
||
|
)
|
||
|
return Response(conn.get_machine_types(pk))
|
||
|
|
||
|
|
||
|
class ComputeMachinesView(viewsets.ViewSet):
|
||
|
|
||
|
def list(self, request, compute_pk=None, archs_pk=None):
|
||
|
"""
|
||
|
Return a list of supported host architectures.
|
||
|
"""
|
||
|
compute = Compute.objects.get(pk=compute_pk)
|
||
|
conn = wvmCreate(
|
||
|
compute.hostname,
|
||
|
compute.login,
|
||
|
compute.password,
|
||
|
compute.type,
|
||
|
)
|
||
|
return Response(conn.get_machine_types(archs_pk))
|