aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfujinhua <fu.jinhua@zte.com.cn>2018-01-26 09:43:33 +0800
committerfujinhua <fu.jinhua@zte.com.cn>2018-01-26 10:07:27 +0800
commitdbb5a07972283f26b35984292b0717d92a80dc4c (patch)
tree4c711d078c4505ee14fb76ec51f7057098760cf3
parenteb0f507069a4827bea3b1d22013459db09d6c1a0 (diff)
Add ns terminate swagger generate logic
Change-Id: I79ae3253210718f13d9a7f8bc6758fced1f94b35 Issue-ID: VFC-680 Signed-off-by: fujinhua <fu.jinhua@zte.com.cn>
-rw-r--r--lcm/ns/tests/tests_ns_terminate.py8
-rw-r--r--lcm/ns/views.py32
2 files changed, 28 insertions, 12 deletions
diff --git a/lcm/ns/tests/tests_ns_terminate.py b/lcm/ns/tests/tests_ns_terminate.py
index 4a33105d..d7091882 100644
--- a/lcm/ns/tests/tests_ns_terminate.py
+++ b/lcm/ns/tests/tests_ns_terminate.py
@@ -51,12 +51,12 @@ class TestTerminateNsViews(TestCase):
@mock.patch.object(TerminateNsService, 'run')
def test_terminate_vnf_url(self, mock_run):
- mock_run.re.return_value = None
+ mock_run.re.return_value = "1"
req_data = {
"terminationType": "forceful",
"gracefulTerminationTimeout": "600"}
response = self.client.post("/api/nslcm/v1/ns/%s/terminate" % self.ns_inst_id, data=req_data)
- self.failUnlessEqual(status.HTTP_202_ACCEPTED, response.status_code)
+ self.failUnlessEqual(status.HTTP_202_ACCEPTED, response.status_code, response.data)
response = self.client.delete("/api/nslcm/v1/ns/%s" % self.ns_inst_id)
self.failUnlessEqual(status.HTTP_204_NO_CONTENT, response.status_code)
@@ -100,7 +100,7 @@ class TestTerminateNsViews(TestCase):
@mock.patch.object(TerminateNsService, 'run')
def test_terminate_non_existing_ns_inst_id(self, mock_run):
- mock_run.re.return_value = None
+ mock_run.re.return_value = "1"
ns_inst_id = '100'
@@ -108,6 +108,6 @@ class TestTerminateNsViews(TestCase):
"terminationType": "forceful",
"gracefulTerminationTimeout": "600"}
response = self.client.post("/api/nslcm/v1/ns/%s/terminate" % ns_inst_id, data=req_data)
- self.failUnlessEqual(status.HTTP_202_ACCEPTED, response.status_code)
+ self.failUnlessEqual(status.HTTP_202_ACCEPTED, response.status_code, response.data)
self.assertRaises(NSInstModel.DoesNotExist, NSInstModel.objects.get, id=ns_inst_id)
diff --git a/lcm/ns/views.py b/lcm/ns/views.py
index 3905faae..b8904d54 100644
--- a/lcm/ns/views.py
+++ b/lcm/ns/views.py
@@ -34,7 +34,9 @@ from lcm.pub.utils.restcall import req_by_msb
from lcm.pub.utils.values import ignore_case_get
from lcm.ns.serializers import CreateNsReqSerializer, CreateNsRespSerializer
from lcm.ns.serializers import QueryNsRespSerializer
-from lcm.ns.serializers import InstantNsReqSerializer, NsOperateJobSerializer
+from lcm.ns.serializers import NsOperateJobSerializer
+from lcm.ns.serializers import InstantNsReqSerializer
+from lcm.ns.serializers import TerminateNsReqSerializer
from lcm.pub.exceptions import NSLCMException
logger = logging.getLogger(__name__)
@@ -124,19 +126,33 @@ class NSInstView(APIView):
class TerminateNSView(APIView):
+ @swagger_auto_schema(
+ request_body=TerminateNsReqSerializer(),
+ responses={
+ status.HTTP_202_ACCEPTED: NsOperateJobSerializer(),
+ status.HTTP_500_INTERNAL_SERVER_ERROR: "Inner error"
+ }
+ )
def post(self, request, ns_instance_id):
- logger.debug("Enter TerminateNSView::post %s", request.data)
- termination_type = ignore_case_get(request.data, 'terminationType')
- graceful_termination_timeout = ignore_case_get(request.data, 'gracefulTerminationTimeout')
- job_id = JobUtil.create_job("VNF", JOB_TYPE.TERMINATE_VNF, ns_instance_id)
try:
+ logger.debug("Enter TerminateNSView::post %s", request.data)
+ req_serializer = TerminateNsReqSerializer(data=request.data)
+ if not req_serializer.is_valid():
+ raise NSLCMException(req_serializer.errors)
+
+ termination_type = ignore_case_get(request.data, 'terminationType')
+ graceful_termination_timeout = ignore_case_get(request.data, 'gracefulTerminationTimeout')
+ job_id = JobUtil.create_job("VNF", JOB_TYPE.TERMINATE_VNF, ns_instance_id)
TerminateNsService(ns_instance_id, termination_type, graceful_termination_timeout, job_id).start()
+
+ resp_serializer = NsOperateJobSerializer(data={'jobId': job_id})
+ if not resp_serializer.is_valid():
+ raise NSLCMException(resp_serializer.errors)
+ logger.debug("Leave TerminateNSView::post ret=%s", resp_serializer.data)
+ return Response(data=resp_serializer.data, status=status.HTTP_202_ACCEPTED)
except Exception as e:
logger.error("Exception in CreateNS: %s", e.message)
return Response(data={'error': e.message}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
- ret = {'jobId': job_id}
- logger.debug("Leave TerminateNSView::post ret=%s", ret)
- return Response(data=ret, status=status.HTTP_202_ACCEPTED)
class NSHealView(APIView):