Add subscription callback sample api
[vfc/gvnfm/vnflcm.git] / lcm / lcm / samples / views.py
index 828b182..b82c555 100644 (file)
 
 import logging
 
+from drf_yasg.utils import swagger_auto_schema
+from rest_framework import status
 from rest_framework.views import APIView
 from rest_framework.response import Response
+# from .resources import ResCreateThread, ResDeleteThread
+from lcm.pub.vimapi import adaptor
 
 logger = logging.getLogger(__name__)
 
 
 class SampleList(APIView):
-    """
-    List all samples.
-    """
+    @swagger_auto_schema(
+        responses={
+            status.HTTP_200_OK: 'Successfully'})
     def get(self, request, format=None):
         logger.debug("get")
         return Response({"status": "active"})
+
+
+class CallbackSample(APIView):
+    @swagger_auto_schema(
+        responses={
+            status.HTTP_204_NO_CONTENT: 'Successfully'
+        }
+    )
+    def get(self, request, format=None):
+        logger.debug("Callback Sample")
+        return Response(status=status.HTTP_204_NO_CONTENT)
+
+
+class ResourceList(APIView):
+    @swagger_auto_schema(
+        responses={
+            status.HTTP_204_NO_CONTENT: 'Successfully'})
+    def do_notify(delf, res_type, ret):
+        logger.debug('ret of [%s] is %s', res_type, ret)
+
+    def post(self, request, action_type):
+        logger.debug("ResourceList post(%s): %s", action_type, request.data)
+        if action_type == "inst":
+            # ResCreateThread(request.data).start()
+            adaptor.create_vim_res(request.data, self.do_notify)
+        else:
+            # ResDeleteThread(request.data).start()
+            adaptor.delete_vim_res(request.data, self.do_notify)
+        return Response(data=None, status=status.HTTP_204_NO_CONTENT)
+
+
+class HealthCheckView(APIView):
+    @swagger_auto_schema(
+        responses={
+            status.HTTP_200_OK: 'Active'})
+    def get(self, request, format=None):
+        logger.debug("HealthCheck")
+        return Response({"status": "active"})