blob: 62235403ff805f2fcb814199beb1a3ae651953fa [file] [log] [blame]
Scott Bakera115c1e2015-05-07 14:58:46 -07001from rest_framework.decorators import api_view
2from rest_framework.response import Response
3from rest_framework.reverse import reverse
4from rest_framework import serializers
5from rest_framework import generics
6from rest_framework.views import APIView
7from core.models import *
8from django.forms import widgets
Scott Bakera115c1e2015-05-07 14:58:46 -07009from django.core.exceptions import PermissionDenied
10from xos.exceptions import XOSNotFound
11
12class SSHKeyList(APIView):
13 method_kind = "list"
14 method_name = "sshkeys"
15
16 def get(self, request, format=None):
17 instances=[]
Tony Mackd8515472015-08-19 11:58:18 -040018 for instance in self.get_queryset().all():
19 if instance.instance_id:
20 instances.append( {"id": instance.instance_id,
21 "public_keys": instance.get_public_keys(),
22 "node_name": instance.node.name } )
Scott Bakera115c1e2015-05-07 14:58:46 -070023
24 return Response(instances)
25
Scott Baker071dae72015-05-07 15:28:23 -070026 def get_queryset(self):
Tony Mackd8515472015-08-19 11:58:18 -040027 queryset = queryset=Instance.objects.all()
Scott Baker071dae72015-05-07 15:28:23 -070028
29 node_name = self.request.QUERY_PARAMS.get('node_name', None)
30 if node_name is not None:
31 queryset = queryset.filter(node__name = node_name)
32
33 return queryset
34
Scott Bakera115c1e2015-05-07 14:58:46 -070035class SSHKeyDetail(APIView):
36 method_kind = "detail"
37 method_name = "sshkeys"
38
39 def get(self, request, format=None, pk=0):
Tony Mackd8515472015-08-19 11:58:18 -040040 instances = self.get_queryset().filter(instance_id=pk)
41 if not instances:
42 raise XOSNotFound("didn't find instance for instance %s" % pk)
43 return Response( [ {"id": instances[0].instance_id,
44 "public_keys": instances[0].get_public_keys(),
45 "node_name": instances[0].node.name } ])
Scott Baker071dae72015-05-07 15:28:23 -070046
47 def get_queryset(self):
Tony Mackd8515472015-08-19 11:58:18 -040048 queryset = queryset=Instance.objects.all()
Scott Baker071dae72015-05-07 15:28:23 -070049
50 node_name = self.request.QUERY_PARAMS.get('node_name', None)
51 if node_name is not None:
52 queryset = queryset.filter(node__name = node_name)
53
54 return queryset
Scott Bakera115c1e2015-05-07 14:58:46 -070055