Add subscription callback sample api
[vfc/gvnfm/vnflcm.git] / lcm / lcm / samples / views.py
1 # Copyright 2017 ZTE Corporation.
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 #         http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14
15 import logging
16
17 from drf_yasg.utils import swagger_auto_schema
18 from rest_framework import status
19 from rest_framework.views import APIView
20 from rest_framework.response import Response
21 # from .resources import ResCreateThread, ResDeleteThread
22 from lcm.pub.vimapi import adaptor
23
24 logger = logging.getLogger(__name__)
25
26
27 class SampleList(APIView):
28     @swagger_auto_schema(
29         responses={
30             status.HTTP_200_OK: 'Successfully'})
31     def get(self, request, format=None):
32         logger.debug("get")
33         return Response({"status": "active"})
34
35
36 class CallbackSample(APIView):
37     @swagger_auto_schema(
38         responses={
39             status.HTTP_204_NO_CONTENT: 'Successfully'
40         }
41     )
42     def get(self, request, format=None):
43         logger.debug("Callback Sample")
44         return Response(status=status.HTTP_204_NO_CONTENT)
45
46
47 class ResourceList(APIView):
48     @swagger_auto_schema(
49         responses={
50             status.HTTP_204_NO_CONTENT: 'Successfully'})
51     def do_notify(delf, res_type, ret):
52         logger.debug('ret of [%s] is %s', res_type, ret)
53
54     def post(self, request, action_type):
55         logger.debug("ResourceList post(%s): %s", action_type, request.data)
56         if action_type == "inst":
57             # ResCreateThread(request.data).start()
58             adaptor.create_vim_res(request.data, self.do_notify)
59         else:
60             # ResDeleteThread(request.data).start()
61             adaptor.delete_vim_res(request.data, self.do_notify)
62         return Response(data=None, status=status.HTTP_204_NO_CONTENT)
63
64
65 class HealthCheckView(APIView):
66     @swagger_auto_schema(
67         responses={
68             status.HTTP_200_OK: 'Active'})
69     def get(self, request, format=None):
70         logger.debug("HealthCheck")
71         return Response({"status": "active"})