diff options
author | fujinhua <fu.jinhua@zte.com.cn> | 2017-03-29 09:49:43 +0800 |
---|---|---|
committer | fujinhua <fu.jinhua@zte.com.cn> | 2017-03-29 09:49:43 +0800 |
commit | 2839c6c4a2458fc500edac852a852d5fb3d4db45 (patch) | |
tree | 7cc1393205985a8d1a214dbcee5b4e463a2eecca /lcm | |
parent | cae3299b6c58d67510467f7587f7315ef3f4f7d9 (diff) |
add interface of opt vim resources
Change-Id: I145e74ae3d59942344e397de0091f9e0cb41241b
Issue-Id: GVNFM-45
Signed-off-by: fujinhua <fu.jinhua@zte.com.cn>
Diffstat (limited to 'lcm')
-rw-r--r-- | lcm/lcm/samples/resources.py | 58 | ||||
-rw-r--r-- | lcm/lcm/samples/urls.py | 1 | ||||
-rw-r--r-- | lcm/lcm/samples/views.py | 20 |
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 |