add interface of opt vim resources
authorfujinhua <fu.jinhua@zte.com.cn>
Wed, 29 Mar 2017 01:49:43 +0000 (09:49 +0800)
committerfujinhua <fu.jinhua@zte.com.cn>
Wed, 29 Mar 2017 01:49:43 +0000 (09:49 +0800)
Change-Id: I145e74ae3d59942344e397de0091f9e0cb41241b
Issue-Id: GVNFM-45
Signed-off-by: fujinhua <fu.jinhua@zte.com.cn>
lcm/lcm/samples/resources.py [new file with mode: 0644]
lcm/lcm/samples/urls.py
lcm/lcm/samples/views.py

diff --git a/lcm/lcm/samples/resources.py b/lcm/lcm/samples/resources.py
new file mode 100644 (file)
index 0000000..5b8bfad
--- /dev/null
@@ -0,0 +1,58 @@
+# Copyright 2017 ZTE Corporation.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+import json
+import logging
+import threading
+import traceback
+import sys
+
+from lcm.pub.vimapi import adaptor
+
+logger = logging.getLogger(__name__)
+
+class ResCreateThread(threading.Thread):
+    """
+    Create resource
+    """
+    def __init__(self, req_data):
+        threading.Thread.__init__(self)
+        self.data = req_data
+
+    def run(self):
+        try:
+            adaptor.create_vim_res(self.data, self.do_notify)
+        except:
+            logger.error(traceback.format_exc())
+            logger.error(str(sys.exc_info()))
+            
+    def do_notify(self, res_type, ret):
+        logger.debug('ret of [%s] is %s', res_type, str(ret))
+
+class ResDeleteThread(threading.Thread):
+    """
+    Delete resource
+    """
+    def __init__(self, req_data):
+        threading.Thread.__init__(self)
+        self.data = req_data
+
+    def run(self):
+        try:
+            adaptor.delete_vim_res(self.data, self.do_notify)
+        except:
+            logger.error(traceback.format_exc())
+            logger.error(str(sys.exc_info()))
+            
+    def do_notify(self, res_type, res_id):
+        logger.debug('Delete %s(%s)', res_type, res_id)
index af91264..636588c 100644 (file)
@@ -16,4 +16,5 @@ from django.conf.urls import url
 from lcm.samples import views
 
 urlpatterns = [
+    url(r'^openoapi/vnflcm/v1/resources$', views.ResourceList.as_view()),
     url(r'^samples/$', views.SampleList.as_view()), ]
index 828b182..b20901e 100644 (file)
 
 import logging
 
+from rest_framework import status
 from rest_framework.views import APIView
 from rest_framework.response import Response
+from .resources import ResCreateThread, ResDeleteThread
 
 logger = logging.getLogger(__name__)
 
@@ -27,3 +29,21 @@ class SampleList(APIView):
     def get(self, request, format=None):
         logger.debug("get")
         return Response({"status": "active"})
+
+class ResourceList(APIView):
+    """
+    Add resource.
+    """
+    def post(self, request):
+        logger.debug("ResourceList post: %s" % request.data)
+        ResCreateThread(request.data).start()
+        return Response(data=None, status=status.HTTP_204_NO_CONTENT)
+        
+    """
+    Delete resource.
+    """
+    def delete(self, request):
+        logger.debug("ResourceList delete: %s" % request.data)
+        ResDeleteThread(request.data).start()
+        return Response(data=None, status=status.HTTP_204_NO_CONTENT)
+        
\ No newline at end of file