mirror of
https://github.com/retspen/webvirtcloud
synced 2024-12-27 08:35:22 +00:00
33 lines
994 B
Python
33 lines
994 B
Python
|
from django.shortcuts import get_object_or_404
|
||
|
from computes.models import Compute
|
||
|
from rest_framework import status, viewsets
|
||
|
|
||
|
|
||
|
from vrtManager.interface import wvmInterfaces, wvmInterface
|
||
|
|
||
|
from .serializers import InterfacesSerializer
|
||
|
from rest_framework.response import Response
|
||
|
|
||
|
|
||
|
|
||
|
class InterfaceViewSet(viewsets.ViewSet):
|
||
|
"""
|
||
|
A viewset for listing retrieving interfaces.
|
||
|
"""
|
||
|
|
||
|
def list(self, request, compute_pk=None):
|
||
|
queryset = []
|
||
|
compute = get_object_or_404(Compute, pk=compute_pk)
|
||
|
|
||
|
conn = wvmInterfaces(compute.hostname, compute.login, compute.password, compute.type)
|
||
|
ifaces = conn.get_ifaces()
|
||
|
|
||
|
for iface in ifaces:
|
||
|
interf = wvmInterface(compute.hostname, compute.login, compute.password, compute.type, iface)
|
||
|
queryset.append(interf.get_details())
|
||
|
|
||
|
serializer = InterfacesSerializer(queryset, many=True, context={'request': request})
|
||
|
|
||
|
return Response(serializer.data)
|
||
|
|