1
0
Fork 0
mirror of https://github.com/retspen/webvirtcloud synced 2025-07-31 12:41:08 +00:00

format python code with black

This commit is contained in:
catborise 2022-11-02 08:54:35 +03:00
parent ea409ca863
commit 217e106c8b
55 changed files with 2510 additions and 1454 deletions

View file

@ -5,7 +5,15 @@ from computes import utils
from instances.models import Flavor, Instance
from instances.views import get_instance
from instances.utils import migrate_instance
from instances.views import poweron, powercycle, poweroff, force_off, suspend, resume, destroy as instance_destroy
from instances.views import (
poweron,
powercycle,
poweroff,
force_off,
suspend,
resume,
destroy as instance_destroy,
)
from rest_framework import status, viewsets, permissions
from rest_framework.decorators import action
@ -14,26 +22,39 @@ from rest_framework.response import Response
from vrtManager import util
from vrtManager.create import wvmCreate
from .serializers import FlavorSerializer, InstanceSerializer, InstanceDetailsSerializer, MigrateSerializer, CreateInstanceSerializer
from .serializers import (
FlavorSerializer,
InstanceSerializer,
InstanceDetailsSerializer,
MigrateSerializer,
CreateInstanceSerializer,
)
class InstancesViewSet(viewsets.ViewSet):
"""
A simple ViewSet for listing or retrieving ALL/Compute Instances.
"""
permission_classes = [permissions.IsAuthenticated]
def list(self, request):
if request.user.is_superuser or request.user.has_perm("instances.view_instances"):
queryset = Instance.objects.all().prefetch_related("userinstance_set")
else:
queryset = Instance.objects.filter(userinstance__user=request.user).prefetch_related("userinstance_set")
serializer = InstanceSerializer(queryset, many=True, context={'request': request})
serializer = InstanceSerializer(
queryset,
many=True,
context={"request": request}
)
return Response(serializer.data)
def retrieve(self, request, pk=None, compute_pk=None):
queryset = get_instance(request.user, pk)
serializer = InstanceSerializer(queryset, context={'request': request})
serializer = InstanceSerializer(queryset, context={"request": request})
return Response(serializer.data)
@ -42,94 +63,110 @@ class InstanceViewSet(viewsets.ViewSet):
"""
A simple ViewSet for listing or retrieving Compute Instances.
"""
#serializer_class = CreateInstanceSerializer
# serializer_class = CreateInstanceSerializer
permission_classes = [permissions.IsAuthenticated]
def list(self, request, compute_pk=None):
compute = get_object_or_404(Compute, pk=compute_pk)
utils.refresh_instance_database(compute)
queryset = Instance.objects.filter(compute=compute).prefetch_related("userinstance_set")
serializer = InstanceSerializer(queryset, many=True, context={'request': request})
return Response(serializer.data)
queryset = Instance.objects.filter(compute=compute).prefetch_related("userinstance_set")
serializer = InstanceSerializer(
queryset,
many=True,
context={"request": request}
)
return Response(serializer.data)
def retrieve(self, request, pk=None, compute_pk=None):
queryset = get_instance(request.user, pk)
serializer = InstanceDetailsSerializer(queryset, context={'request': request})
serializer = InstanceDetailsSerializer(queryset, context={"request": request})
return Response(serializer.data)
def destroy(self, request, pk=None, compute_pk=None):
instance_destroy(request, pk)
return Response({'status': 'Instance is destroyed'})
return Response({"status": "Instance is destroyed"})
@action(detail=True, methods=['post'])
@action(detail=True, methods=["post"])
def poweron(self, request, pk=None):
poweron(request, pk)
return Response({'status': 'poweron command send'})
@action(detail=True, methods=['post'])
return Response({"status": "poweron command send"})
@action(detail=True, methods=["post"])
def poweroff(self, request, pk=None):
poweroff(request, pk)
return Response({'status': 'poweroff command send'})
@action(detail=True, methods=['post'])
return Response({"status": "poweroff command send"})
@action(detail=True, methods=["post"])
def powercycle(self, request, pk=None):
powercycle(request, pk)
return Response({'status': 'powercycle command send'})
@action(detail=True, methods=['post'])
return Response({"status": "powercycle command send"})
@action(detail=True, methods=["post"])
def forceoff(self, request, pk=None):
force_off(request, pk)
return Response({'status': 'force off command send'})
return Response({"status": "force off command send"})
@action(detail=True, methods=['post'])
@action(detail=True, methods=["post"])
def suspend(self, request, pk=None):
suspend(request, pk)
return Response({'status': 'suspend command send'})
return Response({"status": "suspend command send"})
@action(detail=True, methods=['post'])
@action(detail=True, methods=["post"])
def resume(self, request, pk=None):
resume(request, pk)
return Response({'status': 'resume command send'})
return Response({"status": "resume command send"})
class MigrateViewSet(viewsets.ViewSet):
"""
A viewset for migrating instances.
"""
serializer_class = MigrateSerializer
queryset = ""
def create(self, request):
serializer = MigrateSerializer(data=request.data)
if serializer.is_valid():
instance = serializer.validated_data['instance']
target_host = serializer.validated_data['target_compute']
live = serializer.validated_data['live']
unsafe = serializer.validated_data['unsafe']
xml_del = serializer.validated_data['xml_del']
offline = serializer.validated_data['offline']
autoconverge = serializer.validated_data['autoconverge']
postcopy = serializer.validated_data['postcopy']
compress = serializer.validated_data['compress']
instance = serializer.validated_data["instance"]
target_host = serializer.validated_data["target_compute"]
live = serializer.validated_data["live"]
unsafe = serializer.validated_data["unsafe"]
xml_del = serializer.validated_data["xml_del"]
offline = serializer.validated_data["offline"]
autoconverge = serializer.validated_data["autoconverge"]
postcopy = serializer.validated_data["postcopy"]
compress = serializer.validated_data["compress"]
migrate_instance(target_host, instance, request.user, live, unsafe, xml_del, offline, autoconverge, compress, postcopy)
migrate_instance(
target_host,
instance,
request.user,
live,
unsafe,
xml_del,
offline,
autoconverge,
compress,
postcopy,
)
return Response({'status': 'instance migrate is started'})
return Response({"status": "instance migrate is started"})
else:
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
class FlavorViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows flavor to be viewed.
"""
queryset = Flavor.objects.all().order_by('id')
queryset = Flavor.objects.all().order_by("id")
serializer_class = FlavorSerializer
permission_classes = [permissions.IsAuthenticated]
@ -138,15 +175,15 @@ class CreateInstanceViewSet(viewsets.ViewSet):
"""
A viewset for creating instances.
"""
serializer_class = CreateInstanceSerializer
queryset = ""
def create(self, request, compute_pk=None, arch=None, machine=None):
serializer = CreateInstanceSerializer(data=request.data,
context = {'compute_pk': compute_pk,
'arch': arch,
'machine': machine
})
serializer = CreateInstanceSerializer(
data=request.data,
context={"compute_pk": compute_pk, "arch": arch, "machine": machine},
)
if serializer.is_valid():
volume_list = []
default_bus = app_settings.INSTANCE_VOLUME_DEFAULT_BUS
@ -166,14 +203,14 @@ class CreateInstanceViewSet(viewsets.ViewSet):
)
path = conn.create_volume(
serializer.validated_data['storage'],
serializer.validated_data['name'],
serializer.validated_data['hdd_size'],
default_disk_format,
serializer.validated_data['meta_prealloc'],
default_disk_owner_uid,
default_disk_owner_gid,
)
serializer.validated_data["storage"],
serializer.validated_data["name"],
serializer.validated_data["hdd_size"],
default_disk_format,
serializer.validated_data["meta_prealloc"],
default_disk_owner_uid,
default_disk_owner_gid,
)
volume = {}
firmware = {}
volume["device"] = "disk"
@ -189,8 +226,8 @@ class CreateInstanceViewSet(viewsets.ViewSet):
volume_list.append(volume)
if "UEFI" in serializer.validated_data['firmware']:
firmware["loader"] = serializer.validated_data['firmware'].split(":")[1].strip()
if "UEFI" in serializer.validated_data["firmware"]:
firmware["loader"] = (serializer.validated_data["firmware"].split(":")[1].strip())
firmware["secure"] = "no"
firmware["readonly"] = "yes"
firmware["type"] = "pflash"
@ -199,26 +236,26 @@ class CreateInstanceViewSet(viewsets.ViewSet):
firmware["secure"] = "yes"
ret = conn.create_instance(
name=serializer.validated_data['name'],
memory=serializer.validated_data['memory'],
vcpu=serializer.validated_data['vcpu'],
vcpu_mode=serializer.validated_data['vcpu_mode'],
name=serializer.validated_data["name"],
memory=serializer.validated_data["memory"],
vcpu=serializer.validated_data["vcpu"],
vcpu_mode=serializer.validated_data["vcpu_mode"],
uuid=util.randomUUID(),
arch=arch,
machine=machine,
firmware=firmware,
volumes=volume_list,
networks=serializer.validated_data['networks'],
nwfilter=serializer.validated_data['nwfilter'],
graphics=serializer.validated_data['graphics'],
virtio=serializer.validated_data['virtio'],
listener_addr=serializer.validated_data['listener_addr'],
video=serializer.validated_data['video'],
console_pass=serializer.validated_data['console_pass'],
mac=serializer.validated_data['mac'],
qemu_ga=serializer.validated_data['qemu_ga'],
networks=serializer.validated_data["networks"],
nwfilter=serializer.validated_data["nwfilter"],
graphics=serializer.validated_data["graphics"],
virtio=serializer.validated_data["virtio"],
listener_addr=serializer.validated_data["listener_addr"],
video=serializer.validated_data["video"],
console_pass=serializer.validated_data["console_pass"],
mac=serializer.validated_data["mac"],
qemu_ga=serializer.validated_data["qemu_ga"],
)
msg = f"Instance {serializer.validated_data['name']} is created"
return Response({'status': msg })
return Response({"status": msg})
else:
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)