summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfujinhua <fu.jinhua@zte.com.cn>2017-03-29 09:49:43 +0800
committerfujinhua <fu.jinhua@zte.com.cn>2017-03-29 09:49:43 +0800
commit2839c6c4a2458fc500edac852a852d5fb3d4db45 (patch)
tree7cc1393205985a8d1a214dbcee5b4e463a2eecca
parentcae3299b6c58d67510467f7587f7315ef3f4f7d9 (diff)
add interface of opt vim resources
Change-Id: I145e74ae3d59942344e397de0091f9e0cb41241b Issue-Id: GVNFM-45 Signed-off-by: fujinhua <fu.jinhua@zte.com.cn>
-rw-r--r--lcm/lcm/samples/resources.py58
-rw-r--r--lcm/lcm/samples/urls.py1
-rw-r--r--lcm/lcm/samples/views.py20
3 files changed, 79 insertions, 0 deletions
diff --git a/lcm/lcm/samples/resources.py b/lcm/lcm/samples/resources.py
new file mode 100644
index 00000000..5b8bfad9
--- /dev/null
+++ b/lcm/lcm/samples/resources.py
@@ -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)
diff --git a/lcm/lcm/samples/urls.py b/lcm/lcm/samples/urls.py
index af912644..636588c4 100644
--- a/lcm/lcm/samples/urls.py
+++ b/lcm/lcm/samples/urls.py
@@ -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()), ]
diff --git a/lcm/lcm/samples/views.py b/lcm/lcm/samples/views.py
index 828b1824..b20901e1 100644
--- a/lcm/lcm/samples/views.py
+++ b/lcm/lcm/samples/views.py
@@ -14,8 +14,10 @@
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