mirror of
https://github.com/retspen/webvirtcloud
synced 2025-07-31 12:41:08 +00:00
Rest framework (#24)
* Add rest framework for API: First Commit * modify some shell scripts to make variable references safer; modify some python scripts to reduce the code complexity and cyclomatic complexity of functions. * Add REST API for some webvirtcloud functions. Instance list/delete/create, compute list/delete/create, storages-network list/retrieve. Add swagger and redoc for API interface * update requirements Co-authored-by: herengui <herengui@uniontech.com>
This commit is contained in:
parent
92254401dc
commit
cfce71ec2b
42 changed files with 1170 additions and 348 deletions
19
networks/api/serializers.py
Normal file
19
networks/api/serializers.py
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
|
||||
from rest_framework import serializers
|
||||
from networks.models import Networks
|
||||
|
||||
|
||||
class NetworksSerializer(serializers.ModelSerializer):
|
||||
|
||||
class Meta:
|
||||
model = Networks
|
||||
fields = ['name', 'status', 'device', 'forward']
|
||||
|
||||
|
||||
|
||||
# class VolumeSerializer(serializers.ModelSerializer):
|
||||
# allocation = serializers.ReadOnlyField()
|
||||
# meta_prealloc = serializers.BooleanField(write_only=True)
|
||||
# class Meta:
|
||||
# model = Volume
|
||||
# fields = ['name', 'type', 'allocation', 'size', 'meta_prealloc']
|
||||
26
networks/api/viewsets.py
Normal file
26
networks/api/viewsets.py
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
from django.shortcuts import get_object_or_404
|
||||
from computes.models import Compute
|
||||
from rest_framework import status, viewsets
|
||||
|
||||
from vrtManager.network import wvmNetworks
|
||||
|
||||
from .serializers import NetworksSerializer
|
||||
from rest_framework.response import Response
|
||||
|
||||
|
||||
class NetworkViewSet(viewsets.ViewSet):
|
||||
"""
|
||||
A viewset for listing retrieving networks.
|
||||
"""
|
||||
|
||||
def list(self, request, compute_pk=None):
|
||||
|
||||
compute = get_object_or_404(Compute, pk=compute_pk)
|
||||
|
||||
conn = wvmNetworks(compute.hostname, compute.login, compute.password, compute.type)
|
||||
queryset = conn.get_networks_info()
|
||||
|
||||
serializer = NetworksSerializer(queryset, many=True, context={'request': request})
|
||||
|
||||
return Response(serializer.data)
|
||||
|
||||
|
|
@ -1,3 +1,13 @@
|
|||
from django.db import models
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
|
||||
# Create your models here.
|
||||
class Networks(models.Model):
|
||||
name = models.CharField(_('name'), max_length=20, error_messages={'required': _('No network name has been entered')})
|
||||
status = models.CharField(_('status'), max_length=12)
|
||||
device = models.CharField(_('device'), max_length=100)
|
||||
forward = models.CharField(_('forward'), max_length=24)
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue